dls-dodal 1.44.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.44.0 → dls_dodal-1.45.0}/PKG-INFO +1 -1
  2. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/device-standards.rst +2 -2
  3. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/PKG-INFO +1 -1
  4. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/SOURCES.txt +24 -7
  5. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/_version.py +2 -2
  6. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/__init__.py +2 -0
  7. dls_dodal-1.45.0/src/dodal/beamlines/b07.py +27 -0
  8. dls_dodal-1.45.0/src/dodal/beamlines/b07_1.py +25 -0
  9. dls_dodal-1.45.0/src/dodal/beamlines/i09.py +25 -0
  10. dls_dodal-1.45.0/src/dodal/beamlines/i09_1.py +25 -0
  11. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i10.py +19 -35
  12. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_1.py +2 -1
  13. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_2.py +2 -1
  14. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i20_1.py +2 -1
  15. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i23.py +10 -0
  16. dls_dodal-1.45.0/src/dodal/beamlines/p60.py +21 -0
  17. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/visit.py +1 -41
  18. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +16 -23
  19. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector.py +2 -1
  20. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_analyser_io.py +47 -0
  21. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_region.py +112 -0
  22. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_analyser_io.py +19 -0
  23. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_region.py +26 -0
  24. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +26 -0
  25. dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_region.py +90 -0
  26. dls_dodal-1.45.0/src/dodal/devices/i10/diagnostics.py +239 -0
  27. dls_dodal-1.45.0/src/dodal/devices/i10/slits.py +124 -0
  28. dls_dodal-1.45.0/src/dodal/devices/i19/blueapi_device.py +102 -0
  29. dls_dodal-1.45.0/src/dodal/devices/i19/shutter.py +41 -0
  30. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/motors.py +21 -0
  31. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/turbo_slit.py +8 -2
  32. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator.py +9 -7
  33. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/adjuster_plans.py +1 -2
  34. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/lookup_tables.py +38 -0
  35. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/test_utils.py +1 -0
  36. dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser/configure_controller.py +80 -0
  37. dls_dodal-1.45.0/tests/common/test_visit.py +32 -0
  38. dls_dodal-1.45.0/tests/devices/i10/test_diagnostic.py +27 -0
  39. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i19/test_shutter.py +61 -15
  40. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_detector.py +7 -3
  41. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/conftest.py +90 -0
  42. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +149 -0
  43. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +78 -0
  44. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py +119 -0
  45. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_util.py +41 -0
  46. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +119 -0
  47. dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +158 -0
  48. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beam_converter.py +29 -33
  49. dls_dodal-1.45.0/tests/devices/unit_tests/test_motors.py +54 -0
  50. dls_dodal-1.45.0/tests/devices/unit_tests/test_turbo_slit.py +54 -0
  51. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator.py +6 -5
  52. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator_dcm.py +2 -2
  53. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_lookup_tables.py +15 -0
  54. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline.py +2 -2
  55. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_broken_dependency.py +3 -3
  56. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_dependencies.py +3 -3
  57. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_disordered_dependencies.py +3 -3
  58. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_data_session.py +3 -2
  59. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/electron_analyser/specs_sequence.seq +4 -4
  60. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_utils.py +2 -2
  61. dls_dodal-1.44.0/src/dodal/devices/electron_analyser/base_region.py +0 -64
  62. dls_dodal-1.44.0/src/dodal/devices/electron_analyser/specs/specs_region.py +0 -24
  63. dls_dodal-1.44.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_region.py +0 -77
  64. dls_dodal-1.44.0/src/dodal/devices/i10/slits.py +0 -37
  65. dls_dodal-1.44.0/src/dodal/devices/i19/shutter.py +0 -79
  66. dls_dodal-1.44.0/src/dodal/devices/util/motor_utils.py +0 -6
  67. dls_dodal-1.44.0/tests/common/test_visit.py +0 -242
  68. dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py +0 -63
  69. dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +0 -92
  70. dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/utils.py +0 -16
  71. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.copier-answers.yml +0 -0
  72. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.devcontainer/devcontainer.json +0 -0
  73. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/CODEOWNERS +0 -0
  74. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/CONTRIBUTING.md +0 -0
  75. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  76. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/actions/install_requirements/action.yml +0 -0
  77. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/dependabot.yml +0 -0
  78. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/pages/index.html +0 -0
  79. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/pages/make_switcher.py +0 -0
  80. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/scripts/check_test_durations.py +0 -0
  81. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_check.yml +0 -0
  82. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_dist.yml +0 -0
  83. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_docs.yml +0 -0
  84. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_pypi.yml +0 -0
  85. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_release.yml +0 -0
  86. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_test.yml +0 -0
  87. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_tox.yml +0 -0
  88. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/ci.yml +0 -0
  89. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/periodic.yml +0 -0
  90. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.gitignore +0 -0
  91. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.pre-commit-config.yaml +0 -0
  92. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/extensions.json +0 -0
  93. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/launch.json +0 -0
  94. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/settings.json +0 -0
  95. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/tasks.json +0 -0
  96. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/Dockerfile +0 -0
  97. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/LICENSE +0 -0
  98. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/README.md +0 -0
  99. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/catalog-info.yaml +0 -0
  100. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/conftest.py +0 -0
  101. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/class.rst +0 -0
  102. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/module.rst +0 -0
  103. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/custom-module-template.rst +0 -0
  104. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/assets/zocalo.png +0 -0
  105. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/conf.py +0 -0
  106. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  107. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  108. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  109. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
  110. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/COPYME +0 -0
  111. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions.md +0 -0
  112. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/reviews.md +0 -0
  113. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations.md +0 -0
  114. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/genindex.md +0 -0
  115. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/build-docs.md +0 -0
  116. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/contribute.md +0 -0
  117. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/coverage.md +0 -0
  118. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/create-beamline.rst +0 -0
  119. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/dev-install.md +0 -0
  120. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/excalidraw.md +0 -0
  121. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/lint.md +0 -0
  122. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/lock-requirements.md +0 -0
  123. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
  124. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/make-release.md +0 -0
  125. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/move-code.rst +0 -0
  126. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/pypi.md +0 -0
  127. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/run-tests.md +0 -0
  128. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/static-analysis.md +0 -0
  129. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/update-template.md +0 -0
  130. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/write-tests.md +0 -0
  131. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/zocalo.rst +0 -0
  132. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to.md +0 -0
  133. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/images/dls-logo.svg +0 -0
  134. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/images/excalidraw-example.svg +0 -0
  135. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/index.md +0 -0
  136. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/api.md +0 -0
  137. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/standards.rst +0 -0
  138. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference.md +0 -0
  139. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials/get_started.rst +0 -0
  140. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials/installation.md +0 -0
  141. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials.md +0 -0
  142. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/pull_request_template.md +0 -0
  143. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/pyproject.toml +0 -0
  144. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/setup.cfg +0 -0
  145. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/__init__.py +0 -0
  146. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  147. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  148. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/requires.txt +0 -0
  149. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  150. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/__init__.py +0 -0
  151. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/__main__.py +0 -0
  152. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  153. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  154. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/README.md +0 -0
  155. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/adsim.py +0 -0
  156. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/aithre.py +0 -0
  157. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/b01_1.py +0 -0
  158. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i02_1.py +0 -0
  159. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i03.py +0 -0
  160. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i04.py +0 -0
  161. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i13_1.py +0 -0
  162. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i18.py +0 -0
  163. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_optics.py +0 -0
  164. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i22.py +0 -0
  165. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i24.py +0 -0
  166. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p38.py +0 -0
  167. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p45.py +0 -0
  168. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p99.py +0 -0
  169. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/training_rig.py +0 -0
  170. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/cli.py +0 -0
  171. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/__init__.py +0 -0
  172. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/__init__.py +0 -0
  173. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  174. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  175. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  176. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/coordination.py +0 -0
  177. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/crystal_metadata.py +0 -0
  178. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/data_util.py +0 -0
  179. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/maths.py +0 -0
  180. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/signal_utils.py +0 -0
  181. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/types.py +0 -0
  182. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/udc_directory_provider.py +0 -0
  183. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/CTAB.py +0 -0
  184. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/__init__.py +0 -0
  185. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/adsim.py +0 -0
  186. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  187. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aperture.py +0 -0
  188. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aperturescatterguard.py +0 -0
  189. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/apple2_undulator.py +0 -0
  190. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  191. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  192. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  193. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter.py +0 -0
  194. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  195. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/backlight.py +0 -0
  196. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/baton.py +0 -0
  197. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  198. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/cryostream.py +0 -0
  199. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  200. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  201. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  202. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  203. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  204. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  205. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/dcm.py +0 -0
  206. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/__init__.py +0 -0
  207. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  208. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  209. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  210. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/diamond_filter.py +0 -0
  211. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger.py +0 -0
  212. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger_odin.py +0 -0
  213. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  214. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/fast_grid_scan.py +0 -0
  215. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  216. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/flux.py +0 -0
  217. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/focusing_mirror.py +0 -0
  218. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/hutch_shutter.py +0 -0
  219. {dls_dodal-1.44.0/src/dodal/devices/electron_analyser/specs → dls_dodal-1.45.0/src/dodal/devices/i03}/__init__.py +0 -0
  220. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i03/beamstop.py +0 -0
  221. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i04/transfocator.py +0 -0
  222. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
  223. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  224. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/mirrors.py +0 -0
  225. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  226. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  227. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  228. {dls_dodal-1.44.0/src/dodal/devices/electron_analyser/vgscienta → dls_dodal-1.45.0/src/dodal/devices/i13_1}/__init__.py +0 -0
  229. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  230. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  231. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/KBMirror.py +0 -0
  232. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/diode.py +0 -0
  233. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/table.py +0 -0
  234. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
  235. {dls_dodal-1.44.0/src/dodal/devices/i03 → dls_dodal-1.45.0/src/dodal/devices/i19}/__init__.py +0 -0
  236. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i19/beamstop.py +0 -0
  237. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i19/hutch_access.py +0 -0
  238. {dls_dodal-1.44.0/src/dodal/devices/i13_1 → dls_dodal-1.45.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  239. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/dcm.py +0 -0
  240. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/fswitch.py +0 -0
  241. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/nxsas.py +0 -0
  242. {dls_dodal-1.44.0/src/dodal/devices/i19 → dls_dodal-1.45.0/src/dodal/devices/i24}/__init__.py +0 -0
  243. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/aperture.py +0 -0
  244. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beam_center.py +0 -0
  245. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beamstop.py +0 -0
  246. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dcm.py +0 -0
  247. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  248. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  249. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
  250. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
  251. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pmac.py +0 -0
  252. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/vgonio.py +0 -0
  253. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/ipin.py +0 -0
  254. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/linkam3.py +0 -0
  255. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
  256. {dls_dodal-1.44.0/src/dodal/devices/i20_1 → dls_dodal-1.45.0/src/dodal/devices/oav}/__init__.py +0 -0
  257. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  258. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_detector.py +0 -0
  259. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  260. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  261. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  262. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  263. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  264. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  265. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  266. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  267. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  268. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/utils.py +0 -0
  269. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/p45.py +0 -0
  270. {dls_dodal-1.44.0/src/dodal/devices/i24 → dls_dodal-1.45.0/src/dodal/devices/p99}/__init__.py +0 -0
  271. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  272. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/pgm.py +0 -0
  273. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  274. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/qbpm.py +0 -0
  275. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/robot.py +0 -0
  276. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  277. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/scatterguard.py +0 -0
  278. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/scintillator.py +0 -0
  279. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/slits.py +0 -0
  280. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/smargon.py +0 -0
  281. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/status.py +0 -0
  282. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/synchrotron.py +0 -0
  283. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/tetramm.py +0 -0
  284. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/thawer.py +0 -0
  285. {dls_dodal-1.44.0/src/dodal/devices/oav → dls_dodal-1.45.0/src/dodal/devices/training_rig}/__init__.py +0 -0
  286. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
  287. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator_dcm.py +0 -0
  288. {dls_dodal-1.44.0/src/dodal/devices/p99 → dls_dodal-1.45.0/src/dodal/devices/util}/__init__.py +0 -0
  289. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/epics_util.py +0 -0
  290. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  291. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/webcam.py +0 -0
  292. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  293. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  294. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  295. {dls_dodal-1.44.0/src/dodal/devices/training_rig → dls_dodal-1.45.0/src/dodal/devices/zebra}/__init__.py +0 -0
  296. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra.py +0 -0
  297. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  298. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  299. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  300. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  301. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  302. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  303. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/log.py +0 -0
  304. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  305. {dls_dodal-1.44.0/src/dodal/devices/util → dls_dodal-1.45.0/src/dodal/plan_stubs}/__init__.py +0 -0
  306. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  307. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/data_session.py +0 -0
  308. {dls_dodal-1.44.0/src/dodal/devices/zebra → dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser}/__init__.py +0 -0
  309. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  310. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  311. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/__init__.py +0 -0
  312. {dls_dodal-1.44.0/src/dodal/plan_stubs → dls_dodal-1.45.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  313. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  314. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/save_panda.py +0 -0
  315. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/scanspec.py +0 -0
  316. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  317. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/wrapped.py +0 -0
  318. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/utils.py +0 -0
  319. {dls_dodal-1.44.0/src/dodal/plans/preprocessors → dls_dodal-1.45.0/system_tests}/__init__.py +0 -0
  320. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_adsim.py +0 -0
  321. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_aperturescatterguard_system.py +0 -0
  322. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_cli.py +0 -0
  323. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_eiger_system.py +0 -0
  324. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_gridscan_system.py +0 -0
  325. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_oav_system.py +0 -0
  326. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_oav_to_redis_system.py +0 -0
  327. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_slit_gaps_system.py +0 -0
  328. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_smargon_system.py +0 -0
  329. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_synchrotron_system.py +0 -0
  330. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_undulator_system.py +0 -0
  331. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_zebra_system.py +0 -0
  332. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_zocalo_results.py +0 -0
  333. {dls_dodal-1.44.0/system_tests → dls_dodal-1.45.0/tests}/__init__.py +0 -0
  334. {dls_dodal-1.44.0/tests → dls_dodal-1.45.0/tests/beamlines}/__init__.py +0 -0
  335. {dls_dodal-1.44.0/tests/beamlines → dls_dodal-1.45.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  336. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  337. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
  338. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  339. {dls_dodal-1.44.0/tests/beamlines/unit_tests → dls_dodal-1.45.0/tests/common}/__init__.py +0 -0
  340. {dls_dodal-1.44.0/tests/common → dls_dodal-1.45.0/tests/common/beamlines}/__init__.py +0 -0
  341. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  342. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  343. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  344. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  345. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_coordination.py +0 -0
  346. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_crystal_metadata.py +0 -0
  347. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_maths.py +0 -0
  348. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_signal_utils.py +0 -0
  349. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_udc_directory_provider.py +0 -0
  350. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/conftest.py +0 -0
  351. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/constants.py +0 -0
  352. {dls_dodal-1.44.0/tests/common/beamlines → dls_dodal-1.45.0/tests/devices}/__init__.py +0 -0
  353. {dls_dodal-1.44.0/tests/devices → dls_dodal-1.45.0/tests/devices/i03}/__init__.py +0 -0
  354. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i03/test_beamstop.py +0 -0
  355. {dls_dodal-1.44.0/tests/devices/i03 → dls_dodal-1.45.0/tests/devices/i04}/__init__.py +0 -0
  356. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i04/test_transfocator.py +0 -0
  357. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  358. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  359. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  360. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  361. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  362. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  363. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/test_i10Apple2.py +0 -0
  364. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i13_1/test_merlin.py +0 -0
  365. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  366. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_table.py +0 -0
  367. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
  368. {dls_dodal-1.44.0/tests/devices/i04 → dls_dodal-1.45.0/tests/devices/i19}/__init__.py +0 -0
  369. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i19/test_beamstop.py +0 -0
  370. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_dcm.py +0 -0
  371. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_fswitch.py +0 -0
  372. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_metadataholder.py +0 -0
  373. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/test_diamond_filter.py +0 -0
  374. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
  375. {dls_dodal-1.44.0/tests/devices/i19 → dls_dodal-1.45.0/tests/devices/unit_tests}/__init__.py +0 -0
  376. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/conftest.py +0 -0
  377. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
  378. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
  379. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  380. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  381. {dls_dodal-1.44.0/tests/devices/unit_tests → dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
  382. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
  383. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  384. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
  385. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
  386. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
  387. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  388. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
  389. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
  390. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
  391. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  392. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  393. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
  394. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  395. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
  396. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
  397. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
  398. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
  399. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  400. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  401. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  402. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
  403. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
  404. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
  405. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_backlight.py +0 -0
  406. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
  407. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_baton.py +0 -0
  408. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  409. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
  410. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  411. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  412. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  413. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_dcm.py +0 -0
  414. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  415. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_eiger.py +0 -0
  416. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
  417. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
  418. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
  419. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  420. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
  421. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  422. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  423. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_odin.py +0 -0
  424. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
  425. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
  426. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_slits.py +0 -0
  427. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_smargon.py +0 -0
  428. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_status.py +0 -0
  429. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  430. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
  431. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_thawer.py +0 -0
  432. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_utils.py +0 -0
  433. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
  434. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  435. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
  436. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
  437. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra.py +0 -0
  438. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
  439. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
  440. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  441. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
  442. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/__init__.py +0 -0
  443. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  444. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  445. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  446. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  447. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  448. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_some_devices_working.py +0 -0
  449. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_device_factory_beamline.py +0 -0
  450. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/README.rst +0 -0
  451. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/__init__.py +0 -0
  452. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/__main__.py +0 -0
  453. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  454. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  455. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  456. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  457. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/conftest.py +0 -0
  458. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_compliance.py +0 -0
  459. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  460. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_scanspec.py +0 -0
  461. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  462. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_wrapped.py +0 -0
  463. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  464. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/bad_beamlineParameters +0 -0
  465. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
  466. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/i04_beamlineParameters +0 -0
  467. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  468. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  469. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  470. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  471. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  472. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  473. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  474. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/topup_long_delay.txt +0 -0
  475. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/topup_short_params.txt +0 -0
  476. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/__init__.py +0 -0
  477. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/test_cli.py +0 -0
  478. {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/test_log.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.44.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
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.44.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
@@ -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,6 +111,7 @@ 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
@@ -184,14 +189,16 @@ src/dodal/devices/detector/det_resolution.py
184
189
  src/dodal/devices/detector/detector.py
185
190
  src/dodal/devices/detector/detector_motion.py
186
191
  src/dodal/devices/electron_analyser/__init__.py
187
- src/dodal/devices/electron_analyser/base_region.py
188
- src/dodal/devices/electron_analyser/specs/__init__.py
189
- src/dodal/devices/electron_analyser/specs/specs_region.py
190
- src/dodal/devices/electron_analyser/vgscienta/__init__.py
191
- src/dodal/devices/electron_analyser/vgscienta/vgscienta_region.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
192
198
  src/dodal/devices/i03/__init__.py
193
199
  src/dodal/devices/i03/beamstop.py
194
200
  src/dodal/devices/i04/transfocator.py
201
+ src/dodal/devices/i10/diagnostics.py
195
202
  src/dodal/devices/i10/i10_apple2.py
196
203
  src/dodal/devices/i10/i10_setting_data.py
197
204
  src/dodal/devices/i10/mirrors.py
@@ -208,6 +215,7 @@ src/dodal/devices/i18/table.py
208
215
  src/dodal/devices/i18/thor_labs_stage.py
209
216
  src/dodal/devices/i19/__init__.py
210
217
  src/dodal/devices/i19/beamstop.py
218
+ src/dodal/devices/i19/blueapi_device.py
211
219
  src/dodal/devices/i19/hutch_access.py
212
220
  src/dodal/devices/i19/shutter.py
213
221
  src/dodal/devices/i20_1/__init__.py
@@ -246,7 +254,6 @@ src/dodal/devices/util/__init__.py
246
254
  src/dodal/devices/util/adjuster_plans.py
247
255
  src/dodal/devices/util/epics_util.py
248
256
  src/dodal/devices/util/lookup_tables.py
249
- src/dodal/devices/util/motor_utils.py
250
257
  src/dodal/devices/util/test_utils.py
251
258
  src/dodal/devices/xspress3/xspress3.py
252
259
  src/dodal/devices/xspress3/xspress3_channel.py
@@ -264,6 +271,8 @@ src/dodal/plan_stubs/check_topup.py
264
271
  src/dodal/plan_stubs/data_session.py
265
272
  src/dodal/plan_stubs/motor_utils.py
266
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
267
276
  src/dodal/plans/__init__.py
268
277
  src/dodal/plans/save_panda.py
269
278
  src/dodal/plans/scanspec.py
@@ -320,6 +329,7 @@ tests/devices/i03/__init__.py
320
329
  tests/devices/i03/test_beamstop.py
321
330
  tests/devices/i04/__init__.py
322
331
  tests/devices/i04/test_transfocator.py
332
+ tests/devices/i10/test_diagnostic.py
323
333
  tests/devices/i10/test_i10Apple2.py
324
334
  tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv
325
335
  tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv
@@ -361,6 +371,7 @@ tests/devices/unit_tests/test_jCameraManZoomLevels.xml
361
371
  tests/devices/unit_tests/test_linkam3.py
362
372
  tests/devices/unit_tests/test_lookup_table.txt
363
373
  tests/devices/unit_tests/test_lookup_table_2.txt
374
+ tests/devices/unit_tests/test_motors.py
364
375
  tests/devices/unit_tests/test_odin.py
365
376
  tests/devices/unit_tests/test_pressure_jump_cell.py
366
377
  tests/devices/unit_tests/test_qbpm.py
@@ -370,6 +381,7 @@ tests/devices/unit_tests/test_status.py
370
381
  tests/devices/unit_tests/test_synchrotron.py
371
382
  tests/devices/unit_tests/test_tetramm.py
372
383
  tests/devices/unit_tests/test_thawer.py
384
+ tests/devices/unit_tests/test_turbo_slit.py
373
385
  tests/devices/unit_tests/test_undulator.py
374
386
  tests/devices/unit_tests/test_undulator_dcm.py
375
387
  tests/devices/unit_tests/test_utils.py
@@ -387,9 +399,14 @@ tests/devices/unit_tests/current_amplifier/test_sr570.py
387
399
  tests/devices/unit_tests/detector/test_det_dim_constants.py
388
400
  tests/devices/unit_tests/detector/test_det_resolution.py
389
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
390
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
391
409
  tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py
392
- tests/devices/unit_tests/electron_analyser/utils.py
393
410
  tests/devices/unit_tests/i24/__init__.py
394
411
  tests/devices/unit_tests/i24/test_dual_backlight.py
395
412
  tests/devices/unit_tests/i24/test_focus_mirrors.py
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.44.0'
21
- __version_tuple__ = version_tuple = (1, 44, 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",
@@ -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:")
@@ -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()
@@ -5,7 +5,8 @@ from dodal.common.beamlines.beamline_utils import (
5
5
  set_beamline as set_utils_beamline,
6
6
  )
7
7
  from dodal.devices.i19.beamstop import BeamStop
8
- from dodal.devices.i19.shutter import AccessControlledShutter, HutchState
8
+ from dodal.devices.i19.blueapi_device import HutchState
9
+ from dodal.devices.i19.shutter import AccessControlledShutter
9
10
  from dodal.devices.oav.oav_detector import OAV
10
11
  from dodal.devices.oav.oav_parameters import OAVConfig
11
12
  from dodal.devices.synchrotron import Synchrotron
@@ -5,7 +5,8 @@ from dodal.common.beamlines.beamline_utils import (
5
5
  set_beamline as set_utils_beamline,
6
6
  )
7
7
  from dodal.devices.i19.beamstop import BeamStop
8
- from dodal.devices.i19.shutter import AccessControlledShutter, HutchState
8
+ from dodal.devices.i19.blueapi_device import HutchState
9
+ from dodal.devices.i19.shutter import AccessControlledShutter
9
10
  from dodal.devices.synchrotron import Synchrotron
10
11
  from dodal.devices.zebra.zebra import Zebra
11
12
  from dodal.devices.zebra.zebra_constants_mapping import (
@@ -32,7 +32,8 @@ set_path_provider(
32
32
  )
33
33
 
34
34
 
35
- @device_factory()
35
+ # NOTE this is mock as we cannot move items on the beamline until we get sign-off to do so
36
+ @device_factory(mock=True)
36
37
  def turbo_slit() -> TurboSlit:
37
38
  """
38
39
  turboslit for selecting energy from the polychromator
@@ -1,5 +1,6 @@
1
1
  from dodal.common.beamlines.beamline_utils import device_factory
2
2
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
3
+ from dodal.devices.motors import SixAxisGonio
3
4
  from dodal.devices.oav.pin_image_recognition import PinTipDetection
4
5
  from dodal.log import set_beamline as set_log_beamline
5
6
  from dodal.utils import BeamlinePrefix, get_beamline_name, get_hostname
@@ -28,3 +29,12 @@ def oav_pin_tip_detection() -> PinTipDetection:
28
29
  f"{PREFIX.beamline_prefix}-DI-OAV-01:",
29
30
  "pin_tip_detection",
30
31
  )
32
+
33
+
34
+ @device_factory()
35
+ def gonio() -> SixAxisGonio:
36
+ """Get the i23 goniometer"""
37
+
38
+ return SixAxisGonio(
39
+ f"{PREFIX.beamline_prefix}-MO-GONIO-01:",
40
+ )
@@ -0,0 +1,21 @@
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.log import set_beamline as set_log_beamline
9
+ from dodal.utils import BeamlinePrefix, get_beamline_name
10
+
11
+ BL = get_beamline_name("p60")
12
+ PREFIX = BeamlinePrefix(BL)
13
+ set_log_beamline(BL)
14
+ set_utils_beamline(BL)
15
+
16
+
17
+ @device_factory()
18
+ def analyser_driver() -> VGScientaAnalyserDriverIO:
19
+ return VGScientaAnalyserDriverIO(
20
+ name="analyser_driver", prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:"
21
+ )
@@ -3,8 +3,7 @@ from pathlib import Path
3
3
  from typing import Literal
4
4
 
5
5
  from aiohttp import ClientSession
6
- from event_model import RunStart
7
- from ophyd_async.core import FilenameProvider, PathInfo, PathProvider
6
+ from ophyd_async.core import FilenameProvider, PathInfo
8
7
  from pydantic import BaseModel
9
8
 
10
9
  from dodal.common.types import UpdatingPathProvider
@@ -151,42 +150,3 @@ class StaticVisitPathProvider(UpdatingPathProvider):
151
150
  return PathInfo(
152
151
  directory_path=self._root, filename=self._filename_provider(device_name)
153
152
  )
154
-
155
-
156
- DEFAULT_TEMPLATE = "{device_name}-{instrument}-{scan_id}"
157
-
158
-
159
- class StartDocumentPathProvider(PathProvider):
160
- """A PathProvider that sources from metadata in a RunStart document.
161
-
162
- This uses metadata from a RunStart document to determine file names and data session
163
- directories. The file naming defaults to "{device_name}-{instrument}-{scan_id}", so
164
- the file name is incremented by scan number. A template can be included in the
165
- StartDocument to allow for custom naming conventions.
166
-
167
- """
168
-
169
- def __init__(self) -> None:
170
- self._doc = {}
171
-
172
- def update_run(self, name: str, start_doc: RunStart) -> None:
173
- """Cache a start document.
174
-
175
- This can be plugged into the run engine's subscribe method.
176
- """
177
- if name == "start":
178
- self._doc = start_doc
179
-
180
- def __call__(self, device_name: str | None = None) -> PathInfo:
181
- """Returns the directory path and filename for a given data_session.
182
-
183
- The default template for file naming is: "{device_name}-{instrument}-{scan_id}"
184
- however, this can be changed by providing a template in the start document. For
185
- example: "template": "custom-{device_name}--{scan_id}".
186
-
187
- If you do not provide a data_session_directory it will default to "/tmp".
188
- """
189
- template = self._doc.get("template", DEFAULT_TEMPLATE)
190
- sub_path = template.format_map(self._doc | {"device_name": device_name})
191
- data_session_directory = Path(self._doc.get("data_session_directory", "/tmp"))
192
- return PathInfo(directory_path=data_session_directory, filename=sub_path)
@@ -1,6 +1,9 @@
1
1
  from enum import Enum
2
2
 
3
- from numpy import interp, loadtxt
3
+ from dodal.devices.util.lookup_tables import (
4
+ linear_extrapolation_lut,
5
+ parse_lookup_table,
6
+ )
4
7
 
5
8
 
6
9
  class Axis(Enum):
@@ -11,12 +14,20 @@ class Axis(Enum):
11
14
  class DetectorDistanceToBeamXYConverter:
12
15
  def __init__(self, lookup_file: str):
13
16
  self.lookup_file: str = lookup_file
14
- self.lookup_table_values: list = self.parse_table()
17
+ lookup_table_columns: list = parse_lookup_table(self.lookup_file)
18
+ self._d_to_x = linear_extrapolation_lut(
19
+ lookup_table_columns[0], lookup_table_columns[1]
20
+ )
21
+ self._d_to_y = linear_extrapolation_lut(
22
+ lookup_table_columns[0], lookup_table_columns[2]
23
+ )
15
24
 
16
25
  def get_beam_xy_from_det_dist(self, det_dist_mm: float, beam_axis: Axis) -> float:
17
- beam_axis_values = self.lookup_table_values[beam_axis.value]
18
- det_dist_array = self.lookup_table_values[0]
19
- return float(interp(det_dist_mm, det_dist_array, beam_axis_values))
26
+ return (
27
+ self._d_to_x(det_dist_mm)
28
+ if beam_axis == Axis.X_AXIS
29
+ else self._d_to_y(det_dist_mm)
30
+ )
20
31
 
21
32
  def get_beam_axis_pixels(
22
33
  self,
@@ -41,21 +52,3 @@ class DetectorDistanceToBeamXYConverter:
41
52
  return self.get_beam_axis_pixels(
42
53
  det_distance, image_size_pixels, det_dim, Axis.X_AXIS
43
54
  )
44
-
45
- def reload_lookup_table(self):
46
- self.lookup_table_values = self.parse_table()
47
-
48
- def parse_table(self) -> list:
49
- rows = loadtxt(self.lookup_file, delimiter=" ", comments=["#", "Units"])
50
- columns = list(zip(*rows, strict=False))
51
-
52
- return columns
53
-
54
- def __eq__(self, other):
55
- if not isinstance(other, DetectorDistanceToBeamXYConverter):
56
- return NotImplemented
57
- if self.lookup_file != other.lookup_file:
58
- return False
59
- if self.lookup_table_values != other.lookup_table_values:
60
- return False
61
- return True
@@ -1,4 +1,5 @@
1
1
  from enum import Enum, auto
2
+ from functools import cached_property
2
3
  from pathlib import Path
3
4
 
4
5
  from pydantic import BaseModel, Field, field_serializer, field_validator
@@ -49,7 +50,7 @@ class DetectorParams(BaseModel):
49
50
  False # Remove in https://github.com/DiamondLightSource/hyperion/issues/1395
50
51
  )
51
52
 
52
- @property
53
+ @cached_property
53
54
  def beam_xy_converter(self) -> DetectorDistanceToBeamXYConverter:
54
55
  return DetectorDistanceToBeamXYConverter(self.det_dist_to_beam_converter_path)
55
56
 
@@ -0,0 +1,47 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import TypeVar
3
+
4
+ from ophyd_async.core import StandardReadable
5
+ from ophyd_async.epics.core import epics_signal_rw
6
+
7
+ from dodal.devices.electron_analyser.abstract_region import EnergyMode
8
+
9
+
10
+ class AbstractAnalyserDriverIO(ABC, StandardReadable):
11
+ """
12
+ Generic device to configure electron analyser with new region settings.
13
+ Electron analysers should inherit from this class for further specialisation.
14
+ """
15
+
16
+ def __init__(self, prefix: str, name: str = "") -> None:
17
+ with self.add_children_as_readables():
18
+ self.low_energy = epics_signal_rw(float, prefix + "LOW_ENERGY")
19
+ self.high_energy = epics_signal_rw(float, prefix + "HIGH_ENERGY")
20
+ self.slices = epics_signal_rw(int, prefix + "SLICES")
21
+ self.lens_mode = epics_signal_rw(str, prefix + "LENS_MODE")
22
+ self.pass_energy = epics_signal_rw(
23
+ self.pass_energy_type, prefix + "PASS_ENERGY"
24
+ )
25
+ self.energy_step = epics_signal_rw(float, prefix + "STEP_SIZE")
26
+ self.iterations = epics_signal_rw(int, prefix + "NumExposures")
27
+ self.acquisition_mode = epics_signal_rw(str, prefix + "ACQ_MODE")
28
+
29
+ super().__init__(name)
30
+
31
+ def to_kinetic_energy(
32
+ self, value: float, excitation_energy: float, mode: EnergyMode
33
+ ) -> float:
34
+ return excitation_energy - value if mode == EnergyMode.BINDING else value
35
+
36
+ @property
37
+ @abstractmethod
38
+ def pass_energy_type(self) -> type:
39
+ """
40
+ Return the type the pass_energy should be. Each one is unfortunately different
41
+ for the underlying analyser software and cannot be changed on epics side.
42
+ """
43
+
44
+
45
+ TAbstractAnalyserDriverIO = TypeVar(
46
+ "TAbstractAnalyserDriverIO", bound=AbstractAnalyserDriverIO
47
+ )