dls-dodal 1.64.0__tar.gz → 1.65.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 (640) hide show
  1. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/PKG-INFO +1 -1
  2. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/PKG-INFO +1 -1
  3. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/SOURCES.txt +6 -2
  4. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/_version.py +3 -3
  5. dls_dodal-1.65.0/src/dodal/beamline_specific_utils/i05_shared.py +14 -0
  6. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b01_1.py +1 -1
  7. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07.py +6 -3
  8. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07_1.py +6 -3
  9. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i03.py +9 -1
  10. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05.py +2 -2
  11. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05_1.py +2 -2
  12. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09.py +3 -3
  13. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09_1.py +6 -0
  14. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09_2.py +6 -3
  15. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_optics.py +3 -3
  16. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i17.py +3 -3
  17. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_2.py +22 -0
  18. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i21.py +3 -3
  19. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i22.py +0 -17
  20. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k07.py +6 -3
  21. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/cryostream.py +21 -0
  22. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/nxsas.py +5 -24
  23. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/pgm.py +1 -1
  24. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/scintillator.py +4 -0
  25. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/undulator.py +29 -1
  26. dls_dodal-1.65.0/src/dodal/plan_stubs/__init__.py +3 -0
  27. dls_dodal-1.65.0/src/dodal/testing/fixtures/run_engine.py +118 -0
  28. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/system_tests/test_oav_to_redis_system.py +30 -7
  29. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_watcher_utils.py +2 -0
  30. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_femto.py +9 -17
  31. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_sr570.py +11 -20
  32. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/conftest.py +2 -2
  33. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_i10_apple2.py +24 -39
  34. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i22/test_fswitch.py +10 -12
  35. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/test_pmac.py +9 -8
  36. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -4
  37. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_utils.py +13 -13
  38. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +8 -9
  39. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_apple2_undulator.py +22 -17
  40. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_gridscan.py +8 -6
  41. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_scintillator.py +20 -0
  42. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_undulator.py +43 -0
  43. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_motor_util_plans.py +7 -9
  44. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_save_panda.py +8 -3
  45. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_cli.py +7 -0
  46. dls_dodal-1.65.0/tests/testing/__init__.py +0 -0
  47. dls_dodal-1.65.0/tests/testing/fixtures/__init__.py +0 -0
  48. dls_dodal-1.65.0/tests/testing/fixtures/test_run_engine.py +33 -0
  49. dls_dodal-1.64.0/src/dodal/beamline_specific_utils/i05_shared.py +0 -11
  50. dls_dodal-1.64.0/src/dodal/testing/fixtures/run_engine.py +0 -46
  51. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.copier-answers.yml +0 -0
  52. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.devcontainer/devcontainer.json +0 -0
  53. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/CODEOWNERS +0 -0
  54. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/CONTRIBUTING.md +0 -0
  55. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  56. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/actions/install_requirements/action.yml +0 -0
  57. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/dependabot.yml +0 -0
  58. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/pages/index.html +0 -0
  59. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/pages/make_switcher.py +0 -0
  60. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/scripts/check_test_durations.py +0 -0
  61. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_dist.yml +0 -0
  62. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_docs.yml +0 -0
  63. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_pypi.yml +0 -0
  64. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_release.yml +0 -0
  65. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_test.yml +0 -0
  66. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/_tox.yml +0 -0
  67. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/ci.yml +0 -0
  68. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.github/workflows/periodic.yml +0 -0
  69. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.gitignore +0 -0
  70. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.pre-commit-config.yaml +0 -0
  71. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.vscode/extensions.json +0 -0
  72. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.vscode/launch.json +0 -0
  73. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.vscode/settings.json +0 -0
  74. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/.vscode/tasks.json +0 -0
  75. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/Dockerfile +0 -0
  76. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/LICENSE +0 -0
  77. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/README.md +0 -0
  78. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/catalog-info.yaml +0 -0
  79. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/conftest.py +0 -0
  80. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/class.rst +0 -0
  81. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/module.rst +0 -0
  82. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/_templates/custom-module-template.rst +0 -0
  83. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
  84. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/assets/zocalo.png +0 -0
  85. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/conf.py +0 -0
  86. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  87. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  88. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  89. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  90. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  91. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
  92. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions/COPYME +0 -0
  93. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/decisions.md +0 -0
  94. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/reviews.md +0 -0
  95. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/umls/apple2_design.png +0 -0
  96. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations/umls/i10_id_design.png +0 -0
  97. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/explanations.md +0 -0
  98. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/genindex.md +0 -0
  99. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/build-docs.md +0 -0
  100. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/contribute.md +0 -0
  101. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/coverage.md +0 -0
  102. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/create-beamline.md +0 -0
  103. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/create-device.md +0 -0
  104. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/dev-install.md +0 -0
  105. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/excalidraw.md +0 -0
  106. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/external-io-devices.md +0 -0
  107. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/lint.md +0 -0
  108. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/lock-requirements.md +0 -0
  109. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/make-release.md +0 -0
  110. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/move-code.md +0 -0
  111. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/pypi.md +0 -0
  112. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/run-tests.md +0 -0
  113. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/static-analysis.md +0 -0
  114. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/update-template.md +0 -0
  115. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/write-tests.md +0 -0
  116. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to/zocalo.md +0 -0
  117. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/how-to.md +0 -0
  118. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/images/dls-logo.svg +0 -0
  119. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/images/excalidraw-example.svg +0 -0
  120. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/index.md +0 -0
  121. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/reference/api.md +0 -0
  122. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/reference/device-standards.md +0 -0
  123. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/reference/standards.md +0 -0
  124. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/reference.md +0 -0
  125. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/tutorials/get_started.md +0 -0
  126. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/tutorials/installation.md +0 -0
  127. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/docs/tutorials.md +0 -0
  128. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/pull_request_template.md +0 -0
  129. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/pyproject.toml +0 -0
  130. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/setup.cfg +0 -0
  131. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/__init__.py +0 -0
  132. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  133. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  134. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/requires.txt +0 -0
  135. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  136. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/__init__.py +0 -0
  137. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/__main__.py +0 -0
  138. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  139. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  140. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/README.md +0 -0
  141. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/__init__.py +0 -0
  142. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/adsim.py +0 -0
  143. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/aithre.py +0 -0
  144. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b16.py +0 -0
  145. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b18.py +0 -0
  146. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b21.py +0 -0
  147. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_1.py +0 -0
  148. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_2.py +0 -0
  149. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i04.py +0 -0
  150. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i07.py +0 -0
  151. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10.py +0 -0
  152. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_1.py +0 -0
  153. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i11.py +0 -0
  154. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i13_1.py +0 -0
  155. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15.py +0 -0
  156. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15_1.py +0 -0
  157. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i18.py +0 -0
  158. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_1.py +0 -0
  159. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_optics.py +0 -0
  160. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i20_1.py +0 -0
  161. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i23.py +0 -0
  162. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i24.py +0 -0
  163. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k11.py +0 -0
  164. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p38.py +0 -0
  165. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p45.py +0 -0
  166. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p60.py +0 -0
  167. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p99.py +0 -0
  168. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/beamlines/training_rig.py +0 -0
  169. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/cli.py +0 -0
  170. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/__init__.py +0 -0
  171. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/__init__.py +0 -0
  172. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  173. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  174. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
  175. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  176. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/coordination.py +0 -0
  177. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/crystal_metadata.py +0 -0
  178. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/data_util.py +0 -0
  179. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/device_utils.py +0 -0
  180. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/enums.py +0 -0
  181. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/maths.py +0 -0
  182. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/types.py +0 -0
  183. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/udc_directory_provider.py +0 -0
  184. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/visit.py +0 -0
  185. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/common/watcher_utils.py +0 -0
  186. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/__init__.py +0 -0
  187. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
  188. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  189. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  190. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/aperture.py +0 -0
  191. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/aperturescatterguard.py +0 -0
  192. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/apple2_undulator.py +0 -0
  193. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/__init__.py +0 -0
  194. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
  195. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/cam.py +0 -0
  196. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
  197. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/__init__.py +0 -0
  198. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  199. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter.py +0 -0
  200. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  201. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/__init__.py +0 -0
  202. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/enums.py +0 -0
  203. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/__init__.py +0 -0
  204. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/ccmc.py +0 -0
  205. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/enums.py +0 -0
  206. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/__init__.py +0 -0
  207. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/detector.py +0 -0
  208. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/backlight.py +0 -0
  209. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/baton.py +0 -0
  210. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  211. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/collimation_table.py +0 -0
  212. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/common_dcm.py +0 -0
  213. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/controllers.py +0 -0
  214. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  215. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  216. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  217. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  218. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  219. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  220. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/__init__.py +0 -0
  221. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  222. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  223. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  224. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector.py +0 -0
  225. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  226. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/diamond_filter.py +0 -0
  227. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger.py +0 -0
  228. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger_odin.py +0 -0
  229. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  230. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  231. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  232. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +0 -0
  233. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
  234. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
  235. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/detector.py +0 -0
  236. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/energy_sources.py +0 -0
  237. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
  238. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  239. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/detector.py +0 -0
  240. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +0 -0
  241. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  242. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
  243. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/types.py +0 -0
  244. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/util.py +0 -0
  245. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  246. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -0
  247. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +0 -0
  248. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  249. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
  250. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/eurotherm.py +0 -0
  251. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_grid_scan.py +0 -0
  252. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_shutter.py +0 -0
  253. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  254. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/flux.py +0 -0
  255. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/focusing_mirror.py +0 -0
  256. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/hutch_shutter.py +0 -0
  257. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/__init__.py +0 -0
  258. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
  259. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
  260. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_2/__init__.py +0 -0
  261. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/__init__.py +0 -0
  262. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/dcm.py +0 -0
  263. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  264. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/__init__.py +0 -0
  265. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/constants.py +0 -0
  266. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/murko_results.py +0 -0
  267. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/transfocator.py +0 -0
  268. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/__init__.py +0 -0
  269. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/enums.py +0 -0
  270. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i07/__init__.py +0 -0
  271. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i07/dcm.py +0 -0
  272. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/__init__.py +0 -0
  273. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/enums.py +0 -0
  274. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/__init__.py +0 -0
  275. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/enums.py +0 -0
  276. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1_shared/__init__.py +0 -0
  277. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +0 -0
  278. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/__init__.py +0 -0
  279. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  280. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
  281. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  282. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/mirrors.py +0 -0
  283. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/__init__.py +0 -0
  284. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  285. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  286. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  287. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/slits.py +0 -0
  288. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/__init__.py +0 -0
  289. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
  290. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/diff_stages.py +0 -0
  291. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/mythen.py +0 -0
  292. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/nx100robot.py +0 -0
  293. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/spinner.py +0 -0
  294. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/__init__.py +0 -0
  295. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  296. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  297. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/__init__.py +0 -0
  298. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/dcm.py +0 -0
  299. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
  300. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/jack.py +0 -0
  301. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/laue.py +0 -0
  302. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/motors.py +0 -0
  303. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
  304. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/rail.py +0 -0
  305. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i17/__init__.py +0 -0
  306. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i17/i17_apple2.py +0 -0
  307. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/__init__.py +0 -0
  308. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/diode.py +0 -0
  309. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/kb_mirror.py +0 -0
  310. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/__init__.py +0 -0
  311. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/__init__.py +0 -0
  312. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/blueapi_device.py +0 -0
  313. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/hutch_access.py +0 -0
  314. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/shutter.py +0 -0
  315. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/backlight.py +0 -0
  316. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/beamstop.py +0 -0
  317. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/diffractometer.py +0 -0
  318. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
  319. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
  320. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i20_1/__init__.py +0 -0
  321. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/__init__.py +0 -0
  322. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/enums.py +0 -0
  323. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/__init__.py +0 -0
  324. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/dcm.py +0 -0
  325. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/fswitch.py +0 -0
  326. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/__init__.py +0 -0
  327. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/aperture.py +0 -0
  328. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beam_center.py +0 -0
  329. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beamstop.py +0 -0
  330. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/commissioning_jungfrau.py +0 -0
  331. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dcm.py +0 -0
  332. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  333. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  334. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/pmac.py +0 -0
  335. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/vgonio.py +0 -0
  336. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/ipin.py +0 -0
  337. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/linkam3.py +0 -0
  338. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/motors.py +0 -0
  339. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/mx_phase1/__init__.py +0 -0
  340. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  341. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/__init__.py +0 -0
  342. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  343. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_detector.py +0 -0
  344. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  345. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  346. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  347. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  348. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  349. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/__init__.py +0 -0
  350. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  351. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  352. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  353. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  354. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/utils.py +0 -0
  355. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p45.py +0 -0
  356. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/__init__.py +0 -0
  357. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/enums.py +0 -0
  358. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
  359. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/__init__.py +0 -0
  360. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  361. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  362. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/positioner.py +0 -0
  363. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  364. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/qbpm.py +0 -0
  365. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/robot.py +0 -0
  366. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  367. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/slits.py +0 -0
  368. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/smargon.py +0 -0
  369. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/status.py +0 -0
  370. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/synchrotron.py +0 -0
  371. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
  372. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/__init__.py +0 -0
  373. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
  374. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
  375. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/tetramm.py +0 -0
  376. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/thawer.py +0 -0
  377. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/turbo_slit.py +0 -0
  378. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/util/__init__.py +0 -0
  379. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  380. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/util/epics_util.py +0 -0
  381. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  382. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/v2f.py +0 -0
  383. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  384. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/webcam.py +0 -0
  385. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  386. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/__init__.py +0 -0
  387. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  388. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  389. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/__init__.py +0 -0
  390. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra.py +0 -0
  391. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  392. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  393. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  394. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  395. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  396. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  397. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/log.py +0 -0
  398. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/parameters/__init__.py +0 -0
  399. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  400. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  401. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/data_session.py +0 -0
  402. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  403. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  404. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/__init__.py +0 -0
  405. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/bimorph.py +0 -0
  406. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -0
  407. {dls_dodal-1.64.0/src/dodal/plan_stubs → dls_dodal-1.65.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  408. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  409. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/save_panda.py +0 -0
  410. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/scanspec.py +0 -0
  411. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  412. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/plans/wrapped.py +0 -0
  413. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/testing/__init__.py +0 -0
  414. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
  415. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
  416. {dls_dodal-1.64.0/src/dodal/plans/preprocessors → dls_dodal-1.65.0/src/dodal/testing/fixtures}/__init__.py +0 -0
  417. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/testing/fixtures/utils.py +0 -0
  418. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/testing/setup.py +0 -0
  419. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/src/dodal/utils.py +0 -0
  420. {dls_dodal-1.64.0/src/dodal/testing/fixtures → dls_dodal-1.65.0/system_tests}/__init__.py +0 -0
  421. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/system_tests/test_adsim.py +0 -0
  422. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/system_tests/test_cli.py +0 -0
  423. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/system_tests/test_oav_system.py +0 -0
  424. {dls_dodal-1.64.0/system_tests → dls_dodal-1.65.0/tests}/__init__.py +0 -0
  425. {dls_dodal-1.64.0/tests → dls_dodal-1.65.0/tests/beamlines}/__init__.py +0 -0
  426. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/beamlines/test_b16.py +0 -0
  427. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/beamlines/test_i03.py +0 -0
  428. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/beamlines/test_i24.py +0 -0
  429. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/beamlines/test_mapping.py +0 -0
  430. {dls_dodal-1.64.0/tests/beamlines → dls_dodal-1.65.0/tests/common}/__init__.py +0 -0
  431. {dls_dodal-1.64.0/tests/common → dls_dodal-1.65.0/tests/common/beamlines}/__init__.py +0 -0
  432. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  433. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  434. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_commissioning_mode.py +0 -0
  435. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  436. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_coordination.py +0 -0
  437. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_crystal_metadata.py +0 -0
  438. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_maths.py +0 -0
  439. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_udc_directory_provider.py +0 -0
  440. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/common/test_visit.py +0 -0
  441. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/conftest.py +0 -0
  442. {dls_dodal-1.64.0/tests/common/beamlines → dls_dodal-1.65.0/tests/devices}/__init__.py +0 -0
  443. {dls_dodal-1.64.0/tests/devices → dls_dodal-1.65.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
  444. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  445. {dls_dodal-1.64.0/tests/devices/aithre_lasershaping → dls_dodal-1.65.0/tests/devices/b07_1}/__init__.py +0 -0
  446. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/b07_1/test_ccmc.py +0 -0
  447. {dls_dodal-1.64.0/tests/devices/b07_1 → dls_dodal-1.65.0/tests/devices/current_amplifier}/__init__.py +0 -0
  448. {dls_dodal-1.64.0/tests/devices/current_amplifier → dls_dodal-1.65.0/tests/devices/detector}/__init__.py +0 -0
  449. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/__init__.py +0 -0
  450. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
  451. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
  452. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_resolution.py +0 -0
  453. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/detector/test_detector.py +0 -0
  454. {dls_dodal-1.64.0/tests/devices/detector → dls_dodal-1.65.0/tests/devices/electron_analyser}/__init__.py +0 -0
  455. {dls_dodal-1.64.0/tests/devices/electron_analyser → dls_dodal-1.65.0/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
  456. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_detector.py +0 -0
  457. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +0 -0
  458. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
  459. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
  460. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
  461. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
  462. {dls_dodal-1.64.0/tests/devices/electron_analyser/abstract → dls_dodal-1.65.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
  463. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_detector.py +0 -0
  464. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_driver_io.py +0 -0
  465. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_region.py +0 -0
  466. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
  467. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
  468. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
  469. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_detector.py +0 -0
  470. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_energy_sources.py +0 -0
  471. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_util.py +0 -0
  472. {dls_dodal-1.64.0/tests/devices/electron_analyser/specs → dls_dodal-1.65.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
  473. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_detector.py +0 -0
  474. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +0 -0
  475. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
  476. {dls_dodal-1.64.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.65.0/tests/devices/i02_1}/__init__.py +0 -0
  477. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
  478. {dls_dodal-1.64.0/tests/devices/i02_1 → dls_dodal-1.65.0/tests/devices/i03}/__init__.py +0 -0
  479. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i03/test_dcm.py +0 -0
  480. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i03/test_undulator_dcm.py +0 -0
  481. {dls_dodal-1.64.0/tests/devices/i03 → dls_dodal-1.65.0/tests/devices/i04}/__init__.py +0 -0
  482. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i04/test_murko_results.py +0 -0
  483. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i04/test_transfocator.py +0 -0
  484. {dls_dodal-1.64.0/tests/devices/i04 → dls_dodal-1.65.0/tests/devices/i07}/__init__.py +0 -0
  485. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i07/test_dcm.py +0 -0
  486. {dls_dodal-1.64.0/tests/devices/i07 → dls_dodal-1.65.0/tests/devices/i09}/__init__.py +0 -0
  487. {dls_dodal-1.64.0/tests/devices/i09 → dls_dodal-1.65.0/tests/devices/i09_1}/__init__.py +0 -0
  488. {dls_dodal-1.64.0/tests/devices/i09_1 → dls_dodal-1.65.0/tests/devices/i09_1_shared}/__init__.py +0 -0
  489. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i09_1_shared/test_data/__init__.py +0 -0
  490. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +0 -0
  491. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i09_1_shared/test_undulator_functions.py +0 -0
  492. {dls_dodal-1.64.0/tests/devices/i09_1_shared → dls_dodal-1.65.0/tests/devices/i10}/__init__.py +0 -0
  493. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
  494. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
  495. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/__init__.py +0 -0
  496. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  497. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  498. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  499. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  500. {dls_dodal-1.64.0/tests/devices/i10 → dls_dodal-1.65.0/tests/devices/i11}/__init__.py +0 -0
  501. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i11/test_i11devices.py +0 -0
  502. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i11/test_mythen.py +0 -0
  503. {dls_dodal-1.64.0/tests/devices/i11 → dls_dodal-1.65.0/tests/devices/i13_1}/__init__.py +0 -0
  504. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i13_1/test_merlin.py +0 -0
  505. {dls_dodal-1.64.0/tests/devices/i13_1 → dls_dodal-1.65.0/tests/devices/i15}/__init__.py +0 -0
  506. {dls_dodal-1.64.0/tests/devices/i15 → dls_dodal-1.65.0/tests/devices/i17}/__init__.py +0 -0
  507. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i17/test_i17_apple2.py +0 -0
  508. {dls_dodal-1.64.0/tests/devices/i17 → dls_dodal-1.65.0/tests/devices/i18}/__init__.py +0 -0
  509. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  510. {dls_dodal-1.64.0/tests/devices/i18 → dls_dodal-1.65.0/tests/devices/i19}/__init__.py +0 -0
  511. {dls_dodal-1.64.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/__init__.py +0 -0
  512. {dls_dodal-1.64.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/test_shutter.py +0 -0
  513. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i19/test_backlight.py +0 -0
  514. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i19/test_beamstop.py +0 -0
  515. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i19/test_diffractometer.py +0 -0
  516. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i19/test_mapt.py +0 -0
  517. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i19/test_pin_col.py +0 -0
  518. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i22/__init__.py +0 -0
  519. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i22/test_dcm.py +0 -0
  520. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i22/test_metadataholder.py +0 -0
  521. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/__init__.py +0 -0
  522. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/test_commissioning_jungfrau.py +0 -0
  523. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/test_dual_backlight.py +0 -0
  524. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/test_focus_mirrors.py +0 -0
  525. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/i24/test_vgonio.py +0 -0
  526. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/mx_phase1/__init__.py +0 -0
  527. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  528. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/__init__.py +0 -0
  529. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/conftest.py +0 -0
  530. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/__init__.py +0 -0
  531. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  532. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/__init__.py +0 -0
  533. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
  534. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
  535. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
  536. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_grid_overlay.py +0 -0
  537. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav.py +0 -0
  538. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_parameters.py +0 -0
  539. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
  540. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
  541. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshots.py +0 -0
  542. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/p60/__init__.py +0 -0
  543. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/p60/test_lab_xray_source.py +0 -0
  544. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/p99/__init__.py +0 -0
  545. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/p99/test_p99_stage.py +0 -0
  546. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/__init__.py +0 -0
  547. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/__init__.py +0 -0
  548. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +0 -0
  549. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_aperture.py +0 -0
  550. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_aperture_scatterguard.py +0 -0
  551. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_attenuator.py +0 -0
  552. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_backlight.py +0 -0
  553. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_bart_robot.py +0 -0
  554. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_baton.py +0 -0
  555. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_beam_converter.py +0 -0
  556. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_bimorph_mirror.py +0 -0
  557. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_common_dcm.py +0 -0
  558. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_controllers.py +0 -0
  559. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
  560. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
  561. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
  562. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  563. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  564. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
  565. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_data/__init__.py +0 -0
  566. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  567. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
  568. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_diamond_filter.py +0 -0
  569. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_eiger.py +0 -0
  570. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_fast_shutters.py +0 -0
  571. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_focusing_mirror.py +0 -0
  572. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_hutch_shutter.py +0 -0
  573. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_motors.py +0 -0
  574. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_odin.py +0 -0
  575. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_positioner.py +0 -0
  576. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_pressure_jump_cell.py +0 -0
  577. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_qbpm.py +0 -0
  578. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_slits.py +0 -0
  579. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_smargon.py +0 -0
  580. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_synchrotron.py +0 -0
  581. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_tetramm.py +0 -0
  582. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_thawer.py +0 -0
  583. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_turbo_slit.py +0 -0
  584. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_utils.py +0 -0
  585. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
  586. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_webcam.py +0 -0
  587. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_xbpm_feedback.py +0 -0
  588. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_xspress3.py +0 -0
  589. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_zebra.py +0 -0
  590. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_constants_mapping.py +0 -0
  591. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_shutter.py +0 -0
  592. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_interaction.py +0 -0
  593. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_results.py +0 -0
  594. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/__init__.py +0 -0
  595. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_adjuster_plans.py +0 -0
  596. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_beamline_specific_utils.py +0 -0
  597. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/__init__.py +0 -0
  598. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  599. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  600. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  601. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/devices/util/test_lookup_tables.py +0 -0
  602. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline.py +0 -0
  603. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  604. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_broken_dependency.py +0 -0
  605. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_dependencies.py +0 -0
  606. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  607. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  608. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_beamline_some_devices_working.py +0 -0
  609. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_device_factory_beamline.py +0 -0
  610. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_zocalo/README.rst +0 -0
  611. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_zocalo/__init__.py +0 -0
  612. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_zocalo/__main__.py +0 -0
  613. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  614. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/__init__.py +0 -0
  615. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/__init__.py +0 -0
  616. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
  617. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
  618. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data_session.py +0 -0
  619. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  620. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  621. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/__init__.py +0 -0
  622. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/conftest.py +0 -0
  623. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_bimorph.py +0 -0
  624. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_compliance.py +0 -0
  625. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
  626. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_preprocessors/__init__.py +0 -0
  627. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  628. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_scanspec.py +0 -0
  629. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  630. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/plans/test_wrapped.py +0 -0
  631. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/preprocessors/__init__.py +0 -0
  632. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  633. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/__init__.py +0 -0
  634. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/bad_beamlineParameters +0 -0
  635. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/i04_beamlineParameters +0 -0
  636. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  637. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/test_display.configuration +0 -0
  638. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
  639. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_log.py +0 -0
  640. {dls_dodal-1.64.0 → dls_dodal-1.65.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.64.0
3
+ Version: 1.65.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.64.0
3
+ Version: 1.65.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -545,7 +545,8 @@ tests/devices/i19/test_beamstop.py
545
545
  tests/devices/i19/test_diffractometer.py
546
546
  tests/devices/i19/test_mapt.py
547
547
  tests/devices/i19/test_pin_col.py
548
- tests/devices/i19/test_shutter.py
548
+ tests/devices/i19/access_controlled/__init__.py
549
+ tests/devices/i19/access_controlled/test_shutter.py
549
550
  tests/devices/i22/__init__.py
550
551
  tests/devices/i22/test_dcm.py
551
552
  tests/devices/i22/test_fswitch.py
@@ -629,4 +630,7 @@ tests/test_data/bad_beamlineParameters
629
630
  tests/test_data/i04_beamlineParameters
630
631
  tests/test_data/test_beamline_parameters.txt
631
632
  tests/test_data/test_display.configuration
632
- tests/test_data/test_oav_zoom_levels.xml
633
+ tests/test_data/test_oav_zoom_levels.xml
634
+ tests/testing/__init__.py
635
+ tests/testing/fixtures/__init__.py
636
+ tests/testing/fixtures/test_run_engine.py
@@ -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.64.0'
32
- __version_tuple__ = version_tuple = (1, 64, 0)
31
+ __version__ = version = '1.65.0'
32
+ __version_tuple__ = version_tuple = (1, 65, 0)
33
33
 
34
- __commit_id__ = commit_id = 'g15623816b'
34
+ __commit_id__ = commit_id = 'g5fe631f29'
@@ -0,0 +1,14 @@
1
+ from dodal.common.beamlines.beamline_utils import device_factory
2
+ from dodal.devices.i05.enums import Grating
3
+ from dodal.devices.pgm import PlaneGratingMonochromator
4
+ from dodal.utils import BeamlinePrefix
5
+
6
+ PREFIX = BeamlinePrefix("i05", "I")
7
+
8
+
9
+ @device_factory()
10
+ def pgm() -> PlaneGratingMonochromator:
11
+ return PlaneGratingMonochromator(
12
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
13
+ grating=Grating,
14
+ )
@@ -37,7 +37,7 @@ def panda() -> HDFPanda:
37
37
  HDFPanda: The HDF5-based detector trigger device.
38
38
  """
39
39
  return HDFPanda(
40
- f"{PREFIX.beamline_prefix}-MO-PANDA-01:",
40
+ f"{PREFIX.beamline_prefix}-MO-PPANDA-01:",
41
41
  path_provider=get_path_provider(),
42
42
  )
43
43
 
@@ -5,7 +5,7 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beam
5
5
  from dodal.devices.b07 import Grating, LensMode, PsuMode
6
6
  from dodal.devices.electron_analyser import EnergySource
7
7
  from dodal.devices.electron_analyser.specs import SpecsDetector
8
- from dodal.devices.pgm import PGM
8
+ from dodal.devices.pgm import PlaneGratingMonochromator
9
9
  from dodal.devices.synchrotron import Synchrotron
10
10
  from dodal.log import set_beamline as set_log_beamline
11
11
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -22,8 +22,11 @@ def synchrotron() -> Synchrotron:
22
22
 
23
23
 
24
24
  @device_factory()
25
- def pgm() -> PGM:
26
- return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
25
+ def pgm() -> PlaneGratingMonochromator:
26
+ return PlaneGratingMonochromator(
27
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
28
+ grating=Grating,
29
+ )
27
30
 
28
31
 
29
32
  @device_factory()
@@ -8,7 +8,7 @@ from dodal.devices.b07_1 import (
8
8
  )
9
9
  from dodal.devices.electron_analyser import EnergySource
10
10
  from dodal.devices.electron_analyser.specs import SpecsDetector
11
- from dodal.devices.pgm import PGM
11
+ from dodal.devices.pgm import PlaneGratingMonochromator
12
12
  from dodal.devices.synchrotron import Synchrotron
13
13
  from dodal.log import set_beamline as set_log_beamline
14
14
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -25,8 +25,11 @@ def synchrotron() -> Synchrotron:
25
25
 
26
26
 
27
27
  @device_factory()
28
- def pgm() -> PGM:
29
- return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
28
+ def pgm() -> PlaneGratingMonochromator:
29
+ return PlaneGratingMonochromator(
30
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
31
+ grating=Grating,
32
+ )
30
33
 
31
34
 
32
35
  # Connect will work again after this work completed
@@ -21,7 +21,7 @@ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
21
21
  from dodal.devices.backlight import Backlight
22
22
  from dodal.devices.baton import Baton
23
23
  from dodal.devices.collimation_table import CollimationTable
24
- from dodal.devices.cryostream import CryoStream
24
+ from dodal.devices.cryostream import CryoStream, CryoStreamGantry
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
@@ -396,6 +396,14 @@ def cryostream() -> CryoStream:
396
396
  return CryoStream(PREFIX.beamline_prefix)
397
397
 
398
398
 
399
+ @device_factory()
400
+ def cryostream_gantry() -> CryoStreamGantry:
401
+ """Get the i03 cryostream gantry device, instantiate it if it hasn't already been.
402
+ If this is called when already instantiated in i03, it will return the existing object.
403
+ """
404
+ return CryoStreamGantry(PREFIX.beamline_prefix)
405
+
406
+
399
407
  @device_factory()
400
408
  def diamond_filter() -> DiamondFilter[I03Filters]:
401
409
  """Get the i03 diamond filter device, instantiate it if it hasn't already been.
@@ -1,7 +1,7 @@
1
1
  from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
2
2
  from dodal.common.beamlines.beamline_utils import device_factory
3
3
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
4
- from dodal.devices.pgm import PGM
4
+ from dodal.devices.pgm import PlaneGratingMonochromator
5
5
  from dodal.devices.synchrotron import Synchrotron
6
6
  from dodal.log import set_beamline as set_log_beamline
7
7
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -18,5 +18,5 @@ def synchrotron() -> Synchrotron:
18
18
 
19
19
 
20
20
  @device_factory()
21
- def pgm() -> PGM:
21
+ def pgm() -> PlaneGratingMonochromator:
22
22
  return i05_pgm()
@@ -1,7 +1,7 @@
1
1
  from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
2
2
  from dodal.common.beamlines.beamline_utils import device_factory
3
3
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
4
- from dodal.devices.pgm import PGM
4
+ from dodal.devices.pgm import PlaneGratingMonochromator
5
5
  from dodal.devices.synchrotron import Synchrotron
6
6
  from dodal.log import set_beamline as set_log_beamline
7
7
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -13,7 +13,7 @@ set_utils_beamline(BL)
13
13
 
14
14
 
15
15
  @device_factory()
16
- def pgm() -> PGM:
16
+ def pgm() -> PlaneGratingMonochromator:
17
17
  return i05_pgm()
18
18
 
19
19
 
@@ -10,7 +10,7 @@ from dodal.devices.common_dcm import (
10
10
  from dodal.devices.electron_analyser import DualEnergySource
11
11
  from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
12
12
  from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
13
- from dodal.devices.pgm import PGM
13
+ from dodal.devices.pgm import PlaneGratingMonochromator
14
14
  from dodal.devices.synchrotron import Synchrotron
15
15
  from dodal.log import set_beamline as set_log_beamline
16
16
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -27,8 +27,8 @@ def synchrotron() -> Synchrotron:
27
27
 
28
28
 
29
29
  @device_factory()
30
- def pgm() -> PGM:
31
- return PGM(
30
+ def pgm() -> PlaneGratingMonochromator:
31
+ return PlaneGratingMonochromator(
32
32
  prefix=f"{BeamlinePrefix(BL, suffix='J').beamline_prefix}-MO-PGM-01:",
33
33
  grating=Grating,
34
34
  )
@@ -11,6 +11,7 @@ from dodal.devices.electron_analyser import EnergySource
11
11
  from dodal.devices.electron_analyser.specs import SpecsDetector
12
12
  from dodal.devices.i09_1 import LensMode, PsuMode
13
13
  from dodal.devices.synchrotron import Synchrotron
14
+ from dodal.devices.undulator import UndulatorOrder
14
15
  from dodal.log import set_beamline as set_log_beamline
15
16
  from dodal.utils import BeamlinePrefix, get_beamline_name
16
17
 
@@ -47,3 +48,8 @@ def analyser() -> SpecsDetector[LensMode, PsuMode]:
47
48
  psu_mode_type=PsuMode,
48
49
  energy_source=energy_source(),
49
50
  )
51
+
52
+
53
+ @device_factory()
54
+ def harmonics() -> UndulatorOrder:
55
+ return UndulatorOrder(name="harmonics")
@@ -8,7 +8,7 @@ from dodal.devices.apple2_undulator import (
8
8
  UndulatorPhaseAxes,
9
9
  )
10
10
  from dodal.devices.i09.enums import Grating
11
- from dodal.devices.pgm import PGM
11
+ from dodal.devices.pgm import PlaneGratingMonochromator
12
12
  from dodal.devices.synchrotron import Synchrotron
13
13
  from dodal.log import set_beamline as set_log_beamline
14
14
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -25,8 +25,11 @@ def synchrotron() -> Synchrotron:
25
25
 
26
26
 
27
27
  @device_factory()
28
- def pgm() -> PGM:
29
- return PGM(prefix=f"{PREFIX.beamline_prefix}-MO-PGM-01:", grating=Grating)
28
+ def pgm() -> PlaneGratingMonochromator:
29
+ return PlaneGratingMonochromator(
30
+ prefix=f"{PREFIX.beamline_prefix}-MO-PGM-01:",
31
+ grating=Grating,
32
+ )
30
33
 
31
34
 
32
35
  @device_factory()
@@ -32,7 +32,7 @@ from dodal.devices.i10.i10_apple2 import (
32
32
 
33
33
  # Imports taken from i10 while we work out how to deal with split end stations
34
34
  from dodal.devices.i10.i10_setting_data import I10Grating
35
- from dodal.devices.pgm import PGM
35
+ from dodal.devices.pgm import PlaneGratingMonochromator
36
36
  from dodal.devices.synchrotron import Synchrotron
37
37
  from dodal.log import set_beamline as set_log_beamline
38
38
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -59,9 +59,9 @@ def first_mirror() -> PiezoMirror:
59
59
 
60
60
 
61
61
  @device_factory()
62
- def pgm() -> PGM:
62
+ def pgm() -> PlaneGratingMonochromator:
63
63
  "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set(<energy>)"
64
- return PGM(
64
+ return PlaneGratingMonochromator(
65
65
  prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
66
66
  grating=I10Grating,
67
67
  grating_pv="NLINES2",
@@ -17,7 +17,7 @@ from dodal.devices.apple2_undulator import (
17
17
  UndulatorPhaseAxes,
18
18
  )
19
19
  from dodal.devices.i17.i17_apple2 import I17Apple2Controller
20
- from dodal.devices.pgm import PGM
20
+ from dodal.devices.pgm import PlaneGratingMonochromator
21
21
  from dodal.devices.synchrotron import Synchrotron
22
22
  from dodal.log import set_beamline as set_log_beamline
23
23
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -39,8 +39,8 @@ def synchrotron() -> Synchrotron:
39
39
 
40
40
 
41
41
  @device_factory(skip=True)
42
- def pgm() -> PGM:
43
- return PGM(
42
+ def pgm() -> PlaneGratingMonochromator:
43
+ return PlaneGratingMonochromator(
44
44
  prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
45
45
  grating=I17Grating,
46
46
  grating_pv="NLINES2",
@@ -1,12 +1,17 @@
1
+ from pathlib import Path
2
+
3
+ from ophyd_async.fastcs.eiger import EigerDetector
1
4
  from ophyd_async.fastcs.panda import HDFPanda
2
5
 
3
6
  from dodal.common.beamlines.beamline_utils import (
4
7
  device_factory,
5
8
  get_path_provider,
9
+ set_path_provider,
6
10
  )
7
11
  from dodal.common.beamlines.beamline_utils import (
8
12
  set_beamline as set_utils_beamline,
9
13
  )
14
+ from dodal.common.visit import StaticVisitPathProvider
10
15
  from dodal.devices.i19.access_controlled.blueapi_device import HutchState
11
16
  from dodal.devices.i19.access_controlled.shutter import AccessControlledShutter
12
17
  from dodal.devices.i19.backlight import BacklightPosition
@@ -31,6 +36,13 @@ PREFIX = BeamlinePrefix("i19", "I")
31
36
  set_log_beamline(BL)
32
37
  set_utils_beamline(BL)
33
38
 
39
+ set_path_provider(
40
+ StaticVisitPathProvider(
41
+ BL,
42
+ Path("/dls/i19-2/data/2025/cm40639-4/"),
43
+ )
44
+ )
45
+
34
46
 
35
47
  I19_2_ZEBRA_MAPPING = ZebraMapping(
36
48
  outputs=ZebraTTLOutputs(),
@@ -105,3 +117,13 @@ def panda() -> HDFPanda:
105
117
  prefix=f"{PREFIX.beamline_prefix}-EA-PANDA-01:",
106
118
  path_provider=get_path_provider(),
107
119
  )
120
+
121
+
122
+ @device_factory()
123
+ def eiger() -> EigerDetector:
124
+ return EigerDetector(
125
+ prefix=PREFIX.beamline_prefix,
126
+ path_provider=get_path_provider(),
127
+ drv_suffix="-EA-EIGER-01:",
128
+ hdf_suffix="-EA-EIGER-01:OD:",
129
+ )
@@ -8,7 +8,7 @@ from dodal.devices.apple2_undulator import (
8
8
  UndulatorPhaseAxes,
9
9
  )
10
10
  from dodal.devices.i21 import Grating
11
- from dodal.devices.pgm import PGM
11
+ from dodal.devices.pgm import PlaneGratingMonochromator
12
12
  from dodal.devices.synchrotron import Synchrotron
13
13
  from dodal.log import set_beamline as set_log_beamline
14
14
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -25,8 +25,8 @@ def synchrotron() -> Synchrotron:
25
25
 
26
26
 
27
27
  @device_factory()
28
- def pgm() -> PGM:
29
- return PGM(
28
+ def pgm() -> PlaneGratingMonochromator:
29
+ return PlaneGratingMonochromator(
30
30
  prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
31
31
  grating=Grating,
32
32
  )
@@ -1,5 +1,3 @@
1
- from pathlib import Path
2
-
3
1
  from ophyd_async.epics.adaravis import AravisDetector
4
2
  from ophyd_async.epics.adcore import NDPluginBaseIO, NDPluginStatsIO
5
3
  from ophyd_async.epics.adpilatus import PilatusDetector
@@ -8,7 +6,6 @@ from ophyd_async.fastcs.panda import HDFPanda
8
6
  from dodal.common.beamlines.beamline_utils import (
9
7
  device_factory,
10
8
  get_path_provider,
11
- set_path_provider,
12
9
  )
13
10
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
14
11
  from dodal.common.beamlines.device_helpers import CAM_SUFFIX, DET_SUFFIX, HDF5_SUFFIX
@@ -16,7 +13,6 @@ from dodal.common.crystal_metadata import (
16
13
  MaterialsEnum,
17
14
  make_crystal_metadata_from_material,
18
15
  )
19
- from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
20
16
  from dodal.devices.bimorph_mirror import BimorphMirror
21
17
  from dodal.devices.focusing_mirror import FocusingMirror
22
18
  from dodal.devices.i22.dcm import DCM
@@ -37,19 +33,6 @@ PREFIX = BeamlinePrefix(BL)
37
33
  set_log_beamline(BL)
38
34
  set_utils_beamline(BL)
39
35
 
40
- # Currently we must hard-code the visit, determining the visit at runtime requires
41
- # infrastructure that is still WIP.
42
- # Communication with GDA is also WIP so for now we determine an arbitrary scan number
43
- # locally and write the commissioning directory. The scan number is not guaranteed to
44
- # be unique and the data is at risk - this configuration is for testing only.
45
- set_path_provider(
46
- StaticVisitPathProvider(
47
- BL,
48
- Path("/dls/i22/data/2025/cm40643-4/"),
49
- client=RemoteDirectoryServiceClient("http://i22-control:8088/api"),
50
- )
51
- )
52
-
53
36
 
54
37
  @device_factory()
55
38
  def saxs() -> PilatusDetector:
@@ -4,7 +4,7 @@ from dodal.common.beamlines.beamline_utils import (
4
4
  device_factory,
5
5
  )
6
6
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
7
- from dodal.devices.pgm import PGM
7
+ from dodal.devices.pgm import PlaneGratingMonochromator
8
8
  from dodal.devices.synchrotron import Synchrotron
9
9
  from dodal.log import set_beamline as set_log_beamline
10
10
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -27,5 +27,8 @@ class Grating(StrictEnum):
27
27
 
28
28
  # Grating does not exist yet - this class is a placeholder for when it does
29
29
  @device_factory(skip=True)
30
- def pgm() -> PGM:
31
- return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
30
+ def pgm() -> PlaneGratingMonochromator:
31
+ return PlaneGratingMonochromator(
32
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
33
+ grating=Grating,
34
+ )
@@ -32,6 +32,11 @@ class TurboEnum(StrictEnum):
32
32
  AUTO = "Auto"
33
33
 
34
34
 
35
+ class CryoStreamSelection(StrictEnum):
36
+ CRYOJET = "CryoJet"
37
+ HC1 = "HC1"
38
+
39
+
35
40
  class OxfordCryoStreamController(StandardReadable):
36
41
  def __init__(self, prefix: str, name: str = ""):
37
42
  with self.add_children_as_readables(StandardReadableFormat.CONFIG_SIGNAL):
@@ -107,3 +112,19 @@ class OxfordCryoStream(StandardReadable):
107
112
  self.status = OxfordCryoStreamStatus(prefix=prefix)
108
113
 
109
114
  super().__init__(name)
115
+
116
+
117
+ class CryoStreamGantry(StandardReadable):
118
+ def __init__(self, prefix: str, name: str = ""):
119
+ with self.add_children_as_readables(StandardReadableFormat.CONFIG_SIGNAL):
120
+ self.cryostream_selector = epics_signal_r(
121
+ CryoStreamSelection, f"{prefix}-EA-GANT-01:CTRL"
122
+ )
123
+ self.hc1_selected = epics_signal_r(
124
+ int, f"{prefix}-MO-STEP-02:GPIO_INP_BITS.B2"
125
+ )
126
+ self.cryostream_selected = epics_signal_r(
127
+ int, f"{prefix}-MO-STEP-02:GPIO_INP_BITS.B3"
128
+ )
129
+
130
+ super().__init__(name)
@@ -1,11 +1,9 @@
1
- import asyncio
2
- from collections.abc import Awaitable, Iterable
3
1
  from dataclasses import dataclass, fields
4
2
  from typing import TypeVar
5
3
 
6
4
  from bluesky.protocols import Reading
7
5
  from event_model.documents.event_descriptor import DataKey
8
- from ophyd_async.core import PathProvider
6
+ from ophyd_async.core import PathProvider, merge_gathered_dicts
9
7
  from ophyd_async.epics.adaravis import AravisDetector
10
8
  from ophyd_async.epics.adcore import NDPluginBaseIO
11
9
  from ophyd_async.epics.adpilatus import PilatusDetector
@@ -14,23 +12,6 @@ ValueAndUnits = tuple[float, str]
14
12
  T = TypeVar("T")
15
13
 
16
14
 
17
- # TODO: Remove this file as part of github.com/DiamondLightSource/dodal/issues/595
18
- # Until which, temporarily duplicated non-public method from ophyd_async
19
- async def _merge_gathered_dicts(
20
- coros: Iterable[Awaitable[dict[str, T]]],
21
- ) -> dict[str, T]:
22
- """Merge dictionaries produced by a sequence of coroutines.
23
-
24
- Can be used for merging ``read()`` or ``describe``. For instance::
25
-
26
- combined_read = await merge_gathered_dicts(s.read() for s in signals)
27
- """
28
- ret: dict[str, T] = {}
29
- for result in await asyncio.gather(*coros):
30
- ret.update(result)
31
- return ret
32
-
33
-
34
15
  @dataclass
35
16
  class MetadataHolder:
36
17
  # TODO: just in case this is useful more widely...
@@ -124,7 +105,7 @@ class NXSasPilatus(PilatusDetector):
124
105
  self._metadata_holder = metadata_holder
125
106
 
126
107
  async def read_configuration(self) -> dict[str, Reading]:
127
- return await _merge_gathered_dicts(
108
+ return await merge_gathered_dicts(
128
109
  r
129
110
  for r in (
130
111
  super().read_configuration(),
@@ -133,7 +114,7 @@ class NXSasPilatus(PilatusDetector):
133
114
  )
134
115
 
135
116
  async def describe_configuration(self) -> dict[str, DataKey]:
136
- return await _merge_gathered_dicts(
117
+ return await merge_gathered_dicts(
137
118
  r
138
119
  for r in (
139
120
  super().describe_configuration(),
@@ -167,7 +148,7 @@ class NXSasOAV(AravisDetector):
167
148
  self._metadata_holder = metadata_holder
168
149
 
169
150
  async def read_configuration(self) -> dict[str, Reading]:
170
- return await _merge_gathered_dicts(
151
+ return await merge_gathered_dicts(
171
152
  r
172
153
  for r in (
173
154
  super().read_configuration(),
@@ -176,7 +157,7 @@ class NXSasOAV(AravisDetector):
176
157
  )
177
158
 
178
159
  async def describe_configuration(self) -> dict[str, DataKey]:
179
- return await _merge_gathered_dicts(
160
+ return await merge_gathered_dicts(
180
161
  r
181
162
  for r in (
182
163
  super().describe_configuration(),
@@ -7,7 +7,7 @@ from ophyd_async.epics.core import epics_signal_rw
7
7
  from ophyd_async.epics.motor import Motor
8
8
 
9
9
 
10
- class PGM(StandardReadable):
10
+ class PlaneGratingMonochromator(StandardReadable):
11
11
  """
12
12
  Plane grating monochromator, it is use in soft x-ray beamline to generate monochromic beam.
13
13
  """
@@ -69,6 +69,10 @@ class Scintillator(StandardReadable):
69
69
  async def _set_selected_position(self, position: InOut) -> None:
70
70
  match position:
71
71
  case InOut.OUT:
72
+ current_y = await self.y_mm.user_readback.get_value()
73
+ current_z = await self.z_mm.user_readback.get_value()
74
+ if self._get_selected_position(current_y, current_z) == InOut.OUT:
75
+ return
72
76
  if (
73
77
  self._aperture_scatterguard().selected_aperture.get_value()
74
78
  != ApertureValue.PARKED
@@ -1,7 +1,7 @@
1
1
  import os
2
2
 
3
3
  import numpy as np
4
- from bluesky.protocols import Movable
4
+ from bluesky.protocols import Locatable, Location, Movable
5
5
  from numpy import ndarray
6
6
  from ophyd_async.core import (
7
7
  AsyncStatus,
@@ -9,6 +9,7 @@ from ophyd_async.core import (
9
9
  StandardReadable,
10
10
  StandardReadableFormat,
11
11
  soft_signal_r_and_setter,
12
+ soft_signal_rw,
12
13
  )
13
14
  from ophyd_async.epics.core import epics_signal_r
14
15
  from ophyd_async.epics.motor import Motor
@@ -157,3 +158,30 @@ class Undulator(StandardReadable, Movable[float]):
157
158
  energy_kev * 1000,
158
159
  energy_to_distance_table,
159
160
  )
161
+
162
+
163
+ class UndulatorOrder(StandardReadable, Locatable[int]):
164
+ """
165
+ Represents the order of an undulator device. Allows setting and locating the order.
166
+ """
167
+
168
+ def __init__(self, name: str = "") -> None:
169
+ """
170
+ Args:
171
+ name: Name for device. Defaults to ""
172
+ """
173
+ with self.add_children_as_readables():
174
+ self._value = soft_signal_rw(int, initial_value=3)
175
+ super().__init__(name=name)
176
+
177
+ @AsyncStatus.wrap
178
+ async def set(self, value: int) -> None:
179
+ if (value >= 0) and isinstance(value, int):
180
+ await self._value.set(value)
181
+ else:
182
+ raise ValueError(
183
+ f"Undulator order must be a positive integer. Requested value: {value}"
184
+ )
185
+
186
+ async def locate(self) -> Location[int]:
187
+ return await self._value.locate()
@@ -0,0 +1,3 @@
1
+ from .wrapped import move, move_relative, set_absolute, set_relative, sleep, wait
2
+
3
+ __all__ = ["move", "move_relative", "set_absolute", "set_relative", "sleep", "wait"]