dls-dodal 1.68.0__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/METADATA +1 -31
  2. dls_dodal-2.0.0.dist-info/RECORD +354 -0
  3. {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/WHEEL +1 -1
  4. dodal/_version.py +2 -2
  5. dodal/beamlines/__init__.py +10 -17
  6. dodal/beamlines/adsim.py +40 -33
  7. dodal/beamlines/b01_1.py +11 -0
  8. dodal/beamlines/b07.py +17 -21
  9. dodal/beamlines/b07_1.py +20 -22
  10. dodal/beamlines/b07_shared.py +12 -0
  11. dodal/beamlines/b16.py +1 -1
  12. dodal/beamlines/b21.py +15 -6
  13. dodal/beamlines/i02_1.py +17 -45
  14. dodal/beamlines/i02_2.py +6 -12
  15. dodal/beamlines/i03.py +8 -5
  16. dodal/beamlines/i03_supervisor.py +19 -0
  17. dodal/beamlines/i04.py +87 -184
  18. dodal/beamlines/i05.py +9 -39
  19. dodal/beamlines/i05_1.py +4 -13
  20. dodal/beamlines/i05_shared.py +51 -0
  21. dodal/beamlines/i06_1.py +26 -0
  22. dodal/beamlines/{i06.py → i06_shared.py} +25 -14
  23. dodal/beamlines/i07.py +14 -16
  24. dodal/beamlines/i09.py +76 -29
  25. dodal/beamlines/i09_1.py +25 -56
  26. dodal/beamlines/i09_1_shared.py +61 -0
  27. dodal/beamlines/i09_2.py +6 -100
  28. dodal/beamlines/i09_2_shared.py +110 -0
  29. dodal/beamlines/i10.py +60 -54
  30. dodal/beamlines/i10_1.py +99 -10
  31. dodal/beamlines/{i10_optics.py → i10_shared.py} +80 -66
  32. dodal/beamlines/i11.py +31 -18
  33. dodal/beamlines/i13_1.py +1 -1
  34. dodal/beamlines/i15.py +6 -6
  35. dodal/beamlines/i15_1.py +6 -6
  36. dodal/beamlines/i16.py +11 -0
  37. dodal/beamlines/i17.py +37 -28
  38. dodal/beamlines/i18.py +3 -4
  39. dodal/beamlines/i19_1.py +95 -34
  40. dodal/beamlines/i19_2.py +68 -52
  41. dodal/beamlines/i19_optics.py +26 -13
  42. dodal/beamlines/i20_1.py +17 -11
  43. dodal/beamlines/i21.py +44 -29
  44. dodal/beamlines/i22.py +19 -4
  45. dodal/beamlines/i23.py +20 -27
  46. dodal/beamlines/i24.py +64 -113
  47. dodal/beamlines/k07.py +99 -5
  48. dodal/beamlines/p38.py +3 -3
  49. dodal/beamlines/p60.py +35 -14
  50. dodal/beamlines/p99.py +16 -15
  51. dodal/beamlines/training_rig.py +20 -12
  52. dodal/cli.py +36 -2
  53. dodal/common/__init__.py +2 -1
  54. dodal/common/beamlines/beamline_parameters.py +2 -1
  55. dodal/common/beamlines/beamline_utils.py +11 -9
  56. dodal/common/beamlines/commissioning_mode.py +6 -3
  57. dodal/common/coordination.py +12 -14
  58. dodal/common/crystal_metadata.py +5 -8
  59. dodal/common/device_utils.py +4 -3
  60. dodal/common/maths.py +87 -19
  61. dodal/common/udc_directory_provider.py +13 -8
  62. dodal/common/visit.py +18 -21
  63. dodal/common/watcher_utils.py +13 -12
  64. dodal/device_manager.py +94 -54
  65. dodal/devices/aperturescatterguard.py +26 -27
  66. dodal/devices/areadetector/plugins/cam.py +1 -3
  67. dodal/devices/areadetector/plugins/mjpg.py +6 -5
  68. dodal/devices/attenuator/attenuator.py +12 -11
  69. dodal/devices/beamlines/b07/__init__.py +3 -0
  70. dodal/devices/{b07_1 → beamlines/b07_1}/__init__.py +2 -2
  71. dodal/devices/{b07_1 → beamlines/b07_1}/ccmc.py +5 -10
  72. dodal/devices/{b16 → beamlines/b16}/detector.py +2 -3
  73. dodal/devices/{i02_1 → beamlines/i02_1}/fast_grid_scan.py +2 -3
  74. dodal/devices/{i02_1 → beamlines/i02_1}/sample_motors.py +1 -1
  75. dodal/devices/{i03 → beamlines/i03}/beamsize.py +11 -7
  76. dodal/devices/{i03 → beamlines/i03}/dcm.py +1 -2
  77. dodal/devices/{i03 → beamlines/i03}/undulator_dcm.py +4 -5
  78. dodal/devices/beamlines/i04/beam_centre.py +151 -0
  79. dodal/devices/{i04 → beamlines/i04}/beamsize.py +11 -7
  80. dodal/devices/beamlines/i04/max_pixel.py +25 -0
  81. dodal/devices/{i04 → beamlines/i04}/murko_results.py +23 -8
  82. dodal/devices/{i04 → beamlines/i04}/transfocator.py +10 -15
  83. dodal/devices/beamlines/i05/__init__.py +3 -0
  84. dodal/devices/beamlines/i06_shared/__init__.py +3 -0
  85. dodal/devices/beamlines/i06_shared/i06_enum.py +7 -0
  86. dodal/devices/{i07 → beamlines/i07}/dcm.py +2 -3
  87. dodal/devices/{i07 → beamlines/i07}/id.py +8 -9
  88. dodal/devices/beamlines/i09/__init__.py +3 -0
  89. dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_energy.py +5 -6
  90. dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_undulator_functions.py +19 -16
  91. dodal/devices/{i10 → beamlines/i10}/diagnostics.py +4 -3
  92. dodal/devices/{i10 → beamlines/i10}/i10_apple2.py +37 -51
  93. dodal/devices/{i10 → beamlines/i10}/rasor/rasor_current_amp.py +1 -24
  94. dodal/devices/{i10 → beamlines/i10}/rasor/rasor_motors.py +2 -2
  95. dodal/devices/{i10 → beamlines/i10}/slits.py +5 -3
  96. dodal/devices/beamlines/i10_1/__init__.py +9 -0
  97. dodal/devices/beamlines/i10_1/electromagnet/magnet.py +16 -0
  98. dodal/devices/beamlines/i10_1/electromagnet/stages.py +14 -0
  99. dodal/devices/beamlines/i10_1/scaler_cards.py +13 -0
  100. dodal/devices/{i11 → beamlines/i11}/cyberstar_blower.py +1 -1
  101. dodal/devices/{i11 → beamlines/i11}/diff_stages.py +4 -6
  102. dodal/devices/{i11 → beamlines/i11}/mythen.py +3 -4
  103. dodal/devices/{i11 → beamlines/i11}/nx100robot.py +6 -6
  104. dodal/devices/{i11 → beamlines/i11}/spinner.py +1 -1
  105. dodal/devices/{i13_1 → beamlines/i13_1}/merlin.py +1 -1
  106. dodal/devices/{i15 → beamlines/i15}/dcm.py +1 -2
  107. dodal/devices/{i15 → beamlines/i15}/focussing_mirror.py +5 -5
  108. dodal/devices/{i15 → beamlines/i15}/jack.py +2 -2
  109. dodal/devices/{i15 → beamlines/i15}/multilayer_mirror.py +1 -1
  110. dodal/devices/{i17 → beamlines/i17}/i17_apple2.py +16 -22
  111. dodal/devices/{i18 → beamlines/i18}/diode.py +1 -1
  112. dodal/devices/{i19 → beamlines/i19}/access_controlled/attenuator_motor_squad.py +12 -8
  113. dodal/devices/{i19 → beamlines/i19}/access_controlled/blueapi_device.py +16 -15
  114. dodal/devices/beamlines/i19/access_controlled/piezo_control.py +72 -0
  115. dodal/devices/{i19 → beamlines/i19}/access_controlled/shutter.py +11 -9
  116. dodal/devices/{i19 → beamlines/i19}/backlight.py +3 -1
  117. dodal/devices/{i19 → beamlines/i19}/mapt_configuration.py +2 -1
  118. dodal/devices/{i19 → beamlines/i19}/pin_col_stages.py +11 -8
  119. dodal/devices/beamlines/i19/pin_tip.py +32 -0
  120. dodal/devices/beamlines/i21/__init__.py +3 -0
  121. dodal/devices/{i22 → beamlines/i22}/dcm.py +1 -2
  122. dodal/devices/{i22 → beamlines/i22}/fswitch.py +1 -3
  123. dodal/devices/{i22 → beamlines/i22}/nxsas.py +5 -4
  124. dodal/devices/{i24 → beamlines/i24}/beam_center.py +1 -1
  125. dodal/devices/{i24 → beamlines/i24}/beamstop.py +2 -2
  126. dodal/devices/{i24 → beamlines/i24}/commissioning_jungfrau.py +12 -12
  127. dodal/devices/{i24 → beamlines/i24}/dcm.py +1 -3
  128. dodal/devices/{i24 → beamlines/i24}/dual_backlight.py +3 -3
  129. dodal/devices/{i24 → beamlines/i24}/pmac.py +9 -7
  130. dodal/devices/{p60 → beamlines/p60}/lab_xray_source.py +1 -1
  131. dodal/devices/beamlines/p99/__init__.py +0 -0
  132. dodal/devices/{p99 → beamlines/p99}/andor2_point.py +11 -15
  133. dodal/devices/bimorph_mirror.py +22 -20
  134. dodal/devices/collimation_table.py +3 -2
  135. dodal/devices/common_dcm.py +30 -20
  136. dodal/devices/controllers.py +2 -2
  137. dodal/devices/cryostream.py +8 -0
  138. dodal/devices/current_amplifiers/current_amplifier.py +16 -18
  139. dodal/devices/current_amplifiers/current_amplifier_detector.py +9 -10
  140. dodal/devices/current_amplifiers/femto.py +8 -9
  141. dodal/devices/current_amplifiers/sr570.py +16 -16
  142. dodal/devices/current_amplifiers/struck_scaler_counter.py +5 -5
  143. dodal/devices/detector/det_resolution.py +9 -8
  144. dodal/devices/detector/detector.py +4 -2
  145. dodal/devices/diamond_filter.py +3 -4
  146. dodal/devices/eiger.py +32 -17
  147. dodal/devices/eiger_odin.py +1 -1
  148. dodal/devices/electron_analyser/base/__init__.py +3 -3
  149. dodal/devices/electron_analyser/base/base_controller.py +32 -21
  150. dodal/devices/electron_analyser/base/base_detector.py +15 -20
  151. dodal/devices/electron_analyser/base/base_driver_io.py +39 -46
  152. dodal/devices/electron_analyser/base/base_enums.py +0 -5
  153. dodal/devices/electron_analyser/base/base_region.py +29 -31
  154. dodal/devices/electron_analyser/base/base_util.py +18 -16
  155. dodal/devices/electron_analyser/base/energy_sources.py +35 -40
  156. dodal/devices/electron_analyser/specs/specs_detector.py +7 -6
  157. dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +7 -6
  158. dodal/devices/eurotherm.py +3 -2
  159. dodal/devices/fast_grid_scan.py +31 -34
  160. dodal/devices/fast_shutter.py +125 -39
  161. dodal/devices/flux.py +1 -1
  162. dodal/devices/focusing_mirror.py +29 -11
  163. dodal/devices/hutch_shutter.py +6 -6
  164. dodal/devices/insertion_device/__init__.py +20 -8
  165. dodal/devices/insertion_device/apple2_controller.py +371 -0
  166. dodal/devices/insertion_device/apple2_undulator.py +184 -587
  167. dodal/devices/insertion_device/apple_knot_controller.py +222 -0
  168. dodal/devices/insertion_device/energy.py +161 -0
  169. dodal/devices/insertion_device/energy_motor_lookup.py +21 -28
  170. dodal/devices/insertion_device/lookup_table_models.py +47 -52
  171. dodal/devices/insertion_device/polarisation.py +36 -0
  172. dodal/devices/ipin.py +1 -1
  173. dodal/devices/linkam3.py +7 -5
  174. dodal/devices/motors.py +107 -19
  175. dodal/devices/mx_phase1/beamstop.py +2 -4
  176. dodal/devices/oav/oav_calculations.py +20 -13
  177. dodal/devices/oav/oav_detector.py +92 -22
  178. dodal/devices/oav/oav_parameters.py +4 -9
  179. dodal/devices/oav/oav_to_redis_forwarder.py +22 -18
  180. dodal/devices/oav/pin_image_recognition/__init__.py +4 -6
  181. dodal/devices/oav/pin_image_recognition/manual_test.py +1 -2
  182. dodal/devices/oav/pin_image_recognition/utils.py +30 -32
  183. dodal/devices/oav/snapshots/grid_overlay.py +10 -9
  184. dodal/devices/oav/snapshots/snapshot_image_processing.py +15 -13
  185. dodal/devices/oav/utils.py +20 -6
  186. dodal/devices/p45.py +3 -9
  187. dodal/devices/pgm.py +8 -14
  188. dodal/devices/pressure_jump_cell.py +93 -32
  189. dodal/devices/qbpm.py +1 -3
  190. dodal/devices/robot.py +45 -20
  191. dodal/devices/s4_slit_gaps.py +1 -1
  192. dodal/devices/selectable_source.py +41 -0
  193. dodal/devices/slits.py +2 -5
  194. dodal/devices/smargon.py +2 -3
  195. dodal/devices/temperture_controller/lakeshore/lakeshore.py +38 -64
  196. dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +21 -35
  197. dodal/devices/tetramm.py +7 -7
  198. dodal/devices/turbo_slit.py +8 -7
  199. dodal/devices/undulator.py +42 -56
  200. dodal/devices/util/adjuster_plans.py +2 -3
  201. dodal/devices/util/epics_util.py +10 -10
  202. dodal/devices/util/lookup_tables.py +17 -18
  203. dodal/devices/v2f.py +2 -3
  204. dodal/devices/watsonmarlow323_pump.py +1 -1
  205. dodal/devices/xbpm_feedback.py +3 -2
  206. dodal/devices/xspress3/xspress3.py +8 -11
  207. dodal/devices/xspress3/xspress3_channel.py +3 -6
  208. dodal/devices/zebra/zebra.py +21 -7
  209. dodal/devices/zebra/zebra_constants_mapping.py +12 -7
  210. dodal/devices/zebra/zebra_controlled_shutter.py +2 -1
  211. dodal/devices/zocalo/zocalo_interaction.py +14 -14
  212. dodal/devices/zocalo/zocalo_results.py +33 -33
  213. dodal/log.py +23 -20
  214. dodal/plan_stubs/check_topup.py +15 -15
  215. dodal/plan_stubs/data_session.py +6 -6
  216. dodal/plan_stubs/motor_utils.py +22 -18
  217. dodal/plan_stubs/pressure_jump_cell.py +18 -0
  218. dodal/plan_stubs/wrapped.py +40 -55
  219. dodal/plans/bimorph.py +63 -52
  220. dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -1
  221. dodal/plans/device_setup_plans/__init__.py +5 -0
  222. dodal/plans/device_setup_plans/setup_pin_tip_params.py +63 -0
  223. dodal/plans/preprocessors/verify_undulator_gap.py +10 -8
  224. dodal/plans/spec_path.py +3 -5
  225. dodal/plans/verify_undulator_gap.py +1 -2
  226. dodal/plans/wrapped.py +4 -3
  227. dodal/testing/__init__.py +0 -0
  228. dodal/testing/electron_analyser/device_factory.py +5 -7
  229. dodal/testing/fixtures/devices/apple2.py +38 -0
  230. dodal/testing/fixtures/run_engine.py +3 -7
  231. dodal/testing/fixtures/utils.py +1 -2
  232. dodal/utils.py +60 -58
  233. dls_dodal-1.68.0.dist-info/RECORD +0 -330
  234. dodal/beamline_specific_utils/i05_shared.py +0 -14
  235. dodal/devices/b07/__init__.py +0 -3
  236. dodal/devices/i04/max_pixel.py +0 -38
  237. dodal/devices/i05/__init__.py +0 -3
  238. dodal/devices/i09/__init__.py +0 -3
  239. dodal/devices/i21/__init__.py +0 -5
  240. {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/entry_points.txt +0 -0
  241. {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/licenses/LICENSE +0 -0
  242. {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/top_level.txt +0 -0
  243. /dodal/{beamline_specific_utils → devices/beamlines}/__init__.py +0 -0
  244. /dodal/devices/{b07 → beamlines/b07}/enums.py +0 -0
  245. /dodal/devices/{b07_1 → beamlines/b07_1}/enums.py +0 -0
  246. /dodal/devices/{b16 → beamlines/b16}/__init__.py +0 -0
  247. /dodal/devices/{i02_1 → beamlines/i02_1}/__init__.py +0 -0
  248. /dodal/devices/{i02_2 → beamlines/i02_2}/__init__.py +0 -0
  249. /dodal/devices/{i03 → beamlines/i03}/__init__.py +0 -0
  250. /dodal/devices/{i03 → beamlines/i03}/constants.py +0 -0
  251. /dodal/devices/{i04 → beamlines/i04}/__init__.py +0 -0
  252. /dodal/devices/{i04 → beamlines/i04}/constants.py +0 -0
  253. /dodal/devices/{i05 → beamlines/i05}/enums.py +0 -0
  254. /dodal/devices/{i07 → beamlines/i07}/__init__.py +0 -0
  255. /dodal/devices/{i09 → beamlines/i09}/enums.py +0 -0
  256. /dodal/devices/{i09_1 → beamlines/i09_1}/__init__.py +0 -0
  257. /dodal/devices/{i09_1 → beamlines/i09_1}/enums.py +0 -0
  258. /dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/__init__.py +0 -0
  259. /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/__init__.py +0 -0
  260. /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/i09_apple2.py +0 -0
  261. /dodal/devices/{i10 → beamlines/i10}/__init__.py +0 -0
  262. /dodal/devices/{i10 → beamlines/i10}/i10_setting_data.py +0 -0
  263. /dodal/devices/{i10 → beamlines/i10}/mirrors.py +0 -0
  264. /dodal/devices/{i10 → beamlines/i10}/rasor/__init__.py +0 -0
  265. /dodal/devices/{i10 → beamlines/i10}/rasor/rasor_scaler_cards.py +0 -0
  266. /dodal/devices/{i11 → beamlines/i10_1/electromagnet}/__init__.py +0 -0
  267. /dodal/devices/{i13_1 → beamlines/i11}/__init__.py +0 -0
  268. /dodal/devices/{i15 → beamlines/i13_1}/__init__.py +0 -0
  269. /dodal/devices/{i13_1 → beamlines/i13_1}/merlin_controller.py +0 -0
  270. /dodal/devices/{i17 → beamlines/i15}/__init__.py +0 -0
  271. /dodal/devices/{i15 → beamlines/i15}/laue.py +0 -0
  272. /dodal/devices/{i15 → beamlines/i15}/motors.py +0 -0
  273. /dodal/devices/{i15 → beamlines/i15}/rail.py +0 -0
  274. /dodal/devices/{i18 → beamlines/i17}/__init__.py +0 -0
  275. /dodal/devices/{i19 → beamlines/i18}/__init__.py +0 -0
  276. /dodal/devices/{i18 → beamlines/i18}/kb_mirror.py +0 -0
  277. /dodal/devices/{i19/access_controlled → beamlines/i19}/__init__.py +0 -0
  278. /dodal/devices/{i20_1 → beamlines/i19/access_controlled}/__init__.py +0 -0
  279. /dodal/devices/{i19 → beamlines/i19}/access_controlled/hutch_access.py +0 -0
  280. /dodal/devices/{i19 → beamlines/i19}/beamstop.py +0 -0
  281. /dodal/devices/{i19 → beamlines/i19}/diffractometer.py +0 -0
  282. /dodal/devices/{i22 → beamlines/i20_1}/__init__.py +0 -0
  283. /dodal/devices/{i21 → beamlines/i21}/enums.py +0 -0
  284. /dodal/devices/{i24 → beamlines/i22}/__init__.py +0 -0
  285. /dodal/devices/{p99 → beamlines/i24}/__init__.py +0 -0
  286. /dodal/devices/{i24 → beamlines/i24}/aperture.py +0 -0
  287. /dodal/devices/{i24 → beamlines/i24}/focus_mirrors.py +0 -0
  288. /dodal/devices/{i24 → beamlines/i24}/vgonio.py +0 -0
  289. /dodal/devices/{p60 → beamlines/p60}/__init__.py +0 -0
  290. /dodal/devices/{p60 → beamlines/p60}/enums.py +0 -0
  291. /dodal/devices/{p99 → beamlines/p99}/sample_stage.py +0 -0
  292. /dodal/devices/insertion_device/{id_enum.py → enum.py} +0 -0
dodal/utils.py CHANGED
@@ -129,8 +129,8 @@ class DeviceInitializationController(Generic[T]):
129
129
 
130
130
  def cache_clear(self) -> None:
131
131
  """Clears the controller's internal cached instance of the device, if present.
132
- Noop if not."""
133
-
132
+ Noop if not.
133
+ """
134
134
  # Functools adds the cache_clear function via setattr so the type checker
135
135
  # does not pick it up.
136
136
  self._factory.cache_clear() # type: ignore
@@ -149,34 +149,36 @@ class DeviceInitializationController(Generic[T]):
149
149
  Once the device is connected, the value of mock must be consistent, or connect
150
150
  must be False.
151
151
 
152
- Additional keyword arguments will be passed through to the wrapped factory function.
152
+ Additional keyword arguments will be passed through to the wrapped factory
153
+ function.
153
154
 
154
155
  Args:
155
- connect_immediately (bool, default False): whether to call connect on the
156
- device before returning it- connect is idempotent for ophyd-async devices.
157
- Not connecting to the device allows for the instance to be created prior
158
- to the RunEngine event loop being configured or for connect to be called
159
- lazily e.g. by the `ensure_connected` stub.
160
- name (str | None, optional): an override name to give the device, which is
161
- also used to name its children. Defaults to None, which does not name the
162
- device unless the device has no name and this Controller is configured to
163
- use_factory_name, which propagates the name of the wrapped factory
164
- function to the device instance.
165
- connection_timeout (float | None, optional): an override timeout length in
166
- seconds for the connect method, if it is called. Defaults to None, which
167
- defers to the timeout configured for this Controller: the default uses
168
- ophyd_async's DEFAULT_TIMEOUT.
169
- mock (bool | None, optional): overrides whether to connect to Mock signal
170
- backends, if connect is called. Defaults to None, which uses the mock
171
- parameter of this Controller. This value must be used consistently when
172
- connect is called on the Device.
156
+ connect_immediately (bool, default False): Whether to call connect on the
157
+ device before returning it- connect is idempotent for ophyd-async
158
+ devices. Not connecting to the device allows for the instance to be
159
+ created prior to the RunEngine event loop being configured or for
160
+ connect to be called lazily e.g. by the `ensure_connected` stub.
161
+ name (str, optional): An override name to give the device, which is
162
+ also used to name its children. Defaults to None, which does not name
163
+ the device unless the device has no name and this Controller is
164
+ configured to use_factory_name, which propagates the name of the wrapped
165
+ factory function to the device instance.
166
+ connection_timeout (float, optional): An override timeout length in
167
+ seconds for the connect method, if it is called. Defaults to None, which
168
+ defers to the timeout configured for this Controller: the default uses
169
+ ophyd_async's DEFAULT_TIMEOUT.
170
+ mock (bool, optional): Overrides whether to connect to Mock signal
171
+ backends, if connect is called. Defaults to None, which uses the mock
172
+ parameter of this Controller. This value must be used consistently when
173
+ connect is called on the Device.
174
+ **kwargs: Arguments passed on to every factory.
173
175
 
174
176
  Returns:
175
- T: a singleton instance of the Device class returned by the wrapped factory.
177
+ T: A singleton instance of the Device class returned by the wrapped factory.
176
178
 
177
179
  Raises:
178
- RuntimeError: If the device factory was invoked again with different
179
- keyword arguments, without previously invoking cache_clear()
180
+ RuntimeError: If the device factory was invoked again with different
181
+ keyword arguments, without previously invoking cache_clear().
180
182
  """
181
183
  is_v2_device = is_v2_device_factory(self._factory)
182
184
  is_mock = mock if mock is not None else self._mock
@@ -220,11 +222,11 @@ def make_device(
220
222
 
221
223
  Args:
222
224
  module (str | ModuleType): The module to make devices from.
223
- device_name: Name of the device to construct
224
- **kwargs: Arguments passed on to every device factory
225
+ device_name: Name of the device to construct.
226
+ **kwargs: Arguments passed on to every device factory.
225
227
 
226
228
  Returns:
227
- dict[str, AnyDevice]: A dict mapping device names to the constructed devices
229
+ dict[str, AnyDevice]: A dict mapping device names to the constructed devices.
228
230
  """
229
231
  if isinstance(module, str):
230
232
  module = import_module(module)
@@ -240,21 +242,23 @@ def make_device(
240
242
  def make_all_devices(
241
243
  module: str | ModuleType | None = None, include_skipped: bool = False, **kwargs
242
244
  ) -> tuple[dict[str, AnyDevice], dict[str, Exception]]:
243
- """Makes all devices in the given beamline module, for those modules using device factories
244
- as opposed to the DeviceManager.
245
+ """Makes all devices in the given beamline module, for those modules using device
246
+ factories as opposed to the DeviceManager.
245
247
 
246
248
  In cases of device interdependencies it ensures a device is created before any which
247
249
  depend on it.
248
250
 
249
251
  Args:
250
252
  module (str | ModuleType | None, optional): The module to make devices from.
253
+ include_skipped (bool, optional): If True, also load factories with the
254
+ @skip_device annotation. Defaults to False.
251
255
  **kwargs: Arguments passed on to every device.
252
256
 
253
257
  Returns:
254
- Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: This represents a tuple containing two dictionaries:
255
-
256
- A dictionary where the keys are device names and the values are devices.
257
- A dictionary where the keys are device names and the values are exceptions.
258
+ Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: This represents a tuple
259
+ containing two dictionaries:
260
+ -A dictionary where the keys are device names and the values are devices.
261
+ -A dictionary where the keys are device names and the values are exceptions.
258
262
  """
259
263
  if isinstance(module, str) or module is None:
260
264
  module = import_module(module or __name__)
@@ -278,14 +282,14 @@ def invoke_factories(
278
282
  this will detect a dependency and create and cache the non-dependant device first.
279
283
 
280
284
  Args:
281
- factories: Mapping of function name -> function
285
+ factories (Mapping[str, AnyDeviceFactory]): Mapping of function name -> function.
286
+ **kwargs: Optional key word arguments: `mock` and `connect_immediately`.
282
287
 
283
288
  Returns:
284
- Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: Tuple of two dictionaries.
285
- One mapping device name to device, one mapping device name to exception for
286
- any failed devices
289
+ Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: Tuple of two dictionaries:
290
+ - One mapping device name to device.
291
+ - One mapping device name to exception for any failed devices.
287
292
  """
288
-
289
293
  devices: dict[str, AnyDevice] = {}
290
294
  exceptions: dict[str, Exception] = {}
291
295
 
@@ -344,13 +348,14 @@ def extract_dependencies(
344
348
  ) -> Iterable[str]:
345
349
  """Compute dependencies for a device factory. Dependencies are named in the
346
350
  factory function signature, similar to pytest fixtures. For example given
347
- def device_one(): and def device_two(device_one: Readable):, indicate taht
351
+ def device_one(): and def device_two(device_one: Readable):, indicate that
348
352
  device_one is a dependency of device_two.
349
353
 
350
354
  Args:
351
- factories: All factories, mapping of function name -> function
352
- factory_name: The name of the factory in factories whose dependencies need
353
- computing
355
+ factories (Mapping[str, AnyDeviceFactory]): All factories, mapping of
356
+ function name -> function
357
+ factory_name (str): The name of the factory in factories whose dependencies need
358
+ computing
354
359
 
355
360
  Returns:
356
361
  Iterable[str]: Generator of factory names
@@ -358,7 +363,6 @@ def extract_dependencies(
358
363
  Yields:
359
364
  Iterator[Iterable[str]]: Factory names
360
365
  """
361
-
362
366
  for name, param in inspect.signature(factories[factory_name]).parameters.items():
363
367
  if param.default is inspect.Parameter.empty and name in factories:
364
368
  yield name
@@ -371,14 +375,13 @@ def collect_factories(
371
375
  via the return type signature e.g. def my_device() -> ADeviceType:
372
376
 
373
377
  Args:
374
- module: The module to inspect
375
- include_skipped: If True, also load factories with the @skip_device annotation.
376
- Defaults to False.
378
+ module (ModuleType): The module to inspect
379
+ include_skipped (bool, optional): If True, also load factories with the
380
+ @skip_device annotation. Defaults to False.
377
381
 
378
382
  Returns:
379
383
  dict[str, AnyDeviceFactory]: Mapping of factory name -> factory.
380
- """
381
-
384
+ """ # noqa D415
382
385
  factories: dict[str, AnyDeviceFactory] = {}
383
386
 
384
387
  for var in module.__dict__.values():
@@ -445,22 +448,21 @@ def is_v1_device_type(obj: type[Any]) -> bool:
445
448
  def filter_ophyd_devices(
446
449
  devices: Mapping[str, AnyDevice],
447
450
  ) -> tuple[Mapping[str, OphydV1Device], Mapping[str, OphydV2Device]]:
448
- """
449
- Split a dictionary of ophyd and ophyd-async devices
450
- (i.e. the output of make_all_devices) into 2 separate dictionaries of the
451
- different types. Useful when special handling is needed for each type of device.
451
+ """Split a dictionary of ophyd and ophyd-async devices (i.e. the output of
452
+ make_all_devices) into 2 separate dictionaries of the different types. Useful when
453
+ special handling is needed for each type of device.
452
454
 
453
455
  Args:
454
- devices: Dictionary of device name to ophyd or ophyd-async device.
456
+ devices (Mapping[str, AnyDevice]): Dictionary of device name to ophyd or
457
+ ophyd-async device.
455
458
 
456
459
  Raises:
457
460
  ValueError: If anything in the dictionary doesn't come from either library.
458
461
 
459
462
  Returns:
460
463
  Tuple of two dictionaries, one mapping names to ophyd devices and one mapping
461
- names to ophyd-async devices.
464
+ names to ophyd-async devices.
462
465
  """
463
-
464
466
  ophyd_devices = {}
465
467
  ophyd_async_devices = {}
466
468
  for name, device in devices.items():
@@ -474,8 +476,7 @@ def filter_ophyd_devices(
474
476
 
475
477
 
476
478
  def get_beamline_based_on_environment_variable() -> ModuleType:
477
- """
478
- Gets the dodal module for the current beamline, as specified by the
479
+ """Gets the dodal module for the current beamline, as specified by the
479
480
  BEAMLINE environment variable.
480
481
  """
481
482
  beamline = get_beamline_name("")
@@ -525,7 +526,8 @@ def _find_next_run_number_from_files(file_names: list[str]) -> int:
525
526
  def get_run_number(directory: str, prefix: str = "") -> int:
526
527
  """Looks at the numbers coming from all nexus files with the format
527
528
  "{prefix}_(any number}.nxs", and returns the highest number + 1, or 1 if there are
528
- no matching numbers found. If no prefix is given, considers all files in the dir."""
529
+ no matching numbers found. If no prefix is given, considers all files in the dir.
530
+ """
529
531
  nexus_file_names = [
530
532
  file
531
533
  for file in os.listdir(directory)
@@ -1,330 +0,0 @@
1
- dls_dodal-1.68.0.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
2
- dodal/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
3
- dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
4
- dodal/_version.py,sha256=fKEtAXP7aFyf66hvwaMabE9BzwL6dh3xGKYU6jI5_mA,706
5
- dodal/cli.py,sha256=fPFs0ACCf2jEnACCIzEd5xR5ormxRwDKOZjzFlaBC88,4728
6
- dodal/device_manager.py,sha256=rTW-uaOiMPxkvYg7-yDy5MwhhfTCbbY5XkJXV_kcvj0,21029
7
- dodal/log.py,sha256=UckmmyY_SdZePyi5lHnjh-DVw6qvnat3ANa_5-y80Og,9877
8
- dodal/utils.py,sha256=32yIQHW7CQecxClTazqbb0ixbLoGxB0TxZcBGlqSTI8,19481
9
- dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- dodal/beamline_specific_utils/i05_shared.py,sha256=NmXzoJSJ6daReigaONpxxlNTYGGCSkFvgGYQUpjgteM,425
11
- dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
12
- dodal/beamlines/__init__.py,sha256=kVmxHMi9W1MkrOsVxBK7N1DBFGDrWv4FH1m8_nRxwzo,3242
13
- dodal/beamlines/adsim.py,sha256=1ciucMo1oNYeKarIeBbqlQjZrVN2viyNrDz8dHw5QxY,2153
14
- dodal/beamlines/aithre.py,sha256=RRNmzJz4Fu5eHRXKoIJpv1D1fNR5e7wmT34d52QwM9Y,1399
15
- dodal/beamlines/b01_1.py,sha256=H24kiQtF0XnpWBtpsdC_k4w2WU4ibvovU3YPAop_zdg,2830
16
- dodal/beamlines/b07.py,sha256=BfJJso_h2YX1LU0sRNxGeKJzCNRWngV9Kv2Hc3M6zLM,1430
17
- dodal/beamlines/b07_1.py,sha256=Lph4PT0JOoOk_PnRBFZxg1R6N6TqNCrmNL7ybCF2Evc,1637
18
- dodal/beamlines/b16.py,sha256=rK00hEj8KLGNkLZr9omAuoMz_DyLN9rK4eUQssETR9E,1703
19
- dodal/beamlines/b18.py,sha256=ryxrGtcCdwoFgZ8ljWYgr1g9gKvoA7nxkARVxl1IE78,1189
20
- dodal/beamlines/b21.py,sha256=KGPoUogtu5XutVSGZ8LiQgIHOyWbW_9KAt23TetKTHc,3873
21
- dodal/beamlines/i02_1.py,sha256=SwRm9v1U6CiT0fwLbSTECbJ6OF1BPEx4TJ0cEReuGZA,4017
22
- dodal/beamlines/i02_2.py,sha256=Jkghwv1Y5i0VUR2NZZ7hoiK9Ii8O-rIECDoKLX9AKi0,1169
23
- dodal/beamlines/i03.py,sha256=HyJzusfTuTYT5hi6ajcB3wQup1BPKWRGrxbLocz8Hmg,10438
24
- dodal/beamlines/i04.py,sha256=toMPtu1k2NXzfmmX6b8CH_kjhCjmO5LD_8Hs9UQPNhU,14956
25
- dodal/beamlines/i05.py,sha256=FxzIJ4BFE6PC3Gs6Kq_GjrRbpam8UbRO22EHjuSO2nQ,1281
26
- dodal/beamlines/i05_1.py,sha256=bzaDqR2doZnoN-dk_oPwWqSGJaVZTDnNtx0wMzGSTp8,714
27
- dodal/beamlines/i06.py,sha256=V0kjC2NPX4fn9et3T8KLbTgNXsyYki4S5swrC61YwAI,1571
28
- dodal/beamlines/i07.py,sha256=mnwJPscsXFZnRQ2fKd-FwYiL_VjQu5zbYGQcgg7lplE,1270
29
- dodal/beamlines/i09.py,sha256=gWVSQOmpQO6X24eARNXHQHafDv5AX7CozGSmj8NR_ak,1910
30
- dodal/beamlines/i09_1.py,sha256=bcFExeMBPoabzEA-c01cO-EUwFA3KHWBmA0iuQ4gp7A,2543
31
- dodal/beamlines/i09_2.py,sha256=pEH-a4gwuhf4xRqdLx5eAvOfxDtnc16Nvk57nDUVPSg,3395
32
- dodal/beamlines/i10.py,sha256=LC0ii13rVyZj1ziatBAyRoyuutdyyTCkpSvICGv4IGY,4059
33
- dodal/beamlines/i10_1.py,sha256=FxnWjr1u55XgIvnuyTfknnj-xPMNJOAtxObq1y9k518,1062
34
- dodal/beamlines/i10_optics.py,sha256=C8dftjZw1TmdswUMpGoKOF70TsAQ1WAffdQH-1BJ74I,7142
35
- dodal/beamlines/i11.py,sha256=hzW5Lh74zDzUD0vqXQzekoFVWDp8qEIc0OPRm0Qepqs,3643
36
- dodal/beamlines/i13_1.py,sha256=VYVqMN8-njy7YSI08gskRccT-K2paRC9edAx0ah-Cwo,1602
37
- dodal/beamlines/i15.py,sha256=lmUhh1jt5CtD4P_BzkwNufu814aT3uaQlLyDMY_B5AE,5725
38
- dodal/beamlines/i15_1.py,sha256=EKg6BCr3wpHxdmG23kSTZYcNnGQxZbkzzulBLwz_Kew,3903
39
- dodal/beamlines/i16.py,sha256=NDTbyllb11Rklk5MNDVhrmI361Q-aKOMPy_dp09JE74,648
40
- dodal/beamlines/i17.py,sha256=nlebjLsEruFcrpVGXclNHBsnIMtasQKvsBimwIf2-vI,2788
41
- dodal/beamlines/i18.py,sha256=vPGfrbh1CY2W2BXIfCA5PIeVyixS5nEJSxHpla1RM4I,3756
42
- dodal/beamlines/i19_1.py,sha256=aC-R9CEjRZEdSutfYhK9r2rT6J__IOZy4zG95B_fJC8,3466
43
- dodal/beamlines/i19_2.py,sha256=gNRRRimY69zl_e9FRaEFs-fQxWu6oqFwjHjjVs-AJrk,4514
44
- dodal/beamlines/i19_optics.py,sha256=fNdAFRJYFA045l4giGI3V68qijDFE1C8gdvD6fncAio,1181
45
- dodal/beamlines/i20_1.py,sha256=Zsr1lsH7ySbOgK7RhMVMWzNWZAV-fuYW0iAjSEJZicY,2625
46
- dodal/beamlines/i21.py,sha256=1ZtVPmnZLMvhcIpeVN7OZYnt44hVJpNNnHbfxwGoseQ,3357
47
- dodal/beamlines/i22.py,sha256=XVGYyx6QEhbXJ5DRm-YWnUZKdagv_X8YJNYjmhXT7II,8097
48
- dodal/beamlines/i23.py,sha256=ZXvPEiMA4mPbRTXOxvL1NcoVWDg4Deyl8k57cveDg90,3060
49
- dodal/beamlines/i24.py,sha256=0ZjJCUYIUWIQTPrXFqKviiTCZiyuJh4MkmqMYd9JZ9o,7454
50
- dodal/beamlines/k07.py,sha256=jELF4ENfSsPumbFieZDQKP-fDKFeGfox7guhdxJqmD8,1005
51
- dodal/beamlines/k11.py,sha256=sBOl-MLk7FMo10KFykuK5aLqH1zyW4FnI0XXmtQhUfg,978
52
- dodal/beamlines/p38.py,sha256=ohFCTkyqR2MWGK20PrJqAIokiEjDPNTAfMRzrn3T0Mg,5778
53
- dodal/beamlines/p45.py,sha256=tQ7EkWfr7o2okK7Prw1C7DNGYdKPU2ofqjm98wu_-G0,2158
54
- dodal/beamlines/p60.py,sha256=EEEPwzIMyNecEDZsPDrfn6RskbSumySruLTuYNQCDBI,1485
55
- dodal/beamlines/p99.py,sha256=Rbi9OvmrGIblctOnZxFG_tqqhALLZ9O3ht4mBcb5vU8,2754
56
- dodal/beamlines/training_rig.py,sha256=VfMMNLdqej50CX17GluuwBbdXaurc5dnWjmoCT20bT4,1593
57
- dodal/common/__init__.py,sha256=0fah9eCiHBBLVhdIqN_pjQIgPtxkAu25-3i4KjHRFM4,386
58
- dodal/common/coordination.py,sha256=zvY3n8r-eDU2K3O7RlMzS6eoKI_XWHCWS9mcLwHVZXc,1252
59
- dodal/common/crystal_metadata.py,sha256=XGr-X81G9SZvPx5b4nBCH4FOnywyX_zYVy6zwDxIMVM,1926
60
- dodal/common/data_util.py,sha256=Z2DgxQl3AzTB940e_qYVDIHuu_9vWzpbycjKb62SFus,555
61
- dodal/common/device_utils.py,sha256=3hWgLmESiF88fho9bCweZpZH6b5fbbuSZGuSEYXxl4E,1345
62
- dodal/common/enums.py,sha256=Q8RSQBIHTCbhngVUKoznzvwazQ7INsT5NE0BcAgT1U0,404
63
- dodal/common/maths.py,sha256=K9x7iL3xXLtWYTV-xlFHDNSTIL9a2UP3Ws7wr6Dm2rQ,1803
64
- dodal/common/types.py,sha256=fkL7UOwDbe3v2_VJ5f1W5RxR98Wx-Ra-LxUZWkNDtls,486
65
- dodal/common/udc_directory_provider.py,sha256=v5OBaCUwjtQZAsRQUw6LlVL58UvwwDO1l2MKlilXjdk,2403
66
- dodal/common/visit.py,sha256=0KxiIYJolSewuTn9Av-B4NxU2WpQo2l1-WmAO741Du8,5826
67
- dodal/common/watcher_utils.py,sha256=nfBaYh9DPsT0x2JS5x8_e4rVl9bjdPmMqwIQUXuoYac,3168
68
- dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- dodal/common/beamlines/beamline_parameters.py,sha256=nYTy5TDYegvon6iNCxf7Uez3hbdu9GCoLUmJhRO1qhE,2665
70
- dodal/common/beamlines/beamline_utils.py,sha256=UnDJlRs7p8srjv-peX05jHZBb8J2d2lPSyG9118x560,5286
71
- dodal/common/beamlines/commissioning_mode.py,sha256=KL24Ia4IOkSxi7M4CKRRQQW0T3HUDpj7K3Y5_DtALRA,1314
72
- dodal/common/beamlines/device_helpers.py,sha256=8sasAIFRDwo6ElHqLrXnpj_v7xcEg-29Zhey_e4r9u8,84
73
- dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
- dodal/devices/aperture.py,sha256=S7AoIoQg_kFxaQk7HUMijbm1kYkOEi2csbdj76kp1ys,427
75
- dodal/devices/aperturescatterguard.py,sha256=-9XhNGjmO3vl0O-v0N-2LJPkI2ELdR26AyZAdMkThXE,14013
76
- dodal/devices/backlight.py,sha256=y40kR6N3qSFVLRaGU8CjJJpwv_hq2QALf_85fLQqras,1415
77
- dodal/devices/baton.py,sha256=315I_0V73_DYYVT0PBs0luVy4CMqdPo0kLvHBi12MIU,606
78
- dodal/devices/bimorph_mirror.py,sha256=OGe6aCczG0gVco4OvIRLJVxn2kw5F2QG1e06uqhFLTw,4609
79
- dodal/devices/collimation_table.py,sha256=64HunSPJH-L2gZdfIj_RYdOlOuwRFEfMHfLHzu4BAKI,1681
80
- dodal/devices/common_dcm.py,sha256=BmvwnT5mbCmSQI8aGl3GKEfpe7N1axUANEyG-NYgC98,5288
81
- dodal/devices/controllers.py,sha256=W_Ras1c6xLjcOMKPSHN8Z1eCUCH-ktaah2hzQXyuFLk,652
82
- dodal/devices/cryostream.py,sha256=F8-JVl9LvvR0jvFUwhowazwT7q38HnDuVZxRS-1BOnk,4522
83
- dodal/devices/diamond_filter.py,sha256=hySd7HnLdplpPNvBrLddLjO_3LqgD8-99Zr__Sy_GbI,689
84
- dodal/devices/eiger.py,sha256=EywzuUSDnwLDd0XACKilDgwVcet1SnIPixZ28Etf78Q,17527
85
- dodal/devices/eiger_odin.py,sha256=1JoqPppTp99IZCiFOXJZB3h62xXRYKZINxTYXdLnT8c,7480
86
- dodal/devices/eurotherm.py,sha256=rdLldmWYP1PZBckoya6svPy1mDxHYaa1IfMleMPGzD4,3832
87
- dodal/devices/fast_grid_scan.py,sha256=xm2PEPrbqHOQfVrNcXt60S1UT5RtWir6MkdnVlhZNPw,17592
88
- dodal/devices/fast_shutter.py,sha256=kbHaV-cjAaKFfgEHu7fw9jEBDoJAkIa7N0XXGBZq-xs,2345
89
- dodal/devices/fluorescence_detector_motion.py,sha256=hJ1M9Zs6Dlw8DDL9APh7yVePlS4tU2hnlySd16hqfwE,346
90
- dodal/devices/flux.py,sha256=1CDsq9yU2-ho8MfYBl50Tl9ABZwpUBHnV486PQXKNoQ,462
91
- dodal/devices/focusing_mirror.py,sha256=2UWVrY6bs6_0i-h6JJ_LAUZPX_FgMzIx04JqZafdtYU,7464
92
- dodal/devices/hutch_shutter.py,sha256=iY3qWxDr8mDlAvN_BYe2gqpXRM1hlfV3ewdwkwh0_v0,3889
93
- dodal/devices/ipin.py,sha256=lDXEnCLXa0XLQUpwzq6X5FUkt08zHXnuD_bIqaTepVI,1215
94
- dodal/devices/linkam3.py,sha256=Lkw7c05XyHEEA83djfVFqz_8HN4kROCRqZwLwvHwRdA,2054
95
- dodal/devices/motors.py,sha256=eag9Z8hGhDbQR9PJGRd4yOVWuMEUqGQ3UcjqtYCn27A,8482
96
- dodal/devices/p45.py,sha256=CImflt7ifaOkV20Uip3S8_fde_GlIIhD16y-54ODfHE,1390
97
- dodal/devices/pgm.py,sha256=grNtQHWP6oSbhmEd12loe9cAFnOn2A7rBlgjwnvH8z8,1182
98
- dodal/devices/positioner.py,sha256=qf_1uYOI1whS0U5sPA3O3mlZYKrPuW3i0gEKI_q-up0,1289
99
- dodal/devices/pressure_jump_cell.py,sha256=YGmllfBya7MryLg3EXS0pzBJDRs_TlgDFxt8TzAwKJQ,8734
100
- dodal/devices/qbpm.py,sha256=FfrWWAHHtYv3fGRT1qljyPpAwoHJYfbooT9CfKg-oXI,465
101
- dodal/devices/robot.py,sha256=IBGwLoWw2MIxSs0gqRBOw4SYOX94ahQ0UI40FZlvZeM,7618
102
- dodal/devices/s4_slit_gaps.py,sha256=4KdarIQoRqX4ry3LUS1Km7fkjUFahA0VuTd2DvYEqQ8,446
103
- dodal/devices/scintillator.py,sha256=w6YSf1mY_xJKU00TXS_wfzJVKFvXNX9U7Vs8as-33wM,4249
104
- dodal/devices/slits.py,sha256=IJtipn1N5B7pH64frWcF2TFK8mTFwSYXpGt_FMGl68w,1537
105
- dodal/devices/smargon.py,sha256=JlaNPCRWh0dHbslmjuDtlZhVbIz_clmw4eUIgoSj9tM,4986
106
- dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
107
- dodal/devices/synchrotron.py,sha256=OHBrTrm4K39XE8BrE9b_Jn_ZfMRyDp9CHCwvmiV-KOc,1989
108
- dodal/devices/tetramm.py,sha256=QrS7gXB5BVkHHSqCJxYnAg2bbqnHTg0e4UZNpF9g0gE,10461
109
- dodal/devices/thawer.py,sha256=RGd9vjLyD4IDTDiP2V0giMZIduk_BJiFy1XRkrCSKY4,611
110
- dodal/devices/turbo_slit.py,sha256=xhcnhfbdcTYSYozogw6Li4fF4ofoPsc350rEyrRdaNE,1460
111
- dodal/devices/undulator.py,sha256=Ohy-5sxSKeb8p8jCORj7VILklkJ6WNYrbVLMFxTMBzs,9223
112
- dodal/devices/v2f.py,sha256=d9f4w5tLxK0S8vrgD85_9W52oEE0uPf912UvLhEWxDM,1248
113
- dodal/devices/watsonmarlow323_pump.py,sha256=xNwjoxW3NJIDkeDWHfb0A8Yj95_KKRXMD9AghvX-WLk,1337
114
- dodal/devices/webcam.py,sha256=UAx2KF0mKi6I-mJJUb5z56MHY-Wd89-tqyPcFbouQFg,2491
115
- dodal/devices/xbpm_feedback.py,sha256=HKLY3k52FPe2G-EAg8ir2LSdeUuGvhRD73ibDZ4mjH8,1418
116
- dodal/devices/aithre_lasershaping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- dodal/devices/aithre_lasershaping/goniometer.py,sha256=ljdGf7f_fCtgT62e_7HohNoE5CMGxvJkKqPDKkJ1akI,1447
118
- dodal/devices/aithre_lasershaping/laser_robot.py,sha256=vy-I1ASYflFYIUYePhT2l3l7g2iekrIFzLxA0GLmKY8,717
119
- dodal/devices/areadetector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
- dodal/devices/areadetector/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
- dodal/devices/areadetector/plugins/cam.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
122
- dodal/devices/areadetector/plugins/mjpg.py,sha256=tyJ6azC8eCaM_vhQQMB79E03VA9kljUA_7mBycGMsmw,3205
123
- dodal/devices/attenuator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- dodal/devices/attenuator/attenuator.py,sha256=-rJYY_bHCDl8NVn3yYPytYIANiOPsz0f-3U1zBsT5pE,6246
125
- dodal/devices/attenuator/filter.py,sha256=xb_8S62ktJdqdNE03PqhsfsTsQyTsRbR9CF1ksfX06M,542
126
- dodal/devices/attenuator/filter_selections.py,sha256=r0TsT3Cylx0wQiBoCsU0Kk8eOupj2wItX9xPUgpm6Lc,1954
127
- dodal/devices/b07/__init__.py,sha256=Zw4VkH-68MLoDveswDpR-lTlzK1-IeNz2W4qtkCO3Hs,109
128
- dodal/devices/b07/enums.py,sha256=GmS6YZEbFH2wEwS1Ni4VNG-2wT98v7NnCzbHqFKo5Pg,1415
129
- dodal/devices/b07_1/__init__.py,sha256=yInDRarid492g7unaL8zIrWSNpRXhgsj8z7TRTRJfjI,281
130
- dodal/devices/b07_1/ccmc.py,sha256=SyxfR8Sd8C7Bx2q0cvItdxP2DOP-ZhbMuAfSvBrbSio,2554
131
- dodal/devices/b07_1/enums.py,sha256=TREiXDSAGFRXR3iUkKADYfm-CmhLmlpGHKZUOQ2Z1as,723
132
- dodal/devices/b16/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
- dodal/devices/b16/detector.py,sha256=saI2aFBhT0oTisam5b1mlaMJTRwGT7bHbqPGBP7SDnk,840
134
- dodal/devices/beamsize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
- dodal/devices/beamsize/beamsize.py,sha256=J0xtG9NCPUvlJ0leewWzFpEYY-Oz1GFSOTkSlZ835ms,145
136
- dodal/devices/current_amplifiers/__init__.py,sha256=-MhT-t-GJ83rrvTDBCoWub_NKYkRtu4sEj8-y5XZBP0,782
137
- dodal/devices/current_amplifiers/current_amplifier.py,sha256=erDVtstLNFVb4wdSqWwRCQX_ifPxOc07x_2Ba_8Y1Wg,2660
138
- dodal/devices/current_amplifiers/current_amplifier_detector.py,sha256=YKA769KpU1V4GyYF3ckMgE8sXnaJyzRPUbBqIo7UruM,3968
139
- dodal/devices/current_amplifiers/femto.py,sha256=cnAs-NOHr8ShWBsuJk1b8ysL4EKyym-EK6rkJraWxpc,4488
140
- dodal/devices/current_amplifiers/sr570.py,sha256=tYXFnl9IEUOpPmzJID9auJJrSn1SQvJTuz-uZS_7FK4,7575
141
- dodal/devices/current_amplifiers/struck_scaler_counter.py,sha256=3xTsqOCnLwb8o_YsFGbm0PilOe8HsR4Bz_rRZMDKy-Y,2575
142
- dodal/devices/detector/__init__.py,sha256=-RdACL3tzc3lLArWOoGNje48UUlv2fElOmGOz9yOuO0,317
143
- dodal/devices/detector/det_dim_constants.py,sha256=arBWvzMwybatdSiCMAiwB4Bq1dX-wkLi54xPPfTfQhY,2772
144
- dodal/devices/detector/det_dist_to_beam_converter.py,sha256=nSkhiEESyuzdrWoPu6h3C05DnOhCXa6DZd-9vU5JYc0,1625
145
- dodal/devices/detector/det_resolution.py,sha256=8OW40MhRg56GlLstM1MOkIxa4DY8eg4q0RBUX7k6PHs,3298
146
- dodal/devices/detector/detector.py,sha256=DqQvlgdjIdKErrZqgM9IH7drc-r6N8nhkFk7KwlgYAk,4815
147
- dodal/devices/detector/detector_motion.py,sha256=Ly4nz_AsB-_EDOADMC2u2J0dunpkOMbafVN_dgh3T-E,1389
148
- dodal/devices/electron_analyser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- dodal/devices/electron_analyser/base/__init__.py,sha256=u8kktlYGxZKXFh-dA98MVVvSsSayAraCHsDI8RtJm3Q,1604
150
- dodal/devices/electron_analyser/base/base_controller.py,sha256=aFajs4VgmG4J2Gf_4Wt--HM3gaslQlS3JXFUw5YeOWI,2869
151
- dodal/devices/electron_analyser/base/base_detector.py,sha256=qNZnf-PS82z250ir9UxGYsGF5ToxvL-y-9gCJWrrWnE,7092
152
- dodal/devices/electron_analyser/base/base_driver_io.py,sha256=Y1uXIbxZS4wrxzAxv8bIJ5eZHyG3rGTTauLNjptjR-A,8985
153
- dodal/devices/electron_analyser/base/base_enums.py,sha256=ruSH7LNRhtqMflv7gYxKeAu0uLzZIaoCai7sSTzpvkg,204
154
- dodal/devices/electron_analyser/base/base_region.py,sha256=VD-7bccwKMfm1AqY9jYSiuqfL5XLKKmxrfiFzi13Crw,7432
155
- dodal/devices/electron_analyser/base/base_util.py,sha256=nGx3vF7eF4SxjzNysoxWbzqmxdSWvcPPHmghw74UuEc,1245
156
- dodal/devices/electron_analyser/base/energy_sources.py,sha256=HdslyJYn8GbhCkQ2eOlgDOZ1zrHXBUIEk_4kfUXgLrk,3162
157
- dodal/devices/electron_analyser/specs/__init__.py,sha256=PiId7pXfFqG0UznwzTROAp3iORuU6UEwn_0ohKBxKNk,315
158
- dodal/devices/electron_analyser/specs/specs_detector.py,sha256=J7TQpvCg6mzVp010LCqtHhHydrcKRweGeApeZeX8GFM,1542
159
- dodal/devices/electron_analyser/specs/specs_driver_io.py,sha256=SVb0tQGbb6m9DbjmNxfWKCwDVqMSh5a8Ad5RsMb6rZs,4449
160
- dodal/devices/electron_analyser/specs/specs_enums.py,sha256=cXPcbIGEN5ZJJt1KeiNJEtZkkcjQ-fz7dBfsU283zYQ,235
161
- dodal/devices/electron_analyser/specs/specs_region.py,sha256=uF12HNzh1I9csYVS3j-CAGuCHCblVzYFBp_4G7JCnvI,1165
162
- dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=s8acayQN8E0j1H9YEr6Q47Kxu3OtrPuZHk3ARuuot_A,397
163
- dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py,sha256=5iJIl1WwnrPVCoyBEMwzaycg0yDURs3DZNq5ceTSRAc,1850
164
- dodal/devices/electron_analyser/vgscienta/vgscienta_driver_io.py,sha256=QADd2CU52BrRwPquHmHO77gX4EY7x-yWmbOfGZhe_k8,3471
165
- dodal/devices/electron_analyser/vgscienta/vgscienta_enums.py,sha256=3vmX67ExATU8clueVp_mCzw3OUQx799oZMc8gyHtMJE,205
166
- dodal/devices/electron_analyser/vgscienta/vgscienta_region.py,sha256=SvQmB_NsdzKhuKkuzvkirsYMaqR-1bOjppVsBP4bBqo,2219
167
- dodal/devices/i02_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
- dodal/devices/i02_1/fast_grid_scan.py,sha256=bfiumNayrISFGYqdcd3Bh6lEZvkOxrqyX_B24LYW1nU,2429
169
- dodal/devices/i02_1/sample_motors.py,sha256=fAHAyeuP4hjOnYsp2x5VQNrTh8Di35ezJV1si2YmKPY,607
170
- dodal/devices/i02_2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
- dodal/devices/i03/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
172
- dodal/devices/i03/beamsize.py,sha256=xLbB_PJevGRTYSarILE6ImEmK7tgKQ1xa6D9tl6JjYA,1235
173
- dodal/devices/i03/constants.py,sha256=Y-4tsbmAMEcjV5FBjeRmnA2tl5-LPt5x_icG2xu7XkI,136
174
- dodal/devices/i03/dcm.py,sha256=qK9qcPCedjOVMvKZ0TZaWNeyt7CJRsC-Wpjy44OQf4E,2336
175
- dodal/devices/i03/undulator_dcm.py,sha256=gtlN-t-L9bLeC5E1tN_aibJhpYiSnwt-TNm5ZsPm88M,2867
176
- dodal/devices/i04/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
177
- dodal/devices/i04/beamsize.py,sha256=0Y8Adz_nSSe86uD95BgcZTyZUfisMMX01aoPi8jQx-I,1582
178
- dodal/devices/i04/constants.py,sha256=_Dw28NeXldwRYH-h6YP6OHnyj7h0z4NQs_-RysNby5Q,281
179
- dodal/devices/i04/max_pixel.py,sha256=qH-hElSDOi_ThMzuapiBSkJIAqMZ08K_OyuO3hkw0F0,1565
180
- dodal/devices/i04/murko_results.py,sha256=y6dNd1aZGRyEPP5mtWTVejbRYBoEa6qXMUNFM4VDCbg,10069
181
- dodal/devices/i04/transfocator.py,sha256=gI3UpQ6N0edo3_2aSvW5aWAS3Y1yJcFnZowRNwBvGDI,3250
182
- dodal/devices/i05/__init__.py,sha256=v0Axsf-vMyLyxcbqS8lljJc0BQ5Tw8yVBTWcO3tG_4g,67
183
- dodal/devices/i05/enums.py,sha256=9FHBIexkSfZSTHxUnGupravfG9sVriHcrB15jemkQOQ,191
184
- dodal/devices/i07/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
- dodal/devices/i07/dcm.py,sha256=AJpBiLX6t_mAjGKw9LmjXIFG5IIe5Ploe5LxS-ZckT8,1250
186
- dodal/devices/i07/id.py,sha256=CMYY_SOr7wS1KYXPIIRcsKBNgg9vSnopovRV4Y61DZU,1489
187
- dodal/devices/i09/__init__.py,sha256=5AGY_SKtqrU7NeEbzu9ROazPD_C1fEci1LJfdcuz2VY,135
188
- dodal/devices/i09/enums.py,sha256=Rfs6OgEHSSxcH2UiVmlR_5wLwxDmcHonXds0UDVRfCc,551
189
- dodal/devices/i09_1/__init__.py,sha256=dTazun87AkMDXh7J8gIZYJxJth0XUs72qahJ-VvhRBI,72
190
- dodal/devices/i09_1/enums.py,sha256=FwhsvKnEcm9M22U4gcAJi6FE2RaUBZH0jRjNgJUKRqc,1319
191
- dodal/devices/i09_1_shared/__init__.py,sha256=jbSL26A4boUJZKUCoA7JNjVfjZ3ehERlDsw1kPj1OUw,335
192
- dodal/devices/i09_1_shared/hard_energy.py,sha256=77TbYZGidZAlwP9zDE-h0mTMW4Iuf9b30mfnbUV0qJc,3965
193
- dodal/devices/i09_1_shared/hard_undulator_functions.py,sha256=e0kpReW1q4lK4pQYVbg-h9JZxDN-M8a-yaPo1cNuY-0,6205
194
- dodal/devices/i09_2_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
- dodal/devices/i09_2_shared/i09_apple2.py,sha256=6WliOiSdTjuO6N5YrvJK4AKAUgT7sSVHoLnpH1ntTU0,245
196
- dodal/devices/i10/__init__.py,sha256=Pa7gI_ulcPO3dN2xpw6tBN1E3CpV3Lj82kmGwIVU7TA,575
197
- dodal/devices/i10/diagnostics.py,sha256=ULSHpaRPVWcP-HgKAJW2rsdPoYZs_MgF6HJoPj39MwU,6339
198
- dodal/devices/i10/i10_apple2.py,sha256=zbJFTsBGT0i0ZMFG49bSPLv0z5gbpr1nRrzbhIEDIh8,6880
199
- dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
200
- dodal/devices/i10/mirrors.py,sha256=Zofd0g2f3YvFi_KIHQE_w4dFZNglhmh--65tRnWLuyY,504
201
- dodal/devices/i10/slits.py,sha256=pBstXJnA6j3ftDqei0EZyAPU--M_heqo6hm2DEOqPdc,5040
202
- dodal/devices/i10/rasor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
- dodal/devices/i10/rasor/rasor_current_amp.py,sha256=hImaPI3veKiS5YVfYwv-qrQ1AYNBjFVxG_MwTQqtkcc,2368
204
- dodal/devices/i10/rasor/rasor_motors.py,sha256=yWBxsiVhbdkQzhaK1S-nUq_wVntwHgdf6T8c8f7wHUE,1327
205
- dodal/devices/i10/rasor/rasor_scaler_cards.py,sha256=sfWJKNx6pq342PEAlmg_Yt_Tijq7mO1XFjcCDtToQiU,467
206
- dodal/devices/i11/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
- dodal/devices/i11/cyberstar_blower.py,sha256=YngbNzNkWVj_LUGEIqo9JRxRQ0PT7zjouj2VljdDlOk,1033
208
- dodal/devices/i11/diff_stages.py,sha256=3kcBRUvIwaqmoVf9MxY0CvU8LBbX_qaGhqbbYEmOri4,1713
209
- dodal/devices/i11/mythen.py,sha256=_fi7SAoWfJ34RyfSNXEyG0gwP0ox6_l9RUN9BF6OBUI,5221
210
- dodal/devices/i11/nx100robot.py,sha256=utycJTnCGV2_miUF00jEJyFcdYqSC4pcvE2fpyg-7Mo,6157
211
- dodal/devices/i11/spinner.py,sha256=PjumM7QRB7iFUtN4b6xCvxKItYUNX2XLLWDupy5LI_M,932
212
- dodal/devices/i13_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
- dodal/devices/i13_1/merlin.py,sha256=mgTFSMJftRzLL-HXAUuJkOYxtyA3Rp8YX0L46JCb30Y,1019
214
- dodal/devices/i13_1/merlin_controller.py,sha256=myfmByOEXyMrlJZfsjOxDHeGQVwZGfsRtzrfSy2001o,1495
215
- dodal/devices/i15/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
- dodal/devices/i15/dcm.py,sha256=S9kZaImMUUYDDycP_a7qJWE6UzU1JUq2kcbH_-jmuZU,1337
217
- dodal/devices/i15/focussing_mirror.py,sha256=E6T_c7M2osgHLa7u8eUfQJlXlJbZHtOp95FhP3qZ4gY,1739
218
- dodal/devices/i15/jack.py,sha256=VafCNx-uqkIy0LxbBAhSm_tuC8_SbGCrnTbvQCExAzA,962
219
- dodal/devices/i15/laue.py,sha256=H0nLPH8gqJejBZtZeY0lv84EaE2lqdL3CmXvT9iHhpk,496
220
- dodal/devices/i15/motors.py,sha256=-kGHisSWc_zuV9m2L0mGgmiSiIZ7puLsimddk28h_7s,831
221
- dodal/devices/i15/multilayer_mirror.py,sha256=qdxnn6PBAxK0MgeVUpM8Ukkq4tdX3jhjlmyU-AzzH4M,741
222
- dodal/devices/i15/rail.py,sha256=9cRTRKy6uZBASMhK1wC8K_k_5FfLgHnoh9VblSOTkpQ,428
223
- dodal/devices/i17/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
- dodal/devices/i17/i17_apple2.py,sha256=BQ8yD87S_nLFRTZ2RHlQqUJyXlRgeN1qvHUjESn7t9w,2250
225
- dodal/devices/i18/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- dodal/devices/i18/diode.py,sha256=nk5kvn4LsbhczRpCwHOO0_jJTYOz7MP9qm_uvBWuv7c,1468
227
- dodal/devices/i18/kb_mirror.py,sha256=W4R3TeulSjosUqAFIIznyWzje_Y2AoEf9f8N-NkisYM,710
228
- dodal/devices/i19/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
- dodal/devices/i19/backlight.py,sha256=c3F8RTessUJmJHlCWATSj-W25qlkAttb-c95eS28lKs,662
230
- dodal/devices/i19/beamstop.py,sha256=JkcvkEmcC3eY3GHrvYNGqv2yDwrfgdpWKVZJWSadWW8,715
231
- dodal/devices/i19/diffractometer.py,sha256=QCEi0Gko6Ja9_ec2vfdazwMspknvX63jcz8hQ2XW1xo,1182
232
- dodal/devices/i19/mapt_configuration.py,sha256=0zUzCSDofQORdaqbgD5NU-Vuf-EljgTKfvFDRDA9IjQ,1717
233
- dodal/devices/i19/pin_col_stages.py,sha256=SAdokjoTmlRcCQQSVTz4jCkBibSsKCye7s5aYtfhsfg,6691
234
- dodal/devices/i19/access_controlled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
- dodal/devices/i19/access_controlled/attenuator_motor_squad.py,sha256=KsU6c-Jb3cwy_iOu1KxQD7gRfswkfCUaI6Ann9TTvkQ,2565
236
- dodal/devices/i19/access_controlled/blueapi_device.py,sha256=ZUt1Am5H4Tm74joLz7dan2_iZk5YZQTWb_h5OFZZSks,4210
237
- dodal/devices/i19/access_controlled/hutch_access.py,sha256=hnClUWCL1qTYzuBMmhXX85jiNak7mbYfyHEh54tZ27U,377
238
- dodal/devices/i19/access_controlled/shutter.py,sha256=D0vNXkIa6IoSoBMyGdw_RQHPlTgJdgzRsKkany0Jv-I,2154
239
- dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
- dodal/devices/i21/__init__.py,sha256=GQB4jkhrWvD1i6LTqIBf_2CDLLL3M9cdwHxjkAHyUdU,74
241
- dodal/devices/i21/enums.py,sha256=asy90S84fBBydYwz89jNeocz04JXpbHn8ynaPzW353c,141
242
- dodal/devices/i22/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
243
- dodal/devices/i22/dcm.py,sha256=abs6U6DOUO8_g2adpynfoc9lQYbLC3tgObSwI9AhKZg,4551
244
- dodal/devices/i22/fswitch.py,sha256=kpgegs4Wv_weBSzbrlXLXqXOOZdzTn3X9k5PlEN5F6c,2881
245
- dodal/devices/i22/nxsas.py,sha256=rQsNZOkgw3P3mHA4NNeGz-ikjhN6WTvlWOaLLPKPfFM,5481
246
- dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
247
- dodal/devices/i24/aperture.py,sha256=dlH_g7OPTBc5QRMd-ADU3_GDTKh668kkMHo4k_JxUcY,770
248
- dodal/devices/i24/beam_center.py,sha256=nQyOif6JtlU_qP7kZP-8wN1ldW81MIbFUykPC1bEm70,446
249
- dodal/devices/i24/beamstop.py,sha256=6tbiQLlcTlp4PCPhHJ_mlHtkv0kz5ArQ99zg9rwTnrw,1133
250
- dodal/devices/i24/commissioning_jungfrau.py,sha256=i-B6Sy2braKSGYF2G7QrluPkThXHY-YiULUJRqClFok,4532
251
- dodal/devices/i24/dcm.py,sha256=2stTmR-Hx7azjVmMPVRu0gRDrJ-1jjKaWxFrF9IKsJc,1268
252
- dodal/devices/i24/dual_backlight.py,sha256=N0R7M1mHPRmQ4fks5lGU1wrXjOvcW_ZKIXaRoC8aLDE,2084
253
- dodal/devices/i24/focus_mirrors.py,sha256=DYiYLpDw8FJ1LYHxLOxE_om5qGfUo2itzskgqhmQZlg,1763
254
- dodal/devices/i24/pmac.py,sha256=-HYf2HPzaqWvszp4T8TXohdp40-xmKqQq4V0mLvVri8,7028
255
- dodal/devices/i24/vgonio.py,sha256=sxSmcYZayVJPJz_D_91j9PmNor7Tbl1RGQFRrdtESlw,533
256
- dodal/devices/insertion_device/__init__.py,sha256=Gx-2YRja1TeW5AMaSH42sCOoiXnoAkuezsy8aJmC3IE,1373
257
- dodal/devices/insertion_device/apple2_undulator.py,sha256=B0OjfPv8oN0tOVJ8JVhsBqLC9zWeHQxxy9t9ERO6T_Q,30543
258
- dodal/devices/insertion_device/energy_motor_lookup.py,sha256=8kmw7rNBTK_srKplNQ5pHD5P6b1oOP1fNJ7iNDrKgzY,2708
259
- dodal/devices/insertion_device/id_enum.py,sha256=IQgVUiY23hcOk3G073OAspeRJ9V4YEx2MntKlUt0Nqk,265
260
- dodal/devices/insertion_device/lookup_table_models.py,sha256=_lkdHo9W8u0GppBUg5Mas7ABF1ET3la6PjLGavThh3Q,9874
261
- dodal/devices/mx_phase1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
262
- dodal/devices/mx_phase1/beamstop.py,sha256=zWdZp0j9lCg4YzsZ7GSR3xEcvMfMTJoMO6XdgiC53p4,3765
263
- dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
- dodal/devices/oav/oav_calculations.py,sha256=pgQmqot9avffVRjY-NkboKnGxPEtwSovWSDMQD1icvg,2746
265
- dodal/devices/oav/oav_detector.py,sha256=HHBiXREzX6bDtQ2miPEa5SgR-nVdQzoQr5fpkz9fzdg,8942
266
- dodal/devices/oav/oav_parameters.py,sha256=gBFJwJbPGXyyXWxxhJIRhM5lAF_JxqSGOFOUW8oKL-Q,7017
267
- dodal/devices/oav/oav_to_redis_forwarder.py,sha256=4F9FuAM0d5vWEUCeLmyNLQl6IUK89Vttw2rX1Kw-mGQ,6400
268
- dodal/devices/oav/utils.py,sha256=ekDiYypwH-FuT3Ss7QZnEbukjhtAY466SGVMz5T97s8,3517
269
- dodal/devices/oav/pin_image_recognition/__init__.py,sha256=s5cdeJ6EuKAA-e5n4laaWNlYHza87frPYVC809N3TOw,6573
270
- dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
271
- dodal/devices/oav/pin_image_recognition/utils.py,sha256=HPPMh4dTXvS4Jr9DqAXkanWQfFi7sA5kOcqLRpT2kjE,9448
272
- dodal/devices/oav/snapshots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
- dodal/devices/oav/snapshots/grid_overlay.py,sha256=CdvCdTKMCiwMwxm2lV28KpcIUSXlscZmWxb73_KKmiI,3694
274
- dodal/devices/oav/snapshots/snapshot.py,sha256=Ksjy6B2wyxFdMyHAPSPcTVhx_UTEd_T9JDnTDMG4VJ0,499
275
- dodal/devices/oav/snapshots/snapshot_image_processing.py,sha256=nNBOKX0JwBh4AJWflYueEbKEJ_tvIDa4Y5mNgS8RFv0,2318
276
- dodal/devices/oav/snapshots/snapshot_with_grid.py,sha256=04MgMrclfB3cJuv2AmYE8oqQscUAr1JVmQIb5DIa-rU,2448
277
- dodal/devices/p60/__init__.py,sha256=cLrjUaHNJRtRBb1ic_LTlxIi_nH6_hZN8-5gWCt0Q6w,229
278
- dodal/devices/p60/enums.py,sha256=S0dFIG4k1aI995q-SSZYfKYiXRog_SnTTOVHOtP-qug,521
279
- dodal/devices/p60/lab_xray_source.py,sha256=CrvJYNspp4xgmad_VSUwaMG39L5S8sDRiD2wNrmXjEg,603
280
- dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
- dodal/devices/p99/andor2_point.py,sha256=zBoIou7VVzs-tAq3M29XL2xYV8aYZRKPYCGKRLk7MA0,1417
282
- dodal/devices/p99/sample_stage.py,sha256=DvHU556Gp0wFiufZiwY3o2W4xmsCL5uSwNnhd8HPAnc,528
283
- dodal/devices/temperture_controller/__init__.py,sha256=AV5Bxci_4xPwwv0zg3fp6N8Zx7Z7XKt4fzMQzQt-Fbo,128
284
- dodal/devices/temperture_controller/lakeshore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
285
- dodal/devices/temperture_controller/lakeshore/lakeshore.py,sha256=AK3-iRMLUx7dBQHc7pYzfY1sulVfzMJZ0Cuk-FNCi9Y,6407
286
- dodal/devices/temperture_controller/lakeshore/lakeshore_io.py,sha256=OSvJv-vtWIoDuvqGAbg9_3QvSfIA2iBEleJJ7M2-gO4,3914
287
- dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
- dodal/devices/util/adjuster_plans.py,sha256=c40PFZpXFw0YmJLh9jU4VIb8vRxHyafZlmvprTKAOhM,824
289
- dodal/devices/util/epics_util.py,sha256=4useFL8ngsVF08fhOn48BlnO4oh0T4sEKqjdS6mjvG0,4687
290
- dodal/devices/util/lookup_tables.py,sha256=8rip4fQI3YaYNcnUPiWF5Bhq9UXJSxFFfqJaFU4a_LU,3706
291
- dodal/devices/xspress3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
- dodal/devices/xspress3/xspress3.py,sha256=OerapEy-IuK7EFz13B5z0BzBmESVl6pYUlqAWHIwJck,4555
293
- dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
294
- dodal/devices/zebra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
295
- dodal/devices/zebra/zebra.py,sha256=AxGmFIYL62arJcy8WCE2-M1llxVB3xBhum3NV7jpEUQ,9602
296
- dodal/devices/zebra/zebra_constants_mapping.py,sha256=12Xs_nEbnAxdUN45VNn5fmI6GuUKpcQcJwsv5mifMss,4157
297
- dodal/devices/zebra/zebra_controlled_shutter.py,sha256=hrSD1oRW8BY67ub_oggjp6cvhqlRQWlXYsGtn9HBGhk,1876
298
- dodal/devices/zocalo/__init__.py,sha256=76YCA9dS0MF4AqSa-r5ss6oOgKVVjmVcbQYGtuOyeFA,498
299
- dodal/devices/zocalo/zocalo_constants.py,sha256=vu7Xjz7UNEpBUWEEBxDvP4bVFkZIN6NLGfQDpWbCjH8,98
300
- dodal/devices/zocalo/zocalo_interaction.py,sha256=GFukU9xqagQtVSDg5BrL23jxl1w8wjs4b4NLLqdFfpk,3584
301
- dodal/devices/zocalo/zocalo_results.py,sha256=czYNpOurzBJBfl4OS0Uxpjpp09QFDtJprXyBctqPu2c,12659
302
- dodal/parameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
303
- dodal/parameters/experiment_parameter_base.py,sha256=vONep-llSqhM0OpVj3zFUxdnzRQpu9y9mPhh2HauEJE,226
304
- dodal/plan_stubs/__init__.py,sha256=HbaQ9K1pSznrmDecSRIhClLWercMRuO9G7GoFvtZ6lY,168
305
- dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z1I,5371
306
- dodal/plan_stubs/data_session.py,sha256=Syc6XKaN1usf7bNWOez8_vAH3byrcROqskmBrSUWa4Y,2132
307
- dodal/plan_stubs/motor_utils.py,sha256=smYhhkSfDHQrq_UPa7Szhhyx_HlwnP_1srG0JkiDwnY,4478
308
- dodal/plan_stubs/wrapped.py,sha256=kC8HH7bx3-sLYu2oieY_502tAdT2OECF8n-fqoL5Bfc,4266
309
- dodal/plans/__init__.py,sha256=Hi-PVPyOMWcnbggtrORhhOCsH9TXTCW_mgxYVr5EKEU,94
310
- dodal/plans/bimorph.py,sha256=JxDmZDiEvZnz5f22tlaoyivpnaNGiX8kSL82qz5uvMM,11738
311
- dodal/plans/configure_arm_trigger_and_disarm_detector.py,sha256=Yffie3vznQbVGKQUiQFzpl0CxWBKJz1d3-SmschmeAw,6164
312
- dodal/plans/load_panda_yaml.py,sha256=OF-ZygZyAyQEUdrAWiIxWZ6QhAsVx4Mm9ngRYB1mzKI,433
313
- dodal/plans/save_panda.py,sha256=X-zR5GysBPp3M7ZpEYEqCUSc4nJYzHJBA44e52uQ6F4,3099
314
- dodal/plans/spec_path.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
315
- dodal/plans/verify_undulator_gap.py,sha256=8FirCLRuDreqIRYTJfFuaefrgInoztKKajD6T-t07yw,638
316
- dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
317
- dodal/plans/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
318
- dodal/plans/preprocessors/verify_undulator_gap.py,sha256=cBZEGq8TW1jrXFXB00iClQVXSEaE_jP_rHMY9WTgYyY,1813
319
- dodal/testing/electron_analyser/__init__.py,sha256=-lc1opD2dCv0x678-J-ApOhHtvEvcslfOQ7E613U8-Y,118
320
- dodal/testing/electron_analyser/device_factory.py,sha256=mLeWQems_xBmmxPjyUEBhcp8VIsasY4TsUnVOe10ZaE,2252
321
- dodal/testing/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
- dodal/testing/fixtures/run_engine.py,sha256=_DQivl-pAAoSVpX60XT4jLLmPBJHahCkaVAI3gnl3q8,4208
323
- dodal/testing/fixtures/utils.py,sha256=jy3mfAAn_TFQ7gqCec-OiOlZkaNLUH3TESW2oohvNgo,1861
324
- dodal/testing/fixtures/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
325
- dodal/testing/fixtures/devices/apple2.py,sha256=5FbO1YACBF8aM82X9_36gPqk6rjdy1xRu8OdfdPrxAM,2727
326
- dls_dodal-1.68.0.dist-info/METADATA,sha256=9_RH8_nxq7q8xT5oNB_i10-jiRoqOC6dIxs_RRHg2o0,16923
327
- dls_dodal-1.68.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
328
- dls_dodal-1.68.0.dist-info/entry_points.txt,sha256=0IO1Bjlnv0vJSSFdGEZ-S_pqQNkE2FnPTA6f0-aTBs8,87
329
- dls_dodal-1.68.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
330
- dls_dodal-1.68.0.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- from dodal.common.beamlines.beamline_utils import device_factory
2
- from dodal.devices.i05.enums import Grating
3
- from dodal.devices.pgm import PlaneGratingMonochromator
4
- from dodal.utils import BeamlinePrefix
5
-
6
- PREFIX = BeamlinePrefix("i05", "I")
7
-
8
-
9
- @device_factory()
10
- def pgm() -> PlaneGratingMonochromator:
11
- return PlaneGratingMonochromator(
12
- prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
13
- grating=Grating,
14
- )
@@ -1,3 +0,0 @@
1
- from dodal.devices.b07.enums import Grating, LensMode, PsuMode
2
-
3
- __all__ = ["Grating", "LensMode", "PsuMode"]
@@ -1,38 +0,0 @@
1
- import cv2
2
- import numpy as np
3
- from bluesky.protocols import Triggerable
4
- from ophyd_async.core import AsyncStatus, StandardReadable, soft_signal_r_and_setter
5
- from ophyd_async.epics.core import (
6
- epics_signal_r,
7
- )
8
-
9
- # kernal size describes how many of the neigbouring pixels are used for the blur,
10
- # higher kernal size means more of a blur effect
11
- KERNAL_SIZE = (7, 7)
12
-
13
-
14
- class MaxPixel(StandardReadable, Triggerable):
15
- """Gets the max pixel (brightest pixel) from the image after some image processing."""
16
-
17
- def __init__(self, prefix: str, name: str = "") -> None:
18
- self.array_data = epics_signal_r(np.ndarray, f"pva://{prefix}PVA:ARRAY")
19
- self.max_pixel_val, self._max_val_setter = soft_signal_r_and_setter(float)
20
- super().__init__(name)
21
-
22
- async def _convert_to_gray_and_blur(self):
23
- """
24
- Preprocess the image array data (convert to grayscale and apply a gaussian blur)
25
- Image is converted to grayscale (using a weighted mean as green contributes more to brightness)
26
- as we aren't interested in data relating to colour. A blur is then applied to mitigate
27
- errors due to rogue hot pixels.
28
- """
29
- data = await self.array_data.get_value()
30
- gray_arr = cv2.cvtColor(data, cv2.COLOR_BGR2GRAY)
31
- return cv2.GaussianBlur(gray_arr, KERNAL_SIZE, 0)
32
-
33
- @AsyncStatus.wrap
34
- async def trigger(self):
35
- arr = await self._convert_to_gray_and_blur()
36
- max_val = float(np.max(arr)) # np.int64
37
- assert isinstance(max_val, float)
38
- self._max_val_setter(max_val)
@@ -1,3 +0,0 @@
1
- from dodal.devices.i05.enums import Grating
2
-
3
- __all__ = ["Grating"]
@@ -1,3 +0,0 @@
1
- from dodal.devices.i09.enums import Grating, LensMode, PassEnergy, PsuMode
2
-
3
- __all__ = ["Grating", "LensMode", "PsuMode", "PassEnergy"]