dls-dodal 1.61.0__tar.gz → 1.63.0__tar.gz

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 (631) hide show
  1. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_test.yml +0 -1
  2. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/PKG-INFO +1 -1
  3. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/conftest.py +6 -6
  4. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/write-tests.md +6 -6
  5. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/reference/device-standards.md +1 -1
  6. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/pyproject.toml +10 -5
  7. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dls_dodal.egg-info/PKG-INFO +1 -1
  8. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dls_dodal.egg-info/SOURCES.txt +23 -14
  9. dls_dodal-1.63.0/src/dls_dodal.egg-info/entry_points.txt +3 -0
  10. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/_version.py +3 -3
  11. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/__init__.py +1 -0
  12. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/adsim.py +5 -3
  13. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b21.py +3 -1
  14. dls_dodal-1.63.0/src/dodal/beamlines/i02_2.py +32 -0
  15. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i03.py +9 -0
  16. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i04.py +1 -1
  17. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i09.py +10 -3
  18. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i09_1.py +9 -3
  19. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i10.py +7 -69
  20. dls_dodal-1.63.0/src/dodal/beamlines/i10_1.py +35 -0
  21. dls_dodal-1.63.0/src/dodal/beamlines/i10_optics.py +205 -0
  22. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i15_1.py +5 -5
  23. dls_dodal-1.63.0/src/dodal/beamlines/i17.py +86 -0
  24. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i18.py +15 -9
  25. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i19_1.py +3 -3
  26. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i19_2.py +12 -2
  27. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i19_optics.py +4 -1
  28. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i24.py +3 -3
  29. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/cli.py +4 -4
  30. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/visit.py +4 -4
  31. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/aperturescatterguard.py +6 -4
  32. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/apple2_undulator.py +211 -114
  33. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/attenuator/filter_selections.py +6 -6
  34. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/common_dcm.py +62 -15
  35. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/controllers.py +8 -6
  36. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/femto.py +4 -4
  37. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/sr570.py +3 -3
  38. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/fast_grid_scan.py +97 -21
  39. dls_dodal-1.63.0/src/dodal/devices/fast_shutter.py +69 -0
  40. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i02_1/fast_grid_scan.py +1 -1
  41. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i03/dcm.py +4 -2
  42. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i04/murko_results.py +35 -14
  43. dls_dodal-1.63.0/src/dodal/devices/i09/__init__.py +3 -0
  44. dls_dodal-1.63.0/src/dodal/devices/i10/__init__.py +29 -0
  45. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/diagnostics.py +37 -5
  46. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/i10_apple2.py +125 -229
  47. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/slits.py +38 -6
  48. dls_dodal-1.63.0/src/dodal/devices/i15/dcm.py +39 -0
  49. dls_dodal-1.63.0/src/dodal/devices/i17/i17_apple2.py +51 -0
  50. {dls_dodal-1.61.0/src/dodal/devices/i19 → dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled}/shutter.py +7 -4
  51. dls_dodal-1.63.0/src/dodal/devices/i19/mapt_configuration.py +38 -0
  52. dls_dodal-1.63.0/src/dodal/devices/i19/pin_col_stages.py +170 -0
  53. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i22/dcm.py +2 -2
  54. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/dcm.py +2 -2
  55. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/oav_detector.py +1 -1
  56. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/oav_parameters.py +4 -4
  57. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +4 -4
  58. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +3 -3
  59. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +1 -1
  60. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/snapshots/snapshot.py +1 -1
  61. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +12 -12
  62. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +1 -1
  63. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/utils.py +2 -2
  64. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/pgm.py +3 -3
  65. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/robot.py +5 -5
  66. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/tetramm.py +9 -5
  67. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/thawer.py +0 -4
  68. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/v2f.py +2 -2
  69. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +2 -2
  70. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zocalo/__init__.py +4 -4
  71. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zocalo/zocalo_results.py +4 -4
  72. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/log.py +9 -9
  73. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plan_stubs/motor_utils.py +4 -4
  74. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +29 -7
  75. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/save_panda.py +7 -7
  76. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/verify_undulator_gap.py +2 -2
  77. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/system_tests/test_adsim.py +9 -9
  78. dls_dodal-1.63.0/system_tests/test_cli.py +31 -0
  79. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/system_tests/test_oav_system.py +2 -2
  80. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/system_tests/test_oav_to_redis_system.py +5 -5
  81. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/beamlines/test_beamline_parameters.py +1 -1
  82. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/beamlines/test_commissioning_mode.py +4 -4
  83. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_visit.py +2 -2
  84. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_watcher_utils.py +1 -1
  85. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/conftest.py +6 -6
  86. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/b07_1/test_ccmc.py +4 -4
  87. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/current_amplifier/test_femto.py +19 -14
  88. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/current_amplifier/test_sr570.py +25 -20
  89. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/abstract/test_base_detector.py +2 -3
  90. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +8 -9
  91. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/conftest.py +15 -7
  92. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/specs/test_detector.py +0 -2
  93. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/specs/test_driver_io.py +13 -13
  94. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_detector.py +2 -3
  95. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/vgscienta/test_detector.py +0 -2
  96. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +12 -13
  97. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i02_1/test_fast_grid_scan.py +1 -1
  98. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i04/test_murko_results.py +90 -56
  99. dls_dodal-1.61.0/tests/devices/i10/test_i10Apple2.py → dls_dodal-1.63.0/tests/devices/i10/test_i10_apple2.py +269 -161
  100. dls_dodal-1.63.0/tests/devices/i17/test_i17_apple2.py +51 -0
  101. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i18/test_kb_mirror.py +1 -1
  102. dls_dodal-1.63.0/tests/devices/i19/test_mapt.py +63 -0
  103. dls_dodal-1.63.0/tests/devices/i19/test_pin_col.py +160 -0
  104. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i19/test_shutter.py +36 -16
  105. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i22/test_dcm.py +3 -2
  106. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i22/test_fswitch.py +2 -2
  107. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i24/test_dual_backlight.py +10 -10
  108. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i24/test_focus_mirrors.py +2 -2
  109. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i24/test_pmac.py +14 -14
  110. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i24/test_vgonio.py +2 -2
  111. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/mx_phase1/test_beamstop.py +11 -7
  112. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +8 -6
  113. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_oav.py +7 -7
  114. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +4 -4
  115. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_oav_utils.py +9 -9
  116. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_snapshots.py +8 -7
  117. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/p60/test_lab_xray_source.py +6 -6
  118. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/p99/test_p99_stage.py +9 -9
  119. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +9 -11
  120. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +1 -1
  121. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_aperture.py +3 -4
  122. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_aperture_scatterguard.py +9 -9
  123. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_apple2_undulator.py +79 -75
  124. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_attenuator.py +5 -5
  125. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_backlight.py +8 -8
  126. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_bart_robot.py +7 -7
  127. dls_dodal-1.63.0/tests/devices/test_common_dcm.py +46 -0
  128. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_eiger.py +11 -11
  129. dls_dodal-1.63.0/tests/devices/test_fast_shutters.py +47 -0
  130. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_focusing_mirror.py +16 -16
  131. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_gridscan.py +195 -17
  132. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_hutch_shutter.py +4 -4
  133. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_odin.py +9 -9
  134. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_smargon.py +7 -7
  135. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_synchrotron.py +2 -2
  136. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_tetramm.py +11 -4
  137. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_thawer.py +3 -3
  138. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_utils.py +8 -8
  139. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_webcam.py +2 -5
  140. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_xbpm_feedback.py +9 -9
  141. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_xspress3.py +7 -7
  142. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_zebra_constants_mapping.py +2 -2
  143. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_zocalo_results.py +26 -24
  144. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_adjuster_plans.py +4 -4
  145. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_data_session.py +4 -4
  146. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_motor_util_plans.py +32 -26
  147. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_topup_plan.py +19 -10
  148. dls_dodal-1.63.0/tests/plans/__init__.py +0 -0
  149. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/conftest.py +2 -2
  150. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_bimorph.py +23 -23
  151. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +6 -2
  152. dls_dodal-1.63.0/tests/plans/test_preprocessors/__init__.py +0 -0
  153. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +6 -6
  154. {dls_dodal-1.61.0/tests/devices/util → dls_dodal-1.63.0/tests/plans}/test_save_panda.py +0 -2
  155. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_scanspec.py +2 -2
  156. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_verify_undulator_gap_plan.py +4 -2
  157. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_wrapped.py +8 -8
  158. dls_dodal-1.63.0/tests/preprocessors/__init__.py +0 -0
  159. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/preprocessors/test_filesystem_metadata.py +24 -24
  160. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_log.py +28 -28
  161. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_utils.py +1 -1
  162. dls_dodal-1.61.0/src/dls_dodal.egg-info/entry_points.txt +0 -3
  163. dls_dodal-1.61.0/src/dodal/beamlines/i10-1.py +0 -25
  164. dls_dodal-1.61.0/src/dodal/beamlines/i17.py +0 -37
  165. dls_dodal-1.61.0/src/dodal/devices/i09/__init__.py +0 -4
  166. dls_dodal-1.61.0/src/dodal/devices/i09/dcm.py +0 -26
  167. dls_dodal-1.61.0/src/dodal/devices/i15/dcm.py +0 -77
  168. dls_dodal-1.61.0/system_tests/test_cli.py +0 -12
  169. dls_dodal-1.61.0/tests/devices/i09/test_dcm.py +0 -52
  170. dls_dodal-1.61.0/tests/devices/i15/test_dcm.py +0 -7
  171. dls_dodal-1.61.0/tests/devices/test.png +0 -0
  172. dls_dodal-1.61.0/tests/devices/test_common_dcm.py +0 -8
  173. dls_dodal-1.61.0/tests/devices/test_status.py +0 -14
  174. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.copier-answers.yml +0 -0
  175. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.devcontainer/devcontainer.json +0 -0
  176. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/CODEOWNERS +0 -0
  177. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/CONTRIBUTING.md +0 -0
  178. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  179. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/actions/install_requirements/action.yml +0 -0
  180. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/dependabot.yml +0 -0
  181. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/pages/index.html +0 -0
  182. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/pages/make_switcher.py +0 -0
  183. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/scripts/check_test_durations.py +0 -0
  184. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_dist.yml +0 -0
  185. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_docs.yml +0 -0
  186. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_pypi.yml +0 -0
  187. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_release.yml +0 -0
  188. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/_tox.yml +0 -0
  189. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/ci.yml +0 -0
  190. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.github/workflows/periodic.yml +0 -0
  191. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.gitignore +0 -0
  192. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.pre-commit-config.yaml +0 -0
  193. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.vscode/extensions.json +0 -0
  194. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.vscode/launch.json +0 -0
  195. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.vscode/settings.json +0 -0
  196. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/.vscode/tasks.json +0 -0
  197. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/Dockerfile +0 -0
  198. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/LICENSE +0 -0
  199. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/README.md +0 -0
  200. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/catalog-info.yaml +0 -0
  201. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/_templates/autosummary/class.rst +0 -0
  202. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/_templates/autosummary/module.rst +0 -0
  203. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/_templates/custom-module-template.rst +0 -0
  204. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
  205. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/assets/zocalo.png +0 -0
  206. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/conf.py +0 -0
  207. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  208. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  209. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  210. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  211. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  212. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
  213. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions/COPYME +0 -0
  214. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/decisions.md +0 -0
  215. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/reviews.md +0 -0
  216. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/umls/apple2_design.png +0 -0
  217. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations/umls/i10_id_design.png +0 -0
  218. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/explanations.md +0 -0
  219. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/genindex.md +0 -0
  220. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/build-docs.md +0 -0
  221. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/contribute.md +0 -0
  222. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/coverage.md +0 -0
  223. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/create-beamline.md +0 -0
  224. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/create-device.md +0 -0
  225. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/dev-install.md +0 -0
  226. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/excalidraw.md +0 -0
  227. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/external-io-devices.md +0 -0
  228. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/lint.md +0 -0
  229. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/lock-requirements.md +0 -0
  230. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/make-release.md +0 -0
  231. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/move-code.md +0 -0
  232. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/pypi.md +0 -0
  233. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/run-tests.md +0 -0
  234. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/static-analysis.md +0 -0
  235. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/update-template.md +0 -0
  236. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to/zocalo.md +0 -0
  237. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/how-to.md +0 -0
  238. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/images/dls-logo.svg +0 -0
  239. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/images/excalidraw-example.svg +0 -0
  240. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/index.md +0 -0
  241. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/reference/api.md +0 -0
  242. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/reference/standards.md +0 -0
  243. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/reference.md +0 -0
  244. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/tutorials/get_started.md +0 -0
  245. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/tutorials/installation.md +0 -0
  246. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/docs/tutorials.md +0 -0
  247. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/pull_request_template.md +0 -0
  248. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/setup.cfg +0 -0
  249. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/__init__.py +0 -0
  250. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  251. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dls_dodal.egg-info/requires.txt +0 -0
  252. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  253. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/__init__.py +0 -0
  254. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/__main__.py +0 -0
  255. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  256. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  257. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamline_specific_utils/i05_shared.py +0 -0
  258. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/README.md +0 -0
  259. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/aithre.py +0 -0
  260. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b01_1.py +0 -0
  261. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b07.py +0 -0
  262. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b07_1.py +0 -0
  263. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b16.py +0 -0
  264. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/b18.py +0 -0
  265. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i02_1.py +0 -0
  266. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i05.py +0 -0
  267. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i05_1.py +0 -0
  268. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i09_2.py +0 -0
  269. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i11.py +0 -0
  270. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i13_1.py +0 -0
  271. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i15.py +0 -0
  272. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i20_1.py +0 -0
  273. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i21.py +0 -0
  274. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i22.py +0 -0
  275. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/i23.py +0 -0
  276. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/k07.py +0 -0
  277. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/k11.py +0 -0
  278. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/p38.py +0 -0
  279. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/p45.py +0 -0
  280. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/p60.py +0 -0
  281. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/p99.py +0 -0
  282. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/beamlines/training_rig.py +0 -0
  283. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/__init__.py +0 -0
  284. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/beamlines/__init__.py +0 -0
  285. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  286. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  287. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
  288. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  289. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/coordination.py +0 -0
  290. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/crystal_metadata.py +0 -0
  291. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/data_util.py +0 -0
  292. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/device_utils.py +0 -0
  293. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/enums.py +0 -0
  294. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/maths.py +0 -0
  295. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/types.py +0 -0
  296. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/udc_directory_provider.py +0 -0
  297. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/common/watcher_utils.py +0 -0
  298. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/__init__.py +0 -0
  299. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
  300. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  301. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  302. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/aperture.py +0 -0
  303. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/areadetector/__init__.py +0 -0
  304. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
  305. /dls_dodal-1.61.0/src/dodal/devices/areadetector/plugins/CAM.py → /dls_dodal-1.63.0/src/dodal/devices/areadetector/plugins/cam.py +0 -0
  306. /dls_dodal-1.61.0/src/dodal/devices/areadetector/plugins/MJPG.py → /dls_dodal-1.63.0/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
  307. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/attenuator/__init__.py +0 -0
  308. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  309. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/attenuator/filter.py +0 -0
  310. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b07/__init__.py +0 -0
  311. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b07/enums.py +0 -0
  312. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b07_1/__init__.py +0 -0
  313. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b07_1/ccmc.py +0 -0
  314. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b07_1/enums.py +0 -0
  315. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b16/__init__.py +0 -0
  316. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/b16/detector.py +0 -0
  317. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/backlight.py +0 -0
  318. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/baton.py +0 -0
  319. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  320. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/collimation_table.py +0 -0
  321. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/cryostream.py +0 -0
  322. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  323. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  324. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  325. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  326. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/__init__.py +0 -0
  327. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  328. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  329. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  330. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/detector.py +0 -0
  331. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  332. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/diamond_filter.py +0 -0
  333. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/eiger.py +0 -0
  334. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/eiger_odin.py +0 -0
  335. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  336. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  337. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  338. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +0 -0
  339. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
  340. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
  341. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/detector.py +0 -0
  342. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/energy_sources.py +0 -0
  343. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
  344. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  345. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/specs/detector.py +0 -0
  346. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +0 -0
  347. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  348. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
  349. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/types.py +0 -0
  350. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/util.py +0 -0
  351. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  352. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -0
  353. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +0 -0
  354. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  355. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
  356. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/eurotherm.py +0 -0
  357. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  358. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/flux.py +0 -0
  359. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/focusing_mirror.py +0 -0
  360. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/hutch_shutter.py +0 -0
  361. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i02_1/__init__.py +0 -0
  362. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
  363. {dls_dodal-1.61.0/src/dodal/devices/i10 → dls_dodal-1.63.0/src/dodal/devices/i02_2}/__init__.py +0 -0
  364. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i03/__init__.py +0 -0
  365. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  366. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i04/__init__.py +0 -0
  367. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i04/constants.py +0 -0
  368. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i04/transfocator.py +0 -0
  369. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i05/__init__.py +0 -0
  370. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i05/enums.py +0 -0
  371. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i09/enums.py +0 -0
  372. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i09_1/__init__.py +0 -0
  373. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i09_1/enums.py +0 -0
  374. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  375. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/mirrors.py +0 -0
  376. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/rasor/__init__.py +0 -0
  377. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  378. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  379. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  380. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/__init__.py +0 -0
  381. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
  382. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/diff_stages.py +0 -0
  383. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/mythen.py +0 -0
  384. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/nx100robot.py +0 -0
  385. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i11/spinner.py +0 -0
  386. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i13_1/__init__.py +0 -0
  387. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  388. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  389. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/__init__.py +0 -0
  390. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
  391. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/jack.py +0 -0
  392. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/laue.py +0 -0
  393. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/motors.py +0 -0
  394. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
  395. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i15/rail.py +0 -0
  396. {dls_dodal-1.61.0/src/dodal/devices/i18 → dls_dodal-1.63.0/src/dodal/devices/i17}/__init__.py +0 -0
  397. {dls_dodal-1.61.0/src/dodal/devices/i19 → dls_dodal-1.63.0/src/dodal/devices/i18}/__init__.py +0 -0
  398. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i18/diode.py +0 -0
  399. /dls_dodal-1.61.0/src/dodal/devices/i18/KBMirror.py → /dls_dodal-1.63.0/src/dodal/devices/i18/kb_mirror.py +0 -0
  400. {dls_dodal-1.61.0/src/dodal/devices/i20_1 → dls_dodal-1.63.0/src/dodal/devices/i19}/__init__.py +0 -0
  401. {dls_dodal-1.61.0/src/dodal/devices/i22 → dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled}/__init__.py +0 -0
  402. {dls_dodal-1.61.0/src/dodal/devices/i19 → dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled}/blueapi_device.py +0 -0
  403. {dls_dodal-1.61.0/src/dodal/devices/i19 → dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled}/hutch_access.py +0 -0
  404. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i19/backlight.py +0 -0
  405. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i19/beamstop.py +0 -0
  406. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i19/diffractometer.py +0 -0
  407. {dls_dodal-1.61.0/src/dodal/devices/i24 → dls_dodal-1.63.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  408. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i21/__init__.py +0 -0
  409. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i21/enums.py +0 -0
  410. {dls_dodal-1.61.0/src/dodal/devices/mx_phase1 → dls_dodal-1.63.0/src/dodal/devices/i22}/__init__.py +0 -0
  411. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i22/fswitch.py +0 -0
  412. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i22/nxsas.py +0 -0
  413. {dls_dodal-1.61.0/src/dodal/devices/oav → dls_dodal-1.63.0/src/dodal/devices/i24}/__init__.py +0 -0
  414. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/aperture.py +0 -0
  415. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/beam_center.py +0 -0
  416. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/beamstop.py +0 -0
  417. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/commissioning_jungfrau.py +0 -0
  418. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  419. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  420. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/pmac.py +0 -0
  421. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/i24/vgonio.py +0 -0
  422. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/ipin.py +0 -0
  423. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/linkam3.py +0 -0
  424. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/motors.py +0 -0
  425. {dls_dodal-1.61.0/src/dodal/devices/oav/snapshots → dls_dodal-1.63.0/src/dodal/devices/mx_phase1}/__init__.py +0 -0
  426. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  427. {dls_dodal-1.61.0/src/dodal/devices/p99 → dls_dodal-1.63.0/src/dodal/devices/oav}/__init__.py +0 -0
  428. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  429. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  430. {dls_dodal-1.61.0/src/dodal/devices/temperture_controller/lakeshore → dls_dodal-1.63.0/src/dodal/devices/oav/snapshots}/__init__.py +0 -0
  431. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  432. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p45.py +0 -0
  433. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p60/__init__.py +0 -0
  434. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p60/enums.py +0 -0
  435. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
  436. {dls_dodal-1.61.0/src/dodal/devices/util → dls_dodal-1.63.0/src/dodal/devices/p99}/__init__.py +0 -0
  437. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  438. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  439. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/positioner.py +0 -0
  440. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  441. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/qbpm.py +0 -0
  442. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  443. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/scintillator.py +0 -0
  444. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/slits.py +0 -0
  445. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/smargon.py +0 -0
  446. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/status.py +0 -0
  447. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/synchrotron.py +0 -0
  448. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
  449. {dls_dodal-1.61.0/src/dodal/devices/xspress3 → dls_dodal-1.63.0/src/dodal/devices/temperture_controller/lakeshore}/__init__.py +0 -0
  450. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
  451. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
  452. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/turbo_slit.py +0 -0
  453. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/undulator.py +0 -0
  454. {dls_dodal-1.61.0/src/dodal/devices/zebra → dls_dodal-1.63.0/src/dodal/devices/util}/__init__.py +0 -0
  455. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  456. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/util/epics_util.py +0 -0
  457. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  458. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  459. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/webcam.py +0 -0
  460. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  461. {dls_dodal-1.61.0/src/dodal/parameters → dls_dodal-1.63.0/src/dodal/devices/xspress3}/__init__.py +0 -0
  462. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  463. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  464. {dls_dodal-1.61.0/src/dodal/plan_stubs → dls_dodal-1.63.0/src/dodal/devices/zebra}/__init__.py +0 -0
  465. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zebra/zebra.py +0 -0
  466. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  467. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  468. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  469. {dls_dodal-1.61.0/src/dodal/plans/preprocessors → dls_dodal-1.63.0/src/dodal/parameters}/__init__.py +0 -0
  470. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  471. {dls_dodal-1.61.0/system_tests → dls_dodal-1.63.0/src/dodal/plan_stubs}/__init__.py +0 -0
  472. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  473. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plan_stubs/data_session.py +0 -0
  474. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  475. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/__init__.py +0 -0
  476. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/bimorph.py +0 -0
  477. {dls_dodal-1.61.0/tests → dls_dodal-1.63.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  478. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  479. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/scanspec.py +0 -0
  480. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/plans/wrapped.py +0 -0
  481. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/testing/__init__.py +0 -0
  482. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
  483. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
  484. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/testing/setup.py +0 -0
  485. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/src/dodal/utils.py +0 -0
  486. {dls_dodal-1.61.0/tests/beamlines → dls_dodal-1.63.0/system_tests}/__init__.py +0 -0
  487. {dls_dodal-1.61.0/tests/common → dls_dodal-1.63.0/tests}/__init__.py +0 -0
  488. {dls_dodal-1.61.0/tests/common → dls_dodal-1.63.0/tests}/beamlines/__init__.py +0 -0
  489. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/beamlines/test_b16.py +0 -0
  490. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/beamlines/test_i03.py +0 -0
  491. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/beamlines/test_i24.py +0 -0
  492. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/beamlines/test_mapping.py +0 -0
  493. {dls_dodal-1.61.0/tests/devices → dls_dodal-1.63.0/tests/common}/__init__.py +0 -0
  494. {dls_dodal-1.61.0/tests/devices/aithre_lasershaping → dls_dodal-1.63.0/tests/common/beamlines}/__init__.py +0 -0
  495. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  496. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  497. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_coordination.py +0 -0
  498. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_crystal_metadata.py +0 -0
  499. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_maths.py +0 -0
  500. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/common/test_udc_directory_provider.py +0 -0
  501. {dls_dodal-1.61.0/tests/devices/b07_1 → dls_dodal-1.63.0/tests/devices}/__init__.py +0 -0
  502. {dls_dodal-1.61.0/tests/devices/current_amplifier → dls_dodal-1.63.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
  503. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  504. {dls_dodal-1.61.0/tests/devices/detector → dls_dodal-1.63.0/tests/devices/b07_1}/__init__.py +0 -0
  505. {dls_dodal-1.61.0/tests/devices/electron_analyser → dls_dodal-1.63.0/tests/devices/current_amplifier}/__init__.py +0 -0
  506. {dls_dodal-1.61.0/tests/devices/electron_analyser/abstract → dls_dodal-1.63.0/tests/devices/detector}/__init__.py +0 -0
  507. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/detector/test_data/__init__.py +0 -0
  508. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
  509. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
  510. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/detector/test_det_resolution.py +0 -0
  511. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/detector/test_detector.py +0 -0
  512. {dls_dodal-1.61.0/tests/devices/electron_analyser/specs → dls_dodal-1.63.0/tests/devices/electron_analyser}/__init__.py +0 -0
  513. {dls_dodal-1.61.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.63.0/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
  514. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
  515. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
  516. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
  517. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
  518. {dls_dodal-1.61.0/tests/devices/i02_1 → dls_dodal-1.63.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
  519. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/specs/test_region.py +0 -0
  520. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
  521. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
  522. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
  523. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_energy_sources.py +0 -0
  524. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/test_util.py +0 -0
  525. {dls_dodal-1.61.0/tests/devices/i03 → dls_dodal-1.63.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
  526. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
  527. {dls_dodal-1.61.0/tests/devices/i04 → dls_dodal-1.63.0/tests/devices/i02_1}/__init__.py +0 -0
  528. {dls_dodal-1.61.0/tests/devices/i09 → dls_dodal-1.63.0/tests/devices/i03}/__init__.py +0 -0
  529. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i03/test_dcm.py +0 -0
  530. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i03/test_undulator_dcm.py +0 -0
  531. {dls_dodal-1.61.0/tests/devices/i10 → dls_dodal-1.63.0/tests/devices/i04}/__init__.py +0 -0
  532. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i04/test_transfocator.py +0 -0
  533. {dls_dodal-1.61.0/tests/devices/i11 → dls_dodal-1.63.0/tests/devices/i09}/__init__.py +0 -0
  534. {dls_dodal-1.61.0/tests/devices/i13_1 → dls_dodal-1.63.0/tests/devices/i10}/__init__.py +0 -0
  535. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
  536. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
  537. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/__init__.py +0 -0
  538. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  539. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  540. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  541. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  542. {dls_dodal-1.61.0/tests/devices/i15 → dls_dodal-1.63.0/tests/devices/i11}/__init__.py +0 -0
  543. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i11/test_i11devices.py +0 -0
  544. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i11/test_mythen.py +0 -0
  545. {dls_dodal-1.61.0/tests/devices/i18 → dls_dodal-1.63.0/tests/devices/i13_1}/__init__.py +0 -0
  546. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i13_1/test_merlin.py +0 -0
  547. {dls_dodal-1.61.0/tests/devices/i19 → dls_dodal-1.63.0/tests/devices/i15}/__init__.py +0 -0
  548. {dls_dodal-1.61.0/tests/devices/i22 → dls_dodal-1.63.0/tests/devices/i17}/__init__.py +0 -0
  549. {dls_dodal-1.61.0/tests/devices/i24 → dls_dodal-1.63.0/tests/devices/i18}/__init__.py +0 -0
  550. {dls_dodal-1.61.0/tests/devices/mx_phase1 → dls_dodal-1.63.0/tests/devices/i19}/__init__.py +0 -0
  551. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i19/test_backlight.py +0 -0
  552. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i19/test_beamstop.py +0 -0
  553. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i19/test_diffractometer.py +0 -0
  554. {dls_dodal-1.61.0/tests/devices/oav → dls_dodal-1.63.0/tests/devices/i22}/__init__.py +0 -0
  555. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i22/test_metadataholder.py +0 -0
  556. {dls_dodal-1.61.0/tests/devices/oav/image_recognition → dls_dodal-1.63.0/tests/devices/i24}/__init__.py +0 -0
  557. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/i24/test_commissioning_jungfrau.py +0 -0
  558. {dls_dodal-1.61.0/tests/devices/p60 → dls_dodal-1.63.0/tests/devices/mx_phase1}/__init__.py +0 -0
  559. {dls_dodal-1.61.0/tests/devices/p99 → dls_dodal-1.63.0/tests/devices/oav}/__init__.py +0 -0
  560. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/conftest.py +0 -0
  561. {dls_dodal-1.61.0/tests/devices/temperature_controller → dls_dodal-1.63.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
  562. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  563. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_data/__init__.py +0 -0
  564. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
  565. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
  566. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
  567. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_grid_overlay.py +0 -0
  568. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_oav_parameters.py +0 -0
  569. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
  570. {dls_dodal-1.61.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.63.0/tests/devices/p60}/__init__.py +0 -0
  571. {dls_dodal-1.61.0/tests/devices/util → dls_dodal-1.63.0/tests/devices/p99}/__init__.py +0 -0
  572. {dls_dodal-1.61.0/tests/fake_zocalo → dls_dodal-1.63.0/tests/devices/temperature_controller}/__init__.py +0 -0
  573. {dls_dodal-1.61.0/tests/plan_stubs → dls_dodal-1.63.0/tests/devices/temperature_controller/lakeshore}/__init__.py +0 -0
  574. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_baton.py +0 -0
  575. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_beam_converter.py +0 -0
  576. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_bimorph_mirror.py +0 -0
  577. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_controllers.py +0 -0
  578. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
  579. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
  580. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
  581. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  582. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  583. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
  584. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_data/__init__.py +0 -0
  585. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  586. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
  587. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_diamond_filter.py +0 -0
  588. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_motors.py +0 -0
  589. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_positioner.py +0 -0
  590. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_pressure_jump_cell.py +0 -0
  591. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_qbpm.py +0 -0
  592. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_scintillator.py +0 -0
  593. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_slits.py +0 -0
  594. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_turbo_slit.py +0 -0
  595. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_undulator.py +0 -0
  596. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
  597. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_zebra.py +0 -0
  598. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_zebra_shutter.py +0 -0
  599. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/test_zocalo_interaction.py +0 -0
  600. {dls_dodal-1.61.0/tests/plans → dls_dodal-1.63.0/tests/devices/util}/__init__.py +0 -0
  601. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_beamline_specific_utils.py +0 -0
  602. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_data/__init__.py +0 -0
  603. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  604. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  605. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  606. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/devices/util/test_lookup_tables.py +0 -0
  607. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline.py +0 -0
  608. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  609. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_broken_dependency.py +0 -0
  610. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_dependencies.py +0 -0
  611. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  612. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  613. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_beamline_some_devices_working.py +0 -0
  614. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_device_factory_beamline.py +0 -0
  615. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_zocalo/README.rst +0 -0
  616. {dls_dodal-1.61.0/tests/plans/test_preprocessors → dls_dodal-1.63.0/tests/fake_zocalo}/__init__.py +0 -0
  617. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_zocalo/__main__.py +0 -0
  618. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  619. {dls_dodal-1.61.0/tests/preprocessors → dls_dodal-1.63.0/tests/plan_stubs}/__init__.py +0 -0
  620. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_data/__init__.py +0 -0
  621. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
  622. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
  623. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  624. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/plans/test_compliance.py +0 -0
  625. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_cli.py +0 -0
  626. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/__init__.py +0 -0
  627. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/bad_beamlineParameters +0 -0
  628. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/i04_beamlineParameters +0 -0
  629. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  630. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/test_display.configuration +0 -0
  631. {dls_dodal-1.61.0 → dls_dodal-1.63.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
@@ -62,7 +62,6 @@ jobs:
62
62
  with:
63
63
  repository: epics-containers/example-services
64
64
  path: example-services
65
- ref: '2025.8.1'
66
65
 
67
66
  - name: Run docker compose
68
67
  uses: hoverkraft-tech/compose-action@v2.3.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.61.0
3
+ Version: 1.63.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -37,7 +37,7 @@ mock_paths = [
37
37
  ]
38
38
  mock_attributes_table = {
39
39
  "i03": mock_paths,
40
- "i10": mock_paths,
40
+ "i10_optics": mock_paths,
41
41
  "i04": mock_paths,
42
42
  "s04": mock_paths,
43
43
  "i19_1": mock_paths,
@@ -106,7 +106,7 @@ async def static_path_provider(
106
106
 
107
107
 
108
108
  @pytest.fixture
109
- def run_engine_documents(RE: RunEngine) -> Mapping[str, list[dict]]:
109
+ def run_engine_documents(run_engine: RunEngine) -> Mapping[str, list[dict]]:
110
110
  docs: dict[str, list[dict]] = {}
111
111
 
112
112
  def append_and_print(name, doc):
@@ -114,7 +114,7 @@ def run_engine_documents(RE: RunEngine) -> Mapping[str, list[dict]]:
114
114
  docs[name] = []
115
115
  docs[name] += [doc]
116
116
 
117
- RE.subscribe(append_and_print)
117
+ run_engine.subscribe(append_and_print)
118
118
  return docs
119
119
 
120
120
 
@@ -126,16 +126,16 @@ def failed_status(failure: Exception) -> Status:
126
126
 
127
127
  @pytest.fixture(scope="session", autouse=True)
128
128
  async def _ensure_running_bluesky_event_loop():
129
- RE = RunEngine()
129
+ run_engine = RunEngine()
130
130
  # make sure the event loop is thoroughly up and running before we try to create
131
131
  # any ophyd_async devices which might need it
132
132
  timeout = time.monotonic() + 1
133
- while not RE.loop.is_running():
133
+ while not run_engine.loop.is_running():
134
134
  await asyncio.sleep(0)
135
135
  if time.monotonic() > timeout:
136
136
  raise TimeoutError("This really shouldn't happen but just in case...")
137
137
 
138
138
 
139
139
  @pytest.fixture()
140
- async def RE():
140
+ async def run_engine():
141
141
  yield RunEngine()
@@ -77,19 +77,19 @@ from dodal.device.my_device import MyDevice
77
77
 
78
78
  # RunEngine is needed to make sure there is an event loop when creating device.
79
79
  @pytest.fixture
80
- async def sim_my_device(RE: RunEngine) -> MyDevice:
80
+ async def sim_my_device(run_engine: RunEngine) -> MyDevice:
81
81
  async with init_devices(mock=True):
82
82
  sim_my_device = MyDevice("TEST:")
83
83
  return sim_my_device
84
84
 
85
85
 
86
- def test_my_device_stage(sim_my_device: MyDevice, RE: RunEngine) -> None:
87
- RE(bps.stage(sim_my_device, wait=True), wait=True)
86
+ def test_my_device_stage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
87
+ run_engine(bps.stage(sim_my_device, wait=True), wait=True)
88
88
  get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.ON, wait=True)
89
89
 
90
90
 
91
- def test_my_device_unstage(sim_my_device: MyDevice, RE: RunEngine) -> None:
92
- RE(bps.unstage(sim_my_device, wait=True), wait=True)
91
+ def test_my_device_unstage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
92
+ run_engine(bps.unstage(sim_my_device, wait=True), wait=True)
93
93
  get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.OFF, wait=True)
94
94
 
95
95
  ```
@@ -97,7 +97,7 @@ def test_my_device_unstage(sim_my_device: MyDevice, RE: RunEngine) -> None:
97
97
  You should test the output of a device when the device has many signals read and you want to ensure the correct ones are read at the correct times, or when the `read` method of it or one of its signals (e.g. a DerivedSignal) requires testing. Functions are defined in `ophyd-async` to aid with this. `assert_reading` allows us to compare the readings generated from a `Readable` device to the expected results.
98
98
 
99
99
  ```Python
100
- async def test_my_device_read(sim_my_device: MyDevice, RE: RunEngine) -> None:
100
+ async def test_my_device_read(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
101
101
  prefix = sim_my_device.name
102
102
  await assert_reading(
103
103
  sim_my_device,
@@ -112,7 +112,7 @@ Whilst it would be possible to do:
112
112
  this has potential negative side effects:
113
113
 
114
114
  * When the plan is simulated it will still set the parameter on the device
115
- * There may be external things attached to the RE that are tracking messages e.g. metrics. A set like this would be
115
+ * There may be external things attached to the RunEngine that are tracking messages e.g. metrics. A set like this would be
116
116
  lost
117
117
 
118
118
  Instead you should make a soft signal:
@@ -23,15 +23,15 @@ dependencies = [
23
23
  "requests",
24
24
  "graypy",
25
25
  "pydantic>=2.0",
26
- "opencv-python-headless", # For pin-tip detection.
26
+ "opencv-python-headless", # For pin-tip detection.
27
27
  "numpy",
28
28
  "aiofiles",
29
29
  "aiohttp",
30
30
  "redis",
31
31
  "scanspec>=0.7.3",
32
- "pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
32
+ "pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
33
33
  "deepdiff",
34
- "daq-config-server>=v1.0.0-rc.2",# For getting Configuration settings.
34
+ "daq-config-server>=v1.0.0-rc.2", # For getting Configuration settings.
35
35
  ]
36
36
 
37
37
  dynamic = ["version"]
@@ -76,7 +76,7 @@ dev = [
76
76
 
77
77
  [project.scripts]
78
78
  dodal = "dodal.__main__:main"
79
- save-panda = "dodal.devices.util.save_panda:main"
79
+ save-panda = "dodal.plans.save_panda:main"
80
80
 
81
81
  [project.urls]
82
82
  GitHub = "https://github.com/DiamondLightSource/dodal"
@@ -182,6 +182,7 @@ lint.select = [
182
182
  "C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
183
183
  "E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
184
184
  "F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
185
+ "N", # pep8-naming - https://docs.astral.sh/ruff/rules/#pep8-naming-n
185
186
  "W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
186
187
  "I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
187
188
  "UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
@@ -194,7 +195,7 @@ lint.select = [
194
195
  [tool.ruff.lint.per-file-ignores]
195
196
  # By default, private member access is allowed in tests
196
197
  # See https://github.com/DiamondLightSource/python-copier-template/issues/154
197
- # Remove this line to forbid private member access, walrus operators, banned api in asserts in tests
198
+ # Remove this line to forbid private member access, walrus operators, banned api in asserts in tests
198
199
  "tests/**/*" = ["SLF001", "RUF018", "TID251"]
199
200
  "system_tests/**/*" = ["SLF001", "RUF018", "TID251"]
200
201
  ".github/**/*" = ["INP001"]
@@ -203,6 +204,10 @@ lint.select = [
203
204
  [tool.ruff.lint.flake8-tidy-imports.banned-api]
204
205
  "time.sleep".msg = "Use bps.sleep or asyncio.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
205
206
 
207
+ [tool.ruff.lint.flake8-import-conventions.extend-aliases]
208
+ # We often shorten "Annotated" to "A" for brevity
209
+ "typing.Annotated" = "A"
210
+
206
211
  [tool.importlinter]
207
212
  root_package = "dodal"
208
213
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.61.0
3
+ Version: 1.63.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -104,6 +104,7 @@ src/dodal/beamlines/b16.py
104
104
  src/dodal/beamlines/b18.py
105
105
  src/dodal/beamlines/b21.py
106
106
  src/dodal/beamlines/i02_1.py
107
+ src/dodal/beamlines/i02_2.py
107
108
  src/dodal/beamlines/i03.py
108
109
  src/dodal/beamlines/i04.py
109
110
  src/dodal/beamlines/i05.py
@@ -111,8 +112,9 @@ src/dodal/beamlines/i05_1.py
111
112
  src/dodal/beamlines/i09.py
112
113
  src/dodal/beamlines/i09_1.py
113
114
  src/dodal/beamlines/i09_2.py
114
- src/dodal/beamlines/i10-1.py
115
115
  src/dodal/beamlines/i10.py
116
+ src/dodal/beamlines/i10_1.py
117
+ src/dodal/beamlines/i10_optics.py
116
118
  src/dodal/beamlines/i11.py
117
119
  src/dodal/beamlines/i13_1.py
118
120
  src/dodal/beamlines/i15.py
@@ -166,6 +168,7 @@ src/dodal/devices/eiger.py
166
168
  src/dodal/devices/eiger_odin.py
167
169
  src/dodal/devices/eurotherm.py
168
170
  src/dodal/devices/fast_grid_scan.py
171
+ src/dodal/devices/fast_shutter.py
169
172
  src/dodal/devices/fluorescence_detector_motion.py
170
173
  src/dodal/devices/flux.py
171
174
  src/dodal/devices/focusing_mirror.py
@@ -197,9 +200,9 @@ src/dodal/devices/aithre_lasershaping/__init__.py
197
200
  src/dodal/devices/aithre_lasershaping/goniometer.py
198
201
  src/dodal/devices/aithre_lasershaping/laser_robot.py
199
202
  src/dodal/devices/areadetector/__init__.py
200
- src/dodal/devices/areadetector/plugins/CAM.py
201
- src/dodal/devices/areadetector/plugins/MJPG.py
202
203
  src/dodal/devices/areadetector/plugins/__init__.py
204
+ src/dodal/devices/areadetector/plugins/cam.py
205
+ src/dodal/devices/areadetector/plugins/mjpg.py
203
206
  src/dodal/devices/attenuator/__init__.py
204
207
  src/dodal/devices/attenuator/attenuator.py
205
208
  src/dodal/devices/attenuator/filter.py
@@ -247,6 +250,7 @@ src/dodal/devices/electron_analyser/vgscienta/region.py
247
250
  src/dodal/devices/i02_1/__init__.py
248
251
  src/dodal/devices/i02_1/fast_grid_scan.py
249
252
  src/dodal/devices/i02_1/sample_motors.py
253
+ src/dodal/devices/i02_2/__init__.py
250
254
  src/dodal/devices/i03/__init__.py
251
255
  src/dodal/devices/i03/dcm.py
252
256
  src/dodal/devices/i03/undulator_dcm.py
@@ -257,7 +261,6 @@ src/dodal/devices/i04/transfocator.py
257
261
  src/dodal/devices/i05/__init__.py
258
262
  src/dodal/devices/i05/enums.py
259
263
  src/dodal/devices/i09/__init__.py
260
- src/dodal/devices/i09/dcm.py
261
264
  src/dodal/devices/i09/enums.py
262
265
  src/dodal/devices/i09_1/__init__.py
263
266
  src/dodal/devices/i09_1/enums.py
@@ -288,16 +291,21 @@ src/dodal/devices/i15/laue.py
288
291
  src/dodal/devices/i15/motors.py
289
292
  src/dodal/devices/i15/multilayer_mirror.py
290
293
  src/dodal/devices/i15/rail.py
291
- src/dodal/devices/i18/KBMirror.py
294
+ src/dodal/devices/i17/__init__.py
295
+ src/dodal/devices/i17/i17_apple2.py
292
296
  src/dodal/devices/i18/__init__.py
293
297
  src/dodal/devices/i18/diode.py
298
+ src/dodal/devices/i18/kb_mirror.py
294
299
  src/dodal/devices/i19/__init__.py
295
300
  src/dodal/devices/i19/backlight.py
296
301
  src/dodal/devices/i19/beamstop.py
297
- src/dodal/devices/i19/blueapi_device.py
298
302
  src/dodal/devices/i19/diffractometer.py
299
- src/dodal/devices/i19/hutch_access.py
300
- src/dodal/devices/i19/shutter.py
303
+ src/dodal/devices/i19/mapt_configuration.py
304
+ src/dodal/devices/i19/pin_col_stages.py
305
+ src/dodal/devices/i19/access_controlled/__init__.py
306
+ src/dodal/devices/i19/access_controlled/blueapi_device.py
307
+ src/dodal/devices/i19/access_controlled/hutch_access.py
308
+ src/dodal/devices/i19/access_controlled/shutter.py
301
309
  src/dodal/devices/i20_1/__init__.py
302
310
  src/dodal/devices/i21/__init__.py
303
311
  src/dodal/devices/i21/enums.py
@@ -412,7 +420,6 @@ tests/common/beamlines/test_beamline_utils.py
412
420
  tests/common/beamlines/test_commissioning_mode.py
413
421
  tests/common/beamlines/test_device_instantiation.py
414
422
  tests/devices/__init__.py
415
- tests/devices/test.png
416
423
  tests/devices/test_aperture.py
417
424
  tests/devices/test_aperture_scatterguard.py
418
425
  tests/devices/test_apple2_undulator.py
@@ -426,6 +433,7 @@ tests/devices/test_common_dcm.py
426
433
  tests/devices/test_controllers.py
427
434
  tests/devices/test_diamond_filter.py
428
435
  tests/devices/test_eiger.py
436
+ tests/devices/test_fast_shutters.py
429
437
  tests/devices/test_focusing_mirror.py
430
438
  tests/devices/test_gridscan.py
431
439
  tests/devices/test_hutch_shutter.py
@@ -437,7 +445,6 @@ tests/devices/test_qbpm.py
437
445
  tests/devices/test_scintillator.py
438
446
  tests/devices/test_slits.py
439
447
  tests/devices/test_smargon.py
440
- tests/devices/test_status.py
441
448
  tests/devices/test_synchrotron.py
442
449
  tests/devices/test_tetramm.py
443
450
  tests/devices/test_thawer.py
@@ -498,9 +505,8 @@ tests/devices/i04/__init__.py
498
505
  tests/devices/i04/test_murko_results.py
499
506
  tests/devices/i04/test_transfocator.py
500
507
  tests/devices/i09/__init__.py
501
- tests/devices/i09/test_dcm.py
502
508
  tests/devices/i10/__init__.py
503
- tests/devices/i10/test_i10Apple2.py
509
+ tests/devices/i10/test_i10_apple2.py
504
510
  tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv
505
511
  tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv
506
512
  tests/devices/i10/test_data/__init__.py
@@ -514,13 +520,16 @@ tests/devices/i11/test_mythen.py
514
520
  tests/devices/i13_1/__init__.py
515
521
  tests/devices/i13_1/test_merlin.py
516
522
  tests/devices/i15/__init__.py
517
- tests/devices/i15/test_dcm.py
523
+ tests/devices/i17/__init__.py
524
+ tests/devices/i17/test_i17_apple2.py
518
525
  tests/devices/i18/__init__.py
519
526
  tests/devices/i18/test_kb_mirror.py
520
527
  tests/devices/i19/__init__.py
521
528
  tests/devices/i19/test_backlight.py
522
529
  tests/devices/i19/test_beamstop.py
523
530
  tests/devices/i19/test_diffractometer.py
531
+ tests/devices/i19/test_mapt.py
532
+ tests/devices/i19/test_pin_col.py
524
533
  tests/devices/i19/test_shutter.py
525
534
  tests/devices/i22/__init__.py
526
535
  tests/devices/i22/test_dcm.py
@@ -571,7 +580,6 @@ tests/devices/util/__init__.py
571
580
  tests/devices/util/test_adjuster_plans.py
572
581
  tests/devices/util/test_beamline_specific_utils.py
573
582
  tests/devices/util/test_lookup_tables.py
574
- tests/devices/util/test_save_panda.py
575
583
  tests/devices/util/test_data/__init__.py
576
584
  tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt
577
585
  tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt
@@ -593,6 +601,7 @@ tests/plans/conftest.py
593
601
  tests/plans/test_bimorph.py
594
602
  tests/plans/test_compliance.py
595
603
  tests/plans/test_configure_arm_trigger_and_disarm_detector.py
604
+ tests/plans/test_save_panda.py
596
605
  tests/plans/test_scanspec.py
597
606
  tests/plans/test_verify_undulator_gap_plan.py
598
607
  tests/plans/test_wrapped.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ dodal = dodal.__main__:main
3
+ save-panda = dodal.plans.save_panda:main
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.61.0'
32
- __version_tuple__ = version_tuple = (1, 61, 0)
31
+ __version__ = version = '1.63.0'
32
+ __version_tuple__ = version_tuple = (1, 63, 0)
33
33
 
34
- __commit_id__ = commit_id = 'gdf177058e'
34
+ __commit_id__ = commit_id = 'g8bb309b63'
@@ -14,6 +14,7 @@ _BEAMLINE_NAME_OVERRIDES = {
14
14
  "i09-1": "i09_1",
15
15
  "i13-1": "i13_1",
16
16
  "i15-1": "i15_1",
17
+ "i10-1": "i10_1",
17
18
  "i20-1": "i20_1",
18
19
  "i19-1": "i19_1",
19
20
  "i19-2": "i19_2",
@@ -29,7 +29,9 @@ https://epics-containers.github.io/main/tutorials/launch_example.html
29
29
  And ensure that the signals are visible:
30
30
 
31
31
  ```sh
32
- export EPICS_CA_ADDR_LIST=127.0.0.1:5094
32
+ export EPICS_CA_ADDR_LIST=127.0.0.1:9064
33
+ export EPICS_CA_NAME_SERVERS=127.0.0.1:9064
34
+ export EPICS_PVA_NAME_SERVERS=127.0.0.1:9075
33
35
  ```
34
36
 
35
37
  How to use the devices in a plan:
@@ -53,10 +55,10 @@ set_path_provider(
53
55
  )
54
56
  )
55
57
 
56
- RE = RunEngine()
58
+ run_engine = RunEngine()
57
59
  d = det(connect_immediately=True)
58
60
  s = stage(connect_immediately=True)
59
- RE(count([d], num=10))
61
+ run_engine(count([d], num=10))
60
62
  ```
61
63
 
62
64
  """
@@ -55,7 +55,9 @@ def mirror() -> SimpleMirror:
55
55
 
56
56
  @device_factory()
57
57
  def it() -> QDV2F:
58
- return QDV2F(prefix=f"{PREFIX.beamline_prefix}-DI-PHDGN-07:PHD1:", I_suffix="I")
58
+ return QDV2F(
59
+ prefix=f"{PREFIX.beamline_prefix}-DI-PHDGN-07:PHD1:", intensity_suffix="I"
60
+ )
59
61
 
60
62
 
61
63
  @device_factory()
@@ -0,0 +1,32 @@
1
+ """Beamline i02-2 is also known as VMXi, or I02I"""
2
+
3
+ from dodal.common.beamlines.beamline_utils import (
4
+ device_factory,
5
+ )
6
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
7
+ from dodal.devices.motors import XYStage
8
+ from dodal.devices.synchrotron import Synchrotron
9
+ from dodal.log import set_beamline as set_log_beamline
10
+ from dodal.utils import BeamlinePrefix, get_beamline_name
11
+
12
+ BL = get_beamline_name("i02-2")
13
+ PREFIX = BeamlinePrefix(BL, suffix="I")
14
+ set_log_beamline(BL)
15
+ set_utils_beamline(BL)
16
+ DAQ_CONFIGURATION_PATH = "/dls_sw/i02-2/software/daq_configuration"
17
+
18
+
19
+ @device_factory()
20
+ def synchrotron() -> Synchrotron:
21
+ """Get the i02-2 synchrotron device, instantiate it if it hasn't already been.
22
+ If this is called when already instantiated in i02-2, it will return the existing object.
23
+ """
24
+ return Synchrotron()
25
+
26
+
27
+ @device_factory()
28
+ def sample_motors() -> XYStage:
29
+ """Get the i02-2 goniometer device, instantiate it if it hasn't already been.
30
+ If this is called when already instantiated in i02-2, it will return the existing object.
31
+ """
32
+ return XYStage(f"{PREFIX.beamline_prefix}-MO-GONIO-01:SAMPLE:")
@@ -29,6 +29,7 @@ from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScanThr
29
29
  from dodal.devices.fluorescence_detector_motion import FluorescenceDetector
30
30
  from dodal.devices.flux import Flux
31
31
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
32
+ from dodal.devices.hutch_shutter import HutchShutter
32
33
  from dodal.devices.i03 import Beamstop
33
34
  from dodal.devices.i03.dcm import DCM
34
35
  from dodal.devices.i03.undulator_dcm import UndulatorDCM
@@ -323,6 +324,14 @@ def sample_shutter() -> ZebraShutter:
323
324
  return ZebraShutter(f"{PREFIX.beamline_prefix}-EA-SHTR-01:")
324
325
 
325
326
 
327
+ @device_factory()
328
+ def hutch_shutter() -> HutchShutter:
329
+ """Get the i03 hutch shutter device, instantiate it if it hasn't already been.
330
+ If this is called when already instantiated in i03, it will return the existing object.
331
+ """
332
+ return HutchShutter(f"{PREFIX.beamline_prefix}-PS-SHTR-01:")
333
+
334
+
326
335
  @device_factory()
327
336
  def flux() -> Flux:
328
337
  """Get the i03 flux device, instantiate it if it hasn't already been.
@@ -234,7 +234,7 @@ def undulator() -> Undulator:
234
234
  """
235
235
  return Undulator(
236
236
  prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
237
- id_gap_lookup_table_path="/dls_sw/i04/software/gda/config/lookupTables/BeamLine_Undulator_toGap.txt",
237
+ id_gap_lookup_table_path="/dls_sw/i04/software/daq_configuration/lookup/BeamLine_Undulator_toGap.txt",
238
238
  )
239
239
 
240
240
 
@@ -2,9 +2,14 @@ from dodal.common.beamlines.beamline_utils import (
2
2
  device_factory,
3
3
  )
4
4
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
5
+ from dodal.devices.common_dcm import (
6
+ DoubleCrystalMonochromatorWithDSpacing,
7
+ PitchAndRollCrystal,
8
+ StationaryCrystal,
9
+ )
5
10
  from dodal.devices.electron_analyser import DualEnergySource
6
11
  from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
7
- from dodal.devices.i09 import DCM, Grating, LensMode, PassEnergy, PsuMode
12
+ from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
8
13
  from dodal.devices.pgm import PGM
9
14
  from dodal.devices.synchrotron import Synchrotron
10
15
  from dodal.log import set_beamline as set_log_beamline
@@ -30,8 +35,10 @@ def pgm() -> PGM:
30
35
 
31
36
 
32
37
  @device_factory()
33
- def dcm() -> DCM:
34
- return DCM(prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:")
38
+ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
39
+ return DoubleCrystalMonochromatorWithDSpacing(
40
+ f"{PREFIX.beamline_prefix}-MO-DCM-01:", PitchAndRollCrystal, StationaryCrystal
41
+ )
35
42
 
36
43
 
37
44
  @device_factory()
@@ -2,9 +2,13 @@ from dodal.common.beamlines.beamline_utils import (
2
2
  device_factory,
3
3
  )
4
4
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
5
+ from dodal.devices.common_dcm import (
6
+ DoubleCrystalMonochromatorWithDSpacing,
7
+ PitchAndRollCrystal,
8
+ StationaryCrystal,
9
+ )
5
10
  from dodal.devices.electron_analyser import EnergySource
6
11
  from dodal.devices.electron_analyser.specs import SpecsDetector
7
- from dodal.devices.i09.dcm import DCM
8
12
  from dodal.devices.i09_1 import LensMode, PsuMode
9
13
  from dodal.devices.synchrotron import Synchrotron
10
14
  from dodal.log import set_beamline as set_log_beamline
@@ -22,8 +26,10 @@ def synchrotron() -> Synchrotron:
22
26
 
23
27
 
24
28
  @device_factory()
25
- def dcm() -> DCM:
26
- return DCM(prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:")
29
+ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
30
+ return DoubleCrystalMonochromatorWithDSpacing(
31
+ f"{PREFIX.beamline_prefix}-MO-DCM-01:", PitchAndRollCrystal, StationaryCrystal
32
+ )
27
33
 
28
34
 
29
35
  @device_factory()
@@ -6,17 +6,17 @@ note:
6
6
  idd == id1, idu == id2.
7
7
  """
8
8
 
9
- from daq_config_server.client import ConfigServer
10
-
11
9
  from dodal.common.beamlines.beamline_utils import device_factory
12
10
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
13
11
  from dodal.devices.current_amplifiers import CurrentAmpDet
14
- from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet
15
- from dodal.devices.i10.i10_apple2 import (
16
- I10Id,
12
+ from dodal.devices.i10 import (
13
+ I10Diagnostic,
14
+ I10Diagnostic5ADet,
15
+ I10Slits,
16
+ I10SlitsDrainCurrent,
17
+ PiezoMirror,
17
18
  )
18
- from dodal.devices.i10.i10_setting_data import I10Grating
19
- from dodal.devices.i10.mirrors import PiezoMirror
19
+ from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet
20
20
  from dodal.devices.i10.rasor.rasor_current_amp import RasorFemto, RasorSR570
21
21
  from dodal.devices.i10.rasor.rasor_motors import (
22
22
  DetSlits,
@@ -24,9 +24,7 @@ from dodal.devices.i10.rasor.rasor_motors import (
24
24
  PaStage,
25
25
  )
26
26
  from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1
27
- from dodal.devices.i10.slits import I10Slits, I10SlitsDrainCurrent
28
27
  from dodal.devices.motors import XYStage, XYZStage
29
- from dodal.devices.pgm import PGM
30
28
  from dodal.devices.temperture_controller import (
31
29
  Lakeshore340,
32
30
  )
@@ -38,69 +36,9 @@ set_log_beamline(BL)
38
36
  set_utils_beamline(BL)
39
37
  PREFIX = BeamlinePrefix(BL)
40
38
 
41
- I10_CONF_CLIENT = ConfigServer(url="https://daq-config.diamond.ac.uk")
42
-
43
-
44
- LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
45
-
46
-
47
- @device_factory()
48
- def pgm() -> PGM:
49
- "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set(<energy>)"
50
- return PGM(
51
- prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
52
- grating=I10Grating,
53
- gratingPv="NLINES2",
54
- )
55
-
56
-
57
- @device_factory()
58
- def idd() -> I10Id:
59
- """i10 downstream insertion device:
60
- id.energy.set(<energy>) to change beamline energy.
61
- id.energy.energy_offset.set(<off_set>) to change id energy offset relative to pgm.
62
- id.pol.set(<polarisation>) to change polarisation.
63
- id.laa.set(<linear polarisation angle>) to change polarisation angle, must be in LA mode.
64
- """
65
- return I10Id(
66
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
67
- pgm=pgm(),
68
- look_up_table_dir=LOOK_UPTABLE_DIR,
69
- source=("Source", "idd"),
70
- config_client=I10_CONF_CLIENT,
71
- )
72
-
73
-
74
- @device_factory()
75
- def idu() -> I10Id:
76
- """i10 upstream insertion device:
77
- id.energy.set(<energy>) to change beamline energy.
78
- id.energy.energy_offset.set(<off_set>) to change id energy offset relative to pgm.
79
- id.pol.set(<polarisation>) to change polarisation.
80
- id.laa.set(<linear polarisation angle>) to change polarisation angle, must be in LA mode.
81
- """
82
- return I10Id(
83
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
84
- pgm=pgm(),
85
- look_up_table_dir=LOOK_UPTABLE_DIR,
86
- source=("Source", "idu"),
87
- config_client=I10_CONF_CLIENT,
88
- )
89
-
90
-
91
39
  """Mirrors"""
92
40
 
93
41
 
94
- @device_factory()
95
- def first_mirror() -> PiezoMirror:
96
- return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
97
-
98
-
99
- @device_factory()
100
- def switching_mirror() -> PiezoMirror:
101
- return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
102
-
103
-
104
42
  @device_factory()
105
43
  def focusing_mirror() -> PiezoMirror:
106
44
  return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
@@ -0,0 +1,35 @@
1
+ from dodal.common.beamlines.beamline_utils import device_factory
2
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
3
+ from dodal.devices.i10 import I10JDiagnostic, I10JSlits, PiezoMirror
4
+ from dodal.devices.temperture_controller.lakeshore.lakeshore import Lakeshore336
5
+ from dodal.log import set_beamline as set_log_beamline
6
+ from dodal.utils import BeamlinePrefix, get_beamline_name
7
+
8
+ BL = get_beamline_name("i10-1")
9
+ set_log_beamline(BL)
10
+ set_utils_beamline(BL)
11
+ PREFIX = BeamlinePrefix("i10", "J")
12
+
13
+
14
+ @device_factory()
15
+ def em_temperature_controller() -> Lakeshore336:
16
+ return Lakeshore336(
17
+ prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-41:",
18
+ )
19
+
20
+
21
+ @device_factory()
22
+ def slits() -> I10JSlits:
23
+ return I10JSlits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-")
24
+
25
+
26
+ @device_factory()
27
+ def diagnostic() -> I10JDiagnostic:
28
+ return I10JDiagnostic(
29
+ prefix=f"{PREFIX.beamline_prefix}-DI-",
30
+ )
31
+
32
+
33
+ @device_factory()
34
+ def focusing_mirror() -> PiezoMirror:
35
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCA-01:")