dls-dodal 1.36.2__tar.gz → 1.36.3__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 (383) hide show
  1. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/PKG-INFO +2 -2
  2. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/conftest.py +1 -28
  3. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/pyproject.toml +1 -1
  4. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/PKG-INFO +2 -2
  5. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/SOURCES.txt +3 -0
  6. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/requires.txt +1 -1
  7. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/_version.py +2 -2
  8. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i10.py +74 -7
  9. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i24.py +1 -1
  10. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/apple2_undulator.py +9 -9
  11. dls_dodal-1.36.3/src/dodal/devices/i10/i10_setting_data.py +7 -0
  12. dls_dodal-1.36.3/src/dodal/devices/i10/mirrors.py +24 -0
  13. dls_dodal-1.36.3/src/dodal/devices/i10/slits.py +37 -0
  14. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/dual_backlight.py +1 -0
  15. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/focus_mirrors.py +12 -12
  16. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/linkam3.py +2 -2
  17. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p99/sample_stage.py +15 -15
  18. dls_dodal-1.36.3/src/dodal/devices/slits.py +39 -0
  19. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/tetramm.py +16 -16
  20. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/test_utils.py +2 -2
  21. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xspress3/xspress3.py +3 -3
  22. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zebra.py +13 -13
  23. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_oav_to_redis_system.py +2 -1
  24. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_beamline_utils.py +2 -1
  25. dls_dodal-1.36.3/tests/conftest.py +34 -0
  26. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/test_i10Apple2.py +6 -6
  27. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_dcm.py +2 -2
  28. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_fswitch.py +2 -1
  29. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/test_diamond_filter.py +2 -4
  30. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_dual_backlight.py +1 -1
  31. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_focus_mirrors.py +2 -2
  32. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +1 -1
  33. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_pmac.py +1 -1
  34. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/conftest.py +2 -1
  35. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +1 -1
  36. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav.py +1 -1
  37. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +2 -1
  38. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_utils.py +1 -1
  39. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_snapshots.py +1 -1
  40. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/p99/test_p99_stage.py +4 -3
  41. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_aperture_scatterguard.py +2 -2
  42. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_apple2_undulator.py +17 -17
  43. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_attenuator.py +2 -1
  44. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_backlight.py +2 -1
  45. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_bart_robot.py +1 -1
  46. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_focusing_mirror.py +2 -2
  47. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_gridscan.py +2 -1
  48. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_hutch_shutter.py +1 -1
  49. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_linkam3.py +2 -2
  50. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_pressure_jump_cell.py +2 -1
  51. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_qbpm.py +2 -4
  52. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_shutter.py +2 -1
  53. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_slits.py +2 -1
  54. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_smargon.py +2 -1
  55. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_synchrotron.py +2 -1
  56. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_tetramm.py +22 -27
  57. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_thawer.py +2 -1
  58. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_undulator.py +2 -2
  59. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_undulator_dcm.py +3 -2
  60. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_utils.py +2 -1
  61. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +2 -1
  62. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_xbpm_feedback.py +2 -1
  63. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_xspress3.py +2 -2
  64. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zebra.py +1 -1
  65. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_motor_util_plans.py +3 -5
  66. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_topup_plan.py +1 -1
  67. dls_dodal-1.36.2/src/dodal/devices/i10/i10_setting_data.py +0 -7
  68. dls_dodal-1.36.2/src/dodal/devices/slits.py +0 -17
  69. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.copier-answers.yml +0 -0
  70. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.devcontainer/devcontainer.json +0 -0
  71. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/CODEOWNERS +0 -0
  72. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/CONTRIBUTING.md +0 -0
  73. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  74. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/actions/install_requirements/action.yml +0 -0
  75. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/dependabot.yml +0 -0
  76. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/pages/index.html +0 -0
  77. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/pages/make_switcher.py +0 -0
  78. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_check.yml +0 -0
  79. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_dist.yml +0 -0
  80. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_docs.yml +0 -0
  81. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_pypi.yml +0 -0
  82. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_release.yml +0 -0
  83. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_test.yml +0 -0
  84. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_tox.yml +0 -0
  85. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/ci.yml +0 -0
  86. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/periodic.yml +0 -0
  87. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.gitignore +0 -0
  88. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.pre-commit-config.yaml +0 -0
  89. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/extensions.json +0 -0
  90. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/launch.json +0 -0
  91. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/settings.json +0 -0
  92. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/tasks.json +0 -0
  93. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/Dockerfile +0 -0
  94. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/LICENSE +0 -0
  95. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/README.md +0 -0
  96. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/catalog-info.yaml +0 -0
  97. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_api.rst +0 -0
  98. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/autosummary/class.rst +0 -0
  99. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/autosummary/module.rst +0 -0
  100. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/custom-module-template.rst +0 -0
  101. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/assets/zocalo.png +0 -0
  102. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/conf.py +0 -0
  103. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  104. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  105. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0003-codeowners.md +0 -0
  106. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
  107. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/COPYME +0 -0
  108. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions.md +0 -0
  109. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/reviews.md +0 -0
  110. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations.md +0 -0
  111. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/genindex.md +0 -0
  112. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/build-docs.md +0 -0
  113. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/contribute.md +0 -0
  114. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/coverage.md +0 -0
  115. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/create-beamline.rst +0 -0
  116. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/dev-install.md +0 -0
  117. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/excalidraw.md +0 -0
  118. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/lint.md +0 -0
  119. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/lock-requirements.md +0 -0
  120. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
  121. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/make-release.md +0 -0
  122. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/move-code.rst +0 -0
  123. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/pypi.md +0 -0
  124. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/run-tests.md +0 -0
  125. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/static-analysis.md +0 -0
  126. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/update-template.md +0 -0
  127. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/write-tests.md +0 -0
  128. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/zocalo.rst +0 -0
  129. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to.md +0 -0
  130. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/images/dls-logo.svg +0 -0
  131. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/images/excalidraw-example.svg +0 -0
  132. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/index.md +0 -0
  133. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference/device-standards.rst +0 -0
  134. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference/standards.rst +0 -0
  135. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference.md +0 -0
  136. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials/get_started.rst +0 -0
  137. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials/installation.md +0 -0
  138. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials.md +0 -0
  139. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/pull_request_template.md +0 -0
  140. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/setup.cfg +0 -0
  141. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/__init__.py +0 -0
  142. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  143. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  144. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/top_level.txt +0 -0
  145. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/__init__.py +0 -0
  146. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/__main__.py +0 -0
  147. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  148. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamline_specific_utils/i03.py +0 -0
  149. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/README.md +0 -0
  150. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/__init__.py +0 -0
  151. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/adsim.py +0 -0
  152. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/b01_1.py +0 -0
  153. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i03.py +0 -0
  154. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i04.py +0 -0
  155. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i13_1.py +0 -0
  156. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i20_1.py +0 -0
  157. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i22.py +0 -0
  158. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i23.py +0 -0
  159. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p38.py +0 -0
  160. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p45.py +0 -0
  161. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p99.py +0 -0
  162. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/training_rig.py +0 -0
  163. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/cli.py +0 -0
  164. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/__init__.py +0 -0
  165. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/__init__.py +0 -0
  166. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  167. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  168. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/device_helpers.py +0 -0
  169. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/coordination.py +0 -0
  170. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/crystal_metadata.py +0 -0
  171. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/maths.py +0 -0
  172. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/signal_utils.py +0 -0
  173. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/types.py +0 -0
  174. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/udc_directory_provider.py +0 -0
  175. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/visit.py +0 -0
  176. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/CTAB.py +0 -0
  177. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/__init__.py +0 -0
  178. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/adsim.py +0 -0
  179. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/aperture.py +0 -0
  180. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/aperturescatterguard.py +0 -0
  181. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
  182. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
  183. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/attenuator.py +0 -0
  184. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/backlight.py +0 -0
  185. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/cryostream.py +0 -0
  186. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/dcm.py +0 -0
  187. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/__init__.py +0 -0
  188. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  189. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  190. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_resolution.py +0 -0
  191. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/detector.py +0 -0
  192. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/detector_motion.py +0 -0
  193. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/diamond_filter.py +0 -0
  194. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/eiger.py +0 -0
  195. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/eiger_odin.py +0 -0
  196. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/fast_grid_scan.py +0 -0
  197. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  198. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/flux.py +0 -0
  199. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/focusing_mirror.py +0 -0
  200. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/hutch_shutter.py +0 -0
  201. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i03/__init__.py +0 -0
  202. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i04/transfocator.py +0 -0
  203. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i10/i10_apple2.py +0 -0
  204. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i20_1/__init__.py +0 -0
  205. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/dcm.py +0 -0
  206. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/fswitch.py +0 -0
  207. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/nxsas.py +0 -0
  208. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/__init__.py +0 -0
  209. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/aperture.py +0 -0
  210. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/beam_center.py +0 -0
  211. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/beamstop.py +0 -0
  212. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/dcm.py +0 -0
  213. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
  214. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
  215. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/pmac.py +0 -0
  216. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/vgonio.py +0 -0
  217. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/ipin.py +0 -0
  218. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/logging_ophyd_device.py +0 -0
  219. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/motors.py +0 -0
  220. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/__init__.py +0 -0
  221. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
  222. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_calculations.py +0 -0
  223. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_detector.py +0 -0
  224. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_parameters.py +0 -0
  225. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  226. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  227. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  228. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  229. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  230. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
  231. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  232. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/utils.py +0 -0
  233. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p45.py +0 -0
  234. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p99/__init__.py +0 -0
  235. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/pgm.py +0 -0
  236. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/pressure_jump_cell.py +0 -0
  237. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/qbpm.py +0 -0
  238. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/robot.py +0 -0
  239. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/s4_slit_gaps.py +0 -0
  240. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/scatterguard.py +0 -0
  241. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/scintillator.py +0 -0
  242. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/smargon.py +0 -0
  243. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/status.py +0 -0
  244. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/synchrotron.py +0 -0
  245. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/thawer.py +0 -0
  246. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/training_rig/__init__.py +0 -0
  247. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/training_rig/sample_stage.py +0 -0
  248. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/turbo_slit.py +0 -0
  249. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/undulator.py +0 -0
  250. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/undulator_dcm.py +0 -0
  251. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/__init__.py +0 -0
  252. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/adjuster_plans.py +0 -0
  253. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/epics_util.py +0 -0
  254. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/lookup_tables.py +0 -0
  255. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/motor_utils.py +0 -0
  256. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/save_panda.py +0 -0
  257. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  258. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/webcam.py +0 -0
  259. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xbpm_feedback.py +0 -0
  260. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  261. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zebra_controlled_shutter.py +0 -0
  262. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/__init__.py +0 -0
  263. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  264. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  265. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  266. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/log.py +0 -0
  267. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  268. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/__init__.py +0 -0
  269. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/check_topup.py +0 -0
  270. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/data_session.py +0 -0
  271. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/motor_utils.py +0 -0
  272. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/wrapped.py +0 -0
  273. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/__init__.py +0 -0
  274. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/scanspec.py +0 -0
  275. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/wrapped.py +0 -0
  276. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/utils.py +0 -0
  277. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/__init__.py +0 -0
  278. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_adsim.py +0 -0
  279. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_aperturescatterguard_system.py +0 -0
  280. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_eiger_system.py +0 -0
  281. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_gridscan_system.py +0 -0
  282. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_oav_system.py +0 -0
  283. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_slit_gaps_system.py +0 -0
  284. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_smargon_system.py +0 -0
  285. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_synchrotron_system.py +0 -0
  286. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_undulator_system.py +0 -0
  287. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_zebra_system.py +0 -0
  288. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_zocalo_results.py +0 -0
  289. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/__init__.py +0 -0
  290. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/__init__.py +0 -0
  291. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/__init__.py +0 -0
  292. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_i03.py +0 -0
  293. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_i24.py +0 -0
  294. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_mapping.py +0 -0
  295. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/__init__.py +0 -0
  296. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/__init__.py +0 -0
  297. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  298. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_device_helpers.py +0 -0
  299. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_device_instantiation.py +0 -0
  300. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_coordination.py +0 -0
  301. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_crystal_metadata.py +0 -0
  302. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_maths.py +0 -0
  303. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_udc_directory_provider.py +0 -0
  304. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_visit.py +0 -0
  305. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/__init__.py +0 -0
  306. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i04/__init__.py +0 -0
  307. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i04/test_transfocator.py +0 -0
  308. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
  309. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
  310. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  311. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  312. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  313. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  314. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_metadataholder.py +0 -0
  315. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/training_rig/test_sample_stage.py +0 -0
  316. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/__init__.py +0 -0
  317. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/conftest.py +0 -0
  318. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  319. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  320. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_detector.py +0 -0
  321. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/__init__.py +0 -0
  322. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
  323. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/__init__.py +0 -0
  324. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  325. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
  326. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
  327. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  328. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_aperture.py +0 -0
  329. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_beam_converter.py +0 -0
  330. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  331. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  332. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  333. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  334. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_dcm.py +0 -0
  335. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_display.configuration +0 -0
  336. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_eiger.py +1 -1
  337. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  338. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  339. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  340. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_odin.py +0 -0
  341. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_status.py +0 -0
  342. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_webcam.py +0 -0
  343. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
  344. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
  345. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/__init__.py +0 -0
  346. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  347. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
  348. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
  349. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
  350. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline.py +0 -0
  351. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  352. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_broken_dependency.py +0 -0
  353. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_dependencies.py +0 -0
  354. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_disordered_dependencies.py +0 -0
  355. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  356. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_some_devices_working.py +0 -0
  357. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_device_factory_beamline.py +0 -0
  358. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/README.rst +0 -0
  359. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/__init__.py +0 -0
  360. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/__main__.py +0 -0
  361. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  362. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  363. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/conftest.py +0 -0
  364. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_compliance.py +0 -0
  365. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_scanspec.py +0 -0
  366. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_wrapped.py +0 -0
  367. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  368. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_cli.py +0 -0
  369. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/bad_beamlineParameters +0 -0
  370. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/i04_beamlineParameters +0 -0
  371. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  372. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  373. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  374. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_parameters.txt +0 -0
  375. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_det_dist_converter.txt +0 -0
  376. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  377. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  378. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/topup_long_delay.txt +0 -0
  379. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/topup_short_params.txt +0 -0
  380. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_utils.py +0 -0
  381. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/__init__.py +0 -0
  382. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/test_cli.py +0 -0
  383. {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/test_log.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dls-dodal
3
- Version: 1.36.2
3
+ Version: 1.36.3
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
216
216
  License-File: LICENSE
217
217
  Requires-Dist: click
218
218
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.8.0a5
219
+ Requires-Dist: ophyd-async>=0.9.0a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -1,5 +1,4 @@
1
1
  import asyncio
2
- import importlib
3
2
  import logging
4
3
  import os
5
4
  import sys
@@ -18,14 +17,13 @@ from ophyd_async.core import (
18
17
  PathProvider,
19
18
  )
20
19
 
21
- from dodal.common.beamlines import beamline_parameters, beamline_utils
20
+ from dodal.common.beamlines import beamline_utils
22
21
  from dodal.common.visit import (
23
22
  DirectoryServiceClient,
24
23
  LocalDirectoryServiceClient,
25
24
  StaticVisitPathProvider,
26
25
  )
27
26
  from dodal.log import LOGGER, GELFTCPHandler, set_up_all_logging_handlers
28
- from dodal.utils import make_all_devices
29
27
 
30
28
  MOCK_DAQ_CONFIG_PATH = "tests/devices/unit_tests/test_daq_configuration"
31
29
  mock_paths = [
@@ -82,31 +80,6 @@ if os.getenv("PYTEST_RAISE", "0") == "1":
82
80
  raise excinfo.value
83
81
 
84
82
 
85
- def mock_beamline_module_filepaths(bl_name, bl_module):
86
- if mock_attributes := mock_attributes_table.get(bl_name):
87
- [bl_module.__setattr__(attr[0], attr[1]) for attr in mock_attributes]
88
- beamline_parameters.BEAMLINE_PARAMETER_PATHS[bl_name] = (
89
- "tests/test_data/i04_beamlineParameters"
90
- )
91
-
92
-
93
- @pytest.fixture(scope="function")
94
- def module_and_devices_for_beamline(request):
95
- beamline = request.param
96
- with patch.dict(os.environ, {"BEAMLINE": beamline}, clear=True):
97
- bl_mod = importlib.import_module("dodal.beamlines." + beamline)
98
- importlib.reload(bl_mod)
99
- mock_beamline_module_filepaths(beamline, bl_mod)
100
- devices, exceptions = make_all_devices(
101
- bl_mod,
102
- include_skipped=True,
103
- fake_with_ophyd_sim=True,
104
- )
105
- yield (bl_mod, devices, exceptions)
106
- beamline_utils.clear_devices()
107
- del bl_mod
108
-
109
-
110
83
  def pytest_runtest_setup(item):
111
84
  beamline_utils.clear_devices()
112
85
  if LOGGER.handlers == []:
@@ -15,7 +15,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
15
15
  dependencies = [
16
16
  "click",
17
17
  "ophyd",
18
- "ophyd-async >= 0.8.0a5",
18
+ "ophyd-async >= 0.9.0a1",
19
19
  "bluesky",
20
20
  "pyepics",
21
21
  "dataclasses-json",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dls-dodal
3
- Version: 1.36.2
3
+ Version: 1.36.3
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
216
216
  License-File: LICENSE
217
217
  Requires-Dist: click
218
218
  Requires-Dist: ophyd
219
- Requires-Dist: ophyd-async>=0.8.0a5
219
+ Requires-Dist: ophyd-async>=0.9.0a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -170,6 +170,8 @@ src/dodal/devices/i03/__init__.py
170
170
  src/dodal/devices/i04/transfocator.py
171
171
  src/dodal/devices/i10/i10_apple2.py
172
172
  src/dodal/devices/i10/i10_setting_data.py
173
+ src/dodal/devices/i10/mirrors.py
174
+ src/dodal/devices/i10/slits.py
173
175
  src/dodal/devices/i20_1/__init__.py
174
176
  src/dodal/devices/i22/dcm.py
175
177
  src/dodal/devices/i22/fswitch.py
@@ -238,6 +240,7 @@ system_tests/test_undulator_system.py
238
240
  system_tests/test_zebra_system.py
239
241
  system_tests/test_zocalo_results.py
240
242
  tests/__init__.py
243
+ tests/conftest.py
241
244
  tests/fake_beamline.py
242
245
  tests/fake_beamline_all_devices_raise_exception.py
243
246
  tests/fake_beamline_broken_dependency.py
@@ -1,6 +1,6 @@
1
1
  click
2
2
  ophyd
3
- ophyd-async>=0.8.0a5
3
+ ophyd-async>=0.9.0a1
4
4
  bluesky
5
5
  pyepics
6
6
  dataclasses-json
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.36.2'
16
- __version_tuple__ = version_tuple = (1, 36, 2)
15
+ __version__ = version = '1.36.3'
16
+ __version_tuple__ = version_tuple = (1, 36, 3)
@@ -1,6 +1,6 @@
1
1
  from pathlib import Path
2
2
 
3
- from dodal.common.beamlines.beamline_utils import device_instantiation
3
+ from dodal.common.beamlines.beamline_utils import device_factory, device_instantiation
4
4
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
5
5
  from dodal.devices.apple2_undulator import (
6
6
  UndulatorGap,
@@ -14,13 +14,18 @@ from dodal.devices.i10.i10_apple2 import (
14
14
  LinearArbitraryAngle,
15
15
  )
16
16
  from dodal.devices.i10.i10_setting_data import I10Grating
17
+ from dodal.devices.i10.mirrors import PiezoMirror
18
+ from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
17
19
  from dodal.devices.pgm import PGM
20
+ from dodal.devices.slits import MinimalSlits
18
21
  from dodal.log import set_beamline as set_log_beamline
19
22
  from dodal.utils import BeamlinePrefix, get_beamline_name
20
23
 
21
24
  BL = get_beamline_name("i10")
22
25
  set_log_beamline(BL)
23
26
  set_utils_beamline(BL)
27
+ PREFIX = BeamlinePrefix(BL)
28
+
24
29
 
25
30
  LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
26
31
  """
@@ -39,7 +44,7 @@ def idd_gap(
39
44
  return device_instantiation(
40
45
  device_factory=UndulatorGap,
41
46
  name="idd_gap",
42
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
47
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
43
48
  wait=wait_for_connection,
44
49
  fake=fake_with_ophyd_sim,
45
50
  bl_prefix=False,
@@ -52,7 +57,7 @@ def idd_phase_axes(
52
57
  return device_instantiation(
53
58
  device_factory=UndulatorPhaseAxes,
54
59
  name="idd_phase_axes",
55
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
60
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
56
61
  top_outer="RPQ1",
57
62
  top_inner="RPQ2",
58
63
  btm_inner="RPQ3",
@@ -69,7 +74,7 @@ def idd_jaw(
69
74
  return device_instantiation(
70
75
  device_factory=UndulatorJawPhase,
71
76
  name="idd_jaw",
72
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
77
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
73
78
  move_pv="RPQ1",
74
79
  wait=wait_for_connection,
75
80
  fake=fake_with_ophyd_sim,
@@ -83,7 +88,7 @@ def idu_gap(
83
88
  return device_instantiation(
84
89
  device_factory=UndulatorGap,
85
90
  name="idu_gap",
86
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
91
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
87
92
  wait=wait_for_connection,
88
93
  fake=fake_with_ophyd_sim,
89
94
  bl_prefix=False,
@@ -96,7 +101,7 @@ def idu_phase_axes(
96
101
  return device_instantiation(
97
102
  device_factory=UndulatorPhaseAxes,
98
103
  name="idu_phase_axes",
99
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
104
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
100
105
  top_outer="RPQ1",
101
106
  top_inner="RPQ2",
102
107
  btm_inner="RPQ3",
@@ -113,7 +118,7 @@ def idu_jaw(
113
118
  return device_instantiation(
114
119
  device_factory=UndulatorJawPhase,
115
120
  name="idu_jaw",
116
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
121
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
117
122
  move_pv="RPQ1",
118
123
  wait=wait_for_connection,
119
124
  fake=fake_with_ophyd_sim,
@@ -255,3 +260,65 @@ def idd_la_angle(
255
260
  wait=wait_for_connection,
256
261
  fake=fake_with_ophyd_sim,
257
262
  )
263
+
264
+
265
+ @device_factory()
266
+ def first_mirror() -> PiezoMirror:
267
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
268
+
269
+
270
+ @device_factory()
271
+ def switching_mirror() -> PiezoMirror:
272
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
273
+
274
+
275
+ @device_factory()
276
+ def slit_1() -> I10PrimarySlits:
277
+ return I10PrimarySlits(
278
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
279
+ )
280
+
281
+
282
+ @device_factory()
283
+ def slit_2() -> I10Slits:
284
+ return I10Slits(
285
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
286
+ )
287
+
288
+
289
+ @device_factory()
290
+ def slit_3() -> I10Slits:
291
+ return I10Slits(
292
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
293
+ )
294
+
295
+
296
+ """Rasor devices"""
297
+
298
+
299
+ @device_factory()
300
+ def focusing_mirror() -> PiezoMirror:
301
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
302
+
303
+
304
+ @device_factory()
305
+ def slit_4() -> MinimalSlits:
306
+ return MinimalSlits(
307
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
308
+ x_gap="XSIZE",
309
+ y_gap="YSIZE",
310
+ )
311
+
312
+
313
+ @device_factory()
314
+ def slit_5() -> I10Slits:
315
+ return I10Slits(
316
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:",
317
+ )
318
+
319
+
320
+ @device_factory()
321
+ def slit_6() -> I10Slits:
322
+ return I10Slits(
323
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
324
+ )
@@ -21,7 +21,7 @@ from dodal.log import set_beamline as set_log_beamline
21
21
  from dodal.utils import get_beamline_name, skip_device
22
22
 
23
23
  ZOOM_PARAMS_FILE = (
24
- "/dls_sw/i24/software/gda_versions/gda_9_34/config/xml/jCameraManZoomLevels.xml"
24
+ "/dls_sw/i24/software/gda_versions/gda/config/xml/jCameraManZoomLevels.xml"
25
25
  )
26
26
  DISPLAY_CONFIG = "/dls_sw/i24/software/gda_versions/var/display.configuration"
27
27
 
@@ -21,8 +21,8 @@ from dodal.log import LOGGER
21
21
 
22
22
 
23
23
  class UndulatorGateStatus(StrictEnum):
24
- open = "Open"
25
- close = "Closed"
24
+ OPEN = "Open"
25
+ CLOSE = "Closed"
26
26
 
27
27
 
28
28
  @dataclass
@@ -146,7 +146,7 @@ class UndulatorGap(StandardReadable, Movable):
146
146
  timeout = await self._cal_timeout()
147
147
  LOGGER.info(f"Moving {self.name} to {value} with timeout = {timeout}")
148
148
  await self.set_move.set(value=1, timeout=timeout)
149
- await wait_for_value(self.gate, UndulatorGateStatus.close, timeout=timeout)
149
+ await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
150
150
 
151
151
  async def _cal_timeout(self) -> float:
152
152
  vel = await self.velocity.get_value()
@@ -157,7 +157,7 @@ class UndulatorGap(StandardReadable, Movable):
157
157
  async def check_id_status(self) -> None:
158
158
  if await self.fault.get_value() != 0:
159
159
  raise RuntimeError(f"{self.name} is in fault state")
160
- if await self.gate.get_value() == UndulatorGateStatus.open:
160
+ if await self.gate.get_value() == UndulatorGateStatus.OPEN:
161
161
  raise RuntimeError(f"{self.name} is already in motion.")
162
162
 
163
163
  async def get_timeout(self) -> float:
@@ -251,7 +251,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
251
251
  )
252
252
  timeout = await self._cal_timeout()
253
253
  await self.set_move.set(value=1, timeout=timeout)
254
- await wait_for_value(self.gate, UndulatorGateStatus.close, timeout=timeout)
254
+ await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
255
255
 
256
256
  async def _cal_timeout(self) -> float:
257
257
  """
@@ -283,7 +283,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
283
283
  async def check_id_status(self) -> None:
284
284
  if await self.fault.get_value() != 0:
285
285
  raise RuntimeError(f"{self.name} is in fault state")
286
- if await self.gate.get_value() == UndulatorGateStatus.open:
286
+ if await self.gate.get_value() == UndulatorGateStatus.OPEN:
287
287
  raise RuntimeError(f"{self.name} is already in motion.")
288
288
 
289
289
  async def get_timeout(self) -> float:
@@ -325,7 +325,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
325
325
  )
326
326
  timeout = await self._cal_timeout()
327
327
  await self.set_move.set(value=1, timeout=timeout)
328
- await wait_for_value(self.gate, UndulatorGateStatus.close, timeout=timeout)
328
+ await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
329
329
 
330
330
  async def _cal_timeout(self) -> float:
331
331
  """
@@ -345,7 +345,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
345
345
  async def check_id_status(self) -> None:
346
346
  if await self.fault.get_value() != 0:
347
347
  raise RuntimeError(f"{self.name} is in fault state")
348
- if await self.gate.get_value() == UndulatorGateStatus.open:
348
+ if await self.gate.get_value() == UndulatorGateStatus.OPEN:
349
349
  raise RuntimeError(f"{self.name} is already in motion.")
350
350
 
351
351
  async def get_timeout(self) -> float:
@@ -458,7 +458,7 @@ class Apple2(StandardReadable, Movable):
458
458
  self.phase().set_move.set(value=1, timeout=timeout),
459
459
  )
460
460
  await wait_for_value(
461
- self.gap().gate, UndulatorGateStatus.close, timeout=timeout
461
+ self.gap().gate, UndulatorGateStatus.CLOSE, timeout=timeout
462
462
  )
463
463
  self._energy_set(energy) # Update energy for after move for readback.
464
464
 
@@ -0,0 +1,7 @@
1
+ from ophyd_async.core import StrictEnum
2
+
3
+
4
+ class I10Grating(StrictEnum):
5
+ AU_400 = "400 line/mm Au"
6
+ SI_400 = "400 line/mm Si"
7
+ AU_1200 = "1200 line/mm Au"
@@ -0,0 +1,24 @@
1
+ from ophyd_async.core import StandardReadable
2
+ from ophyd_async.epics.core import epics_signal_rw
3
+ from ophyd_async.epics.motor import Motor
4
+
5
+
6
+ class PiezoMirror(StandardReadable):
7
+ def __init__(
8
+ self,
9
+ prefix: str,
10
+ name: str = "",
11
+ ):
12
+ with self.add_children_as_readables():
13
+ self.x = Motor(prefix + "X")
14
+ self.y = Motor(prefix + "Y")
15
+ self.z = Motor(prefix + "Z")
16
+ self.yaw = Motor(prefix + "YAW")
17
+ self.pitch = Motor(prefix + "PITCH")
18
+ self.roll = Motor(prefix + "ROLL")
19
+ self.fine_pitch = epics_signal_rw(
20
+ float,
21
+ read_pv=prefix + "FPITCH:RBV:AI",
22
+ write_pv=prefix + "FPITCH:DMD:AO",
23
+ )
24
+ super().__init__(name=name)
@@ -0,0 +1,37 @@
1
+ from ophyd_async.epics.motor import Motor
2
+
3
+ from dodal.devices.slits import Slits
4
+
5
+
6
+ class I10Slits(Slits):
7
+ def __init__(self, prefix: str, name: str = "") -> None:
8
+ with self.add_children_as_readables():
9
+ self.x_ring_blade = Motor(prefix + "XRING")
10
+ self.x_hall_blade = Motor(prefix + "XHALL")
11
+ self.y_top_blade = Motor(prefix + "YPLUS")
12
+ self.y_bot_blade = Motor(prefix + "YMINUS")
13
+ super().__init__(
14
+ prefix=prefix,
15
+ x_gap="XSIZE",
16
+ x_centre="XCENTRE",
17
+ y_gap="YSIZE",
18
+ y_centre="YCENTRE",
19
+ name=name,
20
+ )
21
+
22
+
23
+ class I10PrimarySlits(Slits):
24
+ def __init__(self, prefix: str, name: str = "") -> None:
25
+ with self.add_children_as_readables():
26
+ self.x_aptr_1 = Motor(prefix + "APTR1:X")
27
+ self.x_aptr_2 = Motor(prefix + "APTR2:X")
28
+ self.y_aptr_1 = Motor(prefix + "APTR1:Y")
29
+ self.y_aptr_1 = Motor(prefix + "APTR2:Y")
30
+ super().__init__(
31
+ prefix=prefix,
32
+ x_gap="XSIZE",
33
+ x_centre="XCENTRE",
34
+ y_gap="YSIZE",
35
+ y_centre="YCENTRE",
36
+ name=name,
37
+ )
@@ -8,6 +8,7 @@ class BacklightPositions(StrictEnum):
8
8
  LOAD_CHECK = "LoadCheck"
9
9
  OAV2 = "OAV2"
10
10
  DIODE = "Diode"
11
+ WHITE_IN = "White In"
11
12
 
12
13
 
13
14
  class LEDStatus(StrictEnum):
@@ -5,21 +5,21 @@ from dodal.common.signal_utils import create_hardware_backed_soft_signal
5
5
 
6
6
 
7
7
  class HFocusMode(StrictEnum):
8
- focus10 = "HMFMfocus10"
9
- focus20d = "HMFMfocus20d"
10
- focus30d = "HMFMfocus30d"
11
- focus50d = "HMFMfocus50d"
12
- focus1050d = "HMFMfocus1030d"
13
- focus3010d = "HMFMfocus3010d"
8
+ FOCUS_10 = "HMFMfocus10"
9
+ FOCUS_20D = "HMFMfocus20d"
10
+ FOCUS_30D = "HMFMfocus30d"
11
+ FOCUS_50D = "HMFMfocus50d"
12
+ FOCUS_1050D = "HMFMfocus1030d"
13
+ FOCUS_3010D = "HMFMfocus3010d"
14
14
 
15
15
 
16
16
  class VFocusMode(StrictEnum):
17
- focus10 = "VMFMfocus10"
18
- focus20d = "VMFMfocus20d"
19
- focus30d = "VMFMfocus30d"
20
- focus50d = "VMFMfocus50d"
21
- focus1030d = "VMFMfocus1030d"
22
- focus3010d = "VMFMfocus3010d"
17
+ FOCUS_10 = "VMFMfocus10"
18
+ FOCUS_20D = "VMFMfocus20d"
19
+ FOCUS_30D = "VMFMfocus30d"
20
+ FOCUS_50D = "VMFMfocus50d"
21
+ FOCUS_1030D = "VMFMfocus1030d"
22
+ FOCUS_3010D = "VMFMfocus3010d"
23
23
 
24
24
 
25
25
  BEAM_SIZES = {
@@ -14,8 +14,8 @@ from ophyd_async.epics.core import epics_signal_r, epics_signal_rw
14
14
 
15
15
 
16
16
  class PumpControl(StrictEnum):
17
- Manual = "Manual"
18
- Auto = "Auto"
17
+ MANUAL = "Manual"
18
+ AUTO = "Auto"
19
19
 
20
20
 
21
21
  class Linkam3(StandardReadable):
@@ -12,22 +12,22 @@ class SampleAngleStage(StandardReadable):
12
12
 
13
13
 
14
14
  class p99StageSelections(SubsetEnum):
15
- Empty = "Empty"
16
- Mn5um = "Mn 5um"
17
- Fe = "Fe (empty)"
18
- Co5um = "Co 5um"
19
- Ni5um = "Ni 5um"
20
- Cu5um = "Cu 5um"
21
- Zn5um = "Zn 5um"
22
- Zr = "Zr (empty)"
23
- Mo = "Mo (empty)"
24
- Rh = "Rh (empty)"
25
- Pd = "Pd (empty)"
26
- Ag = "Ag (empty)"
27
- Cd25um = "Cd 25um"
15
+ EMPTY = "Empty"
16
+ MN5UM = "Mn 5um"
17
+ FE = "Fe (empty)"
18
+ CO5UM = "Co 5um"
19
+ NI5UM = "Ni 5um"
20
+ CU5UM = "Cu 5um"
21
+ ZN5UM = "Zn 5um"
22
+ ZR = "Zr (empty)"
23
+ MO = "Mo (empty)"
24
+ RH = "Rh (empty)"
25
+ PD = "Pd (empty)"
26
+ AG = "Ag (empty)"
27
+ CD25UM = "Cd 25um"
28
28
  W = "W (empty)"
29
- Pt = "Pt (empty)"
30
- User = "User"
29
+ PT = "Pt (empty)"
30
+ USER = "User"
31
31
 
32
32
 
33
33
  class FilterMotor(StandardReadable):
@@ -0,0 +1,39 @@
1
+ from ophyd_async.core import StandardReadable
2
+ from ophyd_async.epics.motor import Motor
3
+
4
+
5
+ class MinimalSlits(StandardReadable):
6
+ """Gap only X Y slits."""
7
+
8
+ def __init__(
9
+ self,
10
+ prefix: str,
11
+ x_gap: str = "X:SIZE",
12
+ y_gap: str = "Y:SIZE",
13
+ name: str = "",
14
+ ) -> None:
15
+ with self.add_children_as_readables():
16
+ self.x_gap = Motor(prefix + x_gap)
17
+ self.y_gap = Motor(prefix + y_gap)
18
+ super().__init__(name=name)
19
+
20
+
21
+ class Slits(MinimalSlits):
22
+ """
23
+ Representation of a 4-blade set of slits. Allows control/readout of the gap
24
+ between each pair of blades.
25
+ """
26
+
27
+ def __init__(
28
+ self,
29
+ prefix: str,
30
+ x_gap: str = "X:SIZE",
31
+ y_gap: str = "Y:SIZE",
32
+ x_centre: str = "X:CENTRE",
33
+ y_centre: str = "Y:CENTRE",
34
+ name: str = "",
35
+ ) -> None:
36
+ with self.add_children_as_readables():
37
+ self.x_centre = Motor(prefix + x_centre)
38
+ self.y_centre = Motor(prefix + y_centre)
39
+ super().__init__(prefix=prefix, x_gap=x_gap, y_gap=y_gap, name=name)
@@ -22,31 +22,31 @@ from ophyd_async.epics.core import (
22
22
 
23
23
 
24
24
  class TetrammRange(StrictEnum):
25
- uA = "+- 120 uA"
26
- nA = "+- 120 nA"
25
+ UA = "+- 120 uA"
26
+ NA = "+- 120 nA"
27
27
 
28
28
 
29
29
  class TetrammTrigger(StrictEnum):
30
- FreeRun = "Free run"
31
- ExtTrigger = "Ext. trig."
32
- ExtBulb = "Ext. bulb"
33
- ExtGate = "Ext. gate"
30
+ FREE_RUN = "Free run"
31
+ EXT_TRIGGER = "Ext. trig."
32
+ EXT_BULB = "Ext. bulb"
33
+ EXT_GATE = "Ext. gate"
34
34
 
35
35
 
36
36
  class TetrammChannels(StrictEnum):
37
- One = "1"
38
- Two = "2"
39
- Four = "4"
37
+ ONE = "1"
38
+ TWO = "2"
39
+ FOUR = "4"
40
40
 
41
41
 
42
42
  class TetrammResolution(StrictEnum):
43
- SixteenBits = "16 bits"
44
- TwentyFourBits = "24 bits"
43
+ SIXTEEN_BITS = "16 bits"
44
+ TWENTY_FOUR_BITS = "24 bits"
45
45
 
46
46
 
47
47
  class TetrammGeometry(StrictEnum):
48
- Diamond = "Diamond"
49
- Square = "Square"
48
+ DIAMOND = "Diamond"
49
+ SQUARE = "Square"
50
50
 
51
51
 
52
52
  class TetrammDriver(Device):
@@ -118,7 +118,7 @@ class TetrammController(DetectorController):
118
118
  assert trigger_info.livetime is not None
119
119
 
120
120
  # trigger mode must be set first and on its own!
121
- await self._drv.trigger_mode.set(TetrammTrigger.ExtTrigger)
121
+ await self._drv.trigger_mode.set(TetrammTrigger.EXT_TRIGGER)
122
122
 
123
123
  await asyncio.gather(
124
124
  self._drv.averaging_time.set(trigger_info.livetime),
@@ -134,8 +134,8 @@ class TetrammController(DetectorController):
134
134
 
135
135
  def _validate_trigger(self, trigger: DetectorTrigger) -> None:
136
136
  supported_trigger_types = {
137
- DetectorTrigger.edge_trigger,
138
- DetectorTrigger.constant_gate,
137
+ DetectorTrigger.EDGE_TRIGGER,
138
+ DetectorTrigger.CONSTANT_GATE,
139
139
  }
140
140
 
141
141
  if trigger not in supported_trigger_types:
@@ -1,8 +1,8 @@
1
- from ophyd_async.core import (
1
+ from ophyd_async.epics.motor import Motor
2
+ from ophyd_async.testing import (
2
3
  callback_on_mock_put,
3
4
  set_mock_value,
4
5
  )
5
- from ophyd_async.epics.motor import Motor
6
6
 
7
7
 
8
8
  def patch_motor(motor: Motor, initial_position=0):
@@ -26,12 +26,12 @@ class TriggerMode(StrictEnum):
26
26
  SOFTWARE = "Software"
27
27
  HARDWARE = "Hardware"
28
28
  BURST = "Burst"
29
- TTL_Veto_Only = "TTL Veto Only"
29
+ TTL_VETO_ONLY = "TTL Veto Only"
30
30
  IDC = "IDC"
31
31
  SOTWARE_START_STOP = "Software Start/Stop"
32
32
  TTL_BOTH = "TTL Both"
33
33
  LVDS_VETO_ONLY = "LVDS Veto Only"
34
- LVDS_both = "LVDS Both"
34
+ LVDS_BOTH = "LVDS Both"
35
35
 
36
36
 
37
37
  class UpdateRBV(StrictEnum):
@@ -49,7 +49,7 @@ class DetectorState(StrictEnum):
49
49
  ACQUIRE = "Acquire"
50
50
  READOUT = "Readout"
51
51
  CORRECT = "Correct"
52
- Saving = "Saving"
52
+ SAVING = "Saving"
53
53
  ABORTING = "Aborting"
54
54
  ERROR = "Error"
55
55
  WAITING = "Waiting"