dls-dodal 1.50.0__tar.gz → 1.52.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 (529) hide show
  1. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.copier-answers.yml +3 -2
  2. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.devcontainer/devcontainer.json +4 -4
  3. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/CONTRIBUTING.md +1 -1
  4. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/actions/install_requirements/action.yml +2 -1
  5. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/dependabot.yml +4 -0
  6. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_docs.yml +1 -0
  7. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_release.yml +1 -1
  8. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_test.yml +1 -1
  9. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/ci.yml +8 -13
  10. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.pre-commit-config.yaml +7 -2
  11. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.vscode/launch.json +0 -2
  12. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/PKG-INFO +5 -5
  13. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/conftest.py +0 -20
  14. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/create-device.md +4 -0
  15. dls_dodal-1.52.0/docs/how-to/run-tests.md +44 -0
  16. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/tutorials/installation.md +1 -1
  17. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/pyproject.toml +5 -5
  18. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/PKG-INFO +5 -5
  19. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/SOURCES.txt +19 -12
  20. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/requires.txt +3 -2
  21. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/_version.py +2 -2
  22. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/adsim.py +5 -3
  23. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/b01_1.py +41 -5
  24. dls_dodal-1.52.0/src/dodal/beamlines/b07.py +34 -0
  25. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/b07_1.py +13 -2
  26. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/b16.py +8 -4
  27. dls_dodal-1.52.0/src/dodal/beamlines/b21.py +148 -0
  28. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i03.py +10 -12
  29. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i04.py +7 -7
  30. dls_dodal-1.52.0/src/dodal/beamlines/i09.py +46 -0
  31. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i09_1.py +13 -2
  32. dls_dodal-1.50.0/src/dodal/beamlines/b07.py → dls_dodal-1.52.0/src/dodal/beamlines/i09_2.py +6 -5
  33. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i10.py +5 -6
  34. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i13_1.py +5 -5
  35. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i18.py +5 -6
  36. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i22.py +18 -1
  37. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i24.py +5 -5
  38. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/p45.py +4 -3
  39. dls_dodal-1.52.0/src/dodal/beamlines/p60.py +36 -0
  40. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/p99.py +19 -5
  41. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/training_rig.py +3 -3
  42. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/beamlines/beamline_utils.py +5 -2
  43. dls_dodal-1.52.0/src/dodal/common/device_utils.py +45 -0
  44. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +4 -5
  45. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/aperture.py +4 -7
  46. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/aperturescatterguard.py +2 -2
  47. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/attenuator/attenuator.py +5 -3
  48. dls_dodal-1.52.0/src/dodal/devices/b07/__init__.py +3 -0
  49. dls_dodal-1.52.0/src/dodal/devices/b07/enums.py +24 -0
  50. dls_dodal-1.52.0/src/dodal/devices/b07_1/__init__.py +3 -0
  51. dls_dodal-1.52.0/src/dodal/devices/b07_1/enums.py +18 -0
  52. dls_dodal-1.52.0/src/dodal/devices/detector/detector_motion.py +44 -0
  53. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +4 -0
  54. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +44 -28
  55. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +20 -7
  56. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/detector.py +3 -13
  57. dls_dodal-1.52.0/src/dodal/devices/electron_analyser/specs/detector.py +33 -0
  58. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +20 -5
  59. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/specs/region.py +9 -5
  60. dls_dodal-1.52.0/src/dodal/devices/electron_analyser/types.py +48 -0
  61. dls_dodal-1.52.0/src/dodal/devices/electron_analyser/vgscienta/detector.py +37 -0
  62. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +16 -8
  63. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +11 -6
  64. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/fast_grid_scan.py +1 -2
  65. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i04/constants.py +1 -1
  66. dls_dodal-1.52.0/src/dodal/devices/i09/__init__.py +4 -0
  67. dls_dodal-1.52.0/src/dodal/devices/i09/dcm.py +26 -0
  68. dls_dodal-1.52.0/src/dodal/devices/i09/enums.py +15 -0
  69. dls_dodal-1.52.0/src/dodal/devices/i09_1/__init__.py +3 -0
  70. dls_dodal-1.52.0/src/dodal/devices/i09_1/enums.py +19 -0
  71. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/mirrors.py +4 -6
  72. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -14
  73. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i19/beamstop.py +3 -7
  74. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/aperture.py +4 -6
  75. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/beamstop.py +5 -8
  76. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/pmac.py +4 -8
  77. dls_dodal-1.52.0/src/dodal/devices/linkam3.py +58 -0
  78. dls_dodal-1.52.0/src/dodal/devices/motors.py +118 -0
  79. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +11 -14
  80. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/p45.py +0 -12
  81. dls_dodal-1.52.0/src/dodal/devices/p60/__init__.py +4 -0
  82. dls_dodal-1.52.0/src/dodal/devices/p60/enums.py +10 -0
  83. dls_dodal-1.52.0/src/dodal/devices/p60/lab_xray_source.py +21 -0
  84. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/pgm.py +1 -1
  85. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/robot.py +11 -7
  86. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/smargon.py +8 -9
  87. dls_dodal-1.52.0/src/dodal/devices/tetramm.py +245 -0
  88. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/xbpm_feedback.py +6 -3
  89. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zocalo/zocalo_results.py +27 -78
  90. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +7 -5
  91. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/system_tests/test_adsim.py +2 -2
  92. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/system_tests/test_cli.py +1 -1
  93. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/beamlines/test_beamline_utils.py +31 -3
  94. dls_dodal-1.52.0/tests/devices/i18/test_kb_mirror.py +50 -0
  95. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i19/test_shutter.py +18 -18
  96. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i22/test_fswitch.py +9 -10
  97. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/test_diamond_filter.py +0 -4
  98. dls_dodal-1.52.0/tests/devices/test_motors.py +153 -0
  99. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_detector.py +40 -10
  100. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_driver_io.py +70 -18
  101. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/conftest.py +45 -29
  102. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/specs/test_detector.py +3 -2
  103. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/specs/test_driver_io.py +14 -17
  104. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/specs/test_region.py +13 -12
  105. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/util.py +2 -27
  106. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_detector.py +3 -2
  107. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_driver_io.py +13 -13
  108. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py +18 -15
  109. dls_dodal-1.52.0/tests/devices/unit_tests/i09/test_dcm.py +53 -0
  110. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +3 -5
  111. dls_dodal-1.52.0/tests/devices/unit_tests/p60/test_lab_xray_source.py +118 -0
  112. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_apple2_undulator.py +18 -24
  113. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_attenuator.py +1 -1
  114. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_backlight.py +1 -5
  115. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_bart_robot.py +13 -7
  116. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_baton.py +0 -6
  117. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_motors.py +0 -14
  118. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +2 -63
  119. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_qbpm.py +0 -4
  120. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_slits.py +2 -23
  121. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_smargon.py +30 -1
  122. dls_dodal-1.52.0/tests/devices/unit_tests/test_tetramm.py +278 -0
  123. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_turbo_slit.py +15 -20
  124. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_undulator.py +0 -20
  125. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -8
  126. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_xbpm_feedback.py +43 -0
  127. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_zocalo_results.py +28 -177
  128. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_all_devices_raise_exception.py +1 -3
  129. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/conftest.py +27 -1
  130. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +2 -4
  131. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/unit_tests/test_log.py +3 -3
  132. dls_dodal-1.50.0/.github/workflows/_check.yml +0 -27
  133. dls_dodal-1.50.0/docs/how-to/run-tests.md +0 -20
  134. dls_dodal-1.50.0/src/dodal/beamlines/i09.py +0 -23
  135. dls_dodal-1.50.0/src/dodal/beamlines/p60.py +0 -17
  136. dls_dodal-1.50.0/src/dodal/devices/adsim.py +0 -13
  137. dls_dodal-1.50.0/src/dodal/devices/detector/detector_motion.py +0 -42
  138. dls_dodal-1.50.0/src/dodal/devices/electron_analyser/specs/detector.py +0 -13
  139. dls_dodal-1.50.0/src/dodal/devices/electron_analyser/types.py +0 -32
  140. dls_dodal-1.50.0/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -22
  141. dls_dodal-1.50.0/src/dodal/devices/i18/table.py +0 -14
  142. dls_dodal-1.50.0/src/dodal/devices/i18/thor_labs_stage.py +0 -12
  143. dls_dodal-1.50.0/src/dodal/devices/i24/i24_detector_motion.py +0 -12
  144. dls_dodal-1.50.0/src/dodal/devices/linkam3.py +0 -114
  145. dls_dodal-1.50.0/src/dodal/devices/motors.py +0 -61
  146. dls_dodal-1.50.0/src/dodal/devices/scatterguard.py +0 -11
  147. dls_dodal-1.50.0/src/dodal/devices/tetramm.py +0 -261
  148. dls_dodal-1.50.0/src/dodal/devices/training_rig/sample_stage.py +0 -10
  149. dls_dodal-1.50.0/tests/devices/i18/test_kb_mirror.py +0 -64
  150. dls_dodal-1.50.0/tests/devices/i18/test_table.py +0 -124
  151. dls_dodal-1.50.0/tests/devices/i18/test_thor_labs_stage.py +0 -62
  152. dls_dodal-1.50.0/tests/devices/training_rig/test_sample_stage.py +0 -30
  153. dls_dodal-1.50.0/tests/devices/unit_tests/test_linkam3.py +0 -65
  154. dls_dodal-1.50.0/tests/devices/unit_tests/test_tetramm.py +0 -389
  155. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/CODEOWNERS +0 -0
  156. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  157. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/pages/index.html +0 -0
  158. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/pages/make_switcher.py +0 -0
  159. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/scripts/check_test_durations.py +0 -0
  160. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_dist.yml +0 -0
  161. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_pypi.yml +0 -0
  162. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/_tox.yml +0 -0
  163. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.github/workflows/periodic.yml +0 -0
  164. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.gitignore +0 -0
  165. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.vscode/extensions.json +0 -0
  166. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.vscode/settings.json +0 -0
  167. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/.vscode/tasks.json +0 -0
  168. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/Dockerfile +0 -0
  169. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/LICENSE +0 -0
  170. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/README.md +0 -0
  171. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/catalog-info.yaml +0 -0
  172. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/_templates/autosummary/class.rst +0 -0
  173. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/_templates/autosummary/module.rst +0 -0
  174. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/_templates/custom-module-template.rst +0 -0
  175. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/assets/zocalo.png +0 -0
  176. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/conf.py +0 -0
  177. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  178. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  179. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  180. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  181. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  182. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions/COPYME +0 -0
  183. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/decisions.md +0 -0
  184. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/reviews.md +0 -0
  185. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/umls/apple2_design.png +0 -0
  186. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations/umls/i10_id_design.png +0 -0
  187. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/explanations.md +0 -0
  188. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/genindex.md +0 -0
  189. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/build-docs.md +0 -0
  190. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/contribute.md +0 -0
  191. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/coverage.md +0 -0
  192. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/create-beamline.rst +0 -0
  193. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/dev-install.md +0 -0
  194. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/excalidraw.md +0 -0
  195. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/external-io-devices.md +0 -0
  196. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/lint.md +0 -0
  197. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/lock-requirements.md +0 -0
  198. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/make-release.md +0 -0
  199. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/move-code.rst +0 -0
  200. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/pypi.md +0 -0
  201. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/static-analysis.md +0 -0
  202. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/update-template.md +0 -0
  203. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/write-tests.md +0 -0
  204. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to/zocalo.rst +0 -0
  205. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/how-to.md +0 -0
  206. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/images/dls-logo.svg +0 -0
  207. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/images/excalidraw-example.svg +0 -0
  208. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/index.md +0 -0
  209. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/reference/api.md +0 -0
  210. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/reference/device-standards.rst +0 -0
  211. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/reference/standards.rst +0 -0
  212. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/reference.md +0 -0
  213. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/tutorials/get_started.rst +0 -0
  214. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/docs/tutorials.md +0 -0
  215. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/pull_request_template.md +0 -0
  216. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/setup.cfg +0 -0
  217. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/__init__.py +0 -0
  218. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  219. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  220. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  221. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/__init__.py +0 -0
  222. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/__main__.py +0 -0
  223. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  224. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  225. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/README.md +0 -0
  226. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/__init__.py +0 -0
  227. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/aithre.py +0 -0
  228. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/b18.py +0 -0
  229. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i02_1.py +0 -0
  230. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i19_1.py +0 -0
  231. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i19_2.py +0 -0
  232. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i19_optics.py +0 -0
  233. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i20_1.py +0 -0
  234. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/i23.py +0 -0
  235. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/k11.py +0 -0
  236. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/beamlines/p38.py +0 -0
  237. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/cli.py +0 -0
  238. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/__init__.py +0 -0
  239. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/beamlines/__init__.py +0 -0
  240. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  241. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  242. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/coordination.py +0 -0
  243. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/crystal_metadata.py +0 -0
  244. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/data_util.py +0 -0
  245. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/maths.py +0 -0
  246. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/types.py +0 -0
  247. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/udc_directory_provider.py +0 -0
  248. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/common/visit.py +0 -0
  249. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/CTAB.py +0 -0
  250. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/__init__.py +0 -0
  251. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  252. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/apple2_undulator.py +0 -0
  253. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  254. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  255. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/attenuator/filter.py +0 -0
  256. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  257. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/b16/__init__.py +0 -0
  258. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/b16/detector.py +0 -0
  259. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/backlight.py +0 -0
  260. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/baton.py +0 -0
  261. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  262. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/common_dcm.py +0 -0
  263. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/cryostream.py +0 -0
  264. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  265. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  266. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  267. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  268. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  269. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  270. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/detector/__init__.py +0 -0
  271. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  272. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  273. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  274. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/detector/detector.py +0 -0
  275. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/diamond_filter.py +0 -0
  276. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/eiger.py +0 -0
  277. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/eiger_odin.py +0 -0
  278. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  279. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  280. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
  281. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  282. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  283. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/util.py +0 -0
  284. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  285. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  286. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  287. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/flux.py +0 -0
  288. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/focusing_mirror.py +0 -0
  289. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/hutch_shutter.py +0 -0
  290. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i03/__init__.py +0 -0
  291. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i03/dcm.py +0 -0
  292. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  293. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i04/__init__.py +0 -0
  294. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i04/murko_results.py +0 -0
  295. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i04/transfocator.py +0 -0
  296. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/__init__.py +0 -0
  297. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  298. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
  299. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  300. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  301. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  302. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i10/slits.py +0 -0
  303. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i13_1/__init__.py +0 -0
  304. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  305. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  306. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i18/KBMirror.py +0 -0
  307. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i18/diode.py +0 -0
  308. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i19/__init__.py +0 -0
  309. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
  310. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i19/hutch_access.py +0 -0
  311. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i19/shutter.py +0 -0
  312. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i20_1/__init__.py +0 -0
  313. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i22/dcm.py +0 -0
  314. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i22/fswitch.py +0 -0
  315. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i22/nxsas.py +0 -0
  316. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/__init__.py +0 -0
  317. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/beam_center.py +0 -0
  318. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/dcm.py +0 -0
  319. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  320. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  321. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
  322. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/i24/vgonio.py +0 -0
  323. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/ipin.py +0 -0
  324. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  325. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/__init__.py +0 -0
  326. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  327. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/oav_detector.py +0 -0
  328. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  329. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  330. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  331. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  332. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  333. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  334. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  335. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  336. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/oav/utils.py +0 -0
  337. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/p99/__init__.py +0 -0
  338. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  339. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  340. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/positioner.py +0 -0
  341. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  342. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/qbpm.py +0 -0
  343. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  344. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/scintillator.py +0 -0
  345. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/slits.py +0 -0
  346. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/status.py +0 -0
  347. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/synchrotron.py +0 -0
  348. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/thawer.py +0 -0
  349. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/turbo_slit.py +0 -0
  350. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/undulator.py +0 -0
  351. {dls_dodal-1.50.0/src/dodal/devices/training_rig → dls_dodal-1.52.0/src/dodal/devices/util}/__init__.py +0 -0
  352. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  353. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/util/epics_util.py +0 -0
  354. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  355. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/util/test_utils.py +0 -0
  356. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  357. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/webcam.py +0 -0
  358. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  359. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  360. {dls_dodal-1.50.0/src/dodal/devices/util → dls_dodal-1.52.0/src/dodal/devices/zebra}/__init__.py +0 -0
  361. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zebra/zebra.py +0 -0
  362. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  363. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  364. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  365. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  366. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  367. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/log.py +0 -0
  368. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  369. {dls_dodal-1.50.0/src/dodal/devices/zebra → dls_dodal-1.52.0/src/dodal/plan_stubs}/__init__.py +0 -0
  370. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  371. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plan_stubs/data_session.py +0 -0
  372. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  373. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  374. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/__init__.py +0 -0
  375. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/bimorph.py +0 -0
  376. {dls_dodal-1.50.0/src/dodal/plan_stubs → dls_dodal-1.52.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  377. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  378. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/save_panda.py +0 -0
  379. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/scanspec.py +0 -0
  380. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  381. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/plans/wrapped.py +0 -0
  382. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/src/dodal/utils.py +0 -0
  383. {dls_dodal-1.50.0/src/dodal/plans/preprocessors → dls_dodal-1.52.0/system_tests}/__init__.py +0 -0
  384. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/system_tests/test_oav_system.py +0 -0
  385. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/system_tests/test_oav_to_redis_system.py +0 -0
  386. {dls_dodal-1.50.0/system_tests → dls_dodal-1.52.0/tests}/__init__.py +0 -0
  387. {dls_dodal-1.50.0/tests → dls_dodal-1.52.0/tests/beamlines}/__init__.py +0 -0
  388. {dls_dodal-1.50.0/tests/beamlines → dls_dodal-1.52.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  389. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/beamlines/unit_tests/test_b16.py +0 -0
  390. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  391. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
  392. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  393. {dls_dodal-1.50.0/tests/beamlines/unit_tests → dls_dodal-1.52.0/tests/common}/__init__.py +0 -0
  394. {dls_dodal-1.50.0/tests/common → dls_dodal-1.52.0/tests/common/beamlines}/__init__.py +0 -0
  395. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  396. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  397. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  398. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/test_coordination.py +0 -0
  399. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/test_crystal_metadata.py +0 -0
  400. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/test_maths.py +0 -0
  401. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/test_udc_directory_provider.py +0 -0
  402. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/common/test_visit.py +0 -0
  403. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/conftest.py +0 -0
  404. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/constants.py +0 -0
  405. {dls_dodal-1.50.0/tests/common/beamlines → dls_dodal-1.52.0/tests/devices}/__init__.py +0 -0
  406. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  407. {dls_dodal-1.50.0/tests/devices → dls_dodal-1.52.0/tests/devices/i03}/__init__.py +0 -0
  408. {dls_dodal-1.50.0/tests/devices/i03 → dls_dodal-1.52.0/tests/devices/i04}/__init__.py +0 -0
  409. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i04/test_murko_results.py +0 -0
  410. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i04/test_transfocator.py +0 -0
  411. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  412. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  413. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  414. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  415. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  416. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  417. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i10/test_i10Apple2.py +0 -0
  418. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i13_1/test_merlin.py +0 -0
  419. {dls_dodal-1.50.0/tests/devices/i04 → dls_dodal-1.52.0/tests/devices/i19}/__init__.py +0 -0
  420. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i19/test_beamstop.py +0 -0
  421. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i22/test_dcm.py +0 -0
  422. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/i22/test_metadataholder.py +0 -0
  423. {dls_dodal-1.50.0/tests/devices/i19 → dls_dodal-1.52.0/tests/devices/mx_phase1}/__init__.py +0 -0
  424. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  425. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/test_common_dcm.py +0 -0
  426. {dls_dodal-1.50.0/tests/devices/mx_phase1 → dls_dodal-1.52.0/tests/devices/unit_tests}/__init__.py +0 -0
  427. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
  428. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
  429. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  430. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  431. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
  432. {dls_dodal-1.50.0/tests/devices/unit_tests → dls_dodal-1.52.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
  433. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser → dls_dodal-1.52.0/tests/devices/unit_tests/electron_analyser/abstract}/__init__.py +0 -0
  434. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/abstract → dls_dodal-1.52.0/tests/devices/unit_tests/electron_analyser/specs}/__init__.py +0 -0
  435. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/electron_analyser/test_util.py +0 -0
  436. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/specs → dls_dodal-1.52.0/tests/devices/unit_tests/electron_analyser/vgscienta}/__init__.py +0 -0
  437. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/vgscienta → dls_dodal-1.52.0/tests/devices/unit_tests/i03}/__init__.py +0 -0
  438. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i03/test_dcm.py +0 -0
  439. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i03/test_undulator_dcm.py +0 -0
  440. {dls_dodal-1.50.0/tests/devices/unit_tests/i03 → dls_dodal-1.52.0/tests/devices/unit_tests/i09}/__init__.py +0 -0
  441. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
  442. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  443. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
  444. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
  445. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
  446. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  447. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
  448. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
  449. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  450. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  451. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
  452. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  453. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
  454. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
  455. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
  456. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
  457. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  458. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  459. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  460. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
  461. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
  462. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  463. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
  464. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  465. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  466. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  467. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  468. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_eiger.py +0 -0
  469. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
  470. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
  471. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
  472. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  473. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  474. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  475. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_odin.py +0 -0
  476. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_positioner.py +0 -0
  477. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_status.py +0 -0
  478. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  479. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_thawer.py +0 -0
  480. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_utils.py +0 -0
  481. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  482. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
  483. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_zebra.py +0 -0
  484. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
  485. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
  486. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  487. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/util/__init__.py +0 -0
  488. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  489. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  490. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
  491. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  492. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline.py +0 -0
  493. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_broken_dependency.py +0 -0
  494. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_dependencies.py +0 -0
  495. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  496. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  497. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_beamline_some_devices_working.py +0 -0
  498. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_device_factory_beamline.py +0 -0
  499. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_zocalo/README.rst +0 -0
  500. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_zocalo/__init__.py +0 -0
  501. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_zocalo/__main__.py +0 -0
  502. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  503. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plan_stubs/test_data_session.py +0 -0
  504. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  505. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  506. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  507. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_bimorph.py +0 -0
  508. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_compliance.py +0 -0
  509. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  510. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_scanspec.py +0 -0
  511. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  512. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/plans/test_wrapped.py +0 -0
  513. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  514. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/bad_beamlineParameters +0 -0
  515. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
  516. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
  517. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/i04_beamlineParameters +0 -0
  518. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  519. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  520. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  521. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  522. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  523. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  524. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  525. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/topup_long_delay.txt +0 -0
  526. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_data/topup_short_params.txt +0 -0
  527. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/test_utils.py +0 -0
  528. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/unit_tests/__init__.py +0 -0
  529. {dls_dodal-1.50.0 → dls_dodal-1.52.0}/tests/unit_tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 2.5.0
3
- _src_path: gh:DiamondLightSource/python-copier-template
2
+ _commit: 4.0.1
3
+ _src_path: https://github.com/DiamondLightSource/python-copier-template
4
4
  author_email: dominic.oram@diamond.ac.uk
5
5
  author_name: Dominic Oram
6
6
  component_lifecycle: production
@@ -15,4 +15,5 @@ github_org: DiamondLightSource
15
15
  package_name: dodal
16
16
  pypi: true
17
17
  repo_name: dodal
18
+ strict_typing: false
18
19
  type_checker: pyright
@@ -28,11 +28,11 @@
28
28
  }
29
29
  },
30
30
  "features": {
31
- // Some default things like git config
32
- "ghcr.io/devcontainers/features/common-utils:2": {
33
- "upgradePackages": false
34
- }
31
+ // add in eternal history and other bash features
32
+ "ghcr.io/diamondlightsource/devcontainer-features/bash-config:1": {}
35
33
  },
34
+ // Create the config folder for the bash-config feature
35
+ "initializeCommand": "mkdir -p ${localEnv:HOME}/.config/bash-config",
36
36
  "runArgs": [
37
37
  // Allow the container to access the host X11 display and EPICS CA
38
38
  "--net=host",
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
24
24
 
25
25
  This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
26
26
 
27
- For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/2.5.0/how-to.html).
27
+ For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/4.0.1/how-to.html).
@@ -15,7 +15,8 @@ runs:
15
15
  run: |
16
16
  PYTHON_VERSION="${{ inputs.python-version }}"
17
17
  if [ $PYTHON_VERSION == "dev" ]; then
18
- PYTHON_VERSION=$(sed -n "s/ARG PYTHON_VERSION=//p" Dockerfile)
18
+ # python version from Dockerfile, removing potential pinned sha
19
+ PYTHON_VERSION=$(sed -Ene "s/ARG PYTHON_VERSION=([0-9\.]+).*/\1/p" Dockerfile)
19
20
  fi
20
21
  echo "PYTHON_VERSION=$PYTHON_VERSION" >> "$GITHUB_ENV"
21
22
  shell: bash
@@ -13,6 +13,8 @@ updates:
13
13
  actions:
14
14
  patterns:
15
15
  - "*"
16
+ commit-message:
17
+ prefix: "chore"
16
18
 
17
19
  - package-ecosystem: "pip"
18
20
  directory: "/"
@@ -22,3 +24,5 @@ updates:
22
24
  dev-dependencies:
23
25
  patterns:
24
26
  - "*"
27
+ commit-message:
28
+ prefix: "chore"
@@ -1,6 +1,7 @@
1
1
  on:
2
2
  workflow_call:
3
3
 
4
+
4
5
  jobs:
5
6
  build:
6
7
  runs-on: ubuntu-latest
@@ -23,7 +23,7 @@ jobs:
23
23
  - name: Create GitHub Release
24
24
  # We pin to the SHA, not the tag, for security reasons.
25
25
  # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
26
- uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9
26
+ uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
27
27
  with:
28
28
  prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
29
29
  files: "*"
@@ -80,7 +80,7 @@ jobs:
80
80
  python .github/scripts/check_test_durations.py system-report.json 5
81
81
 
82
82
  - name: Upload coverage to Codecov
83
- uses: codecov/codecov-action@v4
83
+ uses: codecov/codecov-action@v5
84
84
  with:
85
85
  name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
86
86
  files: ./unit_cov.xml,./system_cov.xml
@@ -2,26 +2,24 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - '*'
5
9
  pull_request:
6
10
 
7
11
  jobs:
8
- check:
9
- uses: ./.github/workflows/_check.yml
10
12
 
11
13
  lint:
12
- needs: check
13
- if: needs.check.outputs.branch-pr == ''
14
14
  uses: ./.github/workflows/_tox.yml
15
15
  with:
16
16
  tox: pre-commit,type-checking
17
17
 
18
18
  test:
19
- needs: check
20
- if: needs.check.outputs.branch-pr == ''
21
19
  strategy:
22
20
  matrix:
23
21
  runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
24
- python-version: ["3.10", "3.11", "3.12"]
22
+ python-version: ["3.11", "3.12"]
25
23
  include:
26
24
  # Include one that runs in the dev environment
27
25
  - runs-on: "ubuntu-latest"
@@ -35,25 +33,22 @@ jobs:
35
33
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
36
34
 
37
35
  docs:
38
- needs: check
39
- if: needs.check.outputs.branch-pr == ''
40
36
  uses: ./.github/workflows/_docs.yml
41
37
 
38
+
42
39
  dist:
43
- needs: check
44
- if: needs.check.outputs.branch-pr == ''
45
40
  uses: ./.github/workflows/_dist.yml
46
41
 
47
42
  pypi:
43
+ needs: [dist, test]
48
44
  if: github.ref_type == 'tag'
49
- needs: dist
50
45
  uses: ./.github/workflows/_pypi.yml
51
46
  permissions:
52
47
  id-token: write
53
48
 
54
49
  release:
50
+ needs: [dist, test, docs]
55
51
  if: github.ref_type == 'tag'
56
- needs: [dist, docs]
57
52
  uses: ./.github/workflows/_release.yml
58
53
  permissions:
59
54
  contents: write
@@ -1,6 +1,6 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.5.0
3
+ rev: v5.0.0
4
4
  hooks:
5
5
  - id: check-added-large-files
6
6
  - id: check-yaml
@@ -12,7 +12,7 @@ repos:
12
12
  - id: ruff
13
13
  name: lint with ruff
14
14
  language: system
15
- entry: ruff check --force-exclude
15
+ entry: ruff check --force-exclude --fix
16
16
  types: [python]
17
17
  require_serial: true
18
18
 
@@ -30,3 +30,8 @@ repos:
30
30
  entry: lint-imports
31
31
  types: [python]
32
32
  require_serial: false
33
+
34
+ - repo: https://github.com/thoughtworks/talisman
35
+ rev: v1.37.0
36
+ hooks:
37
+ - id: talisman-commit
@@ -16,8 +16,6 @@
16
16
  "console": "integratedTerminal",
17
17
  "preLaunchTask": "load_dials_env",
18
18
  "env": {
19
- // Enable break on exception when debugging tests (see: tests/conftest.py)
20
- "PYTEST_RAISE": "1",
21
19
  "PYTEST_ADDOPTS": "--no-cov -vv"
22
20
  },
23
21
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.50.0
3
+ Version: 1.52.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>
6
6
  License: Apache License
@@ -208,15 +208,15 @@ License: Apache License
208
208
  Project-URL: GitHub, https://github.com/DiamondLightSource/dodal
209
209
  Classifier: Development Status :: 3 - Alpha
210
210
  Classifier: License :: OSI Approved :: Apache Software License
211
- Classifier: Programming Language :: Python :: 3.10
212
211
  Classifier: Programming Language :: Python :: 3.11
213
212
  Classifier: Programming Language :: Python :: 3.12
214
- Requires-Python: >=3.10
213
+ Requires-Python: >=3.11
215
214
  Description-Content-Type: text/markdown
216
215
  License-File: LICENSE
217
216
  Requires-Dist: click
218
217
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.10.0a4
218
+ Requires-Dist: ophyd-async>=0.11
219
+ Requires-Dist: epicscorelibs<=7.0.7.99.1.2a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -232,9 +232,9 @@ Requires-Dist: numpy
232
232
  Requires-Dist: aiofiles
233
233
  Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
235
- Requires-Dist: deepdiff
236
235
  Requires-Dist: scanspec>=0.7.3
237
236
  Requires-Dist: event-model>=1.23
237
+ Requires-Dist: pyzmq==26.3.0
238
238
  Provides-Extra: dev
239
239
  Requires-Dist: black; extra == "dev"
240
240
  Requires-Dist: diff-cover; extra == "dev"
@@ -1,12 +1,10 @@
1
1
  import asyncio
2
2
  import logging
3
- import os
4
3
  import sys
5
4
  import time
6
5
  from collections.abc import Mapping
7
6
  from os import environ
8
7
  from pathlib import Path
9
- from typing import Any
10
8
  from unittest.mock import MagicMock, patch
11
9
 
12
10
  import pytest
@@ -63,24 +61,6 @@ def patch_open_to_prevent_dls_reads_in_tests():
63
61
  yield []
64
62
 
65
63
 
66
- # Prevent pytest from catching exceptions when debugging in vscode so that break on
67
- # exception works correctly (see: https://github.com/pytest-dev/pytest/issues/7409)
68
- if os.getenv("PYTEST_RAISE", "0") == "1":
69
-
70
- @pytest.hookimpl(tryfirst=True)
71
- def pytest_exception_interact(call: pytest.CallInfo[Any]):
72
- if call.excinfo is not None:
73
- raise call.excinfo.value
74
- else:
75
- raise RuntimeError(
76
- f"{call} has no exception data, an unknown error has occurred"
77
- )
78
-
79
- @pytest.hookimpl(tryfirst=True)
80
- def pytest_internalerror(excinfo: pytest.ExceptionInfo[Any]):
81
- raise excinfo.value
82
-
83
-
84
64
  def pytest_runtest_setup(item):
85
65
  beamline_utils.clear_devices()
86
66
  if LOGGER.handlers == []:
@@ -8,6 +8,10 @@ Reusing an existing class
8
8
 
9
9
  When creating a new device, first check if there is a device class that claims to support the device: e.g. all EPICS Motor records should use the [Motor](https://github.com/bluesky/ophyd-async/blob/main/src/ophyd_async/epics/motor.py) type; for reading or monitoring signals from the storage ring the [Synchrotron](https://github.com/DiamondLightSource/dodal/blob/main/src/dodal/devices/synchrotron.py) device should be used; AreaDetectors should use the [StandardDetector](https://github.com/bluesky/ophyd-async/blob/main/src/ophyd_async/core/_detector.py) type- of which there are examples in ophyd_async and in dodal.
10
10
 
11
+ The module `dodal.devices.motors` defines a series of `Stage`s or groups of motors- a `Stage` represents a physical relationship between motors. For example, an `XYStage` is two perpendicular motors and should not be used for two motors that run parallel to each other (e.g. a coarse motor and a fine adjustment motor in the same axis) or that are unrelated (e.g. attached to different stages with no common frame of reference). Already defined are some relationships with linear and rotational stages. Any device that is a groups of motors only should be additionally defined there, if possible making re-use of the existing classes. Classes that define physical stages but also define additional signals may then extend the `Stage` class outside of the `motors` module for additional behaviour.
12
+
13
+ Device classes that take a list of devices of a type may make use of the ophyd-async `DeviceVector`, and those that use other collections (e.g. a dict of Motors) to set attributes on themselves at runtime should be avoided- these device classes may appear tempting for their genericness and extensibility, but they will be a hindrance when trying to write plans. When writing plans, the device class is all that is available to the IDE, not the instance that you "just know" has specific fields. Making use of type checking and hints should make writing plans and debugging them a much less frustrating experience, while also enabling discoverability of the devices that are in use.
14
+
11
15
  If there is a compatible device class it should be used- adding it to the [the beamline](./create-beamline.rst)- this prevents reimplementing the device, and allows improvements to be shared. Improving the device to meet your use case is better than starting again.
12
16
 
13
17
  If a device class is incompatible due to differences in PV address only, first request that an alias is added to the EPICS support module for the IOC - or request support in making that change. Only if it is not possible to add an alias, for example the support module is proprietary, add configurability to the dodal device class, taking care not to break existing devices- e.g. make new fields have a default that matches the existing pattern, and ensure that `dodal connect` is still able to connect to the device for the existing instances.
@@ -0,0 +1,44 @@
1
+ (using-pytest)=
2
+
3
+ # Run the tests using pytest
4
+
5
+ Testing is done with [pytest]. It will find functions in the project that [look like tests][look like tests], and run them to check for errors. You can run it with:
6
+
7
+ ```
8
+ $ pytest
9
+ ```
10
+
11
+ When you have some fully working tests then you can run it with coverage:
12
+
13
+ ```
14
+ $ tox -e tests
15
+ ```
16
+
17
+ It will also report coverage to the commandline and to `cov.xml`.
18
+
19
+ [look like tests]: https://docs.pytest.org/explanation/goodpractices.html#test-discovery
20
+ [pytest]: https://pytest.org/
21
+
22
+ # Run the system tests locally
23
+
24
+ The system tests require the ``example-services`` project:
25
+
26
+ ```commandline
27
+ git clone git@github.com:epics-containers/example-services.git
28
+ ```
29
+
30
+ Then you need to launch some of the example ioc containers. Please note, this requires docker-compose not
31
+ podman-compose:
32
+
33
+ ```commandline
34
+ module load docker-compose
35
+ cd example-services
36
+ . ./environment.sh
37
+ podman compose up -d bl01t-di-cam-01 bl01t-mo-sim-01 ca-gateway
38
+ ```
39
+
40
+ Once this is done, then the system tests can be run:
41
+
42
+ ```commandline
43
+ tox -e system-report
44
+ ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Check your version of python
4
4
 
5
- You will need python 3.10 or later. You can check your version of python by
5
+ You will need python 3.11 or later. You can check your version of python by
6
6
  typing into a terminal:
7
7
 
8
8
  ```
@@ -7,7 +7,6 @@ name = "dls-dodal"
7
7
  classifiers = [
8
8
  "Development Status :: 3 - Alpha",
9
9
  "License :: OSI Approved :: Apache Software License",
10
- "Programming Language :: Python :: 3.10",
11
10
  "Programming Language :: Python :: 3.11",
12
11
  "Programming Language :: Python :: 3.12",
13
12
  ]
@@ -15,7 +14,8 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
15
14
  dependencies = [
16
15
  "click",
17
16
  "ophyd",
18
- "ophyd-async>=0.10.0a4",
17
+ "ophyd-async>=0.11",
18
+ "epicscorelibs<=7.0.7.99.1.2a1", # Pending https://github.com/epics-base/epicscorelibs/issues/41
19
19
  "bluesky",
20
20
  "pyepics",
21
21
  "dataclasses-json",
@@ -31,15 +31,15 @@ dependencies = [
31
31
  "aiofiles",
32
32
  "aiohttp",
33
33
  "redis",
34
- "deepdiff",
35
34
  "scanspec>=0.7.3",
36
- "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
35
+ "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
36
+ "pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
37
37
  ]
38
38
 
39
39
  dynamic = ["version"]
40
40
  license.file = "LICENSE"
41
41
  readme = "README.md"
42
- requires-python = ">=3.10"
42
+ requires-python = ">=3.11"
43
43
 
44
44
  [project.optional-dependencies]
45
45
  dev = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.50.0
3
+ Version: 1.52.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>
6
6
  License: Apache License
@@ -208,15 +208,15 @@ License: Apache License
208
208
  Project-URL: GitHub, https://github.com/DiamondLightSource/dodal
209
209
  Classifier: Development Status :: 3 - Alpha
210
210
  Classifier: License :: OSI Approved :: Apache Software License
211
- Classifier: Programming Language :: Python :: 3.10
212
211
  Classifier: Programming Language :: Python :: 3.11
213
212
  Classifier: Programming Language :: Python :: 3.12
214
- Requires-Python: >=3.10
213
+ Requires-Python: >=3.11
215
214
  Description-Content-Type: text/markdown
216
215
  License-File: LICENSE
217
216
  Requires-Dist: click
218
217
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.10.0a4
218
+ Requires-Dist: ophyd-async>=0.11
219
+ Requires-Dist: epicscorelibs<=7.0.7.99.1.2a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -232,9 +232,9 @@ Requires-Dist: numpy
232
232
  Requires-Dist: aiofiles
233
233
  Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
235
- Requires-Dist: deepdiff
236
235
  Requires-Dist: scanspec>=0.7.3
237
236
  Requires-Dist: event-model>=1.23
237
+ Requires-Dist: pyzmq==26.3.0
238
238
  Provides-Extra: dev
239
239
  Requires-Dist: black; extra == "dev"
240
240
  Requires-Dist: diff-cover; extra == "dev"
@@ -17,7 +17,6 @@ pyproject.toml
17
17
  .github/pages/index.html
18
18
  .github/pages/make_switcher.py
19
19
  .github/scripts/check_test_durations.py
20
- .github/workflows/_check.yml
21
20
  .github/workflows/_dist.yml
22
21
  .github/workflows/_docs.yml
23
22
  .github/workflows/_pypi.yml
@@ -100,11 +99,13 @@ src/dodal/beamlines/b07.py
100
99
  src/dodal/beamlines/b07_1.py
101
100
  src/dodal/beamlines/b16.py
102
101
  src/dodal/beamlines/b18.py
102
+ src/dodal/beamlines/b21.py
103
103
  src/dodal/beamlines/i02_1.py
104
104
  src/dodal/beamlines/i03.py
105
105
  src/dodal/beamlines/i04.py
106
106
  src/dodal/beamlines/i09.py
107
107
  src/dodal/beamlines/i09_1.py
108
+ src/dodal/beamlines/i09_2.py
108
109
  src/dodal/beamlines/i10.py
109
110
  src/dodal/beamlines/i13_1.py
110
111
  src/dodal/beamlines/i18.py
@@ -125,6 +126,7 @@ src/dodal/common/__init__.py
125
126
  src/dodal/common/coordination.py
126
127
  src/dodal/common/crystal_metadata.py
127
128
  src/dodal/common/data_util.py
129
+ src/dodal/common/device_utils.py
128
130
  src/dodal/common/maths.py
129
131
  src/dodal/common/types.py
130
132
  src/dodal/common/udc_directory_provider.py
@@ -135,7 +137,6 @@ src/dodal/common/beamlines/beamline_utils.py
135
137
  src/dodal/common/beamlines/device_helpers.py
136
138
  src/dodal/devices/CTAB.py
137
139
  src/dodal/devices/__init__.py
138
- src/dodal/devices/adsim.py
139
140
  src/dodal/devices/aperture.py
140
141
  src/dodal/devices/aperturescatterguard.py
141
142
  src/dodal/devices/apple2_undulator.py
@@ -162,7 +163,6 @@ src/dodal/devices/pressure_jump_cell.py
162
163
  src/dodal/devices/qbpm.py
163
164
  src/dodal/devices/robot.py
164
165
  src/dodal/devices/s4_slit_gaps.py
165
- src/dodal/devices/scatterguard.py
166
166
  src/dodal/devices/scintillator.py
167
167
  src/dodal/devices/slits.py
168
168
  src/dodal/devices/smargon.py
@@ -182,6 +182,10 @@ src/dodal/devices/areadetector/plugins/MJPG.py
182
182
  src/dodal/devices/attenuator/attenuator.py
183
183
  src/dodal/devices/attenuator/filter.py
184
184
  src/dodal/devices/attenuator/filter_selections.py
185
+ src/dodal/devices/b07/__init__.py
186
+ src/dodal/devices/b07/enums.py
187
+ src/dodal/devices/b07_1/__init__.py
188
+ src/dodal/devices/b07_1/enums.py
185
189
  src/dodal/devices/b16/__init__.py
186
190
  src/dodal/devices/b16/detector.py
187
191
  src/dodal/devices/current_amplifiers/__init__.py
@@ -222,6 +226,11 @@ src/dodal/devices/i04/__init__.py
222
226
  src/dodal/devices/i04/constants.py
223
227
  src/dodal/devices/i04/murko_results.py
224
228
  src/dodal/devices/i04/transfocator.py
229
+ src/dodal/devices/i09/__init__.py
230
+ src/dodal/devices/i09/dcm.py
231
+ src/dodal/devices/i09/enums.py
232
+ src/dodal/devices/i09_1/__init__.py
233
+ src/dodal/devices/i09_1/enums.py
225
234
  src/dodal/devices/i10/__init__.py
226
235
  src/dodal/devices/i10/diagnostics.py
227
236
  src/dodal/devices/i10/i10_apple2.py
@@ -236,8 +245,6 @@ src/dodal/devices/i13_1/merlin.py
236
245
  src/dodal/devices/i13_1/merlin_controller.py
237
246
  src/dodal/devices/i18/KBMirror.py
238
247
  src/dodal/devices/i18/diode.py
239
- src/dodal/devices/i18/table.py
240
- src/dodal/devices/i18/thor_labs_stage.py
241
248
  src/dodal/devices/i19/__init__.py
242
249
  src/dodal/devices/i19/beamstop.py
243
250
  src/dodal/devices/i19/blueapi_device.py
@@ -254,7 +261,6 @@ src/dodal/devices/i24/beamstop.py
254
261
  src/dodal/devices/i24/dcm.py
255
262
  src/dodal/devices/i24/dual_backlight.py
256
263
  src/dodal/devices/i24/focus_mirrors.py
257
- src/dodal/devices/i24/i24_detector_motion.py
258
264
  src/dodal/devices/i24/pilatus_metadata.py
259
265
  src/dodal/devices/i24/pmac.py
260
266
  src/dodal/devices/i24/vgonio.py
@@ -272,11 +278,12 @@ src/dodal/devices/oav/snapshots/grid_overlay.py
272
278
  src/dodal/devices/oav/snapshots/snapshot.py
273
279
  src/dodal/devices/oav/snapshots/snapshot_image_processing.py
274
280
  src/dodal/devices/oav/snapshots/snapshot_with_grid.py
281
+ src/dodal/devices/p60/__init__.py
282
+ src/dodal/devices/p60/enums.py
283
+ src/dodal/devices/p60/lab_xray_source.py
275
284
  src/dodal/devices/p99/__init__.py
276
285
  src/dodal/devices/p99/andor2_point.py
277
286
  src/dodal/devices/p99/sample_stage.py
278
- src/dodal/devices/training_rig/__init__.py
279
- src/dodal/devices/training_rig/sample_stage.py
280
287
  src/dodal/devices/util/__init__.py
281
288
  src/dodal/devices/util/adjuster_plans.py
282
289
  src/dodal/devices/util/epics_util.py
@@ -344,6 +351,7 @@ tests/common/beamlines/test_device_instantiation.py
344
351
  tests/devices/__init__.py
345
352
  tests/devices/test_common_dcm.py
346
353
  tests/devices/test_diamond_filter.py
354
+ tests/devices/test_motors.py
347
355
  tests/devices/aithre_lasershaping/test_goniometer.py
348
356
  tests/devices/i03/__init__.py
349
357
  tests/devices/i04/__init__.py
@@ -358,8 +366,6 @@ tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl
358
366
  tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl
359
367
  tests/devices/i13_1/test_merlin.py
360
368
  tests/devices/i18/test_kb_mirror.py
361
- tests/devices/i18/test_table.py
362
- tests/devices/i18/test_thor_labs_stage.py
363
369
  tests/devices/i19/__init__.py
364
370
  tests/devices/i19/test_beamstop.py
365
371
  tests/devices/i19/test_shutter.py
@@ -368,7 +374,6 @@ tests/devices/i22/test_fswitch.py
368
374
  tests/devices/i22/test_metadataholder.py
369
375
  tests/devices/mx_phase1/__init__.py
370
376
  tests/devices/mx_phase1/test_beamstop.py
371
- tests/devices/training_rig/test_sample_stage.py
372
377
  tests/devices/unit_tests/__init__.py
373
378
  tests/devices/unit_tests/test_OAVCentring.json
374
379
  tests/devices/unit_tests/test_aperture.py
@@ -387,7 +392,6 @@ tests/devices/unit_tests/test_focusing_mirror.py
387
392
  tests/devices/unit_tests/test_gridscan.py
388
393
  tests/devices/unit_tests/test_hutch_shutter.py
389
394
  tests/devices/unit_tests/test_jCameraManZoomLevels.xml
390
- tests/devices/unit_tests/test_linkam3.py
391
395
  tests/devices/unit_tests/test_lookup_table.txt
392
396
  tests/devices/unit_tests/test_lookup_table_2.txt
393
397
  tests/devices/unit_tests/test_motors.py
@@ -436,6 +440,8 @@ tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py
436
440
  tests/devices/unit_tests/i03/__init__.py
437
441
  tests/devices/unit_tests/i03/test_dcm.py
438
442
  tests/devices/unit_tests/i03/test_undulator_dcm.py
443
+ tests/devices/unit_tests/i09/__init__.py
444
+ tests/devices/unit_tests/i09/test_dcm.py
439
445
  tests/devices/unit_tests/i24/__init__.py
440
446
  tests/devices/unit_tests/i24/test_dual_backlight.py
441
447
  tests/devices/unit_tests/i24/test_focus_mirrors.py
@@ -453,6 +459,7 @@ tests/devices/unit_tests/oav/test_snapshot_image_processing.py
453
459
  tests/devices/unit_tests/oav/test_snapshots.py
454
460
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py
455
461
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py
462
+ tests/devices/unit_tests/p60/test_lab_xray_source.py
456
463
  tests/devices/unit_tests/p99/test_p99_stage.py
457
464
  tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters
458
465
  tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt
@@ -1,6 +1,7 @@
1
1
  click
2
2
  ophyd
3
- ophyd-async>=0.10.0a4
3
+ ophyd-async>=0.11
4
+ epicscorelibs<=7.0.7.99.1.2a1
4
5
  bluesky
5
6
  pyepics
6
7
  dataclasses-json
@@ -16,9 +17,9 @@ numpy
16
17
  aiofiles
17
18
  aiohttp
18
19
  redis
19
- deepdiff
20
20
  scanspec>=0.7.3
21
21
  event-model>=1.23
22
+ pyzmq==26.3.0
22
23
 
23
24
  [dev]
24
25
  black
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.50.0'
21
- __version_tuple__ = version_tuple = (1, 50, 0)
20
+ __version__ = version = '1.52.0'
21
+ __version_tuple__ = version_tuple = (1, 52, 0)
@@ -10,7 +10,7 @@ from dodal.common.beamlines.beamline_utils import (
10
10
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
11
11
  from dodal.common.beamlines.device_helpers import DET_SUFFIX, HDF5_SUFFIX
12
12
  from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
13
- from dodal.devices.adsim import SimStage
13
+ from dodal.devices.motors import XThetaStage
14
14
  from dodal.log import set_beamline as set_log_beamline
15
15
  from dodal.utils import BeamlinePrefix
16
16
 
@@ -62,8 +62,10 @@ RE(count([d], num=10))
62
62
 
63
63
 
64
64
  @device_factory()
65
- def stage() -> SimStage:
66
- return SimStage(f"{PREFIX.beamline_prefix}-MO-SIMC-01:")
65
+ def stage() -> XThetaStage:
66
+ return XThetaStage(
67
+ f"{PREFIX.beamline_prefix}-MO-SIMC-01:", x_infix="M1", theta_infix="M2"
68
+ )
67
69
 
68
70
 
69
71
  @device_factory()