dls-dodal 1.57.0__tar.gz → 1.59.1__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 (574) hide show
  1. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/PKG-INFO +2 -1
  2. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/write-tests.md +30 -0
  3. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/pyproject.toml +1 -0
  4. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/PKG-INFO +2 -1
  5. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/SOURCES.txt +27 -0
  6. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/requires.txt +1 -0
  7. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/_version.py +3 -3
  8. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b07.py +10 -5
  9. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b07_1.py +10 -5
  10. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b21.py +22 -0
  11. dls_dodal-1.59.1/src/dodal/beamlines/i02_1.py +117 -0
  12. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i03.py +7 -4
  13. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i04.py +20 -3
  14. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i09.py +10 -9
  15. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i09_1.py +10 -5
  16. dls_dodal-1.59.1/src/dodal/beamlines/i10-1.py +25 -0
  17. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i10.py +17 -1
  18. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i11.py +0 -17
  19. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i19_2.py +20 -0
  20. dls_dodal-1.59.1/src/dodal/beamlines/i21.py +27 -0
  21. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i22.py +12 -2
  22. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i24.py +32 -3
  23. dls_dodal-1.59.1/src/dodal/beamlines/k07.py +31 -0
  24. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/p60.py +10 -9
  25. dls_dodal-1.59.1/src/dodal/common/beamlines/commissioning_mode.py +33 -0
  26. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/apple2_undulator.py +18 -142
  27. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/attenuator/attenuator.py +48 -2
  28. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/attenuator/filter.py +3 -0
  29. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/attenuator/filter_selections.py +26 -0
  30. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/baton.py +4 -0
  31. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/eiger.py +2 -1
  32. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/__init__.py +4 -0
  33. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +30 -18
  34. dls_dodal-1.59.1/src/dodal/devices/electron_analyser/energy_sources.py +101 -0
  35. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/specs/detector.py +6 -6
  36. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/specs/driver_io.py +7 -15
  37. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/vgscienta/detector.py +6 -6
  38. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +7 -14
  39. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/fast_grid_scan.py +130 -64
  40. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/focusing_mirror.py +30 -0
  41. dls_dodal-1.59.1/src/dodal/devices/i02_1/fast_grid_scan.py +61 -0
  42. dls_dodal-1.59.1/src/dodal/devices/i02_1/sample_motors.py +19 -0
  43. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i04/murko_results.py +69 -23
  44. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/i10_apple2.py +282 -140
  45. dls_dodal-1.59.1/src/dodal/devices/i19/backlight.py +17 -0
  46. dls_dodal-1.59.1/src/dodal/devices/i21/__init__.py +3 -0
  47. dls_dodal-1.59.1/src/dodal/devices/i21/enums.py +8 -0
  48. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i22/nxsas.py +2 -0
  49. dls_dodal-1.59.1/src/dodal/devices/i24/commissioning_jungfrau.py +114 -0
  50. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/smargon.py +0 -56
  51. dls_dodal-1.59.1/src/dodal/devices/temperture_controller/__init__.py +3 -0
  52. dls_dodal-1.59.1/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +204 -0
  53. dls_dodal-1.59.1/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +112 -0
  54. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/tetramm.py +38 -16
  55. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/undulator.py +13 -9
  56. dls_dodal-1.59.1/src/dodal/devices/v2f.py +39 -0
  57. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/xbpm_feedback.py +12 -6
  58. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zebra/zebra.py +1 -0
  59. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zebra/zebra_constants_mapping.py +1 -1
  60. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/parameters/experiment_parameter_base.py +1 -5
  61. dls_dodal-1.59.1/tests/common/beamlines/test_commissioning_mode.py +35 -0
  62. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_watcher_utils.py +14 -0
  63. dls_dodal-1.59.1/tests/conftest.py +133 -0
  64. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/abstract/test_base_detector.py +4 -3
  65. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +24 -8
  66. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/conftest.py +28 -17
  67. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/specs/test_detector.py +6 -3
  68. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/specs/test_driver_io.py +14 -21
  69. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/test_detector.py +4 -3
  70. dls_dodal-1.59.1/tests/devices/electron_analyser/test_energy_sources.py +93 -0
  71. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/vgscienta/test_detector.py +6 -3
  72. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +21 -22
  73. dls_dodal-1.59.1/tests/devices/i02_1/test_fast_grid_scan.py +23 -0
  74. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i03/test_undulator_dcm.py +29 -12
  75. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i04/test_murko_results.py +125 -11
  76. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_i10Apple2.py +106 -73
  77. dls_dodal-1.59.1/tests/devices/i19/test_backlight.py +18 -0
  78. dls_dodal-1.59.1/tests/devices/i24/test_commissioning_jungfrau.py +66 -0
  79. dls_dodal-1.59.1/tests/devices/temperature_controller/__init__.py +0 -0
  80. dls_dodal-1.59.1/tests/devices/temperature_controller/lakeshore/__init__.py +0 -0
  81. dls_dodal-1.59.1/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +136 -0
  82. dls_dodal-1.59.1/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +81 -0
  83. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_attenuator.py +44 -1
  84. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_baton.py +1 -0
  85. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_gridscan.py +65 -75
  86. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_tetramm.py +41 -7
  87. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_undulator.py +49 -0
  88. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_xbpm_feedback.py +26 -1
  89. dls_dodal-1.59.1/tests/devices/util/__init__.py +0 -0
  90. dls_dodal-1.59.1/tests/fake_zocalo/__init__.py +0 -0
  91. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_zocalo/__main__.py +1 -1
  92. dls_dodal-1.59.1/tests/plan_stubs/__init__.py +0 -0
  93. dls_dodal-1.57.0/src/dodal/beamlines/i02_1.py +0 -37
  94. dls_dodal-1.57.0/tests/conftest.py +0 -63
  95. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.copier-answers.yml +0 -0
  96. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.devcontainer/devcontainer.json +0 -0
  97. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/CODEOWNERS +0 -0
  98. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/CONTRIBUTING.md +0 -0
  99. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  100. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/actions/install_requirements/action.yml +0 -0
  101. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/dependabot.yml +0 -0
  102. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/pages/index.html +0 -0
  103. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/pages/make_switcher.py +0 -0
  104. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/scripts/check_test_durations.py +0 -0
  105. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_dist.yml +0 -0
  106. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_docs.yml +0 -0
  107. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_pypi.yml +0 -0
  108. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_release.yml +0 -0
  109. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_test.yml +0 -0
  110. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/_tox.yml +0 -0
  111. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/ci.yml +0 -0
  112. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.github/workflows/periodic.yml +0 -0
  113. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.gitignore +0 -0
  114. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.pre-commit-config.yaml +0 -0
  115. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.vscode/extensions.json +0 -0
  116. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.vscode/launch.json +0 -0
  117. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.vscode/settings.json +0 -0
  118. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/.vscode/tasks.json +0 -0
  119. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/Dockerfile +0 -0
  120. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/LICENSE +0 -0
  121. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/README.md +0 -0
  122. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/catalog-info.yaml +0 -0
  123. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/conftest.py +0 -0
  124. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/_templates/autosummary/class.rst +0 -0
  125. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/_templates/autosummary/module.rst +0 -0
  126. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/_templates/custom-module-template.rst +0 -0
  127. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/assets/where-to-put-dodal-logic.png +0 -0
  128. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/assets/zocalo.png +0 -0
  129. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/conf.py +0 -0
  130. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  131. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  132. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0003-codeowners.md +0 -0
  133. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  134. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  135. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
  136. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions/COPYME +0 -0
  137. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/decisions.md +0 -0
  138. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/reviews.md +0 -0
  139. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/umls/apple2_design.png +0 -0
  140. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations/umls/i10_id_design.png +0 -0
  141. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/explanations.md +0 -0
  142. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/genindex.md +0 -0
  143. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/build-docs.md +0 -0
  144. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/contribute.md +0 -0
  145. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/coverage.md +0 -0
  146. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/create-beamline.md +0 -0
  147. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/create-device.md +0 -0
  148. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/dev-install.md +0 -0
  149. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/excalidraw.md +0 -0
  150. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/external-io-devices.md +0 -0
  151. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/lint.md +0 -0
  152. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/lock-requirements.md +0 -0
  153. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/make-release.md +0 -0
  154. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/move-code.md +0 -0
  155. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/pypi.md +0 -0
  156. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/run-tests.md +0 -0
  157. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/static-analysis.md +0 -0
  158. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/update-template.md +0 -0
  159. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to/zocalo.md +0 -0
  160. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/how-to.md +0 -0
  161. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/images/dls-logo.svg +0 -0
  162. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/images/excalidraw-example.svg +0 -0
  163. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/index.md +0 -0
  164. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/reference/api.md +0 -0
  165. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/reference/device-standards.md +0 -0
  166. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/reference/standards.md +0 -0
  167. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/reference.md +0 -0
  168. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/tutorials/get_started.md +0 -0
  169. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/tutorials/installation.md +0 -0
  170. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/docs/tutorials.md +0 -0
  171. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/pull_request_template.md +0 -0
  172. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/setup.cfg +0 -0
  173. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/__init__.py +0 -0
  174. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  175. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  176. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dls_dodal.egg-info/top_level.txt +0 -0
  177. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/__init__.py +0 -0
  178. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/__main__.py +0 -0
  179. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  180. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamline_specific_utils/i03.py +0 -0
  181. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamline_specific_utils/i05_shared.py +0 -0
  182. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/README.md +0 -0
  183. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/__init__.py +0 -0
  184. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/adsim.py +0 -0
  185. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/aithre.py +0 -0
  186. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b01_1.py +0 -0
  187. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b16.py +0 -0
  188. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/b18.py +0 -0
  189. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i05.py +0 -0
  190. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i05_1.py +0 -0
  191. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i09_2.py +0 -0
  192. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i13_1.py +0 -0
  193. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i17.py +0 -0
  194. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i18.py +0 -0
  195. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i19_1.py +0 -0
  196. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i19_optics.py +0 -0
  197. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i20_1.py +0 -0
  198. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/i23.py +0 -0
  199. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/k11.py +0 -0
  200. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/p38.py +0 -0
  201. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/p45.py +0 -0
  202. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/p99.py +0 -0
  203. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/beamlines/training_rig.py +0 -0
  204. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/cli.py +0 -0
  205. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/__init__.py +0 -0
  206. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/beamlines/__init__.py +0 -0
  207. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  208. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  209. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/beamlines/device_helpers.py +0 -0
  210. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/coordination.py +0 -0
  211. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/crystal_metadata.py +0 -0
  212. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/data_util.py +0 -0
  213. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/device_utils.py +0 -0
  214. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/enums.py +0 -0
  215. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/maths.py +0 -0
  216. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/types.py +0 -0
  217. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/udc_directory_provider.py +0 -0
  218. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/visit.py +0 -0
  219. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/common/watcher_utils.py +1 -1
  220. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/__init__.py +0 -0
  221. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
  222. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  223. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  224. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/aperture.py +0 -0
  225. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/aperturescatterguard.py +0 -0
  226. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  227. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  228. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b07/__init__.py +0 -0
  229. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b07/enums.py +0 -0
  230. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b07_1/__init__.py +0 -0
  231. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b07_1/ccmc.py +0 -0
  232. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b07_1/enums.py +0 -0
  233. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b16/__init__.py +0 -0
  234. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/b16/detector.py +0 -0
  235. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/backlight.py +0 -0
  236. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/bimorph_mirror.py +0 -0
  237. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/collimation_table.py +0 -0
  238. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/common_dcm.py +0 -0
  239. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/controllers.py +0 -0
  240. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/cryostream.py +0 -0
  241. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  242. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  243. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  244. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  245. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  246. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  247. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/__init__.py +0 -0
  248. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  249. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  250. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/det_resolution.py +0 -0
  251. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/detector.py +0 -0
  252. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/detector/detector_motion.py +0 -0
  253. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/diamond_filter.py +0 -0
  254. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/eiger_odin.py +0 -0
  255. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  256. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  257. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
  258. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
  259. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/detector.py +0 -0
  260. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/enums.py +0 -0
  261. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  262. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  263. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
  264. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/types.py +0 -0
  265. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/util.py +0 -0
  266. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  267. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  268. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
  269. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/eurotherm.py +0 -0
  270. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  271. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/flux.py +0 -0
  272. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/hutch_shutter.py +0 -0
  273. {dls_dodal-1.57.0/src/dodal/devices/i10 → dls_dodal-1.59.1/src/dodal/devices/i02_1}/__init__.py +0 -0
  274. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i03/__init__.py +0 -0
  275. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i03/dcm.py +0 -0
  276. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  277. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i04/__init__.py +0 -0
  278. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i04/constants.py +0 -0
  279. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i04/transfocator.py +0 -0
  280. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i05/__init__.py +0 -0
  281. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i05/enums.py +0 -0
  282. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i09/__init__.py +0 -0
  283. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i09/dcm.py +0 -0
  284. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i09/enums.py +0 -0
  285. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i09_1/__init__.py +0 -0
  286. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i09_1/enums.py +0 -0
  287. {dls_dodal-1.57.0/src/dodal/devices/i13_1 → dls_dodal-1.59.1/src/dodal/devices/i10}/__init__.py +0 -0
  288. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/diagnostics.py +0 -0
  289. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  290. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/mirrors.py +0 -0
  291. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  292. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  293. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  294. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i10/slits.py +0 -0
  295. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
  296. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i11/diff_stages.py +0 -0
  297. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i11/mythen.py +0 -0
  298. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i11/nx100robot.py +0 -0
  299. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i11/spinner.py +0 -0
  300. {dls_dodal-1.57.0/src/dodal/devices/i19 → dls_dodal-1.59.1/src/dodal/devices/i13_1}/__init__.py +0 -0
  301. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i13_1/merlin.py +0 -0
  302. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  303. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i18/KBMirror.py +0 -0
  304. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i18/diode.py +0 -0
  305. {dls_dodal-1.57.0/src/dodal/devices/i20_1 → dls_dodal-1.59.1/src/dodal/devices/i19}/__init__.py +0 -0
  306. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i19/beamstop.py +0 -0
  307. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i19/blueapi_device.py +0 -0
  308. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i19/diffractometer.py +0 -0
  309. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i19/hutch_access.py +0 -0
  310. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i19/shutter.py +0 -0
  311. {dls_dodal-1.57.0/src/dodal/devices/i24 → dls_dodal-1.59.1/src/dodal/devices/i20_1}/__init__.py +0 -0
  312. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i22/dcm.py +0 -0
  313. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i22/fswitch.py +0 -0
  314. {dls_dodal-1.57.0/src/dodal/devices/oav → dls_dodal-1.59.1/src/dodal/devices/i24}/__init__.py +0 -0
  315. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/aperture.py +0 -0
  316. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/beam_center.py +0 -0
  317. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/beamstop.py +0 -0
  318. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/dcm.py +0 -0
  319. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/dual_backlight.py +0 -0
  320. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  321. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/pmac.py +0 -0
  322. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/i24/vgonio.py +0 -0
  323. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/ipin.py +0 -0
  324. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/linkam3.py +0 -0
  325. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/motors.py +0 -0
  326. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  327. {dls_dodal-1.57.0/src/dodal/devices/p99 → dls_dodal-1.59.1/src/dodal/devices/oav}/__init__.py +0 -0
  328. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/oav_calculations.py +0 -0
  329. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/oav_detector.py +0 -0
  330. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/oav_parameters.py +0 -0
  331. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  332. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  333. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  334. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  335. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  336. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  337. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  338. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  339. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/oav/utils.py +0 -0
  340. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p45.py +0 -0
  341. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p60/__init__.py +0 -0
  342. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p60/enums.py +0 -0
  343. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p60/lab_xray_source.py +0 -0
  344. {dls_dodal-1.57.0/src/dodal/devices/util → dls_dodal-1.59.1/src/dodal/devices/p99}/__init__.py +0 -0
  345. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p99/andor2_point.py +0 -0
  346. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/p99/sample_stage.py +0 -0
  347. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/pgm.py +0 -0
  348. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/positioner.py +0 -0
  349. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/pressure_jump_cell.py +0 -0
  350. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/qbpm.py +0 -0
  351. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/robot.py +0 -0
  352. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/s4_slit_gaps.py +0 -0
  353. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/scintillator.py +0 -0
  354. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/slits.py +0 -0
  355. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/status.py +0 -0
  356. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/synchrotron.py +0 -0
  357. {dls_dodal-1.57.0/src/dodal/devices/zebra → dls_dodal-1.59.1/src/dodal/devices/temperture_controller/lakeshore}/__init__.py +0 -0
  358. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/thawer.py +0 -0
  359. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/turbo_slit.py +0 -0
  360. {dls_dodal-1.57.0/src/dodal/plan_stubs → dls_dodal-1.59.1/src/dodal/devices/util}/__init__.py +0 -0
  361. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/util/adjuster_plans.py +0 -0
  362. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/util/epics_util.py +0 -0
  363. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/util/lookup_tables.py +0 -0
  364. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  365. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/webcam.py +0 -0
  366. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/xspress3/xspress3.py +0 -0
  367. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  368. {dls_dodal-1.57.0/src/dodal/plans/preprocessors → dls_dodal-1.59.1/src/dodal/devices/zebra}/__init__.py +0 -0
  369. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  370. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zocalo/__init__.py +0 -0
  371. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  372. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  373. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  374. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/log.py +0 -0
  375. {dls_dodal-1.57.0/system_tests → dls_dodal-1.59.1/src/dodal/plan_stubs}/__init__.py +0 -0
  376. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plan_stubs/check_topup.py +0 -0
  377. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plan_stubs/data_session.py +0 -0
  378. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plan_stubs/motor_utils.py +0 -0
  379. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plan_stubs/wrapped.py +0 -0
  380. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/__init__.py +0 -0
  381. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/bimorph.py +0 -0
  382. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -0
  383. {dls_dodal-1.57.0/tests → dls_dodal-1.59.1/src/dodal/plans/preprocessors}/__init__.py +0 -0
  384. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  385. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/save_panda.py +0 -0
  386. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/scanspec.py +0 -0
  387. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/verify_undulator_gap.py +0 -0
  388. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/plans/wrapped.py +0 -0
  389. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/testing/__init__.py +0 -0
  390. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/testing/electron_analyser/__init__.py +0 -0
  391. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
  392. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/testing/setup.py +0 -0
  393. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/src/dodal/utils.py +0 -0
  394. {dls_dodal-1.57.0/tests/beamlines → dls_dodal-1.59.1/system_tests}/__init__.py +0 -0
  395. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/system_tests/test_adsim.py +0 -0
  396. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/system_tests/test_cli.py +0 -0
  397. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/system_tests/test_oav_system.py +0 -0
  398. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/system_tests/test_oav_to_redis_system.py +0 -0
  399. {dls_dodal-1.57.0/tests/common → dls_dodal-1.59.1/tests}/__init__.py +0 -0
  400. {dls_dodal-1.57.0/tests/common → dls_dodal-1.59.1/tests}/beamlines/__init__.py +0 -0
  401. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/beamlines/test_b16.py +0 -0
  402. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/beamlines/test_i03.py +0 -0
  403. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/beamlines/test_i24.py +0 -0
  404. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/beamlines/test_mapping.py +0 -0
  405. {dls_dodal-1.57.0/tests/devices → dls_dodal-1.59.1/tests/common}/__init__.py +0 -0
  406. {dls_dodal-1.57.0/tests/devices/electron_analyser → dls_dodal-1.59.1/tests/common/beamlines}/__init__.py +0 -0
  407. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  408. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/beamlines/test_beamline_utils.py +0 -0
  409. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/beamlines/test_device_instantiation.py +0 -0
  410. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_coordination.py +0 -0
  411. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_crystal_metadata.py +0 -0
  412. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_maths.py +0 -0
  413. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_udc_directory_provider.py +0 -0
  414. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/common/test_visit.py +0 -0
  415. {dls_dodal-1.57.0/tests/devices/electron_analyser/abstract → dls_dodal-1.59.1/tests/devices}/__init__.py +0 -0
  416. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  417. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/b07_1/test_ccmc.py +0 -0
  418. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/current_amplifier/test_femto.py +0 -0
  419. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/current_amplifier/test_sr570.py +0 -0
  420. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/detector/test_data/__init__.py +0 -0
  421. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
  422. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/detector/test_det_dim_constants.py +0 -0
  423. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/detector/test_det_resolution.py +0 -0
  424. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/detector/test_detector.py +0 -0
  425. {dls_dodal-1.57.0/tests/devices/electron_analyser/specs → dls_dodal-1.59.1/tests/devices/electron_analyser}/__init__.py +0 -0
  426. {dls_dodal-1.57.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.59.1/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
  427. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
  428. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
  429. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
  430. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
  431. {dls_dodal-1.57.0/tests/devices/i03 → dls_dodal-1.59.1/tests/devices/electron_analyser/specs}/__init__.py +0 -0
  432. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/specs/test_region.py +0 -0
  433. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
  434. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
  435. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
  436. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/test_util.py +0 -0
  437. {dls_dodal-1.57.0/tests/devices/i04 → dls_dodal-1.59.1/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
  438. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
  439. {dls_dodal-1.57.0/tests/devices/i09 → dls_dodal-1.59.1/tests/devices/i02_1}/__init__.py +0 -0
  440. {dls_dodal-1.57.0/tests/devices/i19 → dls_dodal-1.59.1/tests/devices/i03}/__init__.py +0 -0
  441. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i03/test_dcm.py +0 -0
  442. {dls_dodal-1.57.0/tests/devices/i24 → dls_dodal-1.59.1/tests/devices/i04}/__init__.py +0 -0
  443. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i04/test_transfocator.py +0 -0
  444. {dls_dodal-1.57.0/tests/devices/mx_phase1 → dls_dodal-1.59.1/tests/devices/i09}/__init__.py +0 -0
  445. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i09/test_dcm.py +0 -0
  446. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
  447. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
  448. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/__init__.py +0 -0
  449. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  450. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  451. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  452. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  453. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i11/test_i11devices.py +0 -0
  454. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i11/test_mythen.py +0 -0
  455. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i13_1/test_merlin.py +0 -0
  456. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i18/test_kb_mirror.py +0 -0
  457. {dls_dodal-1.57.0/tests/devices/oav → dls_dodal-1.59.1/tests/devices/i19}/__init__.py +0 -0
  458. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i19/test_beamstop.py +0 -0
  459. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i19/test_diffractometer.py +0 -0
  460. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i19/test_shutter.py +0 -0
  461. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i22/test_dcm.py +0 -0
  462. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i22/test_fswitch.py +0 -0
  463. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i22/test_metadataholder.py +0 -0
  464. {dls_dodal-1.57.0/tests/devices/util → dls_dodal-1.59.1/tests/devices/i24}/__init__.py +0 -0
  465. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i24/test_dual_backlight.py +0 -0
  466. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i24/test_focus_mirrors.py +0 -0
  467. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i24/test_pmac.py +0 -0
  468. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/i24/test_vgonio.py +0 -0
  469. {dls_dodal-1.57.0/tests/fake_zocalo → dls_dodal-1.59.1/tests/devices/mx_phase1}/__init__.py +0 -0
  470. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  471. {dls_dodal-1.57.0/tests/plan_stubs → dls_dodal-1.59.1/tests/devices/oav}/__init__.py +0 -0
  472. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/conftest.py +0 -0
  473. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -0
  474. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  475. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_data/__init__.py +0 -0
  476. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
  477. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
  478. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
  479. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_grid_overlay.py +0 -0
  480. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_oav.py +0 -0
  481. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_oav_parameters.py +0 -0
  482. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
  483. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_oav_utils.py +0 -0
  484. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
  485. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/oav/test_snapshots.py +0 -0
  486. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/p60/test_lab_xray_source.py +0 -0
  487. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/p99/test_p99_stage.py +0 -0
  488. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test.png +0 -0
  489. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_aperture.py +0 -0
  490. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_aperture_scatterguard.py +0 -0
  491. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_apple2_undulator.py +0 -0
  492. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_backlight.py +0 -0
  493. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_bart_robot.py +0 -0
  494. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_beam_converter.py +0 -0
  495. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_bimorph_mirror.py +0 -0
  496. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_common_dcm.py +0 -0
  497. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_controllers.py +0 -0
  498. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/__init__.py +0 -0
  499. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
  500. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
  501. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  502. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  503. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
  504. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_data/__init__.py +0 -0
  505. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  506. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_data/test_lookup_table.txt +0 -0
  507. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_diamond_filter.py +0 -0
  508. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_eiger.py +0 -0
  509. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_focusing_mirror.py +0 -0
  510. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_hutch_shutter.py +0 -0
  511. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_motors.py +0 -0
  512. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_odin.py +0 -0
  513. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_positioner.py +0 -0
  514. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_pressure_jump_cell.py +0 -0
  515. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_qbpm.py +0 -0
  516. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_scintillator.py +0 -0
  517. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_slits.py +0 -0
  518. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_smargon.py +0 -0
  519. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_status.py +0 -0
  520. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_synchrotron.py +0 -0
  521. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_thawer.py +0 -0
  522. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_turbo_slit.py +0 -0
  523. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_utils.py +0 -0
  524. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_watsonmarlow323_pump.py +0 -0
  525. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_webcam.py +0 -0
  526. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_xspress3.py +0 -0
  527. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_zebra.py +0 -0
  528. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_zebra_constants_mapping.py +0 -0
  529. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_zebra_shutter.py +0 -0
  530. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_zocalo_interaction.py +0 -0
  531. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/test_zocalo_results.py +0 -0
  532. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_adjuster_plans.py +0 -0
  533. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_beamline_specific_utils.py +0 -0
  534. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_data/__init__.py +0 -0
  535. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  536. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  537. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  538. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_lookup_tables.py +0 -0
  539. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/devices/util/test_save_panda.py +0 -0
  540. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline.py +0 -0
  541. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  542. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_broken_dependency.py +0 -0
  543. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_dependencies.py +0 -0
  544. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_disordered_dependencies.py +0 -0
  545. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  546. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_beamline_some_devices_working.py +0 -0
  547. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_device_factory_beamline.py +0 -0
  548. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_zocalo/README.rst +0 -0
  549. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  550. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_data/__init__.py +0 -0
  551. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
  552. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
  553. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_data_session.py +0 -0
  554. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  555. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_topup_plan.py +0 -0
  556. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  557. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/conftest.py +0 -0
  558. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_bimorph.py +0 -0
  559. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_compliance.py +0 -0
  560. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
  561. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  562. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_scanspec.py +0 -0
  563. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  564. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/plans/test_wrapped.py +0 -0
  565. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  566. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_cli.py +0 -0
  567. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/__init__.py +0 -0
  568. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/bad_beamlineParameters +0 -0
  569. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/i04_beamlineParameters +0 -0
  570. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/test_beamline_parameters.txt +0 -0
  571. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/test_display.configuration +0 -0
  572. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_data/test_oav_zoom_levels.xml +0 -0
  573. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_log.py +0 -0
  574. {dls_dodal-1.57.0 → dls_dodal-1.59.1}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.57.0
3
+ Version: 1.59.1
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -233,6 +233,7 @@ Requires-Dist: scanspec>=0.7.3
233
233
  Requires-Dist: event-model>=1.23
234
234
  Requires-Dist: pyzmq==26.3.0
235
235
  Requires-Dist: deepdiff
236
+ Requires-Dist: daq-config-server>=v1.0.0-rc.2
236
237
  Provides-Extra: dev
237
238
  Requires-Dist: black; extra == "dev"
238
239
  Requires-Dist: diff-cover; extra == "dev"
@@ -120,3 +120,33 @@ async def test_my_device_read(sim_my_device: MyDevice, RE: RunEngine) -> None:
120
120
  }
121
121
  )
122
122
  ```
123
+
124
+ ## Test performance and reliability
125
+
126
+ Dodal has well over 1000 unit tests and developers will run the full unit test suite frequently on their local
127
+ machines, therefore it is imperative that the unit tests are both reliable and run quickly. Ideally the test suite
128
+ should run in about a minute, so if your test takes more than a fraction of a second to complete then consider
129
+ making it faster. The GitHub CI will fail if any test takes longer than 1 second.
130
+
131
+ Tests that involve concurrency can sometimes be unreliable due to subtle race conditions and variations in timing
132
+ caused by caching, garbage collection and other factors.
133
+ Often these manifest only on certain machines or in CI and are difficult to reproduce. Whilst the odd test failure
134
+ can be worked around by re-running the tests, this is annoying and a build up of such flaky tests is undesirable so
135
+ it is preferable to fix the test.
136
+
137
+ ### Event loop fuzzer
138
+
139
+ To assist in the reproduction of concurrency-related test failures, there is an event loop fuzzer available as a
140
+ pytest fixture. The fuzzer introduces random delays into the ``asyncio`` event loop. You can use it as by
141
+ requesting ``event_loop_fuzzing`` as a fixture. It is also recommended when debugging to parametrize the test to
142
+ introduce a good number of iterations in order to ensure the problem has a good chance to show up, but remember to
143
+ remove the parametrization afterwards.
144
+
145
+ ```Python
146
+ import pytest
147
+ # repeat the test a number of times
148
+ @pytest.mark.parametrize("i", range(0, 100))
149
+ async def my_unreliable_test(i, event_loop_fuzzing):
150
+ # Do some stuff in here
151
+
152
+ ```
@@ -32,6 +32,7 @@ dependencies = [
32
32
  "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
33
33
  "pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
34
34
  "deepdiff",
35
+ "daq-config-server>=v1.0.0-rc.2",# For getting Configuration settings.
35
36
  ]
36
37
 
37
38
  dynamic = ["version"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.57.0
3
+ Version: 1.59.1
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -233,6 +233,7 @@ Requires-Dist: scanspec>=0.7.3
233
233
  Requires-Dist: event-model>=1.23
234
234
  Requires-Dist: pyzmq==26.3.0
235
235
  Requires-Dist: deepdiff
236
+ Requires-Dist: daq-config-server>=v1.0.0-rc.2
236
237
  Provides-Extra: dev
237
238
  Requires-Dist: black; extra == "dev"
238
239
  Requires-Dist: diff-cover; extra == "dev"
@@ -111,6 +111,7 @@ src/dodal/beamlines/i05_1.py
111
111
  src/dodal/beamlines/i09.py
112
112
  src/dodal/beamlines/i09_1.py
113
113
  src/dodal/beamlines/i09_2.py
114
+ src/dodal/beamlines/i10-1.py
114
115
  src/dodal/beamlines/i10.py
115
116
  src/dodal/beamlines/i11.py
116
117
  src/dodal/beamlines/i13_1.py
@@ -120,9 +121,11 @@ src/dodal/beamlines/i19_1.py
120
121
  src/dodal/beamlines/i19_2.py
121
122
  src/dodal/beamlines/i19_optics.py
122
123
  src/dodal/beamlines/i20_1.py
124
+ src/dodal/beamlines/i21.py
123
125
  src/dodal/beamlines/i22.py
124
126
  src/dodal/beamlines/i23.py
125
127
  src/dodal/beamlines/i24.py
128
+ src/dodal/beamlines/k07.py
126
129
  src/dodal/beamlines/k11.py
127
130
  src/dodal/beamlines/p38.py
128
131
  src/dodal/beamlines/p45.py
@@ -143,6 +146,7 @@ src/dodal/common/watcher_utils.py
143
146
  src/dodal/common/beamlines/__init__.py
144
147
  src/dodal/common/beamlines/beamline_parameters.py
145
148
  src/dodal/common/beamlines/beamline_utils.py
149
+ src/dodal/common/beamlines/commissioning_mode.py
146
150
  src/dodal/common/beamlines/device_helpers.py
147
151
  src/dodal/devices/__init__.py
148
152
  src/dodal/devices/aperture.py
@@ -183,6 +187,7 @@ src/dodal/devices/tetramm.py
183
187
  src/dodal/devices/thawer.py
184
188
  src/dodal/devices/turbo_slit.py
185
189
  src/dodal/devices/undulator.py
190
+ src/dodal/devices/v2f.py
186
191
  src/dodal/devices/watsonmarlow323_pump.py
187
192
  src/dodal/devices/webcam.py
188
193
  src/dodal/devices/xbpm_feedback.py
@@ -215,6 +220,7 @@ src/dodal/devices/detector/detector.py
215
220
  src/dodal/devices/detector/detector_motion.py
216
221
  src/dodal/devices/electron_analyser/__init__.py
217
222
  src/dodal/devices/electron_analyser/detector.py
223
+ src/dodal/devices/electron_analyser/energy_sources.py
218
224
  src/dodal/devices/electron_analyser/enums.py
219
225
  src/dodal/devices/electron_analyser/types.py
220
226
  src/dodal/devices/electron_analyser/util.py
@@ -233,6 +239,9 @@ src/dodal/devices/electron_analyser/vgscienta/detector.py
233
239
  src/dodal/devices/electron_analyser/vgscienta/driver_io.py
234
240
  src/dodal/devices/electron_analyser/vgscienta/enums.py
235
241
  src/dodal/devices/electron_analyser/vgscienta/region.py
242
+ src/dodal/devices/i02_1/__init__.py
243
+ src/dodal/devices/i02_1/fast_grid_scan.py
244
+ src/dodal/devices/i02_1/sample_motors.py
236
245
  src/dodal/devices/i03/__init__.py
237
246
  src/dodal/devices/i03/dcm.py
238
247
  src/dodal/devices/i03/undulator_dcm.py
@@ -267,12 +276,15 @@ src/dodal/devices/i13_1/merlin_controller.py
267
276
  src/dodal/devices/i18/KBMirror.py
268
277
  src/dodal/devices/i18/diode.py
269
278
  src/dodal/devices/i19/__init__.py
279
+ src/dodal/devices/i19/backlight.py
270
280
  src/dodal/devices/i19/beamstop.py
271
281
  src/dodal/devices/i19/blueapi_device.py
272
282
  src/dodal/devices/i19/diffractometer.py
273
283
  src/dodal/devices/i19/hutch_access.py
274
284
  src/dodal/devices/i19/shutter.py
275
285
  src/dodal/devices/i20_1/__init__.py
286
+ src/dodal/devices/i21/__init__.py
287
+ src/dodal/devices/i21/enums.py
276
288
  src/dodal/devices/i22/dcm.py
277
289
  src/dodal/devices/i22/fswitch.py
278
290
  src/dodal/devices/i22/nxsas.py
@@ -280,6 +292,7 @@ src/dodal/devices/i24/__init__.py
280
292
  src/dodal/devices/i24/aperture.py
281
293
  src/dodal/devices/i24/beam_center.py
282
294
  src/dodal/devices/i24/beamstop.py
295
+ src/dodal/devices/i24/commissioning_jungfrau.py
283
296
  src/dodal/devices/i24/dcm.py
284
297
  src/dodal/devices/i24/dual_backlight.py
285
298
  src/dodal/devices/i24/focus_mirrors.py
@@ -305,6 +318,10 @@ src/dodal/devices/p60/lab_xray_source.py
305
318
  src/dodal/devices/p99/__init__.py
306
319
  src/dodal/devices/p99/andor2_point.py
307
320
  src/dodal/devices/p99/sample_stage.py
321
+ src/dodal/devices/temperture_controller/__init__.py
322
+ src/dodal/devices/temperture_controller/lakeshore/__init__.py
323
+ src/dodal/devices/temperture_controller/lakeshore/lakeshore.py
324
+ src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py
308
325
  src/dodal/devices/util/__init__.py
309
326
  src/dodal/devices/util/adjuster_plans.py
310
327
  src/dodal/devices/util/epics_util.py
@@ -371,6 +388,7 @@ tests/common/test_watcher_utils.py
371
388
  tests/common/beamlines/__init__.py
372
389
  tests/common/beamlines/test_beamline_parameters.py
373
390
  tests/common/beamlines/test_beamline_utils.py
391
+ tests/common/beamlines/test_commissioning_mode.py
374
392
  tests/common/beamlines/test_device_instantiation.py
375
393
  tests/devices/__init__.py
376
394
  tests/devices/test.png
@@ -426,6 +444,7 @@ tests/devices/detector/test_data/test_det_dist_converter.txt
426
444
  tests/devices/electron_analyser/__init__.py
427
445
  tests/devices/electron_analyser/conftest.py
428
446
  tests/devices/electron_analyser/test_detector.py
447
+ tests/devices/electron_analyser/test_energy_sources.py
429
448
  tests/devices/electron_analyser/test_util.py
430
449
  tests/devices/electron_analyser/abstract/__init__.py
431
450
  tests/devices/electron_analyser/abstract/test_base_detector.py
@@ -445,6 +464,8 @@ tests/devices/electron_analyser/vgscienta/__init__.py
445
464
  tests/devices/electron_analyser/vgscienta/test_detector.py
446
465
  tests/devices/electron_analyser/vgscienta/test_driver_io.py
447
466
  tests/devices/electron_analyser/vgscienta/test_region.py
467
+ tests/devices/i02_1/__init__.py
468
+ tests/devices/i02_1/test_fast_grid_scan.py
448
469
  tests/devices/i03/__init__.py
449
470
  tests/devices/i03/test_dcm.py
450
471
  tests/devices/i03/test_undulator_dcm.py
@@ -466,6 +487,7 @@ tests/devices/i11/test_mythen.py
466
487
  tests/devices/i13_1/test_merlin.py
467
488
  tests/devices/i18/test_kb_mirror.py
468
489
  tests/devices/i19/__init__.py
490
+ tests/devices/i19/test_backlight.py
469
491
  tests/devices/i19/test_beamstop.py
470
492
  tests/devices/i19/test_diffractometer.py
471
493
  tests/devices/i19/test_shutter.py
@@ -473,6 +495,7 @@ tests/devices/i22/test_dcm.py
473
495
  tests/devices/i22/test_fswitch.py
474
496
  tests/devices/i22/test_metadataholder.py
475
497
  tests/devices/i24/__init__.py
498
+ tests/devices/i24/test_commissioning_jungfrau.py
476
499
  tests/devices/i24/test_dual_backlight.py
477
500
  tests/devices/i24/test_focus_mirrors.py
478
501
  tests/devices/i24/test_pmac.py
@@ -496,6 +519,10 @@ tests/devices/oav/test_data/oav_snapshot_test.png
496
519
  tests/devices/oav/test_data/test_OAVCentring.json
497
520
  tests/devices/p60/test_lab_xray_source.py
498
521
  tests/devices/p99/test_p99_stage.py
522
+ tests/devices/temperature_controller/__init__.py
523
+ tests/devices/temperature_controller/lakeshore/__init__.py
524
+ tests/devices/temperature_controller/lakeshore/test_lakeshore.py
525
+ tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py
499
526
  tests/devices/test_daq_configuration/__init__.py
500
527
  tests/devices/test_daq_configuration/domain/__init__.py
501
528
  tests/devices/test_daq_configuration/domain/beamlineParameters
@@ -18,6 +18,7 @@ scanspec>=0.7.3
18
18
  event-model>=1.23
19
19
  pyzmq==26.3.0
20
20
  deepdiff
21
+ daq-config-server>=v1.0.0-rc.2
21
22
 
22
23
  [dev]
23
24
  black
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.57.0'
32
- __version_tuple__ = version_tuple = (1, 57, 0)
31
+ __version__ = version = '1.59.1'
32
+ __version_tuple__ = version_tuple = (1, 59, 1)
33
33
 
34
- __commit_id__ = commit_id = 'gb8eec3d54'
34
+ __commit_id__ = commit_id = 'g67bd9e286'
@@ -3,8 +3,8 @@ from dodal.common.beamlines.beamline_utils import (
3
3
  )
4
4
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
5
5
  from dodal.devices.b07 import Grating, LensMode, PsuMode
6
- from dodal.devices.electron_analyser import SelectedSource
7
- from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
6
+ from dodal.devices.electron_analyser import EnergySource
7
+ from dodal.devices.electron_analyser.specs import SpecsDetector
8
8
  from dodal.devices.pgm import PGM
9
9
  from dodal.devices.synchrotron import Synchrotron
10
10
  from dodal.log import set_beamline as set_log_beamline
@@ -26,13 +26,18 @@ def pgm() -> PGM:
26
26
  return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
27
27
 
28
28
 
29
+ @device_factory()
30
+ def energy_source() -> EnergySource:
31
+ return EnergySource(pgm().energy.user_readback)
32
+
33
+
29
34
  # Connect will work again after this work completed
30
35
  # https://jira.diamond.ac.uk/browse/B07-1104
31
36
  @device_factory()
32
- def analyser_driver() -> SpecsAnalyserDriverIO[LensMode, PsuMode]:
33
- return SpecsAnalyserDriverIO[LensMode, PsuMode](
37
+ def analyser() -> SpecsDetector[LensMode, PsuMode]:
38
+ return SpecsDetector[LensMode, PsuMode](
34
39
  prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:",
35
40
  lens_mode_type=LensMode,
36
41
  psu_mode_type=PsuMode,
37
- energy_sources={SelectedSource.SOURCE1: pgm().energy.user_readback},
42
+ energy_source=energy_source(),
38
43
  )
@@ -6,8 +6,8 @@ from dodal.devices.b07_1 import (
6
6
  Grating,
7
7
  LensMode,
8
8
  )
9
- from dodal.devices.electron_analyser import SelectedSource
10
- from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
9
+ from dodal.devices.electron_analyser import EnergySource
10
+ from dodal.devices.electron_analyser.specs import SpecsDetector
11
11
  from dodal.devices.pgm import PGM
12
12
  from dodal.devices.synchrotron import Synchrotron
13
13
  from dodal.log import set_beamline as set_log_beamline
@@ -37,10 +37,15 @@ def ccmc() -> ChannelCutMonochromator:
37
37
 
38
38
 
39
39
  @device_factory()
40
- def analyser_driver() -> SpecsAnalyserDriverIO[LensMode, PsuMode]:
41
- return SpecsAnalyserDriverIO[LensMode, PsuMode](
40
+ def energy_source() -> EnergySource:
41
+ return EnergySource(pgm().energy.user_readback)
42
+
43
+
44
+ @device_factory()
45
+ def analyser() -> SpecsDetector[LensMode, PsuMode]:
46
+ return SpecsDetector[LensMode, PsuMode](
42
47
  prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:",
43
48
  lens_mode_type=LensMode,
44
49
  psu_mode_type=PsuMode,
45
- energy_sources={SelectedSource.SOURCE1: pgm().energy.user_readback},
50
+ energy_source=energy_source(),
46
51
  )
@@ -8,10 +8,13 @@ from dodal.common.beamlines.beamline_utils import (
8
8
  )
9
9
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
10
10
  from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
11
+ from dodal.devices.focusing_mirror import SimpleMirror
11
12
  from dodal.devices.i22.nxsas import NXSasMetadataHolder, NXSasOAV
12
13
  from dodal.devices.linkam3 import Linkam3
14
+ from dodal.devices.motors import XYStage
13
15
  from dodal.devices.slits import Slits
14
16
  from dodal.devices.synchrotron import Synchrotron
17
+ from dodal.devices.v2f import QDV2F
15
18
  from dodal.log import set_beamline as set_log_beamline
16
19
  from dodal.utils import BeamlinePrefix, get_beamline_name
17
20
 
@@ -43,6 +46,18 @@ def waxs() -> EigerDetector:
43
46
  )
44
47
 
45
48
 
49
+ @device_factory()
50
+ def mirror() -> SimpleMirror:
51
+ return SimpleMirror(
52
+ prefix=f"{PREFIX.beamline_prefix}-OP-MR-01:",
53
+ )
54
+
55
+
56
+ @device_factory()
57
+ def it() -> QDV2F:
58
+ return QDV2F(prefix=f"{PREFIX.beamline_prefix}-DI-PHDGN-07:PHD1:", I_suffix="I")
59
+
60
+
46
61
  @device_factory()
47
62
  def panda1() -> HDFPanda:
48
63
  return HDFPanda(
@@ -51,6 +66,13 @@ def panda1() -> HDFPanda:
51
66
  )
52
67
 
53
68
 
69
+ @device_factory()
70
+ def table() -> XYStage:
71
+ return XYStage(
72
+ prefix=f"{PREFIX.beamline_prefix}-MO-TABLE-04:",
73
+ )
74
+
75
+
54
76
  @device_factory()
55
77
  def synchrotron() -> Synchrotron:
56
78
  return Synchrotron()
@@ -0,0 +1,117 @@
1
+ """Beamline i02-1 is also known as VMXm, or I02J"""
2
+
3
+ from dodal.common.beamlines.beamline_utils import (
4
+ device_factory,
5
+ device_instantiation,
6
+ )
7
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
8
+ from dodal.devices.attenuator.attenuator import EnumFilterAttenuator
9
+ from dodal.devices.attenuator.filter_selections import (
10
+ I02_1FilterFourSelections,
11
+ I02_1FilterOneSelections,
12
+ I02_1FilterThreeSelections,
13
+ I02_1FilterTwoSelections,
14
+ )
15
+ from dodal.devices.eiger import EigerDetector
16
+ from dodal.devices.i02_1.fast_grid_scan import ZebraFastGridScanTwoD
17
+ from dodal.devices.i02_1.sample_motors import SampleMotors
18
+ from dodal.devices.synchrotron import Synchrotron
19
+ from dodal.devices.zebra.zebra import Zebra
20
+ from dodal.devices.zebra.zebra_constants_mapping import (
21
+ ZebraMapping,
22
+ ZebraSources,
23
+ ZebraTTLOutputs,
24
+ )
25
+ from dodal.devices.zocalo import ZocaloResults
26
+ from dodal.log import set_beamline as set_log_beamline
27
+ from dodal.utils import BeamlinePrefix, get_beamline_name
28
+
29
+ BL = get_beamline_name("i02-1")
30
+ PREFIX = BeamlinePrefix(BL, suffix="J")
31
+ set_log_beamline(BL)
32
+ set_utils_beamline(BL)
33
+ DAQ_CONFIGURATION_PATH = "/dls_sw/i02-1/software/daq_configuration"
34
+
35
+ I02_1_ZEBRA_MAPPING = ZebraMapping(
36
+ outputs=ZebraTTLOutputs(TTL_EIGER=2, TTL_XSPRESS3=3, TTL_FAST_SHUTTER=1),
37
+ sources=ZebraSources(),
38
+ )
39
+
40
+
41
+ @device_factory()
42
+ def eiger(mock: bool = False) -> EigerDetector:
43
+ """Get the i02-1 Eiger device, instantiate it if it hasn't already been.
44
+ If this is called when already instantiated in i02-1, it will return the existing object.
45
+ """
46
+ return device_instantiation(
47
+ device_factory=EigerDetector,
48
+ prefix=f"{PREFIX.beamline_prefix}-EA-EIGER-01:",
49
+ bl_prefix=False,
50
+ wait=False,
51
+ fake=mock,
52
+ name="eiger",
53
+ )
54
+
55
+
56
+ @device_factory()
57
+ def zebra_fast_grid_scan() -> ZebraFastGridScanTwoD:
58
+ """Get the i02-1 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
59
+ If this is called when already instantiated in i02-1, it will return the existing object.
60
+ """
61
+ return ZebraFastGridScanTwoD(
62
+ prefix=f"{PREFIX.beamline_prefix}-MO-SAMP-11:",
63
+ motion_controller_prefix="BL02J-MO-STEP-11:",
64
+ )
65
+
66
+
67
+ @device_factory()
68
+ def synchrotron() -> Synchrotron:
69
+ """Get the i02-1 synchrotron device, instantiate it if it hasn't already been.
70
+ If this is called when already instantiated in i02-1, it will return the existing object.
71
+ """
72
+ return Synchrotron()
73
+
74
+
75
+ @device_factory()
76
+ def zebra() -> Zebra:
77
+ """Get the i02-1 zebra device, instantiate it if it hasn't already been.
78
+ If this is called when already instantiated in i02-1, it will return the existing object.
79
+ """
80
+ return Zebra(
81
+ prefix=f"{PREFIX.beamline_prefix}-EA-ZEBRA-01:",
82
+ mapping=I02_1_ZEBRA_MAPPING,
83
+ )
84
+
85
+
86
+ # Device not needed after https://github.com/DiamondLightSource/mx-bluesky/issues/1299
87
+ @device_factory()
88
+ def zocalo() -> ZocaloResults:
89
+ """Get the i02-1 ZocaloResults device, instantiate it if it hasn't already been.
90
+ If this is called when already instantiated in i02-1, it will return the existing object.
91
+ """
92
+ return ZocaloResults()
93
+
94
+
95
+ @device_factory()
96
+ def goniometer() -> SampleMotors:
97
+ """Get the i02-1 goniometer device, instantiate it if it hasn't already been.
98
+ If this is called when already instantiated in i02-1, it will return the existing object.
99
+ """
100
+ return SampleMotors(f"{PREFIX.beamline_prefix}-MO-SAMP-01:")
101
+
102
+
103
+ @device_factory()
104
+ def attenuator() -> EnumFilterAttenuator:
105
+ """Get the i02-1 attenuator device, instantiate it if it hasn't already been.
106
+ If this is called when already instantiated in i02-1, it will return the existing object.
107
+ """
108
+
109
+ return EnumFilterAttenuator(
110
+ f"{PREFIX.beamline_prefix}-OP-ATTN-01:",
111
+ (
112
+ I02_1FilterOneSelections,
113
+ I02_1FilterTwoSelections,
114
+ I02_1FilterThreeSelections,
115
+ I02_1FilterFourSelections,
116
+ ),
117
+ )
@@ -25,7 +25,7 @@ from dodal.devices.cryostream import CryoStream
25
25
  from dodal.devices.detector.detector_motion import DetectorMotion
26
26
  from dodal.devices.diamond_filter import DiamondFilter, I03Filters
27
27
  from dodal.devices.eiger import EigerDetector
28
- from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
28
+ from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScanThreeD
29
29
  from dodal.devices.fluorescence_detector_motion import FluorescenceDetector
30
30
  from dodal.devices.flux import Flux
31
31
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
@@ -191,11 +191,13 @@ def fastcs_eiger() -> FastEiger:
191
191
 
192
192
 
193
193
  @device_factory()
194
- def zebra_fast_grid_scan() -> ZebraFastGridScan:
194
+ def zebra_fast_grid_scan() -> ZebraFastGridScanThreeD:
195
195
  """Get the i03 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
196
196
  If this is called when already instantiated in i03, it will return the existing object.
197
197
  """
198
- return ZebraFastGridScan(prefix=f"{PREFIX.beamline_prefix}-MO-SGON-01:")
198
+ return ZebraFastGridScanThreeD(
199
+ prefix=f"{PREFIX.beamline_prefix}-MO-SGON-01:",
200
+ )
199
201
 
200
202
 
201
203
  @device_factory()
@@ -261,6 +263,7 @@ def undulator(daq_configuration_path: str | None = None) -> Undulator:
261
263
  f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
262
264
  # evaluate here not as parameter default to enable post-import mocking
263
265
  id_gap_lookup_table_path=f"{daq_configuration_path or DAQ_CONFIGURATION_PATH}/lookup/BeamLine_Undulator_toGap.txt",
266
+ baton=baton(),
264
267
  )
265
268
 
266
269
 
@@ -333,7 +336,7 @@ def xbpm_feedback() -> XBPMFeedback:
333
336
  """Get the i03 XBPM feeback device, instantiate it if it hasn't already been.
334
337
  If this is called when already instantiated in i03, it will return the existing object.
335
338
  """
336
- return XBPMFeedback(f"{PREFIX.beamline_prefix}-EA-FDBK-01:")
339
+ return XBPMFeedback(f"{PREFIX.beamline_prefix}-EA-FDBK-01:", baton=baton())
337
340
 
338
341
 
339
342
  @device_factory()
@@ -1,3 +1,5 @@
1
+ from ophyd_async.core import Reference
2
+
1
3
  from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
2
4
  from dodal.common.beamlines.beamline_utils import (
3
5
  device_factory,
@@ -15,7 +17,7 @@ from dodal.devices.detector import DetectorParams
15
17
  from dodal.devices.detector.detector_motion import DetectorMotion
16
18
  from dodal.devices.diamond_filter import DiamondFilter, I04Filters
17
19
  from dodal.devices.eiger import EigerDetector
18
- from dodal.devices.fast_grid_scan import ZebraFastGridScan
20
+ from dodal.devices.fast_grid_scan import ZebraFastGridScanThreeD
19
21
  from dodal.devices.flux import Flux
20
22
  from dodal.devices.i03.dcm import DCM
21
23
  from dodal.devices.i04.constants import RedisConstants
@@ -30,6 +32,7 @@ from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
30
32
  from dodal.devices.oav.pin_image_recognition import PinTipDetection
31
33
  from dodal.devices.robot import BartRobot
32
34
  from dodal.devices.s4_slit_gaps import S4SlitGaps
35
+ from dodal.devices.scintillator import Scintillator
33
36
  from dodal.devices.smargon import Smargon
34
37
  from dodal.devices.synchrotron import Synchrotron
35
38
  from dodal.devices.thawer import Thawer
@@ -207,11 +210,13 @@ def eiger(mock: bool = False, params: DetectorParams | None = None) -> EigerDete
207
210
 
208
211
 
209
212
  @device_factory()
210
- def zebra_fast_grid_scan() -> ZebraFastGridScan:
213
+ def zebra_fast_grid_scan() -> ZebraFastGridScanThreeD:
211
214
  """Get the i04 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
212
215
  If this is called when already instantiated in i04, it will return the existing object.
213
216
  """
214
- return ZebraFastGridScan(f"{PREFIX.beamline_prefix}-MO-SGON-01:")
217
+ return ZebraFastGridScanThreeD(
218
+ prefix=f"{PREFIX.beamline_prefix}-MO-SGON-01:",
219
+ )
215
220
 
216
221
 
217
222
  @device_factory()
@@ -357,3 +362,15 @@ def pin_tip_detection() -> PinTipDetection:
357
362
  If this is called when already instantiated in i04, it will return the existing object.
358
363
  """
359
364
  return PinTipDetection(f"{PREFIX.beamline_prefix}-DI-OAV-01:")
365
+
366
+
367
+ @device_factory()
368
+ def scintillator() -> Scintillator:
369
+ """Get the i04 scintillator device, instantiate it if it hasn't already been.
370
+ If this is called when already instantiated in i04, it will return the existing object.
371
+ """
372
+ return Scintillator(
373
+ f"{PREFIX.beamline_prefix}-MO-SCIN-01:",
374
+ Reference(aperture_scatterguard()),
375
+ get_beamline_parameters(),
376
+ )
@@ -2,8 +2,8 @@ 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.electron_analyser import SelectedSource
6
- from dodal.devices.electron_analyser.vgscienta import VGScientaAnalyserDriverIO
5
+ from dodal.devices.electron_analyser import DualEnergySource
6
+ from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
7
7
  from dodal.devices.i09 import DCM, Grating, LensMode, PassEnergy, PsuMode
8
8
  from dodal.devices.pgm import PGM
9
9
  from dodal.devices.synchrotron import Synchrotron
@@ -34,18 +34,19 @@ def dcm() -> DCM:
34
34
  return DCM(prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:")
35
35
 
36
36
 
37
+ @device_factory()
38
+ def energy_source() -> DualEnergySource:
39
+ return DualEnergySource(dcm().energy_in_ev, pgm().energy.user_readback)
40
+
41
+
37
42
  # Connect will work again after this work completed
38
43
  # https://jira.diamond.ac.uk/browse/I09-651
39
44
  @device_factory()
40
- def analyser_driver() -> VGScientaAnalyserDriverIO[LensMode, PsuMode, PassEnergy]:
41
- energy_sources = {
42
- SelectedSource.SOURCE1: pgm().energy.user_readback,
43
- SelectedSource.SOURCE2: dcm().energy_in_ev,
44
- }
45
- return VGScientaAnalyserDriverIO[LensMode, PsuMode, PassEnergy](
45
+ def ew4000() -> VGScientaDetector[LensMode, PsuMode, PassEnergy]:
46
+ return VGScientaDetector[LensMode, PsuMode, PassEnergy](
46
47
  prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:",
47
48
  lens_mode_type=LensMode,
48
49
  psu_mode_type=PsuMode,
49
50
  pass_energy_type=PassEnergy,
50
- energy_sources=energy_sources,
51
+ energy_source=energy_source(),
51
52
  )
@@ -2,8 +2,8 @@ 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.electron_analyser import SelectedSource
6
- from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
5
+ from dodal.devices.electron_analyser import EnergySource
6
+ from dodal.devices.electron_analyser.specs import SpecsDetector
7
7
  from dodal.devices.i09.dcm import DCM
8
8
  from dodal.devices.i09_1 import LensMode, PsuMode
9
9
  from dodal.devices.synchrotron import Synchrotron
@@ -26,13 +26,18 @@ def dcm() -> DCM:
26
26
  return DCM(prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:")
27
27
 
28
28
 
29
+ @device_factory()
30
+ def energy_source() -> EnergySource:
31
+ return EnergySource(dcm().energy_in_ev)
32
+
33
+
29
34
  # Connect will work again after this work completed
30
35
  # https://jira.diamond.ac.uk/browse/I09-651
31
36
  @device_factory()
32
- def analyser_driver() -> SpecsAnalyserDriverIO[LensMode, PsuMode]:
33
- return SpecsAnalyserDriverIO[LensMode, PsuMode](
37
+ def analyser() -> SpecsDetector[LensMode, PsuMode]:
38
+ return SpecsDetector[LensMode, PsuMode](
34
39
  prefix=f"{PREFIX.beamline_prefix}-EA-DET-02:CAM:",
35
40
  lens_mode_type=LensMode,
36
41
  psu_mode_type=PsuMode,
37
- energy_sources={SelectedSource.SOURCE1: dcm().energy_in_ev},
42
+ energy_source=energy_source(),
38
43
  )
@@ -0,0 +1,25 @@
1
+ from dodal.common.beamlines.beamline_utils import (
2
+ device_factory,
3
+ )
4
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
5
+ from dodal.devices.synchrotron import Synchrotron
6
+ from dodal.devices.temperture_controller import Lakeshore336
7
+ from dodal.log import set_beamline as set_log_beamline
8
+ from dodal.utils import BeamlinePrefix, get_beamline_name
9
+
10
+ BL = get_beamline_name("i10-1")
11
+ PREFIX = BeamlinePrefix(BL, suffix="J")
12
+ set_log_beamline(BL)
13
+ set_utils_beamline(BL)
14
+
15
+
16
+ @device_factory()
17
+ def synchrotron() -> Synchrotron:
18
+ return Synchrotron()
19
+
20
+
21
+ @device_factory()
22
+ def em_temperature_controller() -> Lakeshore336:
23
+ return Lakeshore336(
24
+ prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-41:",
25
+ )