dls-dodal 1.50.0__tar.gz → 1.51.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 (518) hide show
  1. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.copier-answers.yml +3 -2
  2. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.devcontainer/devcontainer.json +4 -4
  3. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/CONTRIBUTING.md +1 -1
  4. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/actions/install_requirements/action.yml +2 -1
  5. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/dependabot.yml +4 -0
  6. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_docs.yml +1 -0
  7. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_release.yml +1 -1
  8. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_test.yml +1 -1
  9. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/ci.yml +8 -13
  10. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.pre-commit-config.yaml +2 -2
  11. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.vscode/launch.json +0 -2
  12. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/PKG-INFO +3 -4
  13. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/conftest.py +0 -20
  14. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/create-device.md +4 -0
  15. dls_dodal-1.51.0/docs/how-to/run-tests.md +44 -0
  16. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/tutorials/installation.md +1 -1
  17. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/pyproject.toml +3 -4
  18. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/PKG-INFO +3 -4
  19. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/SOURCES.txt +15 -11
  20. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/requires.txt +1 -1
  21. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/_version.py +2 -2
  22. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/adsim.py +5 -3
  23. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/b01_1.py +41 -5
  24. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/b07.py +11 -1
  25. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/b07_1.py +11 -1
  26. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/b16.py +8 -4
  27. dls_dodal-1.51.0/src/dodal/beamlines/b21.py +148 -0
  28. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i03.py +6 -11
  29. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i04.py +5 -5
  30. dls_dodal-1.51.0/src/dodal/beamlines/i09.py +44 -0
  31. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i09_1.py +9 -1
  32. dls_dodal-1.50.0/src/dodal/beamlines/i09.py → dls_dodal-1.51.0/src/dodal/beamlines/i09_2.py +6 -5
  33. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i10.py +5 -6
  34. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i13_1.py +5 -5
  35. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i18.py +5 -6
  36. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i22.py +7 -1
  37. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i24.py +3 -3
  38. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/p45.py +4 -3
  39. dls_dodal-1.51.0/src/dodal/beamlines/p60.py +34 -0
  40. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/p99.py +5 -5
  41. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/training_rig.py +3 -3
  42. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/beamlines/beamline_utils.py +5 -2
  43. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +4 -5
  44. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/aperture.py +4 -7
  45. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/aperturescatterguard.py +2 -2
  46. dls_dodal-1.51.0/src/dodal/devices/b07/__init__.py +3 -0
  47. dls_dodal-1.51.0/src/dodal/devices/b07/grating.py +9 -0
  48. dls_dodal-1.51.0/src/dodal/devices/b07_1/__init__.py +3 -0
  49. dls_dodal-1.51.0/src/dodal/devices/b07_1/grating.py +10 -0
  50. dls_dodal-1.51.0/src/dodal/devices/detector/detector_motion.py +44 -0
  51. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +24 -25
  52. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/detector.py +3 -13
  53. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/specs/detector.py +9 -3
  54. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +5 -2
  55. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +9 -3
  56. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +5 -6
  57. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -1
  58. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/fast_grid_scan.py +1 -2
  59. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i04/constants.py +1 -1
  60. dls_dodal-1.51.0/src/dodal/devices/i09/__init__.py +4 -0
  61. dls_dodal-1.51.0/src/dodal/devices/i09/dcm.py +26 -0
  62. dls_dodal-1.51.0/src/dodal/devices/i09/grating.py +7 -0
  63. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/mirrors.py +4 -6
  64. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -14
  65. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i19/beamstop.py +3 -7
  66. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/aperture.py +4 -6
  67. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/beamstop.py +5 -8
  68. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/pmac.py +4 -8
  69. dls_dodal-1.51.0/src/dodal/devices/motors.py +118 -0
  70. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/p45.py +0 -12
  71. dls_dodal-1.51.0/src/dodal/devices/p60/__init__.py +3 -0
  72. dls_dodal-1.51.0/src/dodal/devices/p60/lab_xray_source.py +21 -0
  73. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/pgm.py +1 -1
  74. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/robot.py +11 -7
  75. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/smargon.py +8 -9
  76. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zocalo/zocalo_results.py +27 -78
  77. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +7 -5
  78. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/system_tests/test_adsim.py +2 -2
  79. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/system_tests/test_cli.py +1 -1
  80. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/beamlines/test_beamline_utils.py +31 -3
  81. dls_dodal-1.51.0/tests/devices/i18/test_kb_mirror.py +50 -0
  82. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i19/test_shutter.py +18 -18
  83. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i22/test_fswitch.py +9 -10
  84. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/test_diamond_filter.py +0 -4
  85. dls_dodal-1.51.0/tests/devices/test_motors.py +153 -0
  86. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_detector.py +2 -7
  87. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_driver_io.py +37 -17
  88. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/conftest.py +27 -17
  89. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/specs/test_driver_io.py +10 -14
  90. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/util.py +2 -27
  91. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_driver_io.py +10 -11
  92. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py +0 -2
  93. dls_dodal-1.51.0/tests/devices/unit_tests/i09/test_dcm.py +53 -0
  94. dls_dodal-1.51.0/tests/devices/unit_tests/p60/test_lab_xray_source.py +118 -0
  95. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_apple2_undulator.py +18 -24
  96. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_backlight.py +1 -5
  97. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_bart_robot.py +13 -7
  98. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_baton.py +0 -6
  99. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_motors.py +0 -14
  100. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +2 -63
  101. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_qbpm.py +0 -4
  102. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_slits.py +2 -23
  103. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_smargon.py +30 -1
  104. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_turbo_slit.py +15 -20
  105. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_undulator.py +0 -20
  106. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -8
  107. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_zocalo_results.py +28 -177
  108. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_all_devices_raise_exception.py +1 -3
  109. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/conftest.py +27 -1
  110. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +2 -4
  111. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/unit_tests/test_log.py +3 -3
  112. dls_dodal-1.50.0/.github/workflows/_check.yml +0 -27
  113. dls_dodal-1.50.0/docs/how-to/run-tests.md +0 -20
  114. dls_dodal-1.50.0/src/dodal/beamlines/p60.py +0 -17
  115. dls_dodal-1.50.0/src/dodal/devices/adsim.py +0 -13
  116. dls_dodal-1.50.0/src/dodal/devices/detector/detector_motion.py +0 -42
  117. dls_dodal-1.50.0/src/dodal/devices/i18/table.py +0 -14
  118. dls_dodal-1.50.0/src/dodal/devices/i18/thor_labs_stage.py +0 -12
  119. dls_dodal-1.50.0/src/dodal/devices/i24/i24_detector_motion.py +0 -12
  120. dls_dodal-1.50.0/src/dodal/devices/motors.py +0 -61
  121. dls_dodal-1.50.0/src/dodal/devices/scatterguard.py +0 -11
  122. dls_dodal-1.50.0/src/dodal/devices/training_rig/sample_stage.py +0 -10
  123. dls_dodal-1.50.0/tests/devices/i18/test_kb_mirror.py +0 -64
  124. dls_dodal-1.50.0/tests/devices/i18/test_table.py +0 -124
  125. dls_dodal-1.50.0/tests/devices/i18/test_thor_labs_stage.py +0 -62
  126. dls_dodal-1.50.0/tests/devices/training_rig/test_sample_stage.py +0 -30
  127. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/CODEOWNERS +0 -0
  128. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  129. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/pages/index.html +0 -0
  130. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/pages/make_switcher.py +0 -0
  131. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/scripts/check_test_durations.py +0 -0
  132. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_dist.yml +0 -0
  133. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_pypi.yml +0 -0
  134. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/_tox.yml +0 -0
  135. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.github/workflows/periodic.yml +0 -0
  136. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.gitignore +0 -0
  137. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.vscode/extensions.json +0 -0
  138. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.vscode/settings.json +0 -0
  139. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/.vscode/tasks.json +0 -0
  140. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/Dockerfile +0 -0
  141. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/LICENSE +0 -0
  142. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/README.md +0 -0
  143. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/catalog-info.yaml +0 -0
  144. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/_templates/autosummary/class.rst +0 -0
  145. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/_templates/autosummary/module.rst +0 -0
  146. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/_templates/custom-module-template.rst +0 -0
  147. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/assets/zocalo.png +0 -0
  148. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/conf.py +0 -0
  149. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  150. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  151. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  152. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  153. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  154. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions/COPYME +0 -0
  155. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/decisions.md +0 -0
  156. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/reviews.md +0 -0
  157. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/umls/apple2_design.png +0 -0
  158. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations/umls/i10_id_design.png +0 -0
  159. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/explanations.md +0 -0
  160. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/genindex.md +0 -0
  161. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/build-docs.md +0 -0
  162. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/contribute.md +0 -0
  163. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/coverage.md +0 -0
  164. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/create-beamline.rst +0 -0
  165. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/dev-install.md +0 -0
  166. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/excalidraw.md +0 -0
  167. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/external-io-devices.md +0 -0
  168. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/lint.md +0 -0
  169. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/lock-requirements.md +0 -0
  170. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/make-release.md +0 -0
  171. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/move-code.rst +0 -0
  172. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/pypi.md +0 -0
  173. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/static-analysis.md +0 -0
  174. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/update-template.md +0 -0
  175. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/write-tests.md +0 -0
  176. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to/zocalo.rst +0 -0
  177. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/how-to.md +0 -0
  178. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/images/dls-logo.svg +0 -0
  179. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/images/excalidraw-example.svg +0 -0
  180. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/index.md +0 -0
  181. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/reference/api.md +0 -0
  182. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/reference/device-standards.rst +0 -0
  183. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/reference/standards.rst +0 -0
  184. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/reference.md +0 -0
  185. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/tutorials/get_started.rst +0 -0
  186. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/docs/tutorials.md +0 -0
  187. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/pull_request_template.md +0 -0
  188. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/setup.cfg +0 -0
  189. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/__init__.py +0 -0
  190. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  191. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  192. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  193. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/__init__.py +0 -0
  194. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/__main__.py +0 -0
  195. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  196. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  197. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/README.md +0 -0
  198. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/__init__.py +0 -0
  199. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/aithre.py +0 -0
  200. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/b18.py +0 -0
  201. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i02_1.py +0 -0
  202. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i19_1.py +0 -0
  203. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i19_2.py +0 -0
  204. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i19_optics.py +0 -0
  205. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i20_1.py +0 -0
  206. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/i23.py +0 -0
  207. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/k11.py +0 -0
  208. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/beamlines/p38.py +0 -0
  209. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/cli.py +0 -0
  210. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/__init__.py +0 -0
  211. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/beamlines/__init__.py +0 -0
  212. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  213. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  214. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/coordination.py +0 -0
  215. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/crystal_metadata.py +0 -0
  216. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/data_util.py +0 -0
  217. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/maths.py +0 -0
  218. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/types.py +0 -0
  219. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/udc_directory_provider.py +0 -0
  220. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/common/visit.py +0 -0
  221. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/CTAB.py +0 -0
  222. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/__init__.py +0 -0
  223. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  224. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/apple2_undulator.py +0 -0
  225. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  226. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  227. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  228. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/attenuator/filter.py +0 -0
  229. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  230. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/b16/__init__.py +0 -0
  231. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/b16/detector.py +0 -0
  232. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/backlight.py +0 -0
  233. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/baton.py +0 -0
  234. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  235. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/common_dcm.py +0 -0
  236. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/cryostream.py +0 -0
  237. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  238. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  239. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  240. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  241. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  242. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  243. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/detector/__init__.py +0 -0
  244. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  245. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  246. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  247. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/detector/detector.py +0 -0
  248. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/diamond_filter.py +0 -0
  249. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/eiger.py +0 -0
  250. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/eiger_odin.py +0 -0
  251. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  252. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  253. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  254. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
  255. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
  256. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  257. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  258. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
  259. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/types.py +0 -0
  260. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/util.py +0 -0
  261. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  262. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  263. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  264. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/flux.py +0 -0
  265. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/focusing_mirror.py +0 -0
  266. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/hutch_shutter.py +0 -0
  267. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i03/__init__.py +0 -0
  268. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i03/dcm.py +0 -0
  269. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  270. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i04/__init__.py +0 -0
  271. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i04/murko_results.py +0 -0
  272. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i04/transfocator.py +0 -0
  273. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/__init__.py +0 -0
  274. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  275. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
  276. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  277. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  278. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  279. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i10/slits.py +0 -0
  280. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i13_1/__init__.py +0 -0
  281. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  282. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  283. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i18/KBMirror.py +0 -0
  284. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i18/diode.py +0 -0
  285. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i19/__init__.py +0 -0
  286. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
  287. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i19/hutch_access.py +0 -0
  288. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i19/shutter.py +0 -0
  289. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i20_1/__init__.py +0 -0
  290. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i22/dcm.py +0 -0
  291. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i22/fswitch.py +0 -0
  292. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i22/nxsas.py +0 -0
  293. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/__init__.py +0 -0
  294. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/beam_center.py +0 -0
  295. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/dcm.py +0 -0
  296. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  297. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  298. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
  299. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/i24/vgonio.py +0 -0
  300. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/ipin.py +0 -0
  301. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/linkam3.py +0 -0
  302. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  303. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/__init__.py +0 -0
  304. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  305. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/oav_detector.py +0 -0
  306. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  307. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  308. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  309. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  310. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  311. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  312. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  313. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  314. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  315. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/oav/utils.py +0 -0
  316. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/p99/__init__.py +0 -0
  317. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  318. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  319. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/positioner.py +0 -0
  320. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  321. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/qbpm.py +0 -0
  322. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  323. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/scintillator.py +0 -0
  324. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/slits.py +0 -0
  325. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/status.py +0 -0
  326. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/synchrotron.py +0 -0
  327. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/tetramm.py +0 -0
  328. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/thawer.py +0 -0
  329. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/turbo_slit.py +0 -0
  330. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/undulator.py +0 -0
  331. {dls_dodal-1.50.0/src/dodal/devices/training_rig → dls_dodal-1.51.0/src/dodal/devices/util}/__init__.py +0 -0
  332. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  333. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/util/epics_util.py +0 -0
  334. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  335. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/util/test_utils.py +0 -0
  336. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  337. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/webcam.py +0 -0
  338. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  339. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  340. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  341. {dls_dodal-1.50.0/src/dodal/devices/util → dls_dodal-1.51.0/src/dodal/devices/zebra}/__init__.py +0 -0
  342. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zebra/zebra.py +0 -0
  343. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  344. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  345. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  346. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  347. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  348. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/log.py +0 -0
  349. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  350. {dls_dodal-1.50.0/src/dodal/devices/zebra → dls_dodal-1.51.0/src/dodal/plan_stubs}/__init__.py +0 -0
  351. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  352. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plan_stubs/data_session.py +0 -0
  353. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  354. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  355. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/__init__.py +0 -0
  356. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/bimorph.py +0 -0
  357. {dls_dodal-1.50.0/src/dodal/plan_stubs → dls_dodal-1.51.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  358. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  359. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/save_panda.py +0 -0
  360. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/scanspec.py +0 -0
  361. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  362. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/plans/wrapped.py +0 -0
  363. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/src/dodal/utils.py +0 -0
  364. {dls_dodal-1.50.0/src/dodal/plans/preprocessors → dls_dodal-1.51.0/system_tests}/__init__.py +0 -0
  365. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/system_tests/test_oav_system.py +0 -0
  366. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/system_tests/test_oav_to_redis_system.py +0 -0
  367. {dls_dodal-1.50.0/system_tests → dls_dodal-1.51.0/tests}/__init__.py +0 -0
  368. {dls_dodal-1.50.0/tests → dls_dodal-1.51.0/tests/beamlines}/__init__.py +0 -0
  369. {dls_dodal-1.50.0/tests/beamlines → dls_dodal-1.51.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  370. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/beamlines/unit_tests/test_b16.py +0 -0
  371. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  372. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
  373. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  374. {dls_dodal-1.50.0/tests/beamlines/unit_tests → dls_dodal-1.51.0/tests/common}/__init__.py +0 -0
  375. {dls_dodal-1.50.0/tests/common → dls_dodal-1.51.0/tests/common/beamlines}/__init__.py +0 -0
  376. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  377. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  378. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  379. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/test_coordination.py +0 -0
  380. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/test_crystal_metadata.py +0 -0
  381. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/test_maths.py +0 -0
  382. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/test_udc_directory_provider.py +0 -0
  383. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/common/test_visit.py +0 -0
  384. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/conftest.py +0 -0
  385. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/constants.py +0 -0
  386. {dls_dodal-1.50.0/tests/common/beamlines → dls_dodal-1.51.0/tests/devices}/__init__.py +0 -0
  387. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  388. {dls_dodal-1.50.0/tests/devices → dls_dodal-1.51.0/tests/devices/i03}/__init__.py +0 -0
  389. {dls_dodal-1.50.0/tests/devices/i03 → dls_dodal-1.51.0/tests/devices/i04}/__init__.py +0 -0
  390. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i04/test_murko_results.py +0 -0
  391. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i04/test_transfocator.py +0 -0
  392. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  393. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  394. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  395. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  396. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  397. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  398. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i10/test_i10Apple2.py +0 -0
  399. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i13_1/test_merlin.py +0 -0
  400. {dls_dodal-1.50.0/tests/devices/i04 → dls_dodal-1.51.0/tests/devices/i19}/__init__.py +0 -0
  401. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i19/test_beamstop.py +0 -0
  402. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i22/test_dcm.py +0 -0
  403. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/i22/test_metadataholder.py +0 -0
  404. {dls_dodal-1.50.0/tests/devices/i19 → dls_dodal-1.51.0/tests/devices/mx_phase1}/__init__.py +0 -0
  405. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  406. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/test_common_dcm.py +0 -0
  407. {dls_dodal-1.50.0/tests/devices/mx_phase1 → dls_dodal-1.51.0/tests/devices/unit_tests}/__init__.py +0 -0
  408. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
  409. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
  410. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  411. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  412. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
  413. {dls_dodal-1.50.0/tests/devices/unit_tests → dls_dodal-1.51.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
  414. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser → dls_dodal-1.51.0/tests/devices/unit_tests/electron_analyser/abstract}/__init__.py +0 -0
  415. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/abstract → dls_dodal-1.51.0/tests/devices/unit_tests/electron_analyser/specs}/__init__.py +0 -0
  416. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/specs/test_detector.py +0 -0
  417. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/specs/test_region.py +0 -0
  418. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/test_util.py +0 -0
  419. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/specs → dls_dodal-1.51.0/tests/devices/unit_tests/electron_analyser/vgscienta}/__init__.py +0 -0
  420. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_detector.py +0 -0
  421. {dls_dodal-1.50.0/tests/devices/unit_tests/electron_analyser/vgscienta → dls_dodal-1.51.0/tests/devices/unit_tests/i03}/__init__.py +0 -0
  422. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i03/test_dcm.py +0 -0
  423. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i03/test_undulator_dcm.py +0 -0
  424. {dls_dodal-1.50.0/tests/devices/unit_tests/i03 → dls_dodal-1.51.0/tests/devices/unit_tests/i09}/__init__.py +0 -0
  425. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
  426. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  427. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
  428. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
  429. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
  430. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  431. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
  432. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
  433. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
  434. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  435. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  436. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
  437. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  438. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
  439. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
  440. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
  441. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
  442. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  443. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  444. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  445. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
  446. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
  447. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
  448. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  449. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
  450. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  451. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  452. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  453. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  454. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_eiger.py +0 -0
  455. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
  456. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
  457. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
  458. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  459. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
  460. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  461. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  462. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_odin.py +0 -0
  463. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_positioner.py +0 -0
  464. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_status.py +0 -0
  465. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  466. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
  467. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_thawer.py +0 -0
  468. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_utils.py +0 -0
  469. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  470. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
  471. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
  472. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_zebra.py +0 -0
  473. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
  474. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
  475. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  476. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/util/__init__.py +0 -0
  477. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  478. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  479. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
  480. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  481. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline.py +0 -0
  482. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_broken_dependency.py +0 -0
  483. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_dependencies.py +0 -0
  484. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  485. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  486. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_beamline_some_devices_working.py +0 -0
  487. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_device_factory_beamline.py +0 -0
  488. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_zocalo/README.rst +0 -0
  489. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_zocalo/__init__.py +0 -0
  490. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_zocalo/__main__.py +0 -0
  491. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  492. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plan_stubs/test_data_session.py +0 -0
  493. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  494. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  495. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  496. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_bimorph.py +0 -0
  497. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_compliance.py +0 -0
  498. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  499. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_scanspec.py +0 -0
  500. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  501. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/plans/test_wrapped.py +0 -0
  502. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  503. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/bad_beamlineParameters +0 -0
  504. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
  505. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
  506. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/i04_beamlineParameters +0 -0
  507. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  508. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  509. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  510. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  511. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  512. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  513. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  514. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/topup_long_delay.txt +0 -0
  515. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_data/topup_short_params.txt +0 -0
  516. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/test_utils.py +0 -0
  517. {dls_dodal-1.50.0 → dls_dodal-1.51.0}/tests/unit_tests/__init__.py +0 -0
  518. {dls_dodal-1.50.0 → dls_dodal-1.51.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
 
@@ -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.51.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,10 +208,9 @@ 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
@@ -232,9 +231,9 @@ Requires-Dist: numpy
232
231
  Requires-Dist: aiofiles
233
232
  Requires-Dist: aiohttp
234
233
  Requires-Dist: redis
235
- Requires-Dist: deepdiff
236
234
  Requires-Dist: scanspec>=0.7.3
237
235
  Requires-Dist: event-model>=1.23
236
+ Requires-Dist: pyzmq==26.3.0
238
237
  Provides-Extra: dev
239
238
  Requires-Dist: black; extra == "dev"
240
239
  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
  ]
@@ -31,15 +30,15 @@ dependencies = [
31
30
  "aiofiles",
32
31
  "aiohttp",
33
32
  "redis",
34
- "deepdiff",
35
33
  "scanspec>=0.7.3",
36
- "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
34
+ "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
35
+ "pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
37
36
  ]
38
37
 
39
38
  dynamic = ["version"]
40
39
  license.file = "LICENSE"
41
40
  readme = "README.md"
42
- requires-python = ">=3.10"
41
+ requires-python = ">=3.11"
43
42
 
44
43
  [project.optional-dependencies]
45
44
  dev = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.50.0
3
+ Version: 1.51.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,10 +208,9 @@ 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
@@ -232,9 +231,9 @@ Requires-Dist: numpy
232
231
  Requires-Dist: aiofiles
233
232
  Requires-Dist: aiohttp
234
233
  Requires-Dist: redis
235
- Requires-Dist: deepdiff
236
234
  Requires-Dist: scanspec>=0.7.3
237
235
  Requires-Dist: event-model>=1.23
236
+ Requires-Dist: pyzmq==26.3.0
238
237
  Provides-Extra: dev
239
238
  Requires-Dist: black; extra == "dev"
240
239
  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
@@ -135,7 +136,6 @@ src/dodal/common/beamlines/beamline_utils.py
135
136
  src/dodal/common/beamlines/device_helpers.py
136
137
  src/dodal/devices/CTAB.py
137
138
  src/dodal/devices/__init__.py
138
- src/dodal/devices/adsim.py
139
139
  src/dodal/devices/aperture.py
140
140
  src/dodal/devices/aperturescatterguard.py
141
141
  src/dodal/devices/apple2_undulator.py
@@ -162,7 +162,6 @@ src/dodal/devices/pressure_jump_cell.py
162
162
  src/dodal/devices/qbpm.py
163
163
  src/dodal/devices/robot.py
164
164
  src/dodal/devices/s4_slit_gaps.py
165
- src/dodal/devices/scatterguard.py
166
165
  src/dodal/devices/scintillator.py
167
166
  src/dodal/devices/slits.py
168
167
  src/dodal/devices/smargon.py
@@ -182,6 +181,10 @@ src/dodal/devices/areadetector/plugins/MJPG.py
182
181
  src/dodal/devices/attenuator/attenuator.py
183
182
  src/dodal/devices/attenuator/filter.py
184
183
  src/dodal/devices/attenuator/filter_selections.py
184
+ src/dodal/devices/b07/__init__.py
185
+ src/dodal/devices/b07/grating.py
186
+ src/dodal/devices/b07_1/__init__.py
187
+ src/dodal/devices/b07_1/grating.py
185
188
  src/dodal/devices/b16/__init__.py
186
189
  src/dodal/devices/b16/detector.py
187
190
  src/dodal/devices/current_amplifiers/__init__.py
@@ -222,6 +225,9 @@ src/dodal/devices/i04/__init__.py
222
225
  src/dodal/devices/i04/constants.py
223
226
  src/dodal/devices/i04/murko_results.py
224
227
  src/dodal/devices/i04/transfocator.py
228
+ src/dodal/devices/i09/__init__.py
229
+ src/dodal/devices/i09/dcm.py
230
+ src/dodal/devices/i09/grating.py
225
231
  src/dodal/devices/i10/__init__.py
226
232
  src/dodal/devices/i10/diagnostics.py
227
233
  src/dodal/devices/i10/i10_apple2.py
@@ -236,8 +242,6 @@ src/dodal/devices/i13_1/merlin.py
236
242
  src/dodal/devices/i13_1/merlin_controller.py
237
243
  src/dodal/devices/i18/KBMirror.py
238
244
  src/dodal/devices/i18/diode.py
239
- src/dodal/devices/i18/table.py
240
- src/dodal/devices/i18/thor_labs_stage.py
241
245
  src/dodal/devices/i19/__init__.py
242
246
  src/dodal/devices/i19/beamstop.py
243
247
  src/dodal/devices/i19/blueapi_device.py
@@ -254,7 +258,6 @@ src/dodal/devices/i24/beamstop.py
254
258
  src/dodal/devices/i24/dcm.py
255
259
  src/dodal/devices/i24/dual_backlight.py
256
260
  src/dodal/devices/i24/focus_mirrors.py
257
- src/dodal/devices/i24/i24_detector_motion.py
258
261
  src/dodal/devices/i24/pilatus_metadata.py
259
262
  src/dodal/devices/i24/pmac.py
260
263
  src/dodal/devices/i24/vgonio.py
@@ -272,11 +275,11 @@ src/dodal/devices/oav/snapshots/grid_overlay.py
272
275
  src/dodal/devices/oav/snapshots/snapshot.py
273
276
  src/dodal/devices/oav/snapshots/snapshot_image_processing.py
274
277
  src/dodal/devices/oav/snapshots/snapshot_with_grid.py
278
+ src/dodal/devices/p60/__init__.py
279
+ src/dodal/devices/p60/lab_xray_source.py
275
280
  src/dodal/devices/p99/__init__.py
276
281
  src/dodal/devices/p99/andor2_point.py
277
282
  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
283
  src/dodal/devices/util/__init__.py
281
284
  src/dodal/devices/util/adjuster_plans.py
282
285
  src/dodal/devices/util/epics_util.py
@@ -344,6 +347,7 @@ tests/common/beamlines/test_device_instantiation.py
344
347
  tests/devices/__init__.py
345
348
  tests/devices/test_common_dcm.py
346
349
  tests/devices/test_diamond_filter.py
350
+ tests/devices/test_motors.py
347
351
  tests/devices/aithre_lasershaping/test_goniometer.py
348
352
  tests/devices/i03/__init__.py
349
353
  tests/devices/i04/__init__.py
@@ -358,8 +362,6 @@ tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl
358
362
  tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl
359
363
  tests/devices/i13_1/test_merlin.py
360
364
  tests/devices/i18/test_kb_mirror.py
361
- tests/devices/i18/test_table.py
362
- tests/devices/i18/test_thor_labs_stage.py
363
365
  tests/devices/i19/__init__.py
364
366
  tests/devices/i19/test_beamstop.py
365
367
  tests/devices/i19/test_shutter.py
@@ -368,7 +370,6 @@ tests/devices/i22/test_fswitch.py
368
370
  tests/devices/i22/test_metadataholder.py
369
371
  tests/devices/mx_phase1/__init__.py
370
372
  tests/devices/mx_phase1/test_beamstop.py
371
- tests/devices/training_rig/test_sample_stage.py
372
373
  tests/devices/unit_tests/__init__.py
373
374
  tests/devices/unit_tests/test_OAVCentring.json
374
375
  tests/devices/unit_tests/test_aperture.py
@@ -436,6 +437,8 @@ tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py
436
437
  tests/devices/unit_tests/i03/__init__.py
437
438
  tests/devices/unit_tests/i03/test_dcm.py
438
439
  tests/devices/unit_tests/i03/test_undulator_dcm.py
440
+ tests/devices/unit_tests/i09/__init__.py
441
+ tests/devices/unit_tests/i09/test_dcm.py
439
442
  tests/devices/unit_tests/i24/__init__.py
440
443
  tests/devices/unit_tests/i24/test_dual_backlight.py
441
444
  tests/devices/unit_tests/i24/test_focus_mirrors.py
@@ -453,6 +456,7 @@ tests/devices/unit_tests/oav/test_snapshot_image_processing.py
453
456
  tests/devices/unit_tests/oav/test_snapshots.py
454
457
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py
455
458
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py
459
+ tests/devices/unit_tests/p60/test_lab_xray_source.py
456
460
  tests/devices/unit_tests/p99/test_p99_stage.py
457
461
  tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters
458
462
  tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt
@@ -16,9 +16,9 @@ numpy
16
16
  aiofiles
17
17
  aiohttp
18
18
  redis
19
- deepdiff
20
19
  scanspec>=0.7.3
21
20
  event-model>=1.23
21
+ pyzmq==26.3.0
22
22
 
23
23
  [dev]
24
24
  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.51.0'
21
+ __version_tuple__ = version_tuple = (1, 51, 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()
@@ -11,7 +11,7 @@ from dodal.common.beamlines.beamline_utils import (
11
11
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
12
12
  from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
13
13
  from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
14
- from dodal.devices.motors import XYZPositioner
14
+ from dodal.devices.motors import XYZStage
15
15
  from dodal.devices.synchrotron import Synchrotron
16
16
  from dodal.log import set_beamline as set_log_beamline
17
17
  from dodal.utils import BeamlinePrefix
@@ -42,8 +42,13 @@ https://argocd.diamond.ac.uk/applications?showFavorites=false&proj=&sync=&autoSy
42
42
 
43
43
  @device_factory()
44
44
  def panda() -> HDFPanda:
45
+ """Provides triggering of the detectors.
46
+
47
+ Returns:
48
+ HDFPanda: The HDF5-based detector trigger device.
49
+ """
45
50
  return HDFPanda(
46
- f"{PREFIX.beamline_prefix}-EA-PANDA-01:",
51
+ f"{PREFIX.beamline_prefix}-MO-PANDA-01:",
47
52
  path_provider=get_path_provider(),
48
53
  )
49
54
 
@@ -54,7 +59,16 @@ def synchrotron() -> Synchrotron:
54
59
 
55
60
 
56
61
  @device_factory()
57
- def manta() -> AravisDetector:
62
+ def oav() -> AravisDetector:
63
+ """The Manta camera for the spectroscopy experiment.
64
+
65
+ Looks at the spectroscopy screen and visualises light
66
+ transmitted through the sample after it has gone through
67
+ the diffraction grating.
68
+
69
+ Returns:
70
+ AravisDetector: The spectroscopy camera device.
71
+ """
58
72
  return AravisDetector(
59
73
  f"{PREFIX.beamline_prefix}-DI-DCAM-02:",
60
74
  path_provider=get_path_provider(),
@@ -64,7 +78,29 @@ def manta() -> AravisDetector:
64
78
 
65
79
 
66
80
  @device_factory()
67
- def sample_stage() -> XYZPositioner:
68
- return XYZPositioner(
81
+ def sample_det() -> AravisDetector:
82
+ """The Mako camera for the imaging experiment.
83
+
84
+ Looks at the on-axis viewing screen.
85
+
86
+ Returns:
87
+ AravisDetector: The imaging camera device.
88
+ """
89
+ return AravisDetector(
90
+ f"{PREFIX.beamline_prefix}-DI-DCAM-01:",
91
+ path_provider=get_path_provider(),
92
+ drv_suffix=CAM_SUFFIX,
93
+ fileio_suffix=HDF5_SUFFIX,
94
+ )
95
+
96
+
97
+ @device_factory()
98
+ def sample_stage() -> XYZStage:
99
+ """An XYZ stage holding the sample.
100
+
101
+ Returns:
102
+ XYZStage: The XYZ sample stage device.
103
+ """
104
+ return XYZStage(
69
105
  f"{PREFIX.beamline_prefix}-MO-PPMAC-01:",
70
106
  )
@@ -2,7 +2,9 @@ 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.b07 import B07BGrating
5
6
  from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
7
+ from dodal.devices.pgm import PGM
6
8
  from dodal.devices.synchrotron import Synchrotron
7
9
  from dodal.log import set_beamline as set_log_beamline
8
10
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -18,6 +20,14 @@ def synchrotron() -> Synchrotron:
18
20
  return Synchrotron()
19
21
 
20
22
 
23
+ @device_factory()
24
+ def pgm() -> PGM:
25
+ return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=B07BGrating)
26
+
27
+
21
28
  @device_factory()
22
29
  def analyser_driver() -> SpecsAnalyserDriverIO:
23
- return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
30
+ return SpecsAnalyserDriverIO(
31
+ f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:",
32
+ {"source1": pgm().energy.user_readback},
33
+ )