dls-dodal 1.63.0__tar.gz → 1.65.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/PKG-INFO +3 -3
  2. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/conftest.py +4 -34
  3. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/make-release.md +1 -1
  4. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/write-tests.md +5 -5
  5. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/pyproject.toml +5 -2
  6. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/PKG-INFO +3 -3
  7. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/SOURCES.txt +21 -2
  8. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/requires.txt +2 -2
  9. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/_version.py +3 -3
  10. dls_dodal-1.65.0/src/dodal/beamline_specific_utils/i05_shared.py +14 -0
  11. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b01_1.py +1 -1
  12. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07.py +6 -3
  13. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07_1.py +6 -3
  14. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i03.py +9 -1
  15. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05.py +2 -2
  16. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05_1.py +2 -2
  17. dls_dodal-1.65.0/src/dodal/beamlines/i07.py +21 -0
  18. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09.py +4 -4
  19. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09_1.py +7 -1
  20. dls_dodal-1.65.0/src/dodal/beamlines/i09_2.py +57 -0
  21. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_optics.py +53 -27
  22. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i17.py +21 -11
  23. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_2.py +22 -0
  24. dls_dodal-1.65.0/src/dodal/beamlines/i21.py +57 -0
  25. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i22.py +0 -17
  26. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k07.py +6 -3
  27. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/cli.py +3 -3
  28. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/apple2_undulator.py +19 -17
  29. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/ccmc.py +1 -1
  30. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/common_dcm.py +3 -3
  31. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/cryostream.py +21 -0
  32. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/undulator_dcm.py +1 -1
  33. dls_dodal-1.65.0/src/dodal/devices/i07/dcm.py +33 -0
  34. dls_dodal-1.65.0/src/dodal/devices/i09_1_shared/__init__.py +3 -0
  35. dls_dodal-1.65.0/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +111 -0
  36. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_apple2.py +4 -4
  37. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/dcm.py +1 -1
  38. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/dcm.py +1 -1
  39. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/nxsas.py +5 -24
  40. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/pgm.py +1 -1
  41. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/scintillator.py +4 -0
  42. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/undulator.py +29 -1
  43. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/lookup_tables.py +8 -2
  44. dls_dodal-1.65.0/src/dodal/plan_stubs/__init__.py +3 -0
  45. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/verify_undulator_gap.py +2 -2
  46. dls_dodal-1.65.0/src/dodal/testing/fixtures/run_engine.py +118 -0
  47. dls_dodal-1.65.0/src/dodal/testing/fixtures/utils.py +57 -0
  48. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_oav_to_redis_system.py +30 -7
  49. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_device_instantiation.py +2 -2
  50. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_watcher_utils.py +2 -0
  51. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/conftest.py +3 -55
  52. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/b07_1/test_ccmc.py +3 -3
  53. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_femto.py +9 -17
  54. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_sr570.py +11 -20
  55. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/conftest.py +6 -6
  56. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i03/test_dcm.py +1 -1
  57. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i03/test_undulator_dcm.py +9 -9
  58. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i04/test_transfocator.py +6 -2
  59. dls_dodal-1.65.0/tests/devices/i07/test_dcm.py +36 -0
  60. dls_dodal-1.65.0/tests/devices/i09_1_shared/test_data/__init__.py +9 -0
  61. dls_dodal-1.65.0/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +26 -0
  62. dls_dodal-1.65.0/tests/devices/i09_1_shared/test_undulator_functions.py +53 -0
  63. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_i10_apple2.py +97 -87
  64. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_dcm.py +6 -6
  65. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_fswitch.py +10 -12
  66. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_pmac.py +9 -8
  67. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -4
  68. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_utils.py +13 -13
  69. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +8 -9
  70. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_apple2_undulator.py +22 -17
  71. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_common_dcm.py +2 -2
  72. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_gridscan.py +8 -6
  73. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_scintillator.py +20 -0
  74. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_smargon.py +2 -2
  75. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_undulator.py +43 -0
  76. dls_dodal-1.65.0/tests/fake_zocalo/__init__.py +0 -0
  77. dls_dodal-1.65.0/tests/plan_stubs/__init__.py +0 -0
  78. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_motor_util_plans.py +7 -9
  79. dls_dodal-1.65.0/tests/plans/__init__.py +0 -0
  80. dls_dodal-1.65.0/tests/plans/test_preprocessors/__init__.py +0 -0
  81. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_save_panda.py +8 -3
  82. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_verify_undulator_gap_plan.py +1 -1
  83. dls_dodal-1.65.0/tests/preprocessors/__init__.py +0 -0
  84. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_cli.py +9 -2
  85. dls_dodal-1.65.0/tests/testing/__init__.py +0 -0
  86. dls_dodal-1.65.0/tests/testing/fixtures/__init__.py +0 -0
  87. dls_dodal-1.65.0/tests/testing/fixtures/test_run_engine.py +33 -0
  88. dls_dodal-1.63.0/src/dodal/beamline_specific_utils/i05_shared.py +0 -11
  89. dls_dodal-1.63.0/src/dodal/beamlines/i09_2.py +0 -24
  90. dls_dodal-1.63.0/src/dodal/beamlines/i21.py +0 -27
  91. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.copier-answers.yml +0 -0
  92. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.devcontainer/devcontainer.json +0 -0
  93. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/CODEOWNERS +0 -0
  94. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/CONTRIBUTING.md +0 -0
  95. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  96. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/actions/install_requirements/action.yml +0 -0
  97. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/dependabot.yml +0 -0
  98. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/pages/index.html +0 -0
  99. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/pages/make_switcher.py +0 -0
  100. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/scripts/check_test_durations.py +0 -0
  101. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_dist.yml +0 -0
  102. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_docs.yml +0 -0
  103. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_pypi.yml +0 -0
  104. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_release.yml +0 -0
  105. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_test.yml +0 -0
  106. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_tox.yml +0 -0
  107. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/ci.yml +0 -0
  108. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/periodic.yml +0 -0
  109. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.gitignore +0 -0
  110. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.pre-commit-config.yaml +0 -0
  111. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/extensions.json +0 -0
  112. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/launch.json +0 -0
  113. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/settings.json +0 -0
  114. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/tasks.json +0 -0
  115. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/Dockerfile +0 -0
  116. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/LICENSE +0 -0
  117. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/README.md +0 -0
  118. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/catalog-info.yaml +0 -0
  119. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/class.rst +0 -0
  120. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/module.rst +0 -0
  121. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/custom-module-template.rst +0 -0
  122. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
  123. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/assets/zocalo.png +0 -0
  124. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/conf.py +0 -0
  125. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  126. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  127. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  128. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  129. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  130. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
  131. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/COPYME +0 -0
  132. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions.md +0 -0
  133. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/reviews.md +0 -0
  134. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/umls/apple2_design.png +0 -0
  135. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/umls/i10_id_design.png +0 -0
  136. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations.md +0 -0
  137. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/genindex.md +0 -0
  138. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/build-docs.md +0 -0
  139. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/contribute.md +0 -0
  140. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/coverage.md +0 -0
  141. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/create-beamline.md +0 -0
  142. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/create-device.md +0 -0
  143. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/dev-install.md +0 -0
  144. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/excalidraw.md +0 -0
  145. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/external-io-devices.md +0 -0
  146. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/lint.md +0 -0
  147. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/lock-requirements.md +0 -0
  148. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/move-code.md +0 -0
  149. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/pypi.md +0 -0
  150. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/run-tests.md +0 -0
  151. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/static-analysis.md +0 -0
  152. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/update-template.md +0 -0
  153. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/zocalo.md +0 -0
  154. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to.md +0 -0
  155. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/images/dls-logo.svg +0 -0
  156. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/images/excalidraw-example.svg +0 -0
  157. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/index.md +0 -0
  158. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/api.md +0 -0
  159. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/device-standards.md +0 -0
  160. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/standards.md +0 -0
  161. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference.md +0 -0
  162. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials/get_started.md +0 -0
  163. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials/installation.md +0 -0
  164. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials.md +0 -0
  165. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/pull_request_template.md +0 -0
  166. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/setup.cfg +0 -0
  167. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/__init__.py +0 -0
  168. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  169. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  170. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  171. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/__init__.py +0 -0
  172. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/__main__.py +0 -0
  173. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  174. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
  175. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/README.md +0 -0
  176. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/__init__.py +0 -0
  177. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/adsim.py +0 -0
  178. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/aithre.py +0 -0
  179. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b16.py +0 -0
  180. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b18.py +0 -0
  181. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b21.py +0 -0
  182. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_1.py +0 -0
  183. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_2.py +0 -0
  184. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i04.py +0 -0
  185. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10.py +0 -0
  186. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_1.py +0 -0
  187. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i11.py +0 -0
  188. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i13_1.py +0 -0
  189. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15.py +0 -0
  190. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15_1.py +0 -0
  191. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i18.py +0 -0
  192. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_1.py +0 -0
  193. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_optics.py +0 -0
  194. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i20_1.py +0 -0
  195. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i23.py +0 -0
  196. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i24.py +0 -0
  197. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k11.py +0 -0
  198. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p38.py +0 -0
  199. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p45.py +0 -0
  200. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p60.py +0 -0
  201. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p99.py +0 -0
  202. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/training_rig.py +0 -0
  203. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/__init__.py +0 -0
  204. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/__init__.py +0 -0
  205. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  206. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  207. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
  208. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  209. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/coordination.py +0 -0
  210. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/crystal_metadata.py +0 -0
  211. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/data_util.py +0 -0
  212. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/device_utils.py +0 -0
  213. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/enums.py +0 -0
  214. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/maths.py +0 -0
  215. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/types.py +0 -0
  216. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/udc_directory_provider.py +0 -0
  217. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/visit.py +0 -0
  218. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/watcher_utils.py +0 -0
  219. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/__init__.py +0 -0
  220. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
  221. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  222. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  223. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aperture.py +0 -0
  224. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aperturescatterguard.py +0 -0
  225. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/__init__.py +0 -0
  226. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
  227. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/cam.py +0 -0
  228. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
  229. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/__init__.py +0 -0
  230. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  231. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter.py +0 -0
  232. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  233. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/__init__.py +0 -0
  234. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/enums.py +0 -0
  235. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/__init__.py +0 -0
  236. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/enums.py +0 -0
  237. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/__init__.py +0 -0
  238. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/detector.py +0 -0
  239. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/backlight.py +0 -0
  240. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/baton.py +0 -0
  241. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  242. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/collimation_table.py +0 -0
  243. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/controllers.py +0 -0
  244. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  245. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  246. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  247. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  248. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  249. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  250. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/__init__.py +0 -0
  251. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  252. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  253. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  254. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector.py +0 -0
  255. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  256. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/diamond_filter.py +0 -0
  257. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger.py +0 -0
  258. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger_odin.py +0 -0
  259. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
  260. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
  261. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
  262. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +0 -0
  263. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
  264. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
  265. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/detector.py +0 -0
  266. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/energy_sources.py +0 -0
  267. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
  268. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
  269. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/detector.py +0 -0
  270. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +0 -0
  271. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
  272. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
  273. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/types.py +0 -0
  274. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/util.py +0 -0
  275. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
  276. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -0
  277. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +0 -0
  278. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
  279. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
  280. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eurotherm.py +0 -0
  281. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_grid_scan.py +0 -0
  282. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_shutter.py +0 -0
  283. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  284. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/flux.py +0 -0
  285. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/focusing_mirror.py +0 -0
  286. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/hutch_shutter.py +0 -0
  287. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/__init__.py +0 -0
  288. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
  289. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
  290. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_2/__init__.py +0 -0
  291. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/__init__.py +0 -0
  292. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/dcm.py +0 -0
  293. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/__init__.py +0 -0
  294. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/constants.py +0 -0
  295. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/murko_results.py +0 -0
  296. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/transfocator.py +0 -0
  297. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/__init__.py +0 -0
  298. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/enums.py +0 -0
  299. {dls_dodal-1.63.0/src/dodal/devices/i10/rasor → dls_dodal-1.65.0/src/dodal/devices/i07}/__init__.py +0 -0
  300. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/__init__.py +0 -0
  301. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/enums.py +0 -0
  302. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/__init__.py +0 -0
  303. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/enums.py +0 -0
  304. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/__init__.py +0 -0
  305. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  306. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  307. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/mirrors.py +0 -0
  308. {dls_dodal-1.63.0/src/dodal/devices/i11 → dls_dodal-1.65.0/src/dodal/devices/i10/rasor}/__init__.py +0 -0
  309. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  310. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  311. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  312. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/slits.py +0 -0
  313. {dls_dodal-1.63.0/src/dodal/devices/i13_1 → dls_dodal-1.65.0/src/dodal/devices/i11}/__init__.py +0 -0
  314. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
  315. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/diff_stages.py +0 -0
  316. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/mythen.py +0 -0
  317. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/nx100robot.py +0 -0
  318. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/spinner.py +0 -0
  319. {dls_dodal-1.63.0/src/dodal/devices/i15 → dls_dodal-1.65.0/src/dodal/devices/i13_1}/__init__.py +0 -0
  320. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  321. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  322. {dls_dodal-1.63.0/src/dodal/devices/i17 → dls_dodal-1.65.0/src/dodal/devices/i15}/__init__.py +0 -0
  323. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
  324. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/jack.py +0 -0
  325. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/laue.py +0 -0
  326. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/motors.py +0 -0
  327. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
  328. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/rail.py +0 -0
  329. {dls_dodal-1.63.0/src/dodal/devices/i18 → dls_dodal-1.65.0/src/dodal/devices/i17}/__init__.py +0 -0
  330. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i17/i17_apple2.py +0 -0
  331. {dls_dodal-1.63.0/src/dodal/devices/i19 → dls_dodal-1.65.0/src/dodal/devices/i18}/__init__.py +0 -0
  332. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/diode.py +0 -0
  333. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/kb_mirror.py +0 -0
  334. {dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled → dls_dodal-1.65.0/src/dodal/devices/i19}/__init__.py +0 -0
  335. {dls_dodal-1.63.0/src/dodal/devices/i20_1 → dls_dodal-1.65.0/src/dodal/devices/i19/access_controlled}/__init__.py +0 -0
  336. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/blueapi_device.py +0 -0
  337. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/hutch_access.py +0 -0
  338. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/shutter.py +0 -0
  339. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/backlight.py +0 -0
  340. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/beamstop.py +0 -0
  341. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/diffractometer.py +0 -0
  342. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
  343. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
  344. {dls_dodal-1.63.0/src/dodal/devices/i22 → dls_dodal-1.65.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  345. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/__init__.py +0 -0
  346. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/enums.py +0 -0
  347. {dls_dodal-1.63.0/src/dodal/devices/i24 → dls_dodal-1.65.0/src/dodal/devices/i22}/__init__.py +0 -0
  348. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/fswitch.py +0 -0
  349. {dls_dodal-1.63.0/src/dodal/devices/mx_phase1 → dls_dodal-1.65.0/src/dodal/devices/i24}/__init__.py +0 -0
  350. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/aperture.py +0 -0
  351. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beam_center.py +0 -0
  352. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beamstop.py +0 -0
  353. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/commissioning_jungfrau.py +0 -0
  354. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dcm.py +0 -0
  355. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  356. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  357. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/pmac.py +0 -0
  358. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/vgonio.py +0 -0
  359. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/ipin.py +0 -0
  360. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/linkam3.py +0 -0
  361. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/motors.py +0 -0
  362. {dls_dodal-1.63.0/src/dodal/devices/oav → dls_dodal-1.65.0/src/dodal/devices/mx_phase1}/__init__.py +0 -0
  363. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  364. {dls_dodal-1.63.0/src/dodal/devices/oav/snapshots → dls_dodal-1.65.0/src/dodal/devices/oav}/__init__.py +0 -0
  365. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  366. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_detector.py +0 -0
  367. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  368. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  369. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  370. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  371. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  372. {dls_dodal-1.63.0/src/dodal/devices/p99 → dls_dodal-1.65.0/src/dodal/devices/oav/snapshots}/__init__.py +0 -0
  373. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  374. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  375. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  376. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  377. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/utils.py +0 -0
  378. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p45.py +0 -0
  379. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/__init__.py +0 -0
  380. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/enums.py +0 -0
  381. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
  382. {dls_dodal-1.63.0/src/dodal/devices/temperture_controller/lakeshore → dls_dodal-1.65.0/src/dodal/devices/p99}/__init__.py +0 -0
  383. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  384. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  385. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/positioner.py +0 -0
  386. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  387. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/qbpm.py +0 -0
  388. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/robot.py +0 -0
  389. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  390. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/slits.py +0 -0
  391. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/smargon.py +0 -0
  392. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/status.py +0 -0
  393. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/synchrotron.py +0 -0
  394. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
  395. {dls_dodal-1.63.0/src/dodal/devices/util → dls_dodal-1.65.0/src/dodal/devices/temperture_controller/lakeshore}/__init__.py +0 -0
  396. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
  397. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
  398. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/tetramm.py +0 -0
  399. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/thawer.py +0 -0
  400. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/turbo_slit.py +0 -0
  401. {dls_dodal-1.63.0/src/dodal/devices/xspress3 → dls_dodal-1.65.0/src/dodal/devices/util}/__init__.py +0 -0
  402. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  403. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/epics_util.py +0 -0
  404. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/v2f.py +0 -0
  405. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  406. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/webcam.py +0 -0
  407. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  408. {dls_dodal-1.63.0/src/dodal/devices/zebra → dls_dodal-1.65.0/src/dodal/devices/xspress3}/__init__.py +0 -0
  409. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  410. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  411. {dls_dodal-1.63.0/src/dodal/parameters → dls_dodal-1.65.0/src/dodal/devices/zebra}/__init__.py +0 -0
  412. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra.py +0 -0
  413. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
  414. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  415. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  416. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  417. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  418. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  419. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/log.py +0 -0
  420. {dls_dodal-1.63.0/src/dodal/plan_stubs → dls_dodal-1.65.0/src/dodal/parameters}/__init__.py +0 -0
  421. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  422. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  423. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/data_session.py +0 -0
  424. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  425. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  426. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/__init__.py +0 -0
  427. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/bimorph.py +0 -0
  428. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -0
  429. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/preprocessors/__init__.py +0 -0
  430. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  431. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/save_panda.py +0 -0
  432. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/scanspec.py +0 -0
  433. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/wrapped.py +0 -0
  434. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/__init__.py +0 -0
  435. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
  436. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
  437. {dls_dodal-1.63.0/system_tests → dls_dodal-1.65.0/src/dodal/testing/fixtures}/__init__.py +0 -0
  438. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/setup.py +0 -0
  439. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/utils.py +0 -0
  440. {dls_dodal-1.63.0/tests → dls_dodal-1.65.0/system_tests}/__init__.py +0 -0
  441. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_adsim.py +0 -0
  442. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_cli.py +0 -0
  443. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_oav_system.py +0 -0
  444. {dls_dodal-1.63.0/tests/beamlines → dls_dodal-1.65.0/tests}/__init__.py +0 -0
  445. {dls_dodal-1.63.0/tests/common → dls_dodal-1.65.0/tests/beamlines}/__init__.py +0 -0
  446. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_b16.py +0 -0
  447. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_i03.py +0 -0
  448. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_i24.py +0 -0
  449. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_mapping.py +0 -0
  450. {dls_dodal-1.63.0/tests/common/beamlines → dls_dodal-1.65.0/tests/common}/__init__.py +0 -0
  451. {dls_dodal-1.63.0/tests/devices → dls_dodal-1.65.0/tests/common/beamlines}/__init__.py +0 -0
  452. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  453. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
  454. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_commissioning_mode.py +0 -0
  455. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_coordination.py +0 -0
  456. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_crystal_metadata.py +0 -0
  457. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_maths.py +0 -0
  458. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_udc_directory_provider.py +0 -0
  459. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_visit.py +0 -0
  460. {dls_dodal-1.63.0/tests/devices/aithre_lasershaping → dls_dodal-1.65.0/tests/devices}/__init__.py +0 -0
  461. {dls_dodal-1.63.0/tests/devices/b07_1 → dls_dodal-1.65.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
  462. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  463. {dls_dodal-1.63.0/tests/devices/current_amplifier → dls_dodal-1.65.0/tests/devices/b07_1}/__init__.py +0 -0
  464. {dls_dodal-1.63.0/tests/devices/detector → dls_dodal-1.65.0/tests/devices/current_amplifier}/__init__.py +0 -0
  465. {dls_dodal-1.63.0/tests/devices/electron_analyser → dls_dodal-1.65.0/tests/devices/detector}/__init__.py +0 -0
  466. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/__init__.py +0 -0
  467. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
  468. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
  469. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_resolution.py +0 -0
  470. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_detector.py +0 -0
  471. {dls_dodal-1.63.0/tests/devices/electron_analyser/abstract → dls_dodal-1.65.0/tests/devices/electron_analyser}/__init__.py +0 -0
  472. {dls_dodal-1.63.0/tests/devices/electron_analyser/specs → dls_dodal-1.65.0/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
  473. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_detector.py +0 -0
  474. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +0 -0
  475. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
  476. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
  477. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
  478. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
  479. {dls_dodal-1.63.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.65.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
  480. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_detector.py +0 -0
  481. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_driver_io.py +0 -0
  482. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_region.py +0 -0
  483. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
  484. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
  485. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
  486. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_detector.py +0 -0
  487. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_energy_sources.py +0 -0
  488. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_util.py +0 -0
  489. {dls_dodal-1.63.0/tests/devices/i02_1 → dls_dodal-1.65.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
  490. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_detector.py +0 -0
  491. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +0 -0
  492. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
  493. {dls_dodal-1.63.0/tests/devices/i03 → dls_dodal-1.65.0/tests/devices/i02_1}/__init__.py +0 -0
  494. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
  495. {dls_dodal-1.63.0/tests/devices/i04 → dls_dodal-1.65.0/tests/devices/i03}/__init__.py +0 -0
  496. {dls_dodal-1.63.0/tests/devices/i09 → dls_dodal-1.65.0/tests/devices/i04}/__init__.py +0 -0
  497. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i04/test_murko_results.py +0 -0
  498. {dls_dodal-1.63.0/tests/devices/i10 → dls_dodal-1.65.0/tests/devices/i07}/__init__.py +0 -0
  499. {dls_dodal-1.63.0/tests/devices/i11 → dls_dodal-1.65.0/tests/devices/i09}/__init__.py +0 -0
  500. {dls_dodal-1.63.0/tests/devices/i13_1 → dls_dodal-1.65.0/tests/devices/i09_1}/__init__.py +0 -0
  501. {dls_dodal-1.63.0/tests/devices/i15 → dls_dodal-1.65.0/tests/devices/i09_1_shared}/__init__.py +0 -0
  502. {dls_dodal-1.63.0/tests/devices/i17 → dls_dodal-1.65.0/tests/devices/i10}/__init__.py +0 -0
  503. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
  504. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
  505. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/__init__.py +0 -0
  506. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  507. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  508. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  509. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  510. {dls_dodal-1.63.0/tests/devices/i18 → dls_dodal-1.65.0/tests/devices/i11}/__init__.py +0 -0
  511. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i11/test_i11devices.py +0 -0
  512. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i11/test_mythen.py +0 -0
  513. {dls_dodal-1.63.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i13_1}/__init__.py +0 -0
  514. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i13_1/test_merlin.py +0 -0
  515. {dls_dodal-1.63.0/tests/devices/i22 → dls_dodal-1.65.0/tests/devices/i15}/__init__.py +0 -0
  516. {dls_dodal-1.63.0/tests/devices/i24 → dls_dodal-1.65.0/tests/devices/i17}/__init__.py +0 -0
  517. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i17/test_i17_apple2.py +0 -0
  518. {dls_dodal-1.63.0/tests/devices/mx_phase1 → dls_dodal-1.65.0/tests/devices/i18}/__init__.py +0 -0
  519. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  520. {dls_dodal-1.63.0/tests/devices/oav → dls_dodal-1.65.0/tests/devices/i19}/__init__.py +0 -0
  521. {dls_dodal-1.63.0/tests/devices/oav/image_recognition → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/__init__.py +0 -0
  522. {dls_dodal-1.63.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/test_shutter.py +0 -0
  523. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_backlight.py +0 -0
  524. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_beamstop.py +0 -0
  525. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_diffractometer.py +0 -0
  526. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_mapt.py +0 -0
  527. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_pin_col.py +0 -0
  528. {dls_dodal-1.63.0/tests/devices/p60 → dls_dodal-1.65.0/tests/devices/i22}/__init__.py +0 -0
  529. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_metadataholder.py +0 -0
  530. {dls_dodal-1.63.0/tests/devices/p99 → dls_dodal-1.65.0/tests/devices/i24}/__init__.py +0 -0
  531. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_commissioning_jungfrau.py +0 -0
  532. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_dual_backlight.py +0 -0
  533. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_focus_mirrors.py +0 -0
  534. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_vgonio.py +0 -0
  535. {dls_dodal-1.63.0/tests/devices/temperature_controller → dls_dodal-1.65.0/tests/devices/mx_phase1}/__init__.py +0 -0
  536. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  537. {dls_dodal-1.63.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.65.0/tests/devices/oav}/__init__.py +0 -0
  538. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/conftest.py +0 -0
  539. {dls_dodal-1.63.0/tests/devices/util → dls_dodal-1.65.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
  540. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  541. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/__init__.py +0 -0
  542. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
  543. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
  544. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
  545. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_grid_overlay.py +0 -0
  546. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav.py +0 -0
  547. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_parameters.py +0 -0
  548. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
  549. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
  550. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshots.py +0 -0
  551. {dls_dodal-1.63.0/tests/fake_zocalo → dls_dodal-1.65.0/tests/devices/p60}/__init__.py +0 -0
  552. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/p60/test_lab_xray_source.py +0 -0
  553. {dls_dodal-1.63.0/tests/plan_stubs → dls_dodal-1.65.0/tests/devices/p99}/__init__.py +0 -0
  554. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/p99/test_p99_stage.py +0 -0
  555. {dls_dodal-1.63.0/tests/plans → dls_dodal-1.65.0/tests/devices/temperature_controller}/__init__.py +0 -0
  556. {dls_dodal-1.63.0/tests/plans/test_preprocessors → dls_dodal-1.65.0/tests/devices/temperature_controller/lakeshore}/__init__.py +0 -0
  557. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +0 -0
  558. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_aperture.py +0 -0
  559. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_aperture_scatterguard.py +0 -0
  560. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_attenuator.py +0 -0
  561. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_backlight.py +0 -0
  562. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_bart_robot.py +0 -0
  563. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_baton.py +0 -0
  564. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_beam_converter.py +0 -0
  565. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_bimorph_mirror.py +0 -0
  566. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_controllers.py +0 -0
  567. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
  568. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
  569. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
  570. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  571. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  572. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
  573. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/__init__.py +0 -0
  574. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  575. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
  576. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_diamond_filter.py +0 -0
  577. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_eiger.py +0 -0
  578. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_fast_shutters.py +0 -0
  579. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_focusing_mirror.py +0 -0
  580. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_hutch_shutter.py +0 -0
  581. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_motors.py +0 -0
  582. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_odin.py +0 -0
  583. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_positioner.py +0 -0
  584. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_pressure_jump_cell.py +0 -0
  585. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_qbpm.py +0 -0
  586. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_slits.py +0 -0
  587. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_synchrotron.py +0 -0
  588. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_tetramm.py +0 -0
  589. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_thawer.py +0 -0
  590. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_turbo_slit.py +0 -0
  591. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_utils.py +0 -0
  592. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
  593. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_webcam.py +0 -0
  594. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_xbpm_feedback.py +0 -0
  595. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_xspress3.py +0 -0
  596. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra.py +0 -0
  597. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_constants_mapping.py +0 -0
  598. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_shutter.py +0 -0
  599. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_interaction.py +0 -0
  600. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_results.py +0 -0
  601. {dls_dodal-1.63.0/tests/preprocessors → dls_dodal-1.65.0/tests/devices/util}/__init__.py +0 -0
  602. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_adjuster_plans.py +0 -0
  603. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_beamline_specific_utils.py +0 -0
  604. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/__init__.py +0 -0
  605. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  606. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  607. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  608. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_lookup_tables.py +0 -0
  609. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline.py +0 -0
  610. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  611. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_broken_dependency.py +0 -0
  612. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_dependencies.py +0 -0
  613. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  614. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  615. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_some_devices_working.py +0 -0
  616. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_device_factory_beamline.py +0 -0
  617. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/README.rst +0 -0
  618. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/__main__.py +0 -0
  619. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  620. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/__init__.py +0 -0
  621. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
  622. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
  623. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data_session.py +0 -0
  624. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  625. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  626. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/conftest.py +0 -0
  627. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_bimorph.py +0 -0
  628. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_compliance.py +0 -0
  629. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
  630. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  631. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_scanspec.py +0 -0
  632. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_wrapped.py +0 -0
  633. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  634. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/__init__.py +0 -0
  635. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/bad_beamlineParameters +0 -0
  636. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/i04_beamlineParameters +0 -0
  637. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  638. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_display.configuration +0 -0
  639. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
  640. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_log.py +0 -0
  641. {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.63.0
3
+ Version: 1.65.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
215
215
  License-File: LICENSE
216
216
  Requires-Dist: click
217
217
  Requires-Dist: ophyd
218
- Requires-Dist: ophyd-async[ca,pva]>=0.13.2
218
+ Requires-Dist: ophyd-async[ca,pva]>=0.13.5
219
219
  Requires-Dist: bluesky>=1.14.5
220
220
  Requires-Dist: pyepics
221
221
  Requires-Dist: dataclasses-json
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
245
245
  Requires-Dist: pre-commit; extra == "dev"
246
246
  Requires-Dist: psutil; extra == "dev"
247
247
  Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
248
- Requires-Dist: pyright; extra == "dev"
248
+ Requires-Dist: pyright==1.1.406; extra == "dev"
249
249
  Requires-Dist: pytest; extra == "dev"
250
250
  Requires-Dist: pytest-asyncio; extra == "dev"
251
251
  Requires-Dist: pytest-cov; extra == "dev"
@@ -1,14 +1,10 @@
1
- import asyncio
2
1
  import logging
3
2
  import sys
4
- import time
5
- from collections.abc import Mapping
6
3
  from os import environ
7
4
  from pathlib import Path
8
5
  from unittest.mock import MagicMock, patch
9
6
 
10
7
  import pytest
11
- from bluesky.run_engine import RunEngine
12
8
  from ophyd.status import Status
13
9
  from ophyd_async.core import (
14
10
  PathInfo,
@@ -49,6 +45,10 @@ BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
49
45
  environ["DODAL_TEST_MODE"] = "true"
50
46
 
51
47
 
48
+ # Add run_engine fixtures to be used in tests
49
+ pytest_plugins = ["dodal.testing.fixtures.run_engine"]
50
+
51
+
52
52
  @pytest.fixture(autouse=True)
53
53
  def patch_open_to_prevent_dls_reads_in_tests():
54
54
  unpatched_open = open
@@ -105,37 +105,7 @@ async def static_path_provider(
105
105
  return svpp
106
106
 
107
107
 
108
- @pytest.fixture
109
- def run_engine_documents(run_engine: RunEngine) -> Mapping[str, list[dict]]:
110
- docs: dict[str, list[dict]] = {}
111
-
112
- def append_and_print(name, doc):
113
- if name not in docs:
114
- docs[name] = []
115
- docs[name] += [doc]
116
-
117
- run_engine.subscribe(append_and_print)
118
- return docs
119
-
120
-
121
108
  def failed_status(failure: Exception) -> Status:
122
109
  status = Status()
123
110
  status.set_exception(failure)
124
111
  return status
125
-
126
-
127
- @pytest.fixture(scope="session", autouse=True)
128
- async def _ensure_running_bluesky_event_loop():
129
- run_engine = RunEngine()
130
- # make sure the event loop is thoroughly up and running before we try to create
131
- # any ophyd_async devices which might need it
132
- timeout = time.monotonic() + 1
133
- while not run_engine.loop.is_running():
134
- await asyncio.sleep(0)
135
- if time.monotonic() > timeout:
136
- raise TimeoutError("This really shouldn't happen but just in case...")
137
-
138
-
139
- @pytest.fixture()
140
- async def run_engine():
141
- yield RunEngine()
@@ -21,7 +21,7 @@ you will not get the option to edit the release notes.
21
21
 
22
22
  A new release will be made and the wheel and sdist uploaded to PyPI.
23
23
 
24
- [release]: https://github.com/DiamondLightSource/python-copier-template/releases
24
+ [release]: https://github.com/DiamondLightSource/dodal/releases
25
25
 
26
26
  ## Deciding release numbers
27
27
 
@@ -58,9 +58,11 @@ class MyDevice(StandardReadable, Stageable):
58
58
 
59
59
  In this example, we need to test the `stage` and `unstage` methods. For more complex devices, it is also a good idea to test the `read` method to confirm that we get the expected read signals back when this method is called.
60
60
 
61
- We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
61
+ We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
62
62
 
63
- To help set up a device, they are created with the `init_devices(mock=True)` function from `ophyd_async.core`, which automatically initialises the device in mock mode. The `RunEngine` fixture is passed when creating a device to ensure there is an event loop available when connecting signals. This fixture is defined in `dodal/tests/conftest.py`, which is a special file recognised by `pytest`. It defines fixtures that are automatically available to any test in the same directory (and its subdirectories) without needing to import them. This is useful for defining common setup code once without duplicating it across test files.
63
+ Common fixtures, such as the `run_engine` used in the below tests, can also be defined in `dodal/tests/conftest.py`, which is a special file recognised by `pytest`. These fixtures are automatically available to any test in the same directory (and its subdirectories) without needing to import them. This is useful for defining common setup code once without duplicating it across test files.
64
+
65
+ Devices are set up in the fixture using the `init_devices(mock=True)` function from `ophyd_async.core`, which automatically initialises the device in mock mode.
64
66
 
65
67
  In order for `pytest` to detect something as a test, a function should begin with `test_*`. The test function should be self-descriptive about what it is testing, and it is acceptable (even encouraged) to have longer names for test functions for clarity.
66
68
 
@@ -75,9 +77,8 @@ from ophyd_async.testing import assert_reading, get_mock_put, partial_reading
75
77
  from dodal.device.my_device import MyDevice
76
78
 
77
79
 
78
- # RunEngine is needed to make sure there is an event loop when creating device.
79
80
  @pytest.fixture
80
- async def sim_my_device(run_engine: RunEngine) -> MyDevice:
81
+ async def sim_my_device() -> MyDevice:
81
82
  async with init_devices(mock=True):
82
83
  sim_my_device = MyDevice("TEST:")
83
84
  return sim_my_device
@@ -91,7 +92,6 @@ def test_my_device_stage(sim_my_device: MyDevice, run_engine: RunEngine) -> None
91
92
  def test_my_device_unstage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
92
93
  run_engine(bps.unstage(sim_my_device, wait=True), wait=True)
93
94
  get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.OFF, wait=True)
94
-
95
95
  ```
96
96
 
97
97
  You should test the output of a device when the device has many signals read and you want to ensure the correct ones are read at the correct times, or when the `read` method of it or one of its signals (e.g. a DerivedSignal) requires testing. Functions are defined in `ophyd-async` to aid with this. `assert_reading` allows us to compare the readings generated from a `Readable` device to the expected results.
@@ -14,7 +14,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
14
14
  dependencies = [
15
15
  "click",
16
16
  "ophyd",
17
- "ophyd-async[ca,pva]>=0.13.2",
17
+ "ophyd-async[ca,pva]>=0.13.5",
18
18
  "bluesky>=1.14.5",
19
19
  "pyepics",
20
20
  "dataclasses-json",
@@ -54,7 +54,8 @@ dev = [
54
54
  "pre-commit",
55
55
  "psutil",
56
56
  "pydata-sphinx-theme>=0.12",
57
- "pyright",
57
+ # Pin to previous pyright until https://github.com/microsoft/pyright/issues/11060 is fixed
58
+ "pyright==1.1.406",
58
59
  "pytest",
59
60
  "pytest-asyncio",
60
61
  "pytest-cov",
@@ -136,6 +137,8 @@ testpaths = "docs src tests system_tests"
136
137
  exclude_also = [
137
138
  '^"""', # Ignore the start/end of a file-level triple quoted docstring
138
139
  ]
140
+ # Exclude pytest.fixtures from code coverage report
141
+ omit = ["*/dodal/testing/fixtures/*"]
139
142
 
140
143
  [tool.coverage.run]
141
144
  data_file = "/tmp/dodal.coverage"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.63.0
3
+ Version: 1.65.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
6
6
  License: Apache License
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
215
215
  License-File: LICENSE
216
216
  Requires-Dist: click
217
217
  Requires-Dist: ophyd
218
- Requires-Dist: ophyd-async[ca,pva]>=0.13.2
218
+ Requires-Dist: ophyd-async[ca,pva]>=0.13.5
219
219
  Requires-Dist: bluesky>=1.14.5
220
220
  Requires-Dist: pyepics
221
221
  Requires-Dist: dataclasses-json
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
245
245
  Requires-Dist: pre-commit; extra == "dev"
246
246
  Requires-Dist: psutil; extra == "dev"
247
247
  Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
248
- Requires-Dist: pyright; extra == "dev"
248
+ Requires-Dist: pyright==1.1.406; extra == "dev"
249
249
  Requires-Dist: pytest; extra == "dev"
250
250
  Requires-Dist: pytest-asyncio; extra == "dev"
251
251
  Requires-Dist: pytest-cov; extra == "dev"
@@ -109,6 +109,7 @@ src/dodal/beamlines/i03.py
109
109
  src/dodal/beamlines/i04.py
110
110
  src/dodal/beamlines/i05.py
111
111
  src/dodal/beamlines/i05_1.py
112
+ src/dodal/beamlines/i07.py
112
113
  src/dodal/beamlines/i09.py
113
114
  src/dodal/beamlines/i09_1.py
114
115
  src/dodal/beamlines/i09_2.py
@@ -260,10 +261,14 @@ src/dodal/devices/i04/murko_results.py
260
261
  src/dodal/devices/i04/transfocator.py
261
262
  src/dodal/devices/i05/__init__.py
262
263
  src/dodal/devices/i05/enums.py
264
+ src/dodal/devices/i07/__init__.py
265
+ src/dodal/devices/i07/dcm.py
263
266
  src/dodal/devices/i09/__init__.py
264
267
  src/dodal/devices/i09/enums.py
265
268
  src/dodal/devices/i09_1/__init__.py
266
269
  src/dodal/devices/i09_1/enums.py
270
+ src/dodal/devices/i09_1_shared/__init__.py
271
+ src/dodal/devices/i09_1_shared/hard_undulator_functions.py
267
272
  src/dodal/devices/i10/__init__.py
268
273
  src/dodal/devices/i10/diagnostics.py
269
274
  src/dodal/devices/i10/i10_apple2.py
@@ -384,6 +389,9 @@ src/dodal/testing/__init__.py
384
389
  src/dodal/testing/setup.py
385
390
  src/dodal/testing/electron_analyser/__init__.py
386
391
  src/dodal/testing/electron_analyser/device_factory.py
392
+ src/dodal/testing/fixtures/__init__.py
393
+ src/dodal/testing/fixtures/run_engine.py
394
+ src/dodal/testing/fixtures/utils.py
387
395
  system_tests/__init__.py
388
396
  system_tests/test_adsim.py
389
397
  system_tests/test_cli.py
@@ -504,7 +512,14 @@ tests/devices/i03/test_undulator_dcm.py
504
512
  tests/devices/i04/__init__.py
505
513
  tests/devices/i04/test_murko_results.py
506
514
  tests/devices/i04/test_transfocator.py
515
+ tests/devices/i07/__init__.py
516
+ tests/devices/i07/test_dcm.py
507
517
  tests/devices/i09/__init__.py
518
+ tests/devices/i09_1/__init__.py
519
+ tests/devices/i09_1_shared/__init__.py
520
+ tests/devices/i09_1_shared/test_undulator_functions.py
521
+ tests/devices/i09_1_shared/test_data/__init__.py
522
+ tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt
508
523
  tests/devices/i10/__init__.py
509
524
  tests/devices/i10/test_i10_apple2.py
510
525
  tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv
@@ -530,7 +545,8 @@ tests/devices/i19/test_beamstop.py
530
545
  tests/devices/i19/test_diffractometer.py
531
546
  tests/devices/i19/test_mapt.py
532
547
  tests/devices/i19/test_pin_col.py
533
- tests/devices/i19/test_shutter.py
548
+ tests/devices/i19/access_controlled/__init__.py
549
+ tests/devices/i19/access_controlled/test_shutter.py
534
550
  tests/devices/i22/__init__.py
535
551
  tests/devices/i22/test_dcm.py
536
552
  tests/devices/i22/test_fswitch.py
@@ -614,4 +630,7 @@ tests/test_data/bad_beamlineParameters
614
630
  tests/test_data/i04_beamlineParameters
615
631
  tests/test_data/test_beamline_parameters.txt
616
632
  tests/test_data/test_display.configuration
617
- tests/test_data/test_oav_zoom_levels.xml
633
+ tests/test_data/test_oav_zoom_levels.xml
634
+ tests/testing/__init__.py
635
+ tests/testing/fixtures/__init__.py
636
+ tests/testing/fixtures/test_run_engine.py
@@ -1,6 +1,6 @@
1
1
  click
2
2
  ophyd
3
- ophyd-async[ca,pva]>=0.13.2
3
+ ophyd-async[ca,pva]>=0.13.5
4
4
  bluesky>=1.14.5
5
5
  pyepics
6
6
  dataclasses-json
@@ -31,7 +31,7 @@ pipdeptree
31
31
  pre-commit
32
32
  psutil
33
33
  pydata-sphinx-theme>=0.12
34
- pyright
34
+ pyright==1.1.406
35
35
  pytest
36
36
  pytest-asyncio
37
37
  pytest-cov
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.63.0'
32
- __version_tuple__ = version_tuple = (1, 63, 0)
31
+ __version__ = version = '1.65.0'
32
+ __version_tuple__ = version_tuple = (1, 65, 0)
33
33
 
34
- __commit_id__ = commit_id = 'g8bb309b63'
34
+ __commit_id__ = commit_id = 'g5fe631f29'
@@ -0,0 +1,14 @@
1
+ from dodal.common.beamlines.beamline_utils import device_factory
2
+ from dodal.devices.i05.enums import Grating
3
+ from dodal.devices.pgm import PlaneGratingMonochromator
4
+ from dodal.utils import BeamlinePrefix
5
+
6
+ PREFIX = BeamlinePrefix("i05", "I")
7
+
8
+
9
+ @device_factory()
10
+ def pgm() -> PlaneGratingMonochromator:
11
+ return PlaneGratingMonochromator(
12
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
13
+ grating=Grating,
14
+ )
@@ -37,7 +37,7 @@ def panda() -> HDFPanda:
37
37
  HDFPanda: The HDF5-based detector trigger device.
38
38
  """
39
39
  return HDFPanda(
40
- f"{PREFIX.beamline_prefix}-MO-PANDA-01:",
40
+ f"{PREFIX.beamline_prefix}-MO-PPANDA-01:",
41
41
  path_provider=get_path_provider(),
42
42
  )
43
43
 
@@ -5,7 +5,7 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beam
5
5
  from dodal.devices.b07 import Grating, LensMode, PsuMode
6
6
  from dodal.devices.electron_analyser import EnergySource
7
7
  from dodal.devices.electron_analyser.specs import SpecsDetector
8
- from dodal.devices.pgm import PGM
8
+ from dodal.devices.pgm import PlaneGratingMonochromator
9
9
  from dodal.devices.synchrotron import Synchrotron
10
10
  from dodal.log import set_beamline as set_log_beamline
11
11
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -22,8 +22,11 @@ def synchrotron() -> Synchrotron:
22
22
 
23
23
 
24
24
  @device_factory()
25
- def pgm() -> PGM:
26
- return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
25
+ def pgm() -> PlaneGratingMonochromator:
26
+ return PlaneGratingMonochromator(
27
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
28
+ grating=Grating,
29
+ )
27
30
 
28
31
 
29
32
  @device_factory()
@@ -8,7 +8,7 @@ from dodal.devices.b07_1 import (
8
8
  )
9
9
  from dodal.devices.electron_analyser import EnergySource
10
10
  from dodal.devices.electron_analyser.specs import SpecsDetector
11
- from dodal.devices.pgm import PGM
11
+ from dodal.devices.pgm import PlaneGratingMonochromator
12
12
  from dodal.devices.synchrotron import Synchrotron
13
13
  from dodal.log import set_beamline as set_log_beamline
14
14
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -25,8 +25,11 @@ def synchrotron() -> Synchrotron:
25
25
 
26
26
 
27
27
  @device_factory()
28
- def pgm() -> PGM:
29
- return PGM(prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", grating=Grating)
28
+ def pgm() -> PlaneGratingMonochromator:
29
+ return PlaneGratingMonochromator(
30
+ prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
31
+ grating=Grating,
32
+ )
30
33
 
31
34
 
32
35
  # Connect will work again after this work completed
@@ -21,7 +21,7 @@ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
21
21
  from dodal.devices.backlight import Backlight
22
22
  from dodal.devices.baton import Baton
23
23
  from dodal.devices.collimation_table import CollimationTable
24
- from dodal.devices.cryostream import CryoStream
24
+ from dodal.devices.cryostream import CryoStream, CryoStreamGantry
25
25
  from dodal.devices.detector.detector_motion import DetectorMotion
26
26
  from dodal.devices.diamond_filter import DiamondFilter, I03Filters
27
27
  from dodal.devices.eiger import EigerDetector
@@ -396,6 +396,14 @@ def cryostream() -> CryoStream:
396
396
  return CryoStream(PREFIX.beamline_prefix)
397
397
 
398
398
 
399
+ @device_factory()
400
+ def cryostream_gantry() -> CryoStreamGantry:
401
+ """Get the i03 cryostream gantry device, instantiate it if it hasn't already been.
402
+ If this is called when already instantiated in i03, it will return the existing object.
403
+ """
404
+ return CryoStreamGantry(PREFIX.beamline_prefix)
405
+
406
+
399
407
  @device_factory()
400
408
  def diamond_filter() -> DiamondFilter[I03Filters]:
401
409
  """Get the i03 diamond filter device, instantiate it if it hasn't already been.
@@ -1,7 +1,7 @@
1
1
  from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
2
2
  from dodal.common.beamlines.beamline_utils import device_factory
3
3
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
4
- from dodal.devices.pgm import PGM
4
+ from dodal.devices.pgm import PlaneGratingMonochromator
5
5
  from dodal.devices.synchrotron import Synchrotron
6
6
  from dodal.log import set_beamline as set_log_beamline
7
7
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -18,5 +18,5 @@ def synchrotron() -> Synchrotron:
18
18
 
19
19
 
20
20
  @device_factory()
21
- def pgm() -> PGM:
21
+ def pgm() -> PlaneGratingMonochromator:
22
22
  return i05_pgm()
@@ -1,7 +1,7 @@
1
1
  from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
2
2
  from dodal.common.beamlines.beamline_utils import device_factory
3
3
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
4
- from dodal.devices.pgm import PGM
4
+ from dodal.devices.pgm import PlaneGratingMonochromator
5
5
  from dodal.devices.synchrotron import Synchrotron
6
6
  from dodal.log import set_beamline as set_log_beamline
7
7
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -13,7 +13,7 @@ set_utils_beamline(BL)
13
13
 
14
14
 
15
15
  @device_factory()
16
- def pgm() -> PGM:
16
+ def pgm() -> PlaneGratingMonochromator:
17
17
  return i05_pgm()
18
18
 
19
19
 
@@ -0,0 +1,21 @@
1
+ from dodal.common.beamlines.beamline_utils import device_factory
2
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
3
+ from dodal.devices.i07.dcm import DCM
4
+ from dodal.log import set_beamline as set_log_beamline
5
+ from dodal.utils import BeamlinePrefix, get_beamline_name
6
+
7
+ BL = get_beamline_name("i07")
8
+ set_log_beamline(BL)
9
+ set_utils_beamline(BL)
10
+ PREFIX = BeamlinePrefix(BL)
11
+
12
+
13
+ @device_factory()
14
+ def dcm() -> DCM:
15
+ """Instantiate DCM using two PV bases"""
16
+ dcm = DCM(
17
+ f"{PREFIX.beamline_prefix}-MO-DCM-01:",
18
+ f"{PREFIX.beamline_prefix}-DI-DCM-01:",
19
+ "dcm",
20
+ )
21
+ return dcm
@@ -10,7 +10,7 @@ from dodal.devices.common_dcm import (
10
10
  from dodal.devices.electron_analyser import DualEnergySource
11
11
  from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
12
12
  from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
13
- from dodal.devices.pgm import PGM
13
+ from dodal.devices.pgm import PlaneGratingMonochromator
14
14
  from dodal.devices.synchrotron import Synchrotron
15
15
  from dodal.log import set_beamline as set_log_beamline
16
16
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -27,8 +27,8 @@ def synchrotron() -> Synchrotron:
27
27
 
28
28
 
29
29
  @device_factory()
30
- def pgm() -> PGM:
31
- return PGM(
30
+ def pgm() -> PlaneGratingMonochromator:
31
+ return PlaneGratingMonochromator(
32
32
  prefix=f"{BeamlinePrefix(BL, suffix='J').beamline_prefix}-MO-PGM-01:",
33
33
  grating=Grating,
34
34
  )
@@ -43,7 +43,7 @@ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
43
43
 
44
44
  @device_factory()
45
45
  def energy_source() -> DualEnergySource:
46
- return DualEnergySource(dcm().energy_in_ev, pgm().energy.user_readback)
46
+ return DualEnergySource(dcm().energy_in_eV, pgm().energy.user_readback)
47
47
 
48
48
 
49
49
  # Connect will work again after this work completed
@@ -11,6 +11,7 @@ from dodal.devices.electron_analyser import EnergySource
11
11
  from dodal.devices.electron_analyser.specs import SpecsDetector
12
12
  from dodal.devices.i09_1 import LensMode, PsuMode
13
13
  from dodal.devices.synchrotron import Synchrotron
14
+ from dodal.devices.undulator import UndulatorOrder
14
15
  from dodal.log import set_beamline as set_log_beamline
15
16
  from dodal.utils import BeamlinePrefix, get_beamline_name
16
17
 
@@ -34,7 +35,7 @@ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
34
35
 
35
36
  @device_factory()
36
37
  def energy_source() -> EnergySource:
37
- return EnergySource(dcm().energy_in_ev)
38
+ return EnergySource(dcm().energy_in_eV)
38
39
 
39
40
 
40
41
  # Connect will work again after this work completed
@@ -47,3 +48,8 @@ def analyser() -> SpecsDetector[LensMode, PsuMode]:
47
48
  psu_mode_type=PsuMode,
48
49
  energy_source=energy_source(),
49
50
  )
51
+
52
+
53
+ @device_factory()
54
+ def harmonics() -> UndulatorOrder:
55
+ return UndulatorOrder(name="harmonics")
@@ -0,0 +1,57 @@
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.apple2_undulator import (
6
+ Apple2,
7
+ UndulatorGap,
8
+ UndulatorPhaseAxes,
9
+ )
10
+ from dodal.devices.i09.enums import Grating
11
+ from dodal.devices.pgm import PlaneGratingMonochromator
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("i09-2")
17
+ PREFIX = BeamlinePrefix(BL, suffix="J")
18
+ set_log_beamline(BL)
19
+ set_utils_beamline(BL)
20
+
21
+
22
+ @device_factory()
23
+ def synchrotron() -> Synchrotron:
24
+ return Synchrotron()
25
+
26
+
27
+ @device_factory()
28
+ def pgm() -> PlaneGratingMonochromator:
29
+ return PlaneGratingMonochromator(
30
+ prefix=f"{PREFIX.beamline_prefix}-MO-PGM-01:",
31
+ grating=Grating,
32
+ )
33
+
34
+
35
+ @device_factory()
36
+ def jid_gap() -> UndulatorGap:
37
+ return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
38
+
39
+
40
+ @device_factory()
41
+ def jid_phase() -> UndulatorPhaseAxes:
42
+ return UndulatorPhaseAxes(
43
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
44
+ top_outer="PUO",
45
+ top_inner="PUI",
46
+ btm_inner="PLI",
47
+ btm_outer="PLO",
48
+ )
49
+
50
+
51
+ @device_factory()
52
+ def jid() -> Apple2:
53
+ """I09 soft x-ray insertion device."""
54
+ return Apple2(
55
+ id_gap=jid_gap(),
56
+ id_phase=jid_phase(),
57
+ )
@@ -32,7 +32,7 @@ from dodal.devices.i10.i10_apple2 import (
32
32
 
33
33
  # Imports taken from i10 while we work out how to deal with split end stations
34
34
  from dodal.devices.i10.i10_setting_data import I10Grating
35
- from dodal.devices.pgm import PGM
35
+ from dodal.devices.pgm import PlaneGratingMonochromator
36
36
  from dodal.devices.synchrotron import Synchrotron
37
37
  from dodal.log import set_beamline as set_log_beamline
38
38
  from dodal.utils import BeamlinePrefix, get_beamline_name
@@ -59,9 +59,9 @@ def first_mirror() -> PiezoMirror:
59
59
 
60
60
 
61
61
  @device_factory()
62
- def pgm() -> PGM:
62
+ def pgm() -> PlaneGratingMonochromator:
63
63
  "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set(<energy>)"
64
- return PGM(
64
+ return PlaneGratingMonochromator(
65
65
  prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
66
66
  grating=I10Grating,
67
67
  grating_pv="NLINES2",
@@ -80,22 +80,35 @@ I10_CONF_CLIENT = ConfigServer(url="https://daq-config.diamond.ac.uk")
80
80
  LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
81
81
 
82
82
 
83
+ @device_factory()
84
+ def idd_gap() -> UndulatorGap:
85
+ return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
86
+
87
+
88
+ @device_factory()
89
+ def idd_phase() -> UndulatorPhaseAxes:
90
+ return UndulatorPhaseAxes(
91
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
92
+ top_outer="RPQ1",
93
+ top_inner="RPQ2",
94
+ btm_inner="RPQ3",
95
+ btm_outer="RPQ4",
96
+ )
97
+
98
+
99
+ @device_factory()
100
+ def idd_jaw_phase() -> UndulatorJawPhase:
101
+ return UndulatorJawPhase(
102
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
103
+ move_pv="RPQ1",
104
+ )
105
+
106
+
83
107
  @device_factory()
84
108
  def idd() -> I10Apple2:
85
109
  """i10 downstream insertion device:"""
86
110
  return I10Apple2(
87
- id_gap=UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:"),
88
- id_phase=UndulatorPhaseAxes(
89
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
90
- top_outer="RPQ1",
91
- top_inner="RPQ2",
92
- btm_inner="RPQ3",
93
- btm_outer="RPQ4",
94
- ),
95
- id_jaw_phase=UndulatorJawPhase(
96
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
97
- move_pv="RPQ1",
98
- ),
111
+ id_gap=idd_gap(), id_phase=idd_phase(), id_jaw_phase=idd_jaw_phase()
99
112
  )
100
113
 
101
114
 
@@ -131,22 +144,35 @@ def energy_dd() -> BeamEnergy:
131
144
  return BeamEnergy(id_energy=idd_energy(), mono=pgm().energy)
132
145
 
133
146
 
147
+ @device_factory()
148
+ def idu_gap() -> UndulatorGap:
149
+ return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:")
150
+
151
+
152
+ @device_factory()
153
+ def idu_phase() -> UndulatorPhaseAxes:
154
+ return UndulatorPhaseAxes(
155
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
156
+ top_outer="RPQ1",
157
+ top_inner="RPQ2",
158
+ btm_inner="RPQ3",
159
+ btm_outer="RPQ4",
160
+ )
161
+
162
+
163
+ @device_factory()
164
+ def idu_jaw_phase() -> UndulatorJawPhase:
165
+ return UndulatorJawPhase(
166
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
167
+ move_pv="RPQ1",
168
+ )
169
+
170
+
134
171
  @device_factory()
135
172
  def idu() -> I10Apple2:
136
173
  """i10 upstream insertion device"""
137
174
  return I10Apple2(
138
- id_gap=UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:"),
139
- id_phase=UndulatorPhaseAxes(
140
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
141
- top_outer="RPQ1",
142
- top_inner="RPQ2",
143
- btm_inner="RPQ3",
144
- btm_outer="RPQ4",
145
- ),
146
- id_jaw_phase=UndulatorJawPhase(
147
- prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
148
- move_pv="RPQ1",
149
- ),
175
+ id_gap=idu_gap(), id_phase=idu_phase(), id_jaw_phase=idu_jaw_phase()
150
176
  )
151
177
 
152
178