dls-dodal 1.43.0__tar.gz → 1.45.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 (478) hide show
  1. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/PKG-INFO +4 -3
  2. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/reference/device-standards.rst +3 -3
  3. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/pyproject.toml +17 -13
  4. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/PKG-INFO +4 -3
  5. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/SOURCES.txt +39 -5
  6. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/requires.txt +1 -1
  7. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/_version.py +2 -2
  8. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/__init__.py +2 -0
  9. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/b01_1.py +8 -0
  10. dls_dodal-1.45.0/src/dodal/beamlines/b07.py +27 -0
  11. dls_dodal-1.45.0/src/dodal/beamlines/b07_1.py +25 -0
  12. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i03.py +11 -0
  13. dls_dodal-1.45.0/src/dodal/beamlines/i09.py +25 -0
  14. dls_dodal-1.45.0/src/dodal/beamlines/i09_1.py +25 -0
  15. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i10.py +19 -35
  16. dls_dodal-1.45.0/src/dodal/beamlines/i13_1.py +59 -0
  17. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_1.py +17 -5
  18. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_2.py +13 -3
  19. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_optics.py +4 -2
  20. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i20_1.py +2 -1
  21. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i23.py +10 -0
  22. dls_dodal-1.45.0/src/dodal/beamlines/p60.py +21 -0
  23. dls_dodal-1.45.0/src/dodal/common/data_util.py +20 -0
  24. dls_dodal-1.45.0/src/dodal/common/signal_utils.py +88 -0
  25. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/visit.py +1 -41
  26. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/aperturescatterguard.py +3 -3
  27. dls_dodal-1.45.0/src/dodal/devices/baton.py +17 -0
  28. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +1 -6
  29. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +2 -2
  30. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/femto.py +0 -5
  31. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -5
  32. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +16 -23
  33. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector.py +2 -1
  34. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_analyser_io.py +47 -0
  35. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_region.py +112 -0
  36. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_analyser_io.py +19 -0
  37. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_region.py +26 -0
  38. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +26 -0
  39. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_region.py +90 -0
  40. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/fast_grid_scan.py +2 -2
  41. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i03/beamstop.py +2 -2
  42. dls_dodal-1.45.0/src/dodal/devices/i10/diagnostics.py +239 -0
  43. dls_dodal-1.45.0/src/dodal/devices/i10/slits.py +124 -0
  44. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin.py +1 -2
  45. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin_controller.py +12 -8
  46. dls_dodal-1.45.0/src/dodal/devices/i19/beamstop.py +30 -0
  47. dls_dodal-1.45.0/src/dodal/devices/i19/blueapi_device.py +102 -0
  48. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i19/hutch_access.py +2 -0
  49. dls_dodal-1.45.0/src/dodal/devices/i19/shutter.py +41 -0
  50. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/nxsas.py +1 -3
  51. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/focus_mirrors.py +3 -3
  52. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pilatus_metadata.py +2 -2
  53. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/motors.py +21 -0
  54. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_detector.py +7 -9
  55. dls_dodal-1.45.0/src/dodal/devices/oav/snapshots/snapshot.py +21 -0
  56. dls_dodal-1.45.0/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +74 -0
  57. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/turbo_slit.py +8 -2
  58. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator.py +9 -7
  59. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/util/adjuster_plans.py +1 -2
  60. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/util/lookup_tables.py +38 -0
  61. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/util/test_utils.py +1 -0
  62. dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser/configure_controller.py +80 -0
  63. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/motor_utils.py +10 -12
  64. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/utils.py +0 -7
  65. dls_dodal-1.45.0/tests/common/test_signal_utils.py +84 -0
  66. dls_dodal-1.45.0/tests/common/test_visit.py +32 -0
  67. dls_dodal-1.45.0/tests/devices/i10/test_diagnostic.py +27 -0
  68. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i13_1/test_merlin.py +1 -2
  69. dls_dodal-1.45.0/tests/devices/i19/test_beamstop.py +15 -0
  70. dls_dodal-1.45.0/tests/devices/i19/test_shutter.py +195 -0
  71. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i22/test_dcm.py +1 -0
  72. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_detector.py +7 -3
  73. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/conftest.py +90 -0
  74. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +149 -0
  75. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +78 -0
  76. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py +119 -0
  77. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_util.py +41 -0
  78. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +119 -0
  79. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +158 -0
  80. dls_dodal-1.45.0/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +39 -0
  81. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_snapshots.py +5 -35
  82. dls_dodal-1.45.0/tests/devices/unit_tests/test_baton.py +27 -0
  83. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beam_converter.py +29 -33
  84. dls_dodal-1.45.0/tests/devices/unit_tests/test_motors.py +54 -0
  85. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_tetramm.py +2 -2
  86. dls_dodal-1.45.0/tests/devices/unit_tests/test_turbo_slit.py +54 -0
  87. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator.py +6 -5
  88. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator_dcm.py +2 -2
  89. dls_dodal-1.45.0/tests/devices/unit_tests/util/__init__.py +0 -0
  90. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_lookup_tables.py +15 -0
  91. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline.py +2 -2
  92. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_broken_dependency.py +3 -3
  93. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_dependencies.py +3 -3
  94. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_disordered_dependencies.py +3 -3
  95. dls_dodal-1.45.0/tests/fake_zocalo/__init__.py +0 -0
  96. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_data_session.py +3 -2
  97. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_wrapped_stubs.py +8 -8
  98. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/conftest.py +4 -3
  99. dls_dodal-1.45.0/tests/test_data/electron_analyser/specs_sequence.seq +40 -0
  100. dls_dodal-1.45.0/tests/test_data/electron_analyser/vgscienta_sequence.seq +61 -0
  101. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_utils.py +2 -2
  102. dls_dodal-1.45.0/tests/unit_tests/__init__.py +0 -0
  103. dls_dodal-1.43.0/src/dodal/beamlines/i13_1.py +0 -85
  104. dls_dodal-1.43.0/src/dodal/common/signal_utils.py +0 -49
  105. dls_dodal-1.43.0/src/dodal/devices/i10/slits.py +0 -37
  106. dls_dodal-1.43.0/src/dodal/devices/i13_1/merlin_io.py +0 -17
  107. dls_dodal-1.43.0/src/dodal/devices/i19/shutter.py +0 -57
  108. dls_dodal-1.43.0/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -55
  109. dls_dodal-1.43.0/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -64
  110. dls_dodal-1.43.0/src/dodal/devices/util/motor_utils.py +0 -6
  111. dls_dodal-1.43.0/tests/common/test_visit.py +0 -242
  112. dls_dodal-1.43.0/tests/devices/i19/test_shutter.py +0 -76
  113. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.copier-answers.yml +0 -0
  114. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.devcontainer/devcontainer.json +0 -0
  115. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/CODEOWNERS +0 -0
  116. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/CONTRIBUTING.md +0 -0
  117. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  118. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/actions/install_requirements/action.yml +0 -0
  119. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/dependabot.yml +0 -0
  120. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/pages/index.html +0 -0
  121. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/pages/make_switcher.py +0 -0
  122. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/scripts/check_test_durations.py +0 -0
  123. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_check.yml +0 -0
  124. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_dist.yml +0 -0
  125. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_docs.yml +0 -0
  126. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_pypi.yml +0 -0
  127. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_release.yml +0 -0
  128. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_test.yml +0 -0
  129. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/_tox.yml +0 -0
  130. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/ci.yml +0 -0
  131. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.github/workflows/periodic.yml +0 -0
  132. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.gitignore +0 -0
  133. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.pre-commit-config.yaml +0 -0
  134. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.vscode/extensions.json +0 -0
  135. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.vscode/launch.json +0 -0
  136. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.vscode/settings.json +0 -0
  137. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/.vscode/tasks.json +0 -0
  138. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/Dockerfile +0 -0
  139. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/LICENSE +0 -0
  140. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/README.md +0 -0
  141. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/catalog-info.yaml +0 -0
  142. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/conftest.py +0 -0
  143. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/class.rst +0 -0
  144. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/module.rst +0 -0
  145. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/_templates/custom-module-template.rst +0 -0
  146. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/assets/zocalo.png +0 -0
  147. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/conf.py +0 -0
  148. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  149. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  150. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  151. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
  152. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions/COPYME +0 -0
  153. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/decisions.md +0 -0
  154. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations/reviews.md +0 -0
  155. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/explanations.md +0 -0
  156. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/genindex.md +0 -0
  157. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/build-docs.md +0 -0
  158. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/contribute.md +0 -0
  159. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/coverage.md +0 -0
  160. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/create-beamline.rst +0 -0
  161. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/dev-install.md +0 -0
  162. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/excalidraw.md +0 -0
  163. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/lint.md +0 -0
  164. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/lock-requirements.md +0 -0
  165. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
  166. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/make-release.md +0 -0
  167. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/move-code.rst +0 -0
  168. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/pypi.md +0 -0
  169. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/run-tests.md +0 -0
  170. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/static-analysis.md +0 -0
  171. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/update-template.md +0 -0
  172. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/write-tests.md +0 -0
  173. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to/zocalo.rst +0 -0
  174. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/how-to.md +0 -0
  175. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/images/dls-logo.svg +0 -0
  176. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/images/excalidraw-example.svg +0 -0
  177. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/index.md +0 -0
  178. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/reference/api.md +0 -0
  179. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/reference/standards.rst +0 -0
  180. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/reference.md +0 -0
  181. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/tutorials/get_started.rst +0 -0
  182. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/tutorials/installation.md +0 -0
  183. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/docs/tutorials.md +0 -0
  184. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/pull_request_template.md +0 -0
  185. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/setup.cfg +0 -0
  186. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/__init__.py +0 -0
  187. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  188. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  189. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  190. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/__init__.py +0 -0
  191. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/__main__.py +0 -0
  192. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  193. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  194. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/README.md +0 -0
  195. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/adsim.py +0 -0
  196. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/aithre.py +0 -0
  197. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i02_1.py +0 -0
  198. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i04.py +0 -0
  199. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i18.py +0 -0
  200. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i22.py +0 -0
  201. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i24.py +0 -0
  202. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p38.py +0 -0
  203. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p45.py +0 -0
  204. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p99.py +0 -0
  205. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/beamlines/training_rig.py +0 -0
  206. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/cli.py +0 -0
  207. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/__init__.py +0 -0
  208. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/__init__.py +0 -0
  209. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  210. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  211. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  212. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/coordination.py +0 -0
  213. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/crystal_metadata.py +0 -0
  214. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/maths.py +0 -0
  215. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/types.py +0 -0
  216. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/common/udc_directory_provider.py +0 -0
  217. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/CTAB.py +0 -0
  218. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/__init__.py +0 -0
  219. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/adsim.py +0 -0
  220. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  221. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/aperture.py +0 -0
  222. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/apple2_undulator.py +0 -0
  223. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  224. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  225. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  226. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter.py +0 -0
  227. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  228. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/backlight.py +0 -0
  229. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  230. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/cryostream.py +0 -0
  231. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  232. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  233. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/dcm.py +0 -0
  234. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/__init__.py +0 -0
  235. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  236. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  237. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  238. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/diamond_filter.py +0 -0
  239. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger.py +0 -0
  240. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger_odin.py +0 -0
  241. {dls_dodal-1.43.0/src/dodal/devices/i03 → dls_dodal-1.45.0/src/dodal/devices/electron_analyser}/__init__.py +0 -0
  242. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  243. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/flux.py +0 -0
  244. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/focusing_mirror.py +0 -0
  245. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/hutch_shutter.py +0 -0
  246. {dls_dodal-1.43.0/src/dodal/devices/i13_1 → dls_dodal-1.45.0/src/dodal/devices/i03}/__init__.py +0 -0
  247. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i04/transfocator.py +0 -0
  248. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
  249. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  250. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/mirrors.py +0 -0
  251. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  252. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  253. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  254. {dls_dodal-1.43.0/src/dodal/devices/i19 → dls_dodal-1.45.0/src/dodal/devices/i13_1}/__init__.py +0 -0
  255. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/KBMirror.py +0 -0
  256. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/diode.py +0 -0
  257. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/table.py +0 -0
  258. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
  259. {dls_dodal-1.43.0/src/dodal/devices/i20_1 → dls_dodal-1.45.0/src/dodal/devices/i19}/__init__.py +0 -0
  260. {dls_dodal-1.43.0/src/dodal/devices/i24 → dls_dodal-1.45.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  261. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/dcm.py +0 -0
  262. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/fswitch.py +0 -0
  263. {dls_dodal-1.43.0/src/dodal/devices/oav → dls_dodal-1.45.0/src/dodal/devices/i24}/__init__.py +0 -0
  264. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/aperture.py +0 -0
  265. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beam_center.py +0 -0
  266. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beamstop.py +0 -0
  267. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dcm.py +0 -0
  268. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  269. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
  270. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pmac.py +0 -0
  271. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/vgonio.py +0 -0
  272. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/ipin.py +0 -0
  273. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/linkam3.py +0 -0
  274. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
  275. {dls_dodal-1.43.0/src/dodal/devices/p99 → dls_dodal-1.45.0/src/dodal/devices/oav}/__init__.py +0 -0
  276. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  277. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  278. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  279. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  280. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  281. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  282. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  283. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  284. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/utils.py +0 -0
  285. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/p45.py +0 -0
  286. {dls_dodal-1.43.0/src/dodal/devices/training_rig → dls_dodal-1.45.0/src/dodal/devices/p99}/__init__.py +0 -0
  287. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  288. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/pgm.py +0 -0
  289. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  290. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/qbpm.py +0 -0
  291. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/robot.py +0 -0
  292. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  293. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/scatterguard.py +0 -0
  294. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/scintillator.py +0 -0
  295. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/slits.py +0 -0
  296. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/smargon.py +0 -0
  297. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/status.py +0 -0
  298. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/synchrotron.py +0 -0
  299. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/tetramm.py +0 -0
  300. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/thawer.py +0 -0
  301. {dls_dodal-1.43.0/src/dodal/devices/util → dls_dodal-1.45.0/src/dodal/devices/training_rig}/__init__.py +0 -0
  302. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
  303. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator_dcm.py +0 -0
  304. {dls_dodal-1.43.0/src/dodal/devices/zebra → dls_dodal-1.45.0/src/dodal/devices/util}/__init__.py +0 -0
  305. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/util/epics_util.py +0 -0
  306. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  307. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/webcam.py +0 -0
  308. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  309. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  310. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  311. {dls_dodal-1.43.0/src/dodal/plan_stubs → dls_dodal-1.45.0/src/dodal/devices/zebra}/__init__.py +0 -0
  312. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra.py +0 -0
  313. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  314. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  315. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  316. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  317. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  318. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  319. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/log.py +0 -0
  320. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  321. {dls_dodal-1.43.0/src/dodal/plans/preprocessors → dls_dodal-1.45.0/src/dodal/plan_stubs}/__init__.py +0 -0
  322. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  323. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/data_session.py +0 -0
  324. {dls_dodal-1.43.0/system_tests → dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser}/__init__.py +0 -0
  325. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  326. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/__init__.py +0 -0
  327. {dls_dodal-1.43.0/tests → dls_dodal-1.45.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  328. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  329. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/save_panda.py +0 -0
  330. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/scanspec.py +0 -0
  331. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  332. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/src/dodal/plans/wrapped.py +0 -0
  333. {dls_dodal-1.43.0/tests/beamlines → dls_dodal-1.45.0/system_tests}/__init__.py +0 -0
  334. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_adsim.py +0 -0
  335. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_aperturescatterguard_system.py +0 -0
  336. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_cli.py +0 -0
  337. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_eiger_system.py +0 -0
  338. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_gridscan_system.py +0 -0
  339. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_oav_system.py +0 -0
  340. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_oav_to_redis_system.py +0 -0
  341. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_slit_gaps_system.py +0 -0
  342. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_smargon_system.py +0 -0
  343. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_synchrotron_system.py +0 -0
  344. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_undulator_system.py +0 -0
  345. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_zebra_system.py +0 -0
  346. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/system_tests/test_zocalo_results.py +0 -0
  347. {dls_dodal-1.43.0/tests/beamlines/unit_tests → dls_dodal-1.45.0/tests}/__init__.py +0 -0
  348. {dls_dodal-1.43.0/tests/common → dls_dodal-1.45.0/tests/beamlines}/__init__.py +0 -0
  349. {dls_dodal-1.43.0/tests/common/beamlines → dls_dodal-1.45.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  350. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  351. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
  352. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  353. {dls_dodal-1.43.0/tests/devices → dls_dodal-1.45.0/tests/common}/__init__.py +0 -0
  354. {dls_dodal-1.43.0/tests/devices/i03 → dls_dodal-1.45.0/tests/common/beamlines}/__init__.py +0 -0
  355. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  356. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  357. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  358. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  359. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/test_coordination.py +0 -0
  360. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/test_crystal_metadata.py +0 -0
  361. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/test_maths.py +0 -0
  362. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/common/test_udc_directory_provider.py +0 -0
  363. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/conftest.py +0 -0
  364. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/constants.py +0 -0
  365. {dls_dodal-1.43.0/tests/devices/i04 → dls_dodal-1.45.0/tests/devices}/__init__.py +0 -0
  366. {dls_dodal-1.43.0/tests/devices/i19 → dls_dodal-1.45.0/tests/devices/i03}/__init__.py +0 -0
  367. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i03/test_beamstop.py +0 -0
  368. {dls_dodal-1.43.0/tests/devices/unit_tests → dls_dodal-1.45.0/tests/devices/i04}/__init__.py +0 -0
  369. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i04/test_transfocator.py +0 -0
  370. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  371. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  372. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  373. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  374. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  375. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  376. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i10/test_i10Apple2.py +0 -0
  377. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  378. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i18/test_table.py +0 -0
  379. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
  380. {dls_dodal-1.43.0/tests/devices/unit_tests/i24 → dls_dodal-1.45.0/tests/devices/i19}/__init__.py +0 -0
  381. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i22/test_fswitch.py +0 -0
  382. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/i22/test_metadataholder.py +0 -0
  383. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/test_diamond_filter.py +0 -0
  384. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
  385. {dls_dodal-1.43.0/tests/devices/unit_tests/oav → dls_dodal-1.45.0/tests/devices/unit_tests}/__init__.py +0 -0
  386. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/conftest.py +0 -0
  387. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
  388. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
  389. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  390. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  391. {dls_dodal-1.43.0/tests/devices/unit_tests/util → dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
  392. {dls_dodal-1.43.0/tests/fake_zocalo → dls_dodal-1.45.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
  393. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  394. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
  395. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
  396. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
  397. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  398. {dls_dodal-1.43.0/tests/unit_tests → dls_dodal-1.45.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
  399. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
  400. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
  401. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  402. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  403. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
  404. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  405. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
  406. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
  407. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  408. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  409. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  410. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
  411. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
  412. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
  413. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_backlight.py +0 -0
  414. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
  415. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  416. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
  417. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  418. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  419. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  420. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_dcm.py +0 -0
  421. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  422. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_eiger.py +0 -0
  423. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
  424. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
  425. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
  426. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  427. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
  428. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  429. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  430. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_odin.py +0 -0
  431. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
  432. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
  433. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_slits.py +0 -0
  434. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_smargon.py +0 -0
  435. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_status.py +0 -0
  436. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  437. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_thawer.py +0 -0
  438. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_utils.py +0 -0
  439. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
  440. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  441. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
  442. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
  443. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra.py +0 -0
  444. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
  445. /dls_dodal-1.43.0/tests/devices/unit_tests/test_shutter.py → /dls_dodal-1.45.0/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
  446. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  447. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
  448. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  449. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  450. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  451. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  452. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  453. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_beamline_some_devices_working.py +0 -0
  454. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_device_factory_beamline.py +0 -0
  455. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_zocalo/README.rst +0 -0
  456. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_zocalo/__main__.py +0 -0
  457. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  458. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  459. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  460. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/test_compliance.py +0 -0
  461. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  462. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/test_scanspec.py +0 -0
  463. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  464. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/plans/test_wrapped.py +0 -0
  465. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  466. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/bad_beamlineParameters +0 -0
  467. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/i04_beamlineParameters +0 -0
  468. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  469. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  470. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  471. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  472. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  473. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  474. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  475. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/topup_long_delay.txt +0 -0
  476. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/test_data/topup_short_params.txt +0 -0
  477. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/unit_tests/test_cli.py +0 -0
  478. {dls_dodal-1.43.0 → dls_dodal-1.45.0}/tests/unit_tests/test_log.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.43.0
3
+ Version: 1.45.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
216
216
  License-File: LICENSE
217
217
  Requires-Dist: click
218
218
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.9.0a2
219
+ Requires-Dist: ophyd-async>=0.10.0a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -264,6 +264,7 @@ Requires-Dist: types-requests; extra == "dev"
264
264
  Requires-Dist: types-mock; extra == "dev"
265
265
  Requires-Dist: types-PyYAML; extra == "dev"
266
266
  Requires-Dist: types-aiofiles; extra == "dev"
267
+ Dynamic: license-file
267
268
 
268
269
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
269
270
  [![Coverage](https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg)](https://codecov.io/gh/DiamondLightSource/dodal)
@@ -13,8 +13,8 @@ Where to put devices
13
13
  Dodal is written with the philosophy that Ophyd devices should be assumed to be as generic as possible. I.e. you
14
14
  should think about where to place them in the following order:
15
15
 
16
- #. A device that could be used at any facility, e.g. a generic ``EpicsMotor`` or a commercial product with a
17
- standard IOC, should go in https://github.com/bluesky/ophyd-epics-devices
16
+ #. A device that could be used at any facility, e.g. a generic ``Motor`` or a commercial product with a
17
+ standard IOC, should go in https://github.com/bluesky/ophyd-async
18
18
  #. A device that may be on any beamline should go in the top level of the ``devices`` folder. If it is a quite
19
19
  complex device (e.g. multiple files) it should have a folder of its own e.g. ``oav``
20
20
  #. A device that is very specific to a particular beamline should go in the ``devices/ixx`` folder
@@ -150,7 +150,7 @@ based on this and so this has the issues listed above. Instead you should make s
150
150
  def __init__(self):
151
151
  self.underlying_motor = Motor("MOTOR")
152
152
  with self.add_children_as_readables():
153
- self.in_out = create_hardware_backed_soft_signal(InOut, self._get_in_out_from_hardware)
153
+ self.in_out = create_r_hardware_backed_soft_signal(InOut, self._get_in_out_from_hardware)
154
154
 
155
155
  async def _get_in_out_from_hardware(self):
156
156
  current_position = await self.underlying_motor.get_value()
@@ -15,7 +15,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
15
15
  dependencies = [
16
16
  "click",
17
17
  "ophyd",
18
- "ophyd-async >= 0.9.0a2",
18
+ "ophyd-async>=0.10.0a1",
19
19
  "bluesky",
20
20
  "pyepics",
21
21
  "dataclasses-json",
@@ -170,23 +170,27 @@ lint.extend-ignore = [
170
170
  "F811", # support typing.overload decorator
171
171
  ]
172
172
  lint.select = [
173
- "B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
174
- "C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
175
- "E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
176
- "F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
177
- "W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
178
- "I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
179
- "UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
180
- "SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
181
- "RUF018" # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
173
+ "B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
174
+ "C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
175
+ "E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
176
+ "F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
177
+ "W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
178
+ "I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
179
+ "UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
180
+ "SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
181
+ "RUF018", # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
182
+ "TID251", # banned api - https://docs.astral.sh/ruff/rules/banned-api/
182
183
  ]
183
184
 
184
185
  [tool.ruff.lint.per-file-ignores]
185
186
  # By default, private member access is allowed in tests
186
187
  # See https://github.com/DiamondLightSource/python-copier-template/issues/154
187
- # Remove this line to forbid private member access and walrus operators in asserts in tests
188
- "tests/**/*" = ["SLF001", "RUF018"]
189
- "system_tests/**/*" = ["SLF001", "RUF018"]
188
+ # Remove this line to forbid private member access, walrus operators, banned api in asserts in tests
189
+ "tests/**/*" = ["SLF001", "RUF018", "TID251"]
190
+ "system_tests/**/*" = ["SLF001", "RUF018", "TID251"]
191
+
192
+ [tool.ruff.lint.flake8-tidy-imports.banned-api]
193
+ "time.sleep".msg = "Use bps.sleep or asyncio.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
190
194
 
191
195
  [tool.importlinter]
192
196
  root_package = "dodal"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.43.0
3
+ Version: 1.45.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
216
216
  License-File: LICENSE
217
217
  Requires-Dist: click
218
218
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.9.0a2
219
+ Requires-Dist: ophyd-async>=0.10.0a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -264,6 +264,7 @@ Requires-Dist: types-requests; extra == "dev"
264
264
  Requires-Dist: types-mock; extra == "dev"
265
265
  Requires-Dist: types-PyYAML; extra == "dev"
266
266
  Requires-Dist: types-aiofiles; extra == "dev"
267
+ Dynamic: license-file
267
268
 
268
269
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
269
270
  [![Coverage](https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg)](https://codecov.io/gh/DiamondLightSource/dodal)
@@ -92,9 +92,13 @@ src/dodal/beamlines/__init__.py
92
92
  src/dodal/beamlines/adsim.py
93
93
  src/dodal/beamlines/aithre.py
94
94
  src/dodal/beamlines/b01_1.py
95
+ src/dodal/beamlines/b07.py
96
+ src/dodal/beamlines/b07_1.py
95
97
  src/dodal/beamlines/i02_1.py
96
98
  src/dodal/beamlines/i03.py
97
99
  src/dodal/beamlines/i04.py
100
+ src/dodal/beamlines/i09.py
101
+ src/dodal/beamlines/i09_1.py
98
102
  src/dodal/beamlines/i10.py
99
103
  src/dodal/beamlines/i13_1.py
100
104
  src/dodal/beamlines/i18.py
@@ -107,11 +111,13 @@ src/dodal/beamlines/i23.py
107
111
  src/dodal/beamlines/i24.py
108
112
  src/dodal/beamlines/p38.py
109
113
  src/dodal/beamlines/p45.py
114
+ src/dodal/beamlines/p60.py
110
115
  src/dodal/beamlines/p99.py
111
116
  src/dodal/beamlines/training_rig.py
112
117
  src/dodal/common/__init__.py
113
118
  src/dodal/common/coordination.py
114
119
  src/dodal/common/crystal_metadata.py
120
+ src/dodal/common/data_util.py
115
121
  src/dodal/common/maths.py
116
122
  src/dodal/common/signal_utils.py
117
123
  src/dodal/common/types.py
@@ -128,6 +134,7 @@ src/dodal/devices/aperture.py
128
134
  src/dodal/devices/aperturescatterguard.py
129
135
  src/dodal/devices/apple2_undulator.py
130
136
  src/dodal/devices/backlight.py
137
+ src/dodal/devices/baton.py
131
138
  src/dodal/devices/bimorph_mirror.py
132
139
  src/dodal/devices/cryostream.py
133
140
  src/dodal/devices/dcm.py
@@ -181,9 +188,17 @@ src/dodal/devices/detector/det_dist_to_beam_converter.py
181
188
  src/dodal/devices/detector/det_resolution.py
182
189
  src/dodal/devices/detector/detector.py
183
190
  src/dodal/devices/detector/detector_motion.py
191
+ src/dodal/devices/electron_analyser/__init__.py
192
+ src/dodal/devices/electron_analyser/abstract_analyser_io.py
193
+ src/dodal/devices/electron_analyser/abstract_region.py
194
+ src/dodal/devices/electron_analyser/specs_analyser_io.py
195
+ src/dodal/devices/electron_analyser/specs_region.py
196
+ src/dodal/devices/electron_analyser/vgscienta_analyser_io.py
197
+ src/dodal/devices/electron_analyser/vgscienta_region.py
184
198
  src/dodal/devices/i03/__init__.py
185
199
  src/dodal/devices/i03/beamstop.py
186
200
  src/dodal/devices/i04/transfocator.py
201
+ src/dodal/devices/i10/diagnostics.py
187
202
  src/dodal/devices/i10/i10_apple2.py
188
203
  src/dodal/devices/i10/i10_setting_data.py
189
204
  src/dodal/devices/i10/mirrors.py
@@ -194,12 +209,13 @@ src/dodal/devices/i10/rasor/rasor_scaler_cards.py
194
209
  src/dodal/devices/i13_1/__init__.py
195
210
  src/dodal/devices/i13_1/merlin.py
196
211
  src/dodal/devices/i13_1/merlin_controller.py
197
- src/dodal/devices/i13_1/merlin_io.py
198
212
  src/dodal/devices/i18/KBMirror.py
199
213
  src/dodal/devices/i18/diode.py
200
214
  src/dodal/devices/i18/table.py
201
215
  src/dodal/devices/i18/thor_labs_stage.py
202
216
  src/dodal/devices/i19/__init__.py
217
+ src/dodal/devices/i19/beamstop.py
218
+ src/dodal/devices/i19/blueapi_device.py
203
219
  src/dodal/devices/i19/hutch_access.py
204
220
  src/dodal/devices/i19/shutter.py
205
221
  src/dodal/devices/i20_1/__init__.py
@@ -218,7 +234,6 @@ src/dodal/devices/i24/pilatus_metadata.py
218
234
  src/dodal/devices/i24/pmac.py
219
235
  src/dodal/devices/i24/vgonio.py
220
236
  src/dodal/devices/oav/__init__.py
221
- src/dodal/devices/oav/microns_for_zoom_levels.json
222
237
  src/dodal/devices/oav/oav_calculations.py
223
238
  src/dodal/devices/oav/oav_detector.py
224
239
  src/dodal/devices/oav/oav_parameters.py
@@ -228,7 +243,8 @@ src/dodal/devices/oav/pin_image_recognition/__init__.py
228
243
  src/dodal/devices/oav/pin_image_recognition/manual_test.py
229
244
  src/dodal/devices/oav/pin_image_recognition/utils.py
230
245
  src/dodal/devices/oav/snapshots/grid_overlay.py
231
- src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py
246
+ src/dodal/devices/oav/snapshots/snapshot.py
247
+ src/dodal/devices/oav/snapshots/snapshot_image_processing.py
232
248
  src/dodal/devices/oav/snapshots/snapshot_with_grid.py
233
249
  src/dodal/devices/p99/__init__.py
234
250
  src/dodal/devices/p99/sample_stage.py
@@ -238,7 +254,6 @@ src/dodal/devices/util/__init__.py
238
254
  src/dodal/devices/util/adjuster_plans.py
239
255
  src/dodal/devices/util/epics_util.py
240
256
  src/dodal/devices/util/lookup_tables.py
241
- src/dodal/devices/util/motor_utils.py
242
257
  src/dodal/devices/util/test_utils.py
243
258
  src/dodal/devices/xspress3/xspress3.py
244
259
  src/dodal/devices/xspress3/xspress3_channel.py
@@ -256,6 +271,8 @@ src/dodal/plan_stubs/check_topup.py
256
271
  src/dodal/plan_stubs/data_session.py
257
272
  src/dodal/plan_stubs/motor_utils.py
258
273
  src/dodal/plan_stubs/wrapped.py
274
+ src/dodal/plan_stubs/electron_analyser/__init__.py
275
+ src/dodal/plan_stubs/electron_analyser/configure_controller.py
259
276
  src/dodal/plans/__init__.py
260
277
  src/dodal/plans/save_panda.py
261
278
  src/dodal/plans/scanspec.py
@@ -298,6 +315,7 @@ tests/common/__init__.py
298
315
  tests/common/test_coordination.py
299
316
  tests/common/test_crystal_metadata.py
300
317
  tests/common/test_maths.py
318
+ tests/common/test_signal_utils.py
301
319
  tests/common/test_udc_directory_provider.py
302
320
  tests/common/test_visit.py
303
321
  tests/common/beamlines/__init__.py
@@ -311,6 +329,7 @@ tests/devices/i03/__init__.py
311
329
  tests/devices/i03/test_beamstop.py
312
330
  tests/devices/i04/__init__.py
313
331
  tests/devices/i04/test_transfocator.py
332
+ tests/devices/i10/test_diagnostic.py
314
333
  tests/devices/i10/test_i10Apple2.py
315
334
  tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv
316
335
  tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv
@@ -323,6 +342,7 @@ tests/devices/i18/test_kb_mirror.py
323
342
  tests/devices/i18/test_table.py
324
343
  tests/devices/i18/test_thor_labs_stage.py
325
344
  tests/devices/i19/__init__.py
345
+ tests/devices/i19/test_beamstop.py
326
346
  tests/devices/i19/test_shutter.py
327
347
  tests/devices/i22/test_dcm.py
328
348
  tests/devices/i22/test_fswitch.py
@@ -337,6 +357,7 @@ tests/devices/unit_tests/test_apple2_undulator.py
337
357
  tests/devices/unit_tests/test_attenuator.py
338
358
  tests/devices/unit_tests/test_backlight.py
339
359
  tests/devices/unit_tests/test_bart_robot.py
360
+ tests/devices/unit_tests/test_baton.py
340
361
  tests/devices/unit_tests/test_beam_converter.py
341
362
  tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt
342
363
  tests/devices/unit_tests/test_bimorph_mirror.py
@@ -350,16 +371,17 @@ tests/devices/unit_tests/test_jCameraManZoomLevels.xml
350
371
  tests/devices/unit_tests/test_linkam3.py
351
372
  tests/devices/unit_tests/test_lookup_table.txt
352
373
  tests/devices/unit_tests/test_lookup_table_2.txt
374
+ tests/devices/unit_tests/test_motors.py
353
375
  tests/devices/unit_tests/test_odin.py
354
376
  tests/devices/unit_tests/test_pressure_jump_cell.py
355
377
  tests/devices/unit_tests/test_qbpm.py
356
- tests/devices/unit_tests/test_shutter.py
357
378
  tests/devices/unit_tests/test_slits.py
358
379
  tests/devices/unit_tests/test_smargon.py
359
380
  tests/devices/unit_tests/test_status.py
360
381
  tests/devices/unit_tests/test_synchrotron.py
361
382
  tests/devices/unit_tests/test_tetramm.py
362
383
  tests/devices/unit_tests/test_thawer.py
384
+ tests/devices/unit_tests/test_turbo_slit.py
363
385
  tests/devices/unit_tests/test_undulator.py
364
386
  tests/devices/unit_tests/test_undulator_dcm.py
365
387
  tests/devices/unit_tests/test_utils.py
@@ -369,6 +391,7 @@ tests/devices/unit_tests/test_xbpm_feedback.py
369
391
  tests/devices/unit_tests/test_xspress3.py
370
392
  tests/devices/unit_tests/test_zebra.py
371
393
  tests/devices/unit_tests/test_zebra_constants_mapping.py
394
+ tests/devices/unit_tests/test_zebra_shutter.py
372
395
  tests/devices/unit_tests/test_zocalo_interaction.py
373
396
  tests/devices/unit_tests/test_zocalo_results.py
374
397
  tests/devices/unit_tests/current_amplifier/test_femto.py
@@ -376,6 +399,14 @@ tests/devices/unit_tests/current_amplifier/test_sr570.py
376
399
  tests/devices/unit_tests/detector/test_det_dim_constants.py
377
400
  tests/devices/unit_tests/detector/test_det_resolution.py
378
401
  tests/devices/unit_tests/detector/test_detector.py
402
+ tests/devices/unit_tests/electron_analyser/__init__.py
403
+ tests/devices/unit_tests/electron_analyser/conftest.py
404
+ tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py
405
+ tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py
406
+ tests/devices/unit_tests/electron_analyser/test_specs_region.py
407
+ tests/devices/unit_tests/electron_analyser/test_util.py
408
+ tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py
409
+ tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py
379
410
  tests/devices/unit_tests/i24/__init__.py
380
411
  tests/devices/unit_tests/i24/test_dual_backlight.py
381
412
  tests/devices/unit_tests/i24/test_focus_mirrors.py
@@ -389,6 +420,7 @@ tests/devices/unit_tests/oav/test_oav.py
389
420
  tests/devices/unit_tests/oav/test_oav_parameters.py
390
421
  tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py
391
422
  tests/devices/unit_tests/oav/test_oav_utils.py
423
+ tests/devices/unit_tests/oav/test_snapshot_image_processing.py
392
424
  tests/devices/unit_tests/oav/test_snapshots.py
393
425
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py
394
426
  tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py
@@ -425,6 +457,8 @@ tests/test_data/test_beamline_parameters.txt
425
457
  tests/test_data/test_det_dist_converter.txt
426
458
  tests/test_data/topup_long_delay.txt
427
459
  tests/test_data/topup_short_params.txt
460
+ tests/test_data/electron_analyser/specs_sequence.seq
461
+ tests/test_data/electron_analyser/vgscienta_sequence.seq
428
462
  tests/test_data/test_images/oav_snapshot_expected.png
429
463
  tests/test_data/test_images/oav_snapshot_test.png
430
464
  tests/unit_tests/__init__.py
@@ -1,6 +1,6 @@
1
1
  click
2
2
  ophyd
3
- ophyd-async>=0.9.0a2
3
+ ophyd-async>=0.10.0a1
4
4
  bluesky
5
5
  pyepics
6
6
  dataclasses-json
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.43.0'
21
- __version_tuple__ = version_tuple = (1, 43, 0)
20
+ __version__ = version = '1.45.0'
21
+ __version_tuple__ = version_tuple = (1, 45, 0)
@@ -9,6 +9,8 @@ from pathlib import Path
9
9
  # module name. Add any new beamlines whose name differs from their module name to this
10
10
  # dictionary, which maps ${BEAMLINE} to dodal.beamlines.<MODULE NAME>
11
11
  _BEAMLINE_NAME_OVERRIDES = {
12
+ "b07-1": "b07_1",
13
+ "i09-1": "i09_1",
12
14
  "i13-1": "i13_1",
13
15
  "i20-1": "i20_1",
14
16
  "i19-1": "i19_1",
@@ -11,6 +11,7 @@ from dodal.common.beamlines.beamline_utils import (
11
11
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
12
12
  from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
13
13
  from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
14
+ from dodal.devices.motors import XYZPositioner
14
15
  from dodal.devices.synchrotron import Synchrotron
15
16
  from dodal.log import set_beamline as set_log_beamline
16
17
  from dodal.utils import BeamlinePrefix
@@ -60,3 +61,10 @@ def manta() -> AravisDetector:
60
61
  drv_suffix=CAM_SUFFIX,
61
62
  fileio_suffix=HDF5_SUFFIX,
62
63
  )
64
+
65
+
66
+ @device_factory()
67
+ def sample_stage() -> XYZPositioner:
68
+ return XYZPositioner(
69
+ f"{PREFIX.beamline_prefix}-MO-PPMAC-01:",
70
+ )
@@ -0,0 +1,27 @@
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.electron_analyser.specs_analyser_io import (
6
+ SpecsAnalyserDriverIO,
7
+ )
8
+ from dodal.devices.synchrotron import Synchrotron
9
+ from dodal.log import set_beamline as set_log_beamline
10
+ from dodal.utils import BeamlinePrefix, get_beamline_name
11
+
12
+ BL = get_beamline_name("b07")
13
+ PREFIX = BeamlinePrefix(BL, suffix="B")
14
+ set_log_beamline(BL)
15
+ set_utils_beamline(BL)
16
+
17
+
18
+ @device_factory()
19
+ def synchrotron() -> Synchrotron:
20
+ return Synchrotron()
21
+
22
+
23
+ @device_factory()
24
+ def analyser_driver() -> SpecsAnalyserDriverIO:
25
+ return SpecsAnalyserDriverIO(
26
+ name="analyser_driver", prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:"
27
+ )
@@ -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.electron_analyser.specs_analyser_io import (
6
+ SpecsAnalyserDriverIO,
7
+ )
8
+ from dodal.devices.synchrotron import Synchrotron
9
+ from dodal.log import set_beamline as set_log_beamline
10
+ from dodal.utils import BeamlinePrefix, get_beamline_name
11
+
12
+ BL = get_beamline_name("b07-1")
13
+ PREFIX = BeamlinePrefix(BL, suffix="C")
14
+ set_log_beamline(BL)
15
+ set_utils_beamline(BL)
16
+
17
+
18
+ @device_factory()
19
+ def synchrotron() -> Synchrotron:
20
+ return Synchrotron()
21
+
22
+
23
+ @device_factory()
24
+ def analyser_driver() -> SpecsAnalyserDriverIO:
25
+ return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
@@ -16,6 +16,7 @@ from dodal.devices.aperturescatterguard import (
16
16
  )
17
17
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
18
18
  from dodal.devices.backlight import Backlight
19
+ from dodal.devices.baton import Baton
19
20
  from dodal.devices.cryostream import CryoStream
20
21
  from dodal.devices.dcm import DCM
21
22
  from dodal.devices.detector.detector_motion import DetectorMotion
@@ -436,3 +437,13 @@ def qbpm() -> QBPM:
436
437
  f"{PREFIX.beamline_prefix}-DI-QBPM-01:",
437
438
  "qbpm",
438
439
  )
440
+
441
+
442
+ @device_factory(
443
+ skip=True
444
+ ) # Skipping as not yet on the beamline, see https://jira.diamond.ac.uk/browse/I03-894
445
+ def baton() -> Baton:
446
+ """Get the i03 baton device, instantiate it if it hasn't already been.
447
+ If this is called when already instantiated in i03, it will return the existing object.
448
+ """
449
+ return Baton(f"{PREFIX.beamline_prefix}:")
@@ -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.electron_analyser.vgscienta_analyser_io import (
6
+ VGScientaAnalyserDriverIO,
7
+ )
8
+ from dodal.devices.synchrotron import Synchrotron
9
+ from dodal.log import set_beamline as set_log_beamline
10
+ from dodal.utils import BeamlinePrefix, get_beamline_name
11
+
12
+ BL = get_beamline_name("i09")
13
+ PREFIX = BeamlinePrefix(BL)
14
+ set_log_beamline(BL)
15
+ set_utils_beamline(BL)
16
+
17
+
18
+ @device_factory()
19
+ def synchrotron() -> Synchrotron:
20
+ return Synchrotron()
21
+
22
+
23
+ @device_factory()
24
+ def analyser_driver() -> VGScientaAnalyserDriverIO:
25
+ return VGScientaAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
@@ -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.electron_analyser.specs_analyser_io import (
6
+ SpecsAnalyserDriverIO,
7
+ )
8
+ from dodal.devices.synchrotron import Synchrotron
9
+ from dodal.log import set_beamline as set_log_beamline
10
+ from dodal.utils import BeamlinePrefix, get_beamline_name
11
+
12
+ BL = get_beamline_name("i09-1")
13
+ PREFIX = BeamlinePrefix(BL, suffix="I")
14
+ set_log_beamline(BL)
15
+ set_utils_beamline(BL)
16
+
17
+
18
+ @device_factory()
19
+ def synchrotron() -> Synchrotron:
20
+ return Synchrotron()
21
+
22
+
23
+ @device_factory()
24
+ def analyser_driver() -> SpecsAnalyserDriverIO:
25
+ return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-02:CAM:")
@@ -8,6 +8,7 @@ from dodal.devices.apple2_undulator import (
8
8
  UndulatorPhaseAxes,
9
9
  )
10
10
  from dodal.devices.current_amplifiers import CurrentAmpDet
11
+ from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet
11
12
  from dodal.devices.i10.i10_apple2 import (
12
13
  I10Apple2,
13
14
  I10Apple2PGM,
@@ -24,10 +25,9 @@ from dodal.devices.i10.rasor.rasor_motors import (
24
25
  PinHole,
25
26
  )
26
27
  from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1
27
- from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
28
+ from dodal.devices.i10.slits import I10Slits, I10SlitsDrainCurrent
28
29
  from dodal.devices.motors import XYZPositioner
29
30
  from dodal.devices.pgm import PGM
30
- from dodal.devices.slits import MinimalSlits
31
31
  from dodal.log import set_beamline as set_log_beamline
32
32
  from dodal.utils import BeamlinePrefix, get_beamline_name
33
33
 
@@ -272,6 +272,9 @@ def idd_la_angle(
272
272
  )
273
273
 
274
274
 
275
+ """Mirrors"""
276
+
277
+
275
278
  @device_factory()
276
279
  def first_mirror() -> PiezoMirror:
277
280
  return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
@@ -283,58 +286,39 @@ def switching_mirror() -> PiezoMirror:
283
286
 
284
287
 
285
288
  @device_factory()
286
- def slit_1() -> I10PrimarySlits:
287
- return I10PrimarySlits(
288
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
289
- )
289
+ def focusing_mirror() -> PiezoMirror:
290
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
290
291
 
291
292
 
292
- @device_factory()
293
- def slit_2() -> I10Slits:
294
- return I10Slits(
295
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
296
- )
293
+ """Optic slits"""
297
294
 
298
295
 
299
296
  @device_factory()
300
- def slit_3() -> I10Slits:
301
- return I10Slits(
302
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
303
- )
304
-
305
-
306
- """Rasor devices"""
297
+ def slits() -> I10Slits:
298
+ return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-")
307
299
 
308
300
 
309
301
  @device_factory()
310
- def focusing_mirror() -> PiezoMirror:
311
- return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
302
+ def slits_current() -> I10SlitsDrainCurrent:
303
+ return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-")
312
304
 
313
305
 
314
- @device_factory()
315
- def slit_4() -> MinimalSlits:
316
- return MinimalSlits(
317
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
318
- x_gap="XSIZE",
319
- y_gap="YSIZE",
320
- )
306
+ """Diagnostics"""
321
307
 
322
308
 
323
309
  @device_factory()
324
- def slit_5() -> I10Slits:
325
- return I10Slits(
326
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:",
310
+ def diagnostics() -> I10Diagnostic:
311
+ return I10Diagnostic(
312
+ prefix=f"{PREFIX.beamline_prefix}-DI-",
327
313
  )
328
314
 
329
315
 
330
316
  @device_factory()
331
- def slit_6() -> I10Slits:
332
- return I10Slits(
333
- prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
334
- )
317
+ def d5a_det() -> I10Diagnostic5ADet:
318
+ return I10Diagnostic5ADet(prefix=f"{PREFIX.beamline_prefix}-DI-")
335
319
 
336
320
 
337
- "Rasor devices"
321
+ """Rasor devices"""
338
322
 
339
323
 
340
324
  @device_factory()
@@ -0,0 +1,59 @@
1
+ from pathlib import Path
2
+
3
+ from ophyd_async.epics.adaravis import AravisDetector
4
+
5
+ from dodal.common.beamlines.beamline_utils import (
6
+ device_factory,
7
+ get_path_provider,
8
+ set_path_provider,
9
+ )
10
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
11
+ from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
12
+ from dodal.devices.i13_1.merlin import Merlin
13
+ from dodal.devices.motors import XYZPositioner
14
+ from dodal.log import set_beamline as set_log_beamline
15
+ from dodal.utils import BeamlinePrefix, get_beamline_name
16
+
17
+ BL = get_beamline_name("i13-1")
18
+ PREFIX_BL13I = BeamlinePrefix(BL) # Can't use this yet as returns BL13I
19
+ PREFIX = "BL13J"
20
+ set_log_beamline(BL)
21
+ set_utils_beamline(BL)
22
+ set_path_provider(
23
+ StaticVisitPathProvider(
24
+ BL,
25
+ Path("/dls/i13-1/data/2024/cm37257-5/tmp/"), # latest commissioning visit
26
+ client=LocalDirectoryServiceClient(),
27
+ )
28
+ )
29
+
30
+
31
+ @device_factory()
32
+ def sample_xyz_stage() -> XYZPositioner:
33
+ return XYZPositioner(prefix=f"{PREFIX}-MO-PI-02:")
34
+
35
+
36
+ @device_factory()
37
+ def sample_xyz_lab_fa_stage() -> XYZPositioner:
38
+ return XYZPositioner(prefix=f"{PREFIX}-MO-PI-02:FIXANG:")
39
+
40
+
41
+ @device_factory()
42
+ def side_camera() -> AravisDetector:
43
+ return AravisDetector(
44
+ prefix=f"{PREFIX}-OP-FLOAT-03:",
45
+ drv_suffix="CAM:",
46
+ fileio_suffix="HDF5:",
47
+ path_provider=get_path_provider(),
48
+ )
49
+
50
+
51
+ @device_factory()
52
+ def merlin() -> Merlin:
53
+ return Merlin(
54
+ prefix=f"{PREFIX}-EA-DET-04:",
55
+ name="merlin",
56
+ drv_suffix="CAM:",
57
+ fileio_suffix="HDF5:",
58
+ path_provider=get_path_provider(),
59
+ )