dls-dodal 1.48.0__tar.gz → 1.49.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 (500) hide show
  1. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/PKG-INFO +2 -1
  2. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/conftest.py +1 -0
  3. dls_dodal-1.49.0/docs/explanations/umls/apple2_design.png +0 -0
  4. dls_dodal-1.49.0/docs/explanations/umls/i10_id_design.png +0 -0
  5. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/pyproject.toml +1 -0
  6. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/PKG-INFO +2 -1
  7. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/SOURCES.txt +13 -0
  8. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/requires.txt +1 -0
  9. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/_version.py +2 -2
  10. dls_dodal-1.49.0/src/dodal/beamlines/aithre.py +30 -0
  11. dls_dodal-1.49.0/src/dodal/beamlines/b16.py +65 -0
  12. dls_dodal-1.49.0/src/dodal/beamlines/b18.py +38 -0
  13. dls_dodal-1.49.0/src/dodal/beamlines/i10.py +221 -0
  14. dls_dodal-1.49.0/src/dodal/beamlines/k11.py +35 -0
  15. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/beamlines/device_helpers.py +1 -0
  16. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/apple2_undulator.py +257 -136
  17. dls_dodal-1.49.0/src/dodal/devices/b16/detector.py +34 -0
  18. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/bimorph_mirror.py +29 -36
  19. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/__init__.py +12 -2
  20. dls_dodal-1.49.0/src/dodal/devices/electron_analyser/abstract/base_detector.py +98 -0
  21. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +8 -3
  22. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +6 -3
  23. dls_dodal-1.48.0/src/dodal/devices/electron_analyser/abstract/base_detector.py → dls_dodal-1.49.0/src/dodal/devices/electron_analyser/detector.py +11 -93
  24. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/specs/__init__.py +2 -0
  25. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/specs/detector.py +1 -1
  26. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +4 -5
  27. dls_dodal-1.49.0/src/dodal/devices/electron_analyser/specs/enums.py +8 -0
  28. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/specs/region.py +3 -2
  29. dls_dodal-1.49.0/src/dodal/devices/electron_analyser/types.py +32 -0
  30. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/util.py +1 -1
  31. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +2 -0
  32. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +1 -1
  33. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +2 -1
  34. dls_dodal-1.49.0/src/dodal/devices/electron_analyser/vgscienta/enums.py +19 -0
  35. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +7 -22
  36. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/i10_apple2.py +181 -126
  37. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i22/nxsas.py +1 -1
  38. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/oav_detector.py +45 -7
  39. dls_dodal-1.49.0/tests/beamlines/unit_tests/test_b16.py +69 -0
  40. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/test_i10Apple2.py +198 -102
  41. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_detector.py +8 -11
  42. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/conftest.py +7 -5
  43. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/specs/test_driver_io.py +4 -3
  44. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/specs/test_region.py +7 -3
  45. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/test_util.py +5 -2
  46. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/util.py +1 -3
  47. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py +1 -1
  48. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_oav.py +26 -0
  49. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_apple2_undulator.py +62 -44
  50. dls_dodal-1.49.0/tests/devices/unit_tests/test_bimorph_mirror.py +158 -0
  51. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_undulator.py +1 -1
  52. dls_dodal-1.49.0/tests/fake_zocalo/__init__.py +0 -0
  53. dls_dodal-1.49.0/tests/unit_tests/__init__.py +0 -0
  54. dls_dodal-1.48.0/src/dodal/beamlines/aithre.py +0 -15
  55. dls_dodal-1.48.0/src/dodal/beamlines/i10.py +0 -413
  56. dls_dodal-1.48.0/tests/devices/unit_tests/test_bimorph_mirror.py +0 -167
  57. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.copier-answers.yml +0 -0
  58. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.devcontainer/devcontainer.json +0 -0
  59. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/CODEOWNERS +0 -0
  60. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/CONTRIBUTING.md +0 -0
  61. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  62. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/actions/install_requirements/action.yml +0 -0
  63. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/dependabot.yml +0 -0
  64. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/pages/index.html +0 -0
  65. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/pages/make_switcher.py +0 -0
  66. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/scripts/check_test_durations.py +0 -0
  67. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_check.yml +0 -0
  68. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_dist.yml +0 -0
  69. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_docs.yml +0 -0
  70. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_pypi.yml +0 -0
  71. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_release.yml +0 -0
  72. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_test.yml +0 -0
  73. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/_tox.yml +0 -0
  74. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/ci.yml +0 -0
  75. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.github/workflows/periodic.yml +0 -0
  76. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.gitignore +0 -0
  77. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.pre-commit-config.yaml +0 -0
  78. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.vscode/extensions.json +0 -0
  79. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.vscode/launch.json +0 -0
  80. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.vscode/settings.json +0 -0
  81. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/.vscode/tasks.json +0 -0
  82. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/Dockerfile +0 -0
  83. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/LICENSE +0 -0
  84. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/README.md +0 -0
  85. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/catalog-info.yaml +0 -0
  86. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/_templates/autosummary/class.rst +0 -0
  87. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/_templates/autosummary/module.rst +0 -0
  88. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/_templates/custom-module-template.rst +0 -0
  89. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/assets/zocalo.png +0 -0
  90. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/conf.py +0 -0
  91. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  92. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  93. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  94. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  95. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  96. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions/COPYME +0 -0
  97. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/decisions.md +0 -0
  98. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations/reviews.md +0 -0
  99. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/explanations.md +0 -0
  100. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/genindex.md +0 -0
  101. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/build-docs.md +0 -0
  102. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/contribute.md +0 -0
  103. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/coverage.md +0 -0
  104. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/create-beamline.rst +0 -0
  105. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/create-device.md +0 -0
  106. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/dev-install.md +0 -0
  107. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/excalidraw.md +0 -0
  108. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/external-io-devices.md +0 -0
  109. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/lint.md +0 -0
  110. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/lock-requirements.md +0 -0
  111. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/make-release.md +0 -0
  112. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/move-code.rst +0 -0
  113. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/pypi.md +0 -0
  114. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/run-tests.md +0 -0
  115. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/static-analysis.md +0 -0
  116. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/update-template.md +0 -0
  117. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/write-tests.md +0 -0
  118. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to/zocalo.rst +0 -0
  119. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/how-to.md +0 -0
  120. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/images/dls-logo.svg +0 -0
  121. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/images/excalidraw-example.svg +0 -0
  122. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/index.md +0 -0
  123. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/reference/api.md +0 -0
  124. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/reference/device-standards.rst +0 -0
  125. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/reference/standards.rst +0 -0
  126. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/reference.md +0 -0
  127. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/tutorials/get_started.rst +0 -0
  128. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/tutorials/installation.md +0 -0
  129. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/docs/tutorials.md +0 -0
  130. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/pull_request_template.md +0 -0
  131. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/setup.cfg +0 -0
  132. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/__init__.py +0 -0
  133. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  134. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  135. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  136. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/__init__.py +0 -0
  137. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/__main__.py +0 -0
  138. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  139. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  140. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/README.md +0 -0
  141. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/__init__.py +0 -0
  142. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/adsim.py +0 -0
  143. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/b01_1.py +0 -0
  144. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/b07.py +0 -0
  145. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/b07_1.py +0 -0
  146. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i02_1.py +0 -0
  147. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i03.py +0 -0
  148. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i04.py +0 -0
  149. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i09.py +0 -0
  150. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i09_1.py +0 -0
  151. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i13_1.py +0 -0
  152. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i18.py +0 -0
  153. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i19_1.py +0 -0
  154. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i19_2.py +0 -0
  155. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i19_optics.py +0 -0
  156. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i20_1.py +0 -0
  157. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i22.py +0 -0
  158. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i23.py +0 -0
  159. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/i24.py +0 -0
  160. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/p38.py +0 -0
  161. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/p45.py +0 -0
  162. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/p60.py +0 -0
  163. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/p99.py +0 -0
  164. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/beamlines/training_rig.py +0 -0
  165. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/cli.py +0 -0
  166. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/__init__.py +0 -0
  167. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/beamlines/__init__.py +0 -0
  168. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  169. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  170. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/coordination.py +0 -0
  171. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/crystal_metadata.py +0 -0
  172. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/data_util.py +0 -0
  173. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/maths.py +0 -0
  174. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/types.py +0 -0
  175. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/udc_directory_provider.py +0 -0
  176. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/common/visit.py +0 -0
  177. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/CTAB.py +0 -0
  178. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/__init__.py +0 -0
  179. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/adsim.py +0 -0
  180. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  181. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  182. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/aperture.py +0 -0
  183. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/aperturescatterguard.py +0 -0
  184. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  185. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  186. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  187. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/attenuator/filter.py +0 -0
  188. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  189. {dls_dodal-1.48.0/src/dodal/devices/i13_1 → dls_dodal-1.49.0/src/dodal/devices/b16}/__init__.py +0 -0
  190. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/backlight.py +0 -0
  191. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/baton.py +0 -0
  192. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/common_dcm.py +0 -0
  193. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/cryostream.py +0 -0
  194. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  195. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  196. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  197. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  198. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  199. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  200. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/__init__.py +0 -0
  201. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  202. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  203. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  204. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/detector.py +0 -0
  205. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  206. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/diamond_filter.py +0 -0
  207. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/eiger.py +0 -0
  208. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/eiger_odin.py +0 -0
  209. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  210. /dls_dodal-1.48.0/src/dodal/devices/electron_analyser/types.py → /dls_dodal-1.49.0/src/dodal/devices/electron_analyser/enums.py +0 -0
  211. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/fast_grid_scan.py +0 -0
  212. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  213. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/flux.py +0 -0
  214. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/focusing_mirror.py +0 -0
  215. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/hutch_shutter.py +0 -0
  216. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i03/__init__.py +0 -0
  217. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i03/dcm.py +0 -0
  218. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  219. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i04/__init__.py +0 -0
  220. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i04/constants.py +0 -0
  221. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i04/murko_results.py +0 -0
  222. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i04/transfocator.py +0 -0
  223. {dls_dodal-1.48.0/src/dodal/devices/i19 → dls_dodal-1.49.0/src/dodal/devices/i10}/__init__.py +0 -0
  224. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  225. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  226. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/mirrors.py +0 -0
  227. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  228. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  229. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  230. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i10/slits.py +0 -0
  231. {dls_dodal-1.48.0/src/dodal/devices/i20_1 → dls_dodal-1.49.0/src/dodal/devices/i13_1}/__init__.py +0 -0
  232. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  233. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  234. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i18/KBMirror.py +0 -0
  235. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i18/diode.py +0 -0
  236. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i18/table.py +0 -0
  237. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
  238. {dls_dodal-1.48.0/src/dodal/devices/i24 → dls_dodal-1.49.0/src/dodal/devices/i19}/__init__.py +0 -0
  239. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i19/beamstop.py +0 -0
  240. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
  241. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i19/hutch_access.py +0 -0
  242. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i19/shutter.py +0 -0
  243. {dls_dodal-1.48.0/src/dodal/devices/oav → dls_dodal-1.49.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  244. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i22/dcm.py +0 -0
  245. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i22/fswitch.py +0 -0
  246. {dls_dodal-1.48.0/src/dodal/devices/p99 → dls_dodal-1.49.0/src/dodal/devices/i24}/__init__.py +0 -0
  247. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/aperture.py +0 -0
  248. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/beam_center.py +0 -0
  249. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/beamstop.py +0 -0
  250. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/dcm.py +0 -0
  251. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  252. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  253. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
  254. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
  255. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/pmac.py +0 -0
  256. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/i24/vgonio.py +0 -0
  257. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/ipin.py +0 -0
  258. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/linkam3.py +0 -0
  259. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/motors.py +0 -0
  260. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  261. {dls_dodal-1.48.0/src/dodal/devices/training_rig → dls_dodal-1.49.0/src/dodal/devices/oav}/__init__.py +0 -0
  262. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  263. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  264. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  265. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  266. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  267. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  268. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  269. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  270. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  271. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  272. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/oav/utils.py +0 -0
  273. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/p45.py +0 -0
  274. {dls_dodal-1.48.0/src/dodal/devices/util → dls_dodal-1.49.0/src/dodal/devices/p99}/__init__.py +0 -0
  275. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  276. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  277. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/pgm.py +0 -0
  278. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/positioner.py +0 -0
  279. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  280. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/qbpm.py +0 -0
  281. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/robot.py +0 -0
  282. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  283. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/scatterguard.py +0 -0
  284. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/scintillator.py +0 -0
  285. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/slits.py +0 -0
  286. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/smargon.py +0 -0
  287. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/status.py +0 -0
  288. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/synchrotron.py +0 -0
  289. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/tetramm.py +0 -0
  290. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/thawer.py +0 -0
  291. {dls_dodal-1.48.0/src/dodal/devices/zebra → dls_dodal-1.49.0/src/dodal/devices/training_rig}/__init__.py +0 -0
  292. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
  293. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/turbo_slit.py +0 -0
  294. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/undulator.py +0 -0
  295. {dls_dodal-1.48.0/src/dodal/plan_stubs → dls_dodal-1.49.0/src/dodal/devices/util}/__init__.py +0 -0
  296. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  297. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/util/epics_util.py +0 -0
  298. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  299. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/util/test_utils.py +0 -0
  300. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  301. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/webcam.py +0 -0
  302. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  303. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  304. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  305. {dls_dodal-1.48.0/src/dodal/plans/preprocessors → dls_dodal-1.49.0/src/dodal/devices/zebra}/__init__.py +0 -0
  306. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zebra/zebra.py +0 -0
  307. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  308. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  309. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  310. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  311. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  312. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  313. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/log.py +0 -0
  314. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  315. {dls_dodal-1.48.0/system_tests → dls_dodal-1.49.0/src/dodal/plan_stubs}/__init__.py +0 -0
  316. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  317. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plan_stubs/data_session.py +0 -0
  318. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  319. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  320. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/__init__.py +0 -0
  321. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -0
  322. {dls_dodal-1.48.0/tests → dls_dodal-1.49.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
  323. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  324. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/save_panda.py +0 -0
  325. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/scanspec.py +0 -0
  326. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  327. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/plans/wrapped.py +0 -0
  328. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/src/dodal/utils.py +0 -0
  329. {dls_dodal-1.48.0/tests/beamlines → dls_dodal-1.49.0/system_tests}/__init__.py +0 -0
  330. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/system_tests/test_adsim.py +0 -0
  331. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/system_tests/test_cli.py +0 -0
  332. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/system_tests/test_oav_system.py +0 -0
  333. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/system_tests/test_oav_to_redis_system.py +0 -0
  334. {dls_dodal-1.48.0/tests/beamlines/unit_tests → dls_dodal-1.49.0/tests}/__init__.py +0 -0
  335. {dls_dodal-1.48.0/tests/common → dls_dodal-1.49.0/tests/beamlines}/__init__.py +0 -0
  336. {dls_dodal-1.48.0/tests/common/beamlines → dls_dodal-1.49.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  337. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  338. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
  339. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  340. {dls_dodal-1.48.0/tests/devices → dls_dodal-1.49.0/tests/common}/__init__.py +0 -0
  341. {dls_dodal-1.48.0/tests/devices/i03 → dls_dodal-1.49.0/tests/common/beamlines}/__init__.py +0 -0
  342. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  343. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  344. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  345. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  346. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/test_coordination.py +0 -0
  347. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/test_crystal_metadata.py +0 -0
  348. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/test_maths.py +0 -0
  349. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/test_udc_directory_provider.py +0 -0
  350. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/common/test_visit.py +0 -0
  351. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/conftest.py +0 -0
  352. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/constants.py +0 -0
  353. {dls_dodal-1.48.0/tests/devices/i04 → dls_dodal-1.49.0/tests/devices}/__init__.py +0 -0
  354. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  355. {dls_dodal-1.48.0/tests/devices/i19 → dls_dodal-1.49.0/tests/devices/i03}/__init__.py +0 -0
  356. {dls_dodal-1.48.0/tests/devices/mx_phase1 → dls_dodal-1.49.0/tests/devices/i04}/__init__.py +0 -0
  357. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i04/test_murko_results.py +0 -0
  358. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i04/test_transfocator.py +0 -0
  359. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  360. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  361. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  362. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  363. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  364. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  365. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i13_1/test_merlin.py +0 -0
  366. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  367. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i18/test_table.py +0 -0
  368. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
  369. {dls_dodal-1.48.0/tests/devices/unit_tests → dls_dodal-1.49.0/tests/devices/i19}/__init__.py +0 -0
  370. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i19/test_beamstop.py +0 -0
  371. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i19/test_shutter.py +0 -0
  372. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i22/test_dcm.py +0 -0
  373. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i22/test_fswitch.py +0 -0
  374. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/i22/test_metadataholder.py +0 -0
  375. {dls_dodal-1.48.0/tests/devices/unit_tests/electron_analyser → dls_dodal-1.49.0/tests/devices/mx_phase1}/__init__.py +0 -0
  376. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  377. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/test_common_dcm.py +0 -0
  378. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/test_diamond_filter.py +0 -0
  379. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
  380. {dls_dodal-1.48.0/tests/devices/unit_tests/electron_analyser/abstract → dls_dodal-1.49.0/tests/devices/unit_tests}/__init__.py +0 -0
  381. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
  382. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
  383. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  384. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  385. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
  386. {dls_dodal-1.48.0/tests/devices/unit_tests/electron_analyser/specs → dls_dodal-1.49.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
  387. {dls_dodal-1.48.0/tests/devices/unit_tests/electron_analyser/vgscienta → dls_dodal-1.49.0/tests/devices/unit_tests/electron_analyser/abstract}/__init__.py +0 -0
  388. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/abstract/test_base_driver_io.py +0 -0
  389. {dls_dodal-1.48.0/tests/devices/unit_tests/i03 → dls_dodal-1.49.0/tests/devices/unit_tests/electron_analyser/specs}/__init__.py +0 -0
  390. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/specs/test_detector.py +0 -0
  391. {dls_dodal-1.48.0/tests/devices/unit_tests/i24 → dls_dodal-1.49.0/tests/devices/unit_tests/electron_analyser/vgscienta}/__init__.py +0 -0
  392. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_detector.py +0 -0
  393. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/electron_analyser/vgscienta/test_driver_io.py +0 -0
  394. {dls_dodal-1.48.0/tests/devices/unit_tests/oav → dls_dodal-1.49.0/tests/devices/unit_tests/i03}/__init__.py +0 -0
  395. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i03/test_dcm.py +0 -0
  396. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i03/test_undulator_dcm.py +0 -0
  397. {dls_dodal-1.48.0/tests/devices/unit_tests/util → dls_dodal-1.49.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
  398. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  399. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
  400. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
  401. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
  402. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  403. {dls_dodal-1.48.0/tests/fake_zocalo → dls_dodal-1.49.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
  404. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
  405. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
  406. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  407. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  408. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  409. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
  410. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
  411. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
  412. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
  413. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  414. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  415. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  416. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
  417. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
  418. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_backlight.py +0 -0
  419. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
  420. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_baton.py +0 -0
  421. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
  422. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  423. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  424. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  425. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  426. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  427. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_eiger.py +0 -0
  428. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
  429. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
  430. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
  431. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  432. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
  433. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  434. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  435. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_motors.py +0 -0
  436. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_odin.py +0 -0
  437. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_positioner.py +0 -0
  438. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
  439. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
  440. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_slits.py +0 -0
  441. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_smargon.py +0 -0
  442. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_status.py +0 -0
  443. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  444. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
  445. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_thawer.py +0 -0
  446. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_turbo_slit.py +0 -0
  447. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_utils.py +0 -0
  448. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
  449. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  450. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
  451. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
  452. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_zebra.py +0 -0
  453. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
  454. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
  455. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  456. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
  457. {dls_dodal-1.48.0/tests/unit_tests → dls_dodal-1.49.0/tests/devices/unit_tests/util}/__init__.py +0 -0
  458. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  459. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  460. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
  461. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  462. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline.py +0 -0
  463. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  464. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_broken_dependency.py +0 -0
  465. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_dependencies.py +0 -0
  466. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  467. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  468. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_beamline_some_devices_working.py +0 -0
  469. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_device_factory_beamline.py +0 -0
  470. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_zocalo/README.rst +0 -0
  471. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_zocalo/__main__.py +0 -0
  472. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  473. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plan_stubs/test_data_session.py +0 -0
  474. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  475. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  476. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  477. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/conftest.py +0 -0
  478. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_compliance.py +0 -0
  479. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
  480. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  481. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_scanspec.py +0 -0
  482. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  483. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/plans/test_wrapped.py +0 -0
  484. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  485. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/bad_beamlineParameters +0 -0
  486. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
  487. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
  488. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/i04_beamlineParameters +0 -0
  489. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  490. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  491. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  492. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  493. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  494. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  495. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  496. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/topup_long_delay.txt +0 -0
  497. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_data/topup_short_params.txt +0 -0
  498. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/test_utils.py +0 -0
  499. {dls_dodal-1.48.0 → dls_dodal-1.49.0}/tests/unit_tests/test_cli.py +0 -0
  500. {dls_dodal-1.48.0 → dls_dodal-1.49.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.48.0
3
+ Version: 1.49.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
@@ -234,6 +234,7 @@ Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
235
235
  Requires-Dist: deepdiff
236
236
  Requires-Dist: scanspec>=0.7.3
237
+ Requires-Dist: event-model>=1.23
237
238
  Provides-Extra: dev
238
239
  Requires-Dist: black; extra == "dev"
239
240
  Requires-Dist: diff-cover; extra == "dev"
@@ -39,6 +39,7 @@ mock_attributes_table = {
39
39
  "s04": mock_paths,
40
40
  "i19_1": mock_paths,
41
41
  "i24": mock_paths,
42
+ "aithre": mock_paths,
42
43
  }
43
44
 
44
45
  BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
@@ -33,6 +33,7 @@ dependencies = [
33
33
  "redis",
34
34
  "deepdiff",
35
35
  "scanspec>=0.7.3",
36
+ "event-model>=1.23", # Until bluesky pins it https://github.com/DiamondLightSource/dodal/issues/1278
36
37
  ]
37
38
 
38
39
  dynamic = ["version"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.48.0
3
+ Version: 1.49.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
@@ -234,6 +234,7 @@ Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
235
235
  Requires-Dist: deepdiff
236
236
  Requires-Dist: scanspec>=0.7.3
237
+ Requires-Dist: event-model>=1.23
237
238
  Provides-Extra: dev
238
239
  Requires-Dist: black; extra == "dev"
239
240
  Requires-Dist: diff-cover; extra == "dev"
@@ -49,6 +49,8 @@ docs/explanations/decisions/0003-codeowners.md
49
49
  docs/explanations/decisions/0004-make-devices-factory.md
50
50
  docs/explanations/decisions/0005-standardise-devices-at-epics-level.md
51
51
  docs/explanations/decisions/COPYME
52
+ docs/explanations/umls/apple2_design.png
53
+ docs/explanations/umls/i10_id_design.png
52
54
  docs/how-to/build-docs.md
53
55
  docs/how-to/contribute.md
54
56
  docs/how-to/coverage.md
@@ -96,6 +98,8 @@ src/dodal/beamlines/aithre.py
96
98
  src/dodal/beamlines/b01_1.py
97
99
  src/dodal/beamlines/b07.py
98
100
  src/dodal/beamlines/b07_1.py
101
+ src/dodal/beamlines/b16.py
102
+ src/dodal/beamlines/b18.py
99
103
  src/dodal/beamlines/i02_1.py
100
104
  src/dodal/beamlines/i03.py
101
105
  src/dodal/beamlines/i04.py
@@ -111,6 +115,7 @@ src/dodal/beamlines/i20_1.py
111
115
  src/dodal/beamlines/i22.py
112
116
  src/dodal/beamlines/i23.py
113
117
  src/dodal/beamlines/i24.py
118
+ src/dodal/beamlines/k11.py
114
119
  src/dodal/beamlines/p38.py
115
120
  src/dodal/beamlines/p45.py
116
121
  src/dodal/beamlines/p60.py
@@ -177,6 +182,8 @@ src/dodal/devices/areadetector/plugins/MJPG.py
177
182
  src/dodal/devices/attenuator/attenuator.py
178
183
  src/dodal/devices/attenuator/filter.py
179
184
  src/dodal/devices/attenuator/filter_selections.py
185
+ src/dodal/devices/b16/__init__.py
186
+ src/dodal/devices/b16/detector.py
180
187
  src/dodal/devices/current_amplifiers/__init__.py
181
188
  src/dodal/devices/current_amplifiers/current_amplifier.py
182
189
  src/dodal/devices/current_amplifiers/current_amplifier_detector.py
@@ -190,6 +197,8 @@ src/dodal/devices/detector/det_resolution.py
190
197
  src/dodal/devices/detector/detector.py
191
198
  src/dodal/devices/detector/detector_motion.py
192
199
  src/dodal/devices/electron_analyser/__init__.py
200
+ src/dodal/devices/electron_analyser/detector.py
201
+ src/dodal/devices/electron_analyser/enums.py
193
202
  src/dodal/devices/electron_analyser/types.py
194
203
  src/dodal/devices/electron_analyser/util.py
195
204
  src/dodal/devices/electron_analyser/abstract/__init__.py
@@ -199,10 +208,12 @@ src/dodal/devices/electron_analyser/abstract/base_region.py
199
208
  src/dodal/devices/electron_analyser/specs/__init__.py
200
209
  src/dodal/devices/electron_analyser/specs/detector.py
201
210
  src/dodal/devices/electron_analyser/specs/driver_io.py
211
+ src/dodal/devices/electron_analyser/specs/enums.py
202
212
  src/dodal/devices/electron_analyser/specs/region.py
203
213
  src/dodal/devices/electron_analyser/vgscienta/__init__.py
204
214
  src/dodal/devices/electron_analyser/vgscienta/detector.py
205
215
  src/dodal/devices/electron_analyser/vgscienta/driver_io.py
216
+ src/dodal/devices/electron_analyser/vgscienta/enums.py
206
217
  src/dodal/devices/electron_analyser/vgscienta/region.py
207
218
  src/dodal/devices/i03/__init__.py
208
219
  src/dodal/devices/i03/dcm.py
@@ -211,6 +222,7 @@ src/dodal/devices/i04/__init__.py
211
222
  src/dodal/devices/i04/constants.py
212
223
  src/dodal/devices/i04/murko_results.py
213
224
  src/dodal/devices/i04/transfocator.py
225
+ src/dodal/devices/i10/__init__.py
214
226
  src/dodal/devices/i10/diagnostics.py
215
227
  src/dodal/devices/i10/i10_apple2.py
216
228
  src/dodal/devices/i10/i10_setting_data.py
@@ -313,6 +325,7 @@ tests/fake_device_factory_beamline.py
313
325
  tests/test_utils.py
314
326
  tests/beamlines/__init__.py
315
327
  tests/beamlines/unit_tests/__init__.py
328
+ tests/beamlines/unit_tests/test_b16.py
316
329
  tests/beamlines/unit_tests/test_i03.py
317
330
  tests/beamlines/unit_tests/test_i24.py
318
331
  tests/beamlines/unit_tests/test_mapping.py
@@ -18,6 +18,7 @@ aiohttp
18
18
  redis
19
19
  deepdiff
20
20
  scanspec>=0.7.3
21
+ event-model>=1.23
21
22
 
22
23
  [dev]
23
24
  black
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.48.0'
21
- __version_tuple__ = version_tuple = (1, 48, 0)
20
+ __version__ = version = '1.49.0'
21
+ __version_tuple__ = version_tuple = (1, 49, 0)
@@ -0,0 +1,30 @@
1
+ from dodal.common.beamlines.beamline_utils import device_factory
2
+ from dodal.devices.aithre_lasershaping.goniometer import Goniometer
3
+ from dodal.devices.aithre_lasershaping.laser_robot import LaserRobot
4
+ from dodal.devices.oav.oav_detector import NullZoomController, OAVBeamCentreFile
5
+ from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
6
+
7
+ ZOOM_PARAMS_FILE = "/dls_sw/i23/software/aithre/aithre_oav.xml"
8
+ DISPLAY_CONFIG = "/dls_sw/i23/software/aithre/aithre_display.configuration"
9
+
10
+ PREFIX = "LA18L"
11
+
12
+
13
+ @device_factory()
14
+ def goniometer() -> Goniometer:
15
+ return Goniometer(f"{PREFIX}-MO-LSR-01:", "goniometer")
16
+
17
+
18
+ @device_factory()
19
+ def robot() -> LaserRobot:
20
+ return LaserRobot("robot", f"{PREFIX}-MO-ROBOT-01:")
21
+
22
+
23
+ @device_factory()
24
+ def oav(params: OAVConfigBeamCentre | None = None) -> OAVBeamCentreFile:
25
+ return OAVBeamCentreFile(
26
+ prefix=f"{PREFIX}-DI-OAV-01:",
27
+ config=params or OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
28
+ name="oav",
29
+ zoom_controller=NullZoomController(),
30
+ )
@@ -0,0 +1,65 @@
1
+ from pathlib import Path
2
+
3
+ from ophyd_async.epics.adcore import (
4
+ AreaDetector,
5
+ )
6
+ from ophyd_async.epics.motor import Motor
7
+
8
+ from dodal.common.beamlines.beamline_utils import (
9
+ device_factory,
10
+ set_path_provider,
11
+ )
12
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
13
+ from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
14
+ from dodal.devices.b16.detector import (
15
+ software_triggered_tiff_area_detector,
16
+ )
17
+ from dodal.devices.motors import XYZPositioner
18
+ from dodal.log import set_beamline as set_log_beamline
19
+ from dodal.utils import BeamlinePrefix, get_beamline_name
20
+
21
+ BL = get_beamline_name("b16")
22
+ PREFIX = BeamlinePrefix(BL)
23
+ set_log_beamline(BL)
24
+ set_utils_beamline(BL)
25
+
26
+ set_path_provider(
27
+ StaticVisitPathProvider(
28
+ BL,
29
+ Path("/dls/b16/data/2025/cm40635-3/bluesky"),
30
+ client=RemoteDirectoryServiceClient("http://b16-control:8088/api"),
31
+ )
32
+ )
33
+
34
+
35
+ @device_factory()
36
+ def attol1() -> Motor:
37
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT0")
38
+
39
+
40
+ @device_factory()
41
+ def attol2() -> Motor:
42
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT1")
43
+
44
+
45
+ @device_factory()
46
+ def attol3() -> Motor:
47
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT2")
48
+
49
+
50
+ @device_factory()
51
+ def attorot1() -> Motor:
52
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-02:ACT2")
53
+
54
+
55
+ @device_factory()
56
+ def fds2() -> AreaDetector:
57
+ prefix = f"{PREFIX.beamline_prefix}-EA-FDS-02:"
58
+ return software_triggered_tiff_area_detector(prefix)
59
+
60
+
61
+ @device_factory()
62
+ def sim_stage() -> XYZPositioner:
63
+ return XYZPositioner(
64
+ f"{PREFIX.beamline_prefix}-MO-SIM-01:", "sim_stage", infix=("M1", "M2", "M3")
65
+ )
@@ -0,0 +1,38 @@
1
+ from pathlib import Path
2
+
3
+ from dodal.common.beamlines.beamline_utils import (
4
+ device_factory,
5
+ set_path_provider,
6
+ )
7
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
8
+ from dodal.common.visit import (
9
+ LocalDirectoryServiceClient,
10
+ StaticVisitPathProvider,
11
+ )
12
+ from dodal.devices.synchrotron import Synchrotron
13
+ from dodal.log import set_beamline as set_log_beamline
14
+ from dodal.utils import BeamlinePrefix, get_beamline_name
15
+
16
+ BL = get_beamline_name("b18")
17
+ PREFIX = BeamlinePrefix(BL)
18
+ set_log_beamline(BL)
19
+ set_utils_beamline(BL)
20
+
21
+
22
+ # Currently we must hard-code the visit, determining the visit at runtime requires
23
+ # infrastructure that is still WIP.
24
+ # Communication with GDA is also WIP so for now we determine an arbitrary scan number
25
+ # locally and write the commissioning directory. The scan number is not guaranteed to
26
+ # be unique and the data is at risk - this configuration is for testing only.
27
+ set_path_provider(
28
+ StaticVisitPathProvider(
29
+ BL,
30
+ Path("/dls/b18/data/2025/cm40637-3/bluesky"),
31
+ client=LocalDirectoryServiceClient(),
32
+ )
33
+ )
34
+
35
+
36
+ @device_factory()
37
+ def synchrotron() -> Synchrotron:
38
+ return Synchrotron()
@@ -0,0 +1,221 @@
1
+ """
2
+ note:
3
+ I10 has two insertion devices one up(idu) and one down stream(idd).
4
+ It is worth noting that the downstream device is slightly longer,
5
+ so it can reach Mn edge for linear arbitrary.
6
+ idd == id1, idu == id2.
7
+ """
8
+
9
+ from dodal.common.beamlines.beamline_utils import device_factory
10
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
11
+ from dodal.devices.current_amplifiers import CurrentAmpDet
12
+ from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet
13
+ from dodal.devices.i10.i10_apple2 import (
14
+ I10Id,
15
+ )
16
+ from dodal.devices.i10.i10_setting_data import I10Grating
17
+ from dodal.devices.i10.mirrors import PiezoMirror
18
+ from dodal.devices.i10.rasor.rasor_current_amp import RasorFemto, RasorSR570
19
+ from dodal.devices.i10.rasor.rasor_motors import (
20
+ DetSlits,
21
+ Diffractometer,
22
+ PaStage,
23
+ PinHole,
24
+ )
25
+ from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1
26
+ from dodal.devices.i10.slits import I10Slits, I10SlitsDrainCurrent
27
+ from dodal.devices.motors import XYZPositioner
28
+ from dodal.devices.pgm import PGM
29
+ from dodal.log import set_beamline as set_log_beamline
30
+ from dodal.utils import BeamlinePrefix, get_beamline_name
31
+
32
+ BL = get_beamline_name("i10")
33
+ set_log_beamline(BL)
34
+ set_utils_beamline(BL)
35
+ PREFIX = BeamlinePrefix(BL)
36
+
37
+
38
+ LOOK_UPTABLE_DIR = "/dls_sw/i10/software/blueapi/scratch/i10-config/lookupTables/"
39
+
40
+
41
+ @device_factory()
42
+ def pgm() -> PGM:
43
+ "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set(<energy>)"
44
+ return PGM(
45
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
46
+ grating=I10Grating,
47
+ gratingPv="NLINES2",
48
+ )
49
+
50
+
51
+ @device_factory()
52
+ def idd() -> I10Id:
53
+ """i10 downstream insertion device:
54
+ id.energy.set(<energy>) to change beamline energy.
55
+ id.energy.energy_offset.set(<off_set>) to change id energy offset relative to pgm.
56
+ id.pol.set(<polarisation>) to change polarisation.
57
+ id.laa.set(<linear polarisation angle>) to change polarisation angle, must be in LA mode.
58
+ """
59
+ return I10Id(
60
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
61
+ pgm=pgm(),
62
+ look_up_table_dir=LOOK_UPTABLE_DIR,
63
+ source=("Source", "idd"),
64
+ )
65
+
66
+
67
+ @device_factory()
68
+ def idu() -> I10Id:
69
+ """i10 upstream insertion device:
70
+ id.energy.set(<energy>) to change beamline energy.
71
+ id.energy.energy_offset.set(<off_set>) to change id energy offset relative to pgm.
72
+ id.pol.set(<polarisation>) to change polarisation.
73
+ id.laa.set(<linear polarisation angle>) to change polarisation angle, must be in LA mode.
74
+ """
75
+ return I10Id(
76
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
77
+ pgm=pgm(),
78
+ look_up_table_dir=LOOK_UPTABLE_DIR,
79
+ source=("Source", "idu"),
80
+ )
81
+
82
+
83
+ """Mirrors"""
84
+
85
+
86
+ @device_factory()
87
+ def first_mirror() -> PiezoMirror:
88
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
89
+
90
+
91
+ @device_factory()
92
+ def switching_mirror() -> PiezoMirror:
93
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
94
+
95
+
96
+ @device_factory()
97
+ def focusing_mirror() -> PiezoMirror:
98
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
99
+
100
+
101
+ """Optic slits"""
102
+
103
+
104
+ @device_factory()
105
+ def slits() -> I10Slits:
106
+ return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-")
107
+
108
+
109
+ @device_factory()
110
+ def slits_current() -> I10SlitsDrainCurrent:
111
+ return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-")
112
+
113
+
114
+ """Diagnostics"""
115
+
116
+
117
+ @device_factory()
118
+ def diagnostics() -> I10Diagnostic:
119
+ return I10Diagnostic(
120
+ prefix=f"{PREFIX.beamline_prefix}-DI-",
121
+ )
122
+
123
+
124
+ @device_factory()
125
+ def d5a_det() -> I10Diagnostic5ADet:
126
+ return I10Diagnostic5ADet(prefix=f"{PREFIX.beamline_prefix}-DI-")
127
+
128
+
129
+ """Rasor devices"""
130
+
131
+
132
+ @device_factory()
133
+ def pin_hole() -> PinHole:
134
+ return PinHole(prefix="ME01D-EA-PINH-01:")
135
+
136
+
137
+ @device_factory()
138
+ def det_slits() -> DetSlits:
139
+ return DetSlits(prefix="ME01D-MO-APTR-0")
140
+
141
+
142
+ @device_factory()
143
+ def diffractometer() -> Diffractometer:
144
+ return Diffractometer(prefix="ME01D-MO-DIFF-01:")
145
+
146
+
147
+ @device_factory()
148
+ def pa_stage() -> PaStage:
149
+ return PaStage(prefix="ME01D-MO-POLAN-01:")
150
+
151
+
152
+ @device_factory()
153
+ def sample_stage() -> XYZPositioner:
154
+ return XYZPositioner(prefix="ME01D-MO-CRYO-01:")
155
+
156
+
157
+ @device_factory()
158
+ def rasor_femto() -> RasorFemto:
159
+ return RasorFemto(
160
+ prefix="ME01D-EA-IAMP",
161
+ )
162
+
163
+
164
+ @device_factory()
165
+ def rasor_det_scalers() -> RasorScalerCard1:
166
+ return RasorScalerCard1(prefix="ME01D-EA-SCLR-01:SCALER1")
167
+
168
+
169
+ @device_factory()
170
+ def rasor_sr570() -> RasorSR570:
171
+ return RasorSR570(
172
+ prefix="ME01D-EA-IAMP",
173
+ )
174
+
175
+
176
+ @device_factory()
177
+ def rasor_sr570_pa_scaler_det() -> CurrentAmpDet:
178
+ return CurrentAmpDet(
179
+ current_amp=rasor_sr570().ca1,
180
+ counter=rasor_det_scalers().det,
181
+ )
182
+
183
+
184
+ @device_factory()
185
+ def rasor_femto_pa_scaler_det() -> CurrentAmpDet:
186
+ return CurrentAmpDet(
187
+ current_amp=rasor_femto().ca1,
188
+ counter=rasor_det_scalers().det,
189
+ )
190
+
191
+
192
+ @device_factory()
193
+ def rasor_sr570_fluo_scaler_det() -> CurrentAmpDet:
194
+ return CurrentAmpDet(
195
+ current_amp=rasor_sr570().ca2,
196
+ counter=rasor_det_scalers().fluo,
197
+ )
198
+
199
+
200
+ @device_factory()
201
+ def rasor_femto_fluo_scaler_det() -> CurrentAmpDet:
202
+ return CurrentAmpDet(
203
+ current_amp=rasor_femto().ca2,
204
+ counter=rasor_det_scalers().fluo,
205
+ )
206
+
207
+
208
+ @device_factory()
209
+ def rasor_sr570_drain_scaler_det() -> CurrentAmpDet:
210
+ return CurrentAmpDet(
211
+ current_amp=rasor_sr570().ca3,
212
+ counter=rasor_det_scalers().drain,
213
+ )
214
+
215
+
216
+ @device_factory()
217
+ def rasor_femto_drain_scaler_det() -> CurrentAmpDet:
218
+ return CurrentAmpDet(
219
+ current_amp=rasor_femto().ca3,
220
+ counter=rasor_det_scalers().drain,
221
+ )
@@ -0,0 +1,35 @@
1
+ from pathlib import Path
2
+
3
+ from ophyd_async.epics.motor import Motor
4
+
5
+ from dodal.common.beamlines.beamline_utils import (
6
+ device_factory,
7
+ set_path_provider,
8
+ )
9
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
10
+ from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
11
+ from dodal.log import set_beamline as set_log_beamline
12
+ from dodal.utils import BeamlinePrefix, get_beamline_name
13
+
14
+ beamline = get_beamline_name("k11")
15
+ PREFIX = BeamlinePrefix(beamline)
16
+ set_log_beamline(beamline)
17
+ set_utils_beamline(beamline)
18
+
19
+ set_path_provider(
20
+ StaticVisitPathProvider(
21
+ beamline,
22
+ Path("/dls/k11/data/2025/cm40627-3"),
23
+ client=RemoteDirectoryServiceClient("https://k11-control:8088/api"),
24
+ )
25
+ )
26
+
27
+
28
+ @device_factory()
29
+ def kb_x() -> Motor:
30
+ return Motor(f"{PREFIX.beamline_prefix}-OP-KBM-01:CS:X")
31
+
32
+
33
+ @device_factory()
34
+ def kb_y() -> Motor:
35
+ return Motor(f"{PREFIX.beamline_prefix}-OP-KBM-01:CS:Y")
@@ -3,6 +3,7 @@ from dodal.devices.slits import Slits
3
3
  from dodal.utils import skip_device
4
4
 
5
5
  HDF5_SUFFIX = "HDF5:"
6
+ TIFF_SUFFIX = "TIFF:"
6
7
  CAM_SUFFIX = "CAM:"
7
8
  DET_SUFFIX = "DET:"
8
9