dls-dodal 1.67.0__tar.gz → 1.69.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 (727) hide show
  1. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.copier-answers.yml +3 -3
  2. dls_dodal-1.69.0/.devcontainer/devcontainer.json +72 -0
  3. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/CONTRIBUTING.md +1 -1
  4. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/_dist.yml +6 -5
  5. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/_docs.yml +6 -3
  6. dls_dodal-1.69.0/.github/workflows/_test.yml +62 -0
  7. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/_tox.yml +4 -6
  8. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/ci.yml +2 -7
  9. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/periodic.yml +1 -1
  10. dls_dodal-1.69.0/.gitleaks.toml +19 -0
  11. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.pre-commit-config.yaml +8 -0
  12. dls_dodal-1.69.0/.python-version +1 -0
  13. dls_dodal-1.69.0/Dockerfile +8 -0
  14. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/PKG-INFO +2 -32
  15. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/coverage.md +1 -1
  16. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/dev-install.md +5 -6
  17. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/lint.md +1 -1
  18. dls_dodal-1.69.0/docs/how-to/lock-requirements.md +43 -0
  19. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/run-tests.md +5 -2
  20. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/static-analysis.md +1 -1
  21. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/pyproject.toml +99 -28
  22. dls_dodal-1.69.0/renovate.json +37 -0
  23. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/PKG-INFO +2 -32
  24. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/SOURCES.txt +50 -35
  25. dls_dodal-1.69.0/src/dls_dodal.egg-info/requires.txt +19 -0
  26. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/_version.py +3 -3
  27. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/adsim.py +30 -23
  28. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b07.py +1 -1
  29. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b07_1.py +1 -1
  30. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i02_1.py +14 -42
  31. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i02_2.py +5 -11
  32. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i03.py +4 -1
  33. dls_dodal-1.69.0/src/dodal/beamlines/i03_supervisor.py +19 -0
  34. dls_dodal-1.69.0/src/dodal/beamlines/i04.py +307 -0
  35. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i05.py +9 -1
  36. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i06.py +1 -1
  37. dls_dodal-1.69.0/src/dodal/beamlines/i06_1.py +24 -0
  38. dls_dodal-1.69.0/src/dodal/beamlines/i09.py +103 -0
  39. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i09_1.py +9 -1
  40. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i09_2.py +7 -6
  41. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10_optics.py +1 -1
  42. dls_dodal-1.69.0/src/dodal/beamlines/i16.py +34 -0
  43. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i17.py +1 -1
  44. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i20_1.py +14 -0
  45. dls_dodal-1.69.0/src/dodal/beamlines/i21.py +124 -0
  46. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i23.py +19 -25
  47. dls_dodal-1.69.0/src/dodal/beamlines/i24.py +168 -0
  48. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p60.py +12 -2
  49. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/__init__.py +2 -1
  50. dls_dodal-1.69.0/src/dodal/common/maths.py +130 -0
  51. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/eiger.py +44 -23
  52. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base/__init__.py +58 -0
  53. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base/base_controller.py +84 -0
  54. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base/base_detector.py +214 -0
  55. {dls_dodal-1.67.0/src/dodal/devices/electron_analyser/abstract → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base}/base_driver_io.py +23 -42
  56. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/enums.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base/base_enums.py +0 -5
  57. {dls_dodal-1.67.0/src/dodal/devices/electron_analyser/abstract → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base}/base_region.py +48 -11
  58. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/util.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base/base_util.py +1 -1
  59. {dls_dodal-1.67.0/src/dodal/devices/electron_analyser → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/base}/energy_sources.py +27 -26
  60. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/specs/__init__.py +12 -0
  61. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/specs/specs_detector.py +47 -0
  62. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/specs/driver_io.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/specs/specs_driver_io.py +23 -26
  63. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/specs/region.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/specs/specs_region.py +4 -3
  64. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/vgscienta/__init__.py +13 -0
  65. dls_dodal-1.69.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +53 -0
  66. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/vgscienta/driver_io.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_driver_io.py +25 -31
  67. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/vgscienta/region.py → dls_dodal-1.69.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_region.py +6 -6
  68. dls_dodal-1.69.0/src/dodal/devices/fast_shutter.py +152 -0
  69. dls_dodal-1.69.0/src/dodal/devices/i04/beam_centre.py +84 -0
  70. dls_dodal-1.69.0/src/dodal/devices/i04/max_pixel.py +25 -0
  71. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/murko_results.py +18 -3
  72. dls_dodal-1.69.0/src/dodal/devices/i09_2_shared/i09_apple2.py +14 -0
  73. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/i10_apple2.py +7 -7
  74. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i17/i17_apple2.py +6 -6
  75. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i21/__init__.py +3 -1
  76. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/commissioning_jungfrau.py +9 -10
  77. dls_dodal-1.69.0/src/dodal/devices/insertion_device/__init__.py +62 -0
  78. dls_dodal-1.69.0/src/dodal/devices/insertion_device/apple2_controller.py +380 -0
  79. dls_dodal-1.69.0/src/dodal/devices/insertion_device/apple2_undulator.py +430 -0
  80. dls_dodal-1.69.0/src/dodal/devices/insertion_device/energy.py +88 -0
  81. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/insertion_device/energy_motor_lookup.py +1 -1
  82. dls_dodal-1.69.0/src/dodal/devices/insertion_device/enum.py +17 -0
  83. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/insertion_device/lookup_table_models.py +66 -36
  84. dls_dodal-1.69.0/src/dodal/devices/insertion_device/polarisation.py +36 -0
  85. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_detector.py +66 -1
  86. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/utils.py +17 -0
  87. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/robot.py +35 -18
  88. dls_dodal-1.69.0/src/dodal/devices/selectable_source.py +38 -0
  89. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra.py +15 -0
  90. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +1 -0
  91. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -1
  92. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/testing/electron_analyser/device_factory.py +4 -4
  93. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/devices/apple2.py +1 -1
  94. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/run_engine.py +4 -0
  95. dls_dodal-1.69.0/system_tests/conftest.py +2 -0
  96. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/system_tests/test_adsim.py +51 -56
  97. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/system_tests/test_cli.py +2 -1
  98. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_beamline_utils.py +24 -3
  99. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_commissioning_mode.py +17 -2
  100. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_maths.py +47 -0
  101. dls_dodal-1.69.0/tests/conftest.py +160 -0
  102. dls_dodal-1.69.0/tests/devices/electron_analyser/base/test_base_controller.py +210 -0
  103. dls_dodal-1.69.0/tests/devices/electron_analyser/base/test_base_detector.py +212 -0
  104. dls_dodal-1.69.0/tests/devices/electron_analyser/base/test_base_driver_io.py +68 -0
  105. {dls_dodal-1.67.0/tests/devices/electron_analyser/abstract → dls_dodal-1.69.0/tests/devices/electron_analyser/base}/test_base_region.py +36 -11
  106. dls_dodal-1.67.0/tests/devices/electron_analyser/test_util.py → dls_dodal-1.69.0/tests/devices/electron_analyser/base/test_base_util.py +1 -1
  107. {dls_dodal-1.67.0/tests/devices/electron_analyser → dls_dodal-1.69.0/tests/devices/electron_analyser/base}/test_energy_sources.py +8 -7
  108. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/conftest.py +21 -12
  109. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/assert_func.py +1 -1
  110. dls_dodal-1.67.0/tests/devices/electron_analyser/specs/test_detector.py → dls_dodal-1.69.0/tests/devices/electron_analyser/specs/test_specs_detector.py +2 -2
  111. dls_dodal-1.67.0/tests/devices/electron_analyser/specs/test_driver_io.py → dls_dodal-1.69.0/tests/devices/electron_analyser/specs/test_specs_driver_io.py +15 -26
  112. dls_dodal-1.67.0/tests/devices/electron_analyser/specs/test_region.py → dls_dodal-1.69.0/tests/devices/electron_analyser/specs/test_specs_region.py +2 -1
  113. dls_dodal-1.67.0/tests/devices/electron_analyser/vgscienta/test_detector.py → dls_dodal-1.69.0/tests/devices/electron_analyser/vgscienta/test_vgscienta_detector.py +2 -2
  114. dls_dodal-1.67.0/tests/devices/electron_analyser/vgscienta/test_driver_io.py → dls_dodal-1.69.0/tests/devices/electron_analyser/vgscienta/test_vgscienta_driver_io.py +16 -27
  115. dls_dodal-1.67.0/tests/devices/electron_analyser/vgscienta/test_region.py → dls_dodal-1.69.0/tests/devices/electron_analyser/vgscienta/test_vgsicenta_region.py +2 -1
  116. dls_dodal-1.69.0/tests/devices/i04/test_beam_centre.py +125 -0
  117. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i04/test_max_pixel.py +6 -21
  118. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i04/test_murko_results.py +39 -0
  119. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_i09_apple2.py +113 -27
  120. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.json +33 -33
  121. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_i10_apple2.py +16 -14
  122. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i17/test_i17_apple2.py +6 -6
  123. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i24/test_commissioning_jungfrau.py +2 -2
  124. dls_dodal-1.69.0/tests/devices/insertion_device/conftest.py +144 -0
  125. dls_dodal-1.69.0/tests/devices/insertion_device/test_apple2_controller.py +147 -0
  126. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_apple2_undulator.py +73 -29
  127. dls_dodal-1.69.0/tests/devices/insertion_device/test_energy.py +51 -0
  128. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_energy_motor_lookup.py +1 -1
  129. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_lookup_tables_models.py +32 -1
  130. dls_dodal-1.69.0/tests/devices/insertion_device/test_polarisation.py +48 -0
  131. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/util.py +3 -5
  132. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_snapshots.py +3 -1
  133. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_bart_robot.py +29 -21
  134. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_eiger.py +46 -2
  135. dls_dodal-1.69.0/tests/devices/test_fast_shutters.py +181 -0
  136. dls_dodal-1.69.0/tests/devices/test_selectable_source.py +44 -0
  137. dls_dodal-1.69.0/tests/test_data/scintillator_with_beam.jpg +0 -0
  138. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_utils.py +0 -24
  139. dls_dodal-1.69.0/tests/testing/fixtures/__init__.py +0 -0
  140. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/testing/fixtures/test_run_engine.py +11 -0
  141. dls_dodal-1.69.0/uv.lock +3968 -0
  142. dls_dodal-1.67.0/.devcontainer/devcontainer.json +0 -46
  143. dls_dodal-1.67.0/.github/actions/install_requirements/action.yml +0 -35
  144. dls_dodal-1.67.0/.github/dependabot.yml +0 -28
  145. dls_dodal-1.67.0/.github/scripts/check_test_durations.py +0 -30
  146. dls_dodal-1.67.0/.github/workflows/_test.yml +0 -88
  147. dls_dodal-1.67.0/Dockerfile +0 -13
  148. dls_dodal-1.67.0/conftest.py +0 -111
  149. dls_dodal-1.67.0/docs/how-to/lock-requirements.md +0 -39
  150. dls_dodal-1.67.0/src/dls_dodal.egg-info/requires.txt +0 -50
  151. dls_dodal-1.67.0/src/dodal/beamlines/i04.py +0 -412
  152. dls_dodal-1.67.0/src/dodal/beamlines/i09.py +0 -59
  153. dls_dodal-1.67.0/src/dodal/beamlines/i21.py +0 -57
  154. dls_dodal-1.67.0/src/dodal/beamlines/i24.py +0 -218
  155. dls_dodal-1.67.0/src/dodal/common/maths.py +0 -50
  156. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/__init__.py +0 -33
  157. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -25
  158. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -63
  159. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/abstract/types.py +0 -12
  160. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/detector.py +0 -143
  161. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/specs/__init__.py +0 -12
  162. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/specs/detector.py +0 -34
  163. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/types.py +0 -57
  164. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -13
  165. dls_dodal-1.67.0/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -48
  166. dls_dodal-1.67.0/src/dodal/devices/fast_shutter.py +0 -69
  167. dls_dodal-1.67.0/src/dodal/devices/i04/max_pixel.py +0 -38
  168. dls_dodal-1.67.0/src/dodal/devices/i09_2_shared/i09_apple2.py +0 -86
  169. dls_dodal-1.67.0/src/dodal/devices/insertion_device/apple2_undulator.py +0 -759
  170. dls_dodal-1.67.0/tests/conftest.py +0 -90
  171. dls_dodal-1.67.0/tests/devices/electron_analyser/abstract/test_base_detector.py +0 -91
  172. dls_dodal-1.67.0/tests/devices/electron_analyser/abstract/test_base_driver_io.py +0 -140
  173. dls_dodal-1.67.0/tests/devices/electron_analyser/test_detector.py +0 -128
  174. dls_dodal-1.67.0/tests/devices/insertion_device/conftest.py +0 -48
  175. dls_dodal-1.67.0/tests/devices/test_fast_shutters.py +0 -47
  176. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/CODEOWNERS +0 -0
  177. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  178. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/pages/index.html +0 -0
  179. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/pages/make_switcher.py +0 -0
  180. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/_pypi.yml +0 -0
  181. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.github/workflows/_release.yml +0 -0
  182. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.gitignore +0 -0
  183. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.vscode/extensions.json +0 -0
  184. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.vscode/launch.json +0 -0
  185. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.vscode/settings.json +0 -0
  186. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/.vscode/tasks.json +0 -0
  187. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/LICENSE +0 -0
  188. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/README.md +0 -0
  189. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/catalog-info.yaml +0 -0
  190. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/_templates/autosummary/class.rst +0 -0
  191. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/_templates/autosummary/module.rst +0 -0
  192. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/_templates/custom-module-template.rst +0 -0
  193. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
  194. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/assets/zocalo.png +0 -0
  195. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/conf.py +0 -0
  196. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  197. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  198. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
  199. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
  200. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
  201. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
  202. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions/COPYME +0 -0
  203. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/decisions.md +0 -0
  204. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/reviews.md +0 -0
  205. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/umls/apple2_design.png +0 -0
  206. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations/umls/i10_id_design.png +0 -0
  207. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/explanations.md +0 -0
  208. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/genindex.md +0 -0
  209. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/build-docs.md +0 -0
  210. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/contribute.md +0 -0
  211. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/create-beamline.md +0 -0
  212. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/create-device.md +0 -0
  213. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/excalidraw.md +0 -0
  214. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/external-io-devices.md +0 -0
  215. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/make-release.md +0 -0
  216. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/move-code.md +0 -0
  217. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/pypi.md +0 -0
  218. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/tidy-docs.md +0 -0
  219. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/update-template.md +0 -0
  220. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/write-tests.md +0 -0
  221. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to/zocalo.md +0 -0
  222. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/how-to.md +0 -0
  223. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/images/dls-logo.svg +0 -0
  224. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/images/excalidraw-example.svg +0 -0
  225. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/index.md +0 -0
  226. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/reference/api.md +0 -0
  227. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/reference/device-standards.md +0 -0
  228. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/reference/standards.md +0 -0
  229. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/reference.md +0 -0
  230. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/tutorials/get_started.md +0 -0
  231. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/tutorials/installation.md +0 -0
  232. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/docs/tutorials.md +0 -0
  233. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/pull_request_template.md +0 -0
  234. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/setup.cfg +0 -0
  235. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/__init__.py +0 -0
  236. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  237. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  238. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  239. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/__init__.py +0 -0
  240. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/__main__.py +0 -0
  241. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  242. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamline_specific_utils/i05_shared.py +0 -0
  243. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/README.md +0 -0
  244. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/__init__.py +0 -0
  245. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/aithre.py +0 -0
  246. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b01_1.py +0 -0
  247. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b16.py +0 -0
  248. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b18.py +0 -0
  249. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b21.py +0 -0
  250. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i05_1.py +0 -0
  251. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i07.py +0 -0
  252. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10.py +0 -0
  253. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10_1.py +0 -0
  254. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i11.py +0 -0
  255. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i13_1.py +0 -0
  256. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i15.py +0 -0
  257. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i15_1.py +0 -0
  258. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i18.py +0 -0
  259. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_1.py +0 -0
  260. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_2.py +0 -0
  261. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_optics.py +0 -0
  262. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i22.py +0 -0
  263. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/k07.py +0 -0
  264. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/k11.py +0 -0
  265. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p38.py +0 -0
  266. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p45.py +0 -0
  267. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p99.py +0 -0
  268. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/beamlines/training_rig.py +0 -0
  269. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/cli.py +0 -0
  270. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/__init__.py +0 -0
  271. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  272. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
  273. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
  274. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  275. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/coordination.py +0 -0
  276. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/crystal_metadata.py +0 -0
  277. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/data_util.py +0 -0
  278. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/device_utils.py +0 -0
  279. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/enums.py +0 -0
  280. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/types.py +0 -0
  281. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/udc_directory_provider.py +0 -0
  282. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/visit.py +0 -0
  283. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/common/watcher_utils.py +0 -0
  284. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/device_manager.py +0 -0
  285. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/__init__.py +0 -0
  286. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
  287. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
  288. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
  289. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/aperture.py +0 -0
  290. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/aperturescatterguard.py +0 -0
  291. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/__init__.py +0 -0
  292. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
  293. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/cam.py +0 -0
  294. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
  295. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/__init__.py +0 -0
  296. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
  297. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/filter.py +0 -0
  298. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
  299. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b07/__init__.py +0 -0
  300. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b07/enums.py +0 -0
  301. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/__init__.py +0 -0
  302. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/ccmc.py +0 -0
  303. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/enums.py +0 -0
  304. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b16/__init__.py +0 -0
  305. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/b16/detector.py +0 -0
  306. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/backlight.py +0 -0
  307. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/baton.py +0 -0
  308. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/beamsize/__init__.py +0 -0
  309. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/beamsize/beamsize.py +0 -0
  310. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/bimorph_mirror.py +0 -0
  311. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/collimation_table.py +0 -0
  312. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/common_dcm.py +0 -0
  313. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/controllers.py +0 -0
  314. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/cryostream.py +0 -0
  315. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
  316. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
  317. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
  318. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
  319. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
  320. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
  321. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/__init__.py +0 -0
  322. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  323. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  324. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  325. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/detector.py +0 -0
  326. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/detector_motion.py +0 -0
  327. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/diamond_filter.py +0 -0
  328. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/eiger_odin.py +0 -0
  329. {dls_dodal-1.67.0/src/dodal/devices/i02_1 → dls_dodal-1.69.0/src/dodal/devices/electron_analyser}/__init__.py +0 -0
  330. /dls_dodal-1.67.0/src/dodal/devices/electron_analyser/specs/enums.py → /dls_dodal-1.69.0/src/dodal/devices/electron_analyser/specs/specs_enums.py +0 -0
  331. /dls_dodal-1.67.0/src/dodal/devices/electron_analyser/vgscienta/enums.py → /dls_dodal-1.69.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_enums.py +0 -0
  332. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/eurotherm.py +0 -0
  333. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/fast_grid_scan.py +0 -0
  334. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
  335. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/flux.py +0 -0
  336. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/focusing_mirror.py +0 -0
  337. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/hutch_shutter.py +0 -0
  338. {dls_dodal-1.67.0/src/dodal/devices/i02_2 → dls_dodal-1.69.0/src/dodal/devices/i02_1}/__init__.py +0 -0
  339. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
  340. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
  341. {dls_dodal-1.67.0/src/dodal/devices/i07 → dls_dodal-1.69.0/src/dodal/devices/i02_2}/__init__.py +0 -0
  342. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/__init__.py +0 -0
  343. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/beamsize.py +0 -0
  344. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/constants.py +0 -0
  345. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/dcm.py +0 -0
  346. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
  347. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/__init__.py +0 -0
  348. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/beamsize.py +0 -0
  349. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/constants.py +0 -0
  350. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/transfocator.py +0 -0
  351. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i05/__init__.py +0 -0
  352. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i05/enums.py +0 -0
  353. {dls_dodal-1.67.0/src/dodal/devices/i09_2_shared → dls_dodal-1.69.0/src/dodal/devices/i07}/__init__.py +0 -0
  354. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i07/dcm.py +0 -0
  355. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i07/id.py +0 -0
  356. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09/__init__.py +0 -0
  357. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09/enums.py +0 -0
  358. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1/__init__.py +0 -0
  359. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1/enums.py +0 -0
  360. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/__init__.py +0 -0
  361. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/hard_energy.py +0 -0
  362. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +0 -0
  363. {dls_dodal-1.67.0/src/dodal/devices/i10/rasor → dls_dodal-1.69.0/src/dodal/devices/i09_2_shared}/__init__.py +0 -0
  364. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/__init__.py +0 -0
  365. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/diagnostics.py +0 -0
  366. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
  367. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/mirrors.py +0 -0
  368. {dls_dodal-1.67.0/src/dodal/devices/i11 → dls_dodal-1.69.0/src/dodal/devices/i10/rasor}/__init__.py +0 -0
  369. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
  370. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
  371. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
  372. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/slits.py +0 -0
  373. {dls_dodal-1.67.0/src/dodal/devices/i13_1 → dls_dodal-1.69.0/src/dodal/devices/i11}/__init__.py +0 -0
  374. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
  375. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/diff_stages.py +0 -0
  376. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/mythen.py +0 -0
  377. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/nx100robot.py +0 -0
  378. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/spinner.py +0 -0
  379. {dls_dodal-1.67.0/src/dodal/devices/i15 → dls_dodal-1.69.0/src/dodal/devices/i13_1}/__init__.py +0 -0
  380. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i13_1/merlin.py +0 -0
  381. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
  382. {dls_dodal-1.67.0/src/dodal/devices/i17 → dls_dodal-1.69.0/src/dodal/devices/i15}/__init__.py +0 -0
  383. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/dcm.py +0 -0
  384. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
  385. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/jack.py +0 -0
  386. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/laue.py +0 -0
  387. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/motors.py +0 -0
  388. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
  389. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/rail.py +0 -0
  390. {dls_dodal-1.67.0/src/dodal/devices/i18 → dls_dodal-1.69.0/src/dodal/devices/i17}/__init__.py +0 -0
  391. {dls_dodal-1.67.0/src/dodal/devices/i19 → dls_dodal-1.69.0/src/dodal/devices/i18}/__init__.py +0 -0
  392. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i18/diode.py +0 -0
  393. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i18/kb_mirror.py +0 -0
  394. {dls_dodal-1.67.0/src/dodal/devices/i19/access_controlled → dls_dodal-1.69.0/src/dodal/devices/i19}/__init__.py +0 -0
  395. {dls_dodal-1.67.0/src/dodal/devices/i20_1 → dls_dodal-1.69.0/src/dodal/devices/i19/access_controlled}/__init__.py +0 -0
  396. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/attenuator_motor_squad.py +0 -0
  397. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/blueapi_device.py +0 -0
  398. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/hutch_access.py +0 -0
  399. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/shutter.py +0 -0
  400. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/backlight.py +0 -0
  401. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/beamstop.py +0 -0
  402. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/diffractometer.py +0 -0
  403. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
  404. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
  405. {dls_dodal-1.67.0/src/dodal/devices/i22 → dls_dodal-1.69.0/src/dodal/devices/i20_1}/__init__.py +0 -0
  406. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i21/enums.py +0 -0
  407. {dls_dodal-1.67.0/src/dodal/devices/i24 → dls_dodal-1.69.0/src/dodal/devices/i22}/__init__.py +0 -0
  408. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/dcm.py +0 -0
  409. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/fswitch.py +0 -0
  410. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/nxsas.py +0 -0
  411. {dls_dodal-1.67.0/src/dodal/devices/insertion_device → dls_dodal-1.69.0/src/dodal/devices/i24}/__init__.py +0 -0
  412. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/aperture.py +0 -0
  413. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/beam_center.py +0 -0
  414. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/beamstop.py +0 -0
  415. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/dcm.py +0 -0
  416. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
  417. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
  418. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/pmac.py +0 -0
  419. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/vgonio.py +0 -0
  420. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/ipin.py +0 -0
  421. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/linkam3.py +0 -0
  422. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/motors.py +0 -0
  423. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/mx_phase1/__init__.py +0 -0
  424. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
  425. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/__init__.py +0 -0
  426. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
  427. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
  428. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
  429. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
  430. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  431. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  432. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/__init__.py +0 -0
  433. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
  434. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
  435. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
  436. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
  437. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p45.py +0 -0
  438. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/__init__.py +0 -0
  439. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/enums.py +0 -0
  440. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
  441. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/__init__.py +0 -0
  442. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/andor2_point.py +0 -0
  443. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/sample_stage.py +0 -0
  444. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/pgm.py +0 -0
  445. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/positioner.py +0 -0
  446. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
  447. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/qbpm.py +0 -0
  448. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  449. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/scintillator.py +0 -0
  450. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/slits.py +0 -0
  451. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/smargon.py +0 -0
  452. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/status.py +0 -0
  453. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/synchrotron.py +0 -0
  454. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
  455. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/__init__.py +0 -0
  456. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
  457. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
  458. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/tetramm.py +0 -0
  459. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/thawer.py +0 -0
  460. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/turbo_slit.py +0 -0
  461. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/undulator.py +0 -0
  462. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/util/__init__.py +0 -0
  463. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
  464. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/util/epics_util.py +0 -0
  465. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/util/lookup_tables.py +0 -0
  466. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/v2f.py +0 -0
  467. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
  468. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/webcam.py +0 -0
  469. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/xbpm_feedback.py +0 -0
  470. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/__init__.py +0 -0
  471. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
  472. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
  473. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/__init__.py +0 -0
  474. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
  475. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/__init__.py +0 -0
  476. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
  477. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
  478. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
  479. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/log.py +0 -0
  480. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/parameters/__init__.py +0 -0
  481. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  482. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/__init__.py +0 -0
  483. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/check_topup.py +0 -0
  484. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/data_session.py +0 -0
  485. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
  486. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/wrapped.py +0 -0
  487. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/__init__.py +0 -0
  488. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/bimorph.py +0 -0
  489. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/load_panda_yaml.py +0 -0
  490. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/preprocessors/__init__.py +0 -0
  491. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
  492. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/save_panda.py +0 -0
  493. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/spec_path.py +0 -0
  494. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
  495. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/plans/wrapped.py +0 -0
  496. {dls_dodal-1.67.0/src/dodal/testing/fixtures → dls_dodal-1.69.0/src/dodal/testing}/__init__.py +0 -0
  497. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
  498. {dls_dodal-1.67.0/src/dodal/testing/fixtures/devices → dls_dodal-1.69.0/src/dodal/testing/fixtures}/__init__.py +0 -0
  499. {dls_dodal-1.67.0/system_tests → dls_dodal-1.69.0/src/dodal/testing/fixtures/devices}/__init__.py +0 -0
  500. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/utils.py +0 -0
  501. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/src/dodal/utils.py +0 -0
  502. {dls_dodal-1.67.0/tests → dls_dodal-1.69.0/system_tests}/__init__.py +0 -0
  503. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/system_tests/test_oav_system.py +0 -0
  504. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/system_tests/test_oav_to_redis_system.py +0 -0
  505. {dls_dodal-1.67.0/tests/beamlines → dls_dodal-1.69.0/tests}/__init__.py +0 -0
  506. {dls_dodal-1.67.0/tests/common → dls_dodal-1.69.0/tests/beamlines}/__init__.py +0 -0
  507. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/beamlines/test_b16.py +0 -0
  508. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/beamlines/test_i03.py +0 -0
  509. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/beamlines/test_i24.py +0 -0
  510. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/beamlines/test_mapping.py +0 -0
  511. {dls_dodal-1.67.0/tests/common/beamlines → dls_dodal-1.69.0/tests/common}/__init__.py +0 -0
  512. {dls_dodal-1.67.0/tests/devices → dls_dodal-1.69.0/tests/common/beamlines}/__init__.py +0 -0
  513. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  514. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
  515. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_coordination.py +0 -0
  516. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_crystal_metadata.py +0 -0
  517. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_udc_directory_provider.py +0 -0
  518. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_visit.py +0 -0
  519. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/common/test_watcher_utils.py +0 -0
  520. {dls_dodal-1.67.0/tests/devices/aithre_lasershaping → dls_dodal-1.69.0/tests/devices}/__init__.py +0 -0
  521. {dls_dodal-1.67.0/tests/devices/b07_1 → dls_dodal-1.69.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
  522. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
  523. {dls_dodal-1.67.0/tests/devices/current_amplifier → dls_dodal-1.69.0/tests/devices/b07_1}/__init__.py +0 -0
  524. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/b07_1/test_ccmc.py +0 -0
  525. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/conftest.py +0 -0
  526. {dls_dodal-1.67.0/tests/devices/detector → dls_dodal-1.69.0/tests/devices/current_amplifier}/__init__.py +0 -0
  527. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/current_amplifier/test_femto.py +0 -0
  528. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/current_amplifier/test_sr570.py +0 -0
  529. {dls_dodal-1.67.0/tests/devices/electron_analyser → dls_dodal-1.69.0/tests/devices/detector}/__init__.py +0 -0
  530. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/detector/test_data/__init__.py +0 -0
  531. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
  532. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
  533. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/detector/test_det_resolution.py +0 -0
  534. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/detector/test_detector.py +0 -0
  535. {dls_dodal-1.67.0/tests/devices/electron_analyser/abstract → dls_dodal-1.69.0/tests/devices/electron_analyser}/__init__.py +0 -0
  536. {dls_dodal-1.67.0/tests/devices/electron_analyser/specs → dls_dodal-1.69.0/tests/devices/electron_analyser/base}/__init__.py +0 -0
  537. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
  538. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
  539. {dls_dodal-1.67.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.69.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
  540. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
  541. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
  542. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
  543. {dls_dodal-1.67.0/tests/devices/i02_1 → dls_dodal-1.69.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
  544. {dls_dodal-1.67.0/tests/devices/i03 → dls_dodal-1.69.0/tests/devices/i02_1}/__init__.py +0 -0
  545. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
  546. {dls_dodal-1.67.0/tests/devices/i04 → dls_dodal-1.69.0/tests/devices/i03}/__init__.py +0 -0
  547. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i03/test_beamsize.py +0 -0
  548. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i03/test_dcm.py +0 -0
  549. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i03/test_undulator_dcm.py +0 -0
  550. {dls_dodal-1.67.0/tests/devices/i09 → dls_dodal-1.69.0/tests/devices/i04}/__init__.py +0 -0
  551. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i04/conftest.py +0 -0
  552. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i04/test_beamsize.py +0 -0
  553. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i04/test_transfocator.py +0 -0
  554. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i07/IIDCalibrationTable.txt +0 -0
  555. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i07/__init__.py +0 -0
  556. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i07/test_dcm.py +0 -0
  557. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i07/test_id.py +0 -0
  558. {dls_dodal-1.67.0/tests/devices/i09_1 → dls_dodal-1.69.0/tests/devices/i09}/__init__.py +0 -0
  559. {dls_dodal-1.67.0/tests/devices/i09_1_shared → dls_dodal-1.69.0/tests/devices/i09_1}/__init__.py +0 -0
  560. {dls_dodal-1.67.0/tests/devices/i09_2_shared → dls_dodal-1.69.0/tests/devices/i09_1_shared}/__init__.py +0 -0
  561. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_data/__init__.py +0 -0
  562. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +0 -0
  563. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_hard_energy.py +0 -0
  564. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_undulator_functions.py +0 -0
  565. {dls_dodal-1.67.0/tests/devices/i10 → dls_dodal-1.69.0/tests/devices/i09_2_shared}/__init__.py +0 -0
  566. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/ExpectedJIDEnergy2GapCalibrations.json +0 -0
  567. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/ExpectedJIDEnergy2PhaseCalibrations.json +0 -0
  568. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/JIDEnergy2GapCalibrations.csv +0 -0
  569. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/JIDEnergy2PhaseCalibrations.csv +0 -0
  570. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/__init__.py +0 -0
  571. {dls_dodal-1.67.0/tests/devices/i11 → dls_dodal-1.69.0/tests/devices/i10}/__init__.py +0 -0
  572. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
  573. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
  574. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/__init__.py +0 -0
  575. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.json +0 -0
  576. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.json +0 -0
  577. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.json +0 -0
  578. {dls_dodal-1.67.0/tests/devices/i13_1 → dls_dodal-1.69.0/tests/devices/i11}/__init__.py +0 -0
  579. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i11/test_i11devices.py +0 -0
  580. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i11/test_mythen.py +0 -0
  581. {dls_dodal-1.67.0/tests/devices/i15 → dls_dodal-1.69.0/tests/devices/i13_1}/__init__.py +0 -0
  582. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i13_1/test_merlin.py +0 -0
  583. {dls_dodal-1.67.0/tests/devices/i17 → dls_dodal-1.69.0/tests/devices/i15}/__init__.py +0 -0
  584. {dls_dodal-1.67.0/tests/devices/i18 → dls_dodal-1.69.0/tests/devices/i17}/__init__.py +0 -0
  585. {dls_dodal-1.67.0/tests/devices/i19 → dls_dodal-1.69.0/tests/devices/i18}/__init__.py +0 -0
  586. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i18/test_kb_mirror.py +0 -0
  587. {dls_dodal-1.67.0/tests/devices/i19/access_controlled → dls_dodal-1.69.0/tests/devices/i19}/__init__.py +0 -0
  588. {dls_dodal-1.67.0/tests/devices/i22 → dls_dodal-1.69.0/tests/devices/i19/access_controlled}/__init__.py +0 -0
  589. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_attenuator_motor_squad.py +0 -0
  590. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_attenuator_position_demand.py +0 -0
  591. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_shutter.py +0 -0
  592. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/test_backlight.py +0 -0
  593. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/test_beamstop.py +0 -0
  594. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/test_diffractometer.py +0 -0
  595. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/test_mapt.py +0 -0
  596. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i19/test_pin_col.py +0 -0
  597. {dls_dodal-1.67.0/tests/devices/i24 → dls_dodal-1.69.0/tests/devices/i22}/__init__.py +0 -0
  598. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i22/test_dcm.py +0 -0
  599. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i22/test_fswitch.py +0 -0
  600. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i22/test_metadataholder.py +0 -0
  601. {dls_dodal-1.67.0/tests/devices/insertion_device → dls_dodal-1.69.0/tests/devices/i24}/__init__.py +0 -0
  602. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i24/test_dual_backlight.py +0 -0
  603. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i24/test_focus_mirrors.py +0 -0
  604. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i24/test_pmac.py +0 -0
  605. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/i24/test_vgonio.py +0 -0
  606. {dls_dodal-1.67.0/tests/devices/mx_phase1 → dls_dodal-1.69.0/tests/devices/insertion_device}/__init__.py +0 -0
  607. {dls_dodal-1.67.0/tests/devices/oav → dls_dodal-1.69.0/tests/devices/mx_phase1}/__init__.py +0 -0
  608. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
  609. {dls_dodal-1.67.0/tests/devices/oav/image_recognition → dls_dodal-1.69.0/tests/devices/oav}/__init__.py +0 -0
  610. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/conftest.py +0 -0
  611. {dls_dodal-1.67.0/tests/devices/p60 → dls_dodal-1.69.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
  612. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -0
  613. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  614. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/__init__.py +0 -0
  615. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
  616. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
  617. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
  618. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_grid_overlay.py +0 -0
  619. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav.py +0 -0
  620. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_parameters.py +0 -0
  621. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
  622. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_utils.py +0 -0
  623. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
  624. {dls_dodal-1.67.0/tests/devices/p99 → dls_dodal-1.69.0/tests/devices/p60}/__init__.py +0 -0
  625. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/p60/test_lab_xray_source.py +0 -0
  626. {dls_dodal-1.67.0/tests/devices/temperature_controller → dls_dodal-1.69.0/tests/devices/p99}/__init__.py +0 -0
  627. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/p99/test_p99_stage.py +0 -0
  628. {dls_dodal-1.67.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.69.0/tests/devices/temperature_controller}/__init__.py +0 -0
  629. {dls_dodal-1.67.0/tests/devices/util → dls_dodal-1.69.0/tests/devices/temperature_controller/lakeshore}/__init__.py +0 -0
  630. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +0 -0
  631. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +0 -0
  632. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_aperture.py +0 -0
  633. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_aperture_scatterguard.py +0 -0
  634. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_attenuator.py +0 -0
  635. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_backlight.py +0 -0
  636. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_baton.py +0 -0
  637. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_beam_converter.py +0 -0
  638. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_bimorph_mirror.py +0 -0
  639. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_common_dcm.py +0 -0
  640. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_controllers.py +0 -0
  641. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
  642. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
  643. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
  644. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  645. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  646. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
  647. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_data/__init__.py +0 -0
  648. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  649. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
  650. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_diamond_filter.py +0 -0
  651. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_focusing_mirror.py +0 -0
  652. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_gridscan.py +0 -0
  653. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_hutch_shutter.py +0 -0
  654. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_motors.py +0 -0
  655. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_odin.py +0 -0
  656. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_positioner.py +0 -0
  657. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_pressure_jump_cell.py +0 -0
  658. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_qbpm.py +0 -0
  659. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_scintillator.py +0 -0
  660. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_slits.py +0 -0
  661. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_smargon.py +0 -0
  662. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_synchrotron.py +0 -0
  663. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_tetramm.py +0 -0
  664. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_thawer.py +0 -0
  665. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_turbo_slit.py +0 -0
  666. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_undulator.py +0 -0
  667. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_utils.py +0 -0
  668. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
  669. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_webcam.py +0 -0
  670. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_xbpm_feedback.py +0 -0
  671. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_xspress3.py +0 -0
  672. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_zebra.py +0 -0
  673. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_zebra_constants_mapping.py +0 -0
  674. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_zebra_shutter.py +0 -0
  675. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_zocalo_interaction.py +0 -0
  676. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/test_zocalo_results.py +0 -0
  677. {dls_dodal-1.67.0/tests/fake_zocalo → dls_dodal-1.69.0/tests/devices/util}/__init__.py +0 -0
  678. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_adjuster_plans.py +0 -0
  679. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/__init__.py +0 -0
  680. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  681. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  682. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  683. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/devices/util/test_lookup_tables.py +0 -0
  684. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline.py +0 -0
  685. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  686. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_broken_dependency.py +0 -0
  687. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_dependencies.py +0 -0
  688. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  689. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  690. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_beamline_some_devices_working.py +0 -0
  691. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_device_factory_beamline.py +0 -0
  692. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_zocalo/README.rst +0 -0
  693. {dls_dodal-1.67.0/tests/plan_stubs → dls_dodal-1.69.0/tests/fake_zocalo}/__init__.py +0 -0
  694. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_zocalo/__main__.py +0 -0
  695. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
  696. {dls_dodal-1.67.0/tests/plans → dls_dodal-1.69.0/tests/plan_stubs}/__init__.py +0 -0
  697. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/__init__.py +0 -0
  698. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
  699. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
  700. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data_session.py +0 -0
  701. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
  702. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_topup_plan.py +0 -0
  703. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
  704. {dls_dodal-1.67.0/tests/plans/test_preprocessors → dls_dodal-1.69.0/tests/plans}/__init__.py +0 -0
  705. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/conftest.py +0 -0
  706. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_bimorph.py +0 -0
  707. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_compliance.py +0 -0
  708. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
  709. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_load_panda_yaml.py +0 -0
  710. {dls_dodal-1.67.0/tests/preprocessors → dls_dodal-1.69.0/tests/plans/test_preprocessors}/__init__.py +0 -0
  711. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
  712. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_save_panda.py +0 -0
  713. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_scanspec.py +0 -0
  714. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
  715. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/plans/test_wrapped.py +0 -0
  716. {dls_dodal-1.67.0/tests/testing → dls_dodal-1.69.0/tests/preprocessors}/__init__.py +0 -0
  717. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
  718. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_cli.py +0 -0
  719. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/__init__.py +0 -0
  720. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/bad_beamlineParameters +0 -0
  721. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/i04_beamlineParameters +0 -0
  722. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  723. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/test_display.configuration +0 -0
  724. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
  725. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_device_manager.py +0 -0
  726. {dls_dodal-1.67.0 → dls_dodal-1.69.0}/tests/test_log.py +0 -0
  727. {dls_dodal-1.67.0/tests/testing/fixtures → dls_dodal-1.69.0/tests/testing}/__init__.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 4.0.1
2
+ _commit: 5.0.1
3
3
  _src_path: https://github.com/DiamondLightSource/python-copier-template
4
4
  author_email: dominic.oram@diamond.ac.uk
5
5
  author_name: Dominic Oram
@@ -7,7 +7,7 @@ component_lifecycle: production
7
7
  component_owner: group:data-acquisition
8
8
  component_type: library
9
9
  description: Ophyd devices and other utils that could be used across DLS beamlines
10
- distribution_name: dls-dodal
10
+ distribution_name: dls-dodal # Can change to dodal https://github.com/DiamondLightSource/dodal/issues/681
11
11
  docker: false
12
12
  docs_type: sphinx
13
13
  git_platform: github.com
@@ -15,5 +15,5 @@ github_org: DiamondLightSource
15
15
  package_name: dodal
16
16
  pypi: true
17
17
  repo_name: dodal
18
- strict_typing: false
18
+ strict_typing: false # Should move to strict typing in future
19
19
  type_checker: pyright
@@ -0,0 +1,72 @@
1
+ // For format details, see https://containers.dev/implementors/json_reference/
2
+ {
3
+ "name": "Python 3 Developer Container",
4
+ "build": {
5
+ "dockerfile": "../Dockerfile",
6
+ "target": "developer"
7
+ },
8
+ "remoteEnv": {
9
+ // Allow X11 apps to run inside the container
10
+ "DISPLAY": "${localEnv:DISPLAY}",
11
+ // Put things that allow it in the persistent cache
12
+ "PRE_COMMIT_HOME": "/cache/pre-commit",
13
+ "UV_CACHE_DIR": "/cache/uv",
14
+ "UV_PYTHON_CACHE_DIR": "/cache/uv-python",
15
+ // Make a venv that is specific for this workspace path as the cache is shared
16
+ "UV_PROJECT_ENVIRONMENT": "/cache/venv-for${localWorkspaceFolder}",
17
+ // Do the equivalent of "activate" the venv so we don't have to "uv run" everything
18
+ "VIRTUAL_ENV": "/cache/venv-for${localWorkspaceFolder}",
19
+ "PATH": "/cache/venv-for${localWorkspaceFolder}/bin:${containerEnv:PATH}"
20
+ },
21
+ "customizations": {
22
+ "vscode": {
23
+ // Set *default* container specific settings.json values on container create.
24
+ "settings": {
25
+ // Use the container's python by default
26
+ "python.defaultInterpreterPath": "/cache/venv-for${localWorkspaceFolder}/bin/python",
27
+ // Don't activate the venv as it is already in the PATH
28
+ "python.terminal.activateEnvInCurrentTerminal": false,
29
+ "python.terminal.activateEnvironment": false,
30
+ // Workaround to prevent garbled python REPL in the terminal
31
+ // https://github.com/microsoft/vscode-python/issues/25505
32
+ "python.terminal.shellIntegration.enabled": false
33
+ },
34
+ // Add the IDs of extensions you want installed when the container is created.
35
+ "extensions": [
36
+ "ms-python.python",
37
+ "github.vscode-github-actions",
38
+ "tamasfe.even-better-toml",
39
+ "redhat.vscode-yaml",
40
+ "ryanluker.vscode-coverage-gutters",
41
+ "charliermarsh.ruff",
42
+ "ms-azuretools.vscode-docker"
43
+ ]
44
+ }
45
+ },
46
+ // Create the config folder for the bash-config feature and uv cache
47
+ "initializeCommand": "mkdir -p ${localEnv:HOME}/.config/terminal-config",
48
+ "runArgs": [
49
+ // Allow the container to access the host X11 display and EPICS CA
50
+ "--net=host",
51
+ // Make sure SELinux does not disable with access to host filesystems like tmp
52
+ "--security-opt=label=disable"
53
+ ],
54
+ "mounts": [
55
+ // Mount in the user terminal config folder so it can be edited
56
+ {
57
+ "source": "${localEnv:HOME}/.config/terminal-config",
58
+ "target": "/user-terminal-config",
59
+ "type": "bind"
60
+ },
61
+ // Keep a persistent cross container cache for uv, pre-commit, and the venvs
62
+ {
63
+ "source": "devcontainer-shared-cache",
64
+ "target": "/cache",
65
+ "type": "volume"
66
+ }
67
+ ],
68
+ // Mount the parent as /workspaces so we can pip install peers as editable
69
+ "workspaceMount": "source=${localWorkspaceFolder}/..,target=/workspaces,type=bind",
70
+ // After the container is created, recreate the venv then make pre-commit first run faster
71
+ "postCreateCommand": "uv venv --clear && uv sync && pre-commit install --install-hooks"
72
+ }
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
24
24
 
25
25
  This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
26
26
 
27
- For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/4.0.1/how-to.html).
27
+ For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.0.1/how-to.html).
@@ -12,10 +12,13 @@ jobs:
12
12
  # Need this to get version number from last tag
13
13
  fetch-depth: 0
14
14
 
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v7
17
+
15
18
  - name: Build sdist and wheel
16
19
  run: >
17
20
  export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) &&
18
- pipx run build
21
+ uvx --from build pyproject-build
19
22
 
20
23
  - name: Upload sdist and wheel as artifacts
21
24
  uses: actions/upload-artifact@v5
@@ -24,12 +27,10 @@ jobs:
24
27
  path: dist
25
28
 
26
29
  - name: Check for packaging errors
27
- run: pipx run twine check --strict dist/*
30
+ run: uvx twine check --strict dist/*
28
31
 
29
32
  - name: Install produced wheel
30
- uses: ./.github/actions/install_requirements
31
- with:
32
- pip-install: dist/*.whl
33
+ run: python -m pip install dist/*.whl
33
34
 
34
35
  - name: Test module --version works using the installed wheel
35
36
  run: python -m dodal --version
@@ -20,11 +20,14 @@ jobs:
20
20
  - name: Install system packages
21
21
  run: sudo apt-get install graphviz
22
22
 
23
- - name: Install python packages
24
- uses: ./.github/actions/install_requirements
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v7
25
+
26
+ # - name: Install requirements
27
+ # run: uv sync --group dev
25
28
 
26
29
  - name: Build docs
27
- run: tox -e docs
30
+ run: uv run --locked tox -e docs
28
31
 
29
32
  - name: Remove environment.pickle
30
33
  run: rm build/html/.doctrees/environment.pickle
@@ -0,0 +1,62 @@
1
+ on:
2
+ workflow_call:
3
+ inputs:
4
+ python-version:
5
+ type: string
6
+ description: The version of python to install, default is from .python-version file
7
+ default: ""
8
+ runs-on:
9
+ type: string
10
+ description: The runner to run this job on
11
+ required: true
12
+
13
+ env:
14
+ # https://github.com/pytest-dev/pytest/issues/2042
15
+ PY_IGNORE_IMPORTMISMATCH: "1"
16
+ UV_PYTHON: ${{ inputs.python-version }}
17
+
18
+ jobs:
19
+ run:
20
+ runs-on: ${{ inputs.runs-on }}
21
+
22
+ steps:
23
+ - name: Checkout
24
+ uses: actions/checkout@v5
25
+ with:
26
+ # Need this to get version number from last tag
27
+ fetch-depth: 0
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@v7
31
+
32
+ - name: Install latest versions of python packages
33
+ run: uv sync --python ${{ inputs.python-version }} --group dev
34
+
35
+ - name: Run tests
36
+ run: uv run --locked tox -e tests
37
+
38
+ - name: Checkout simulated devices
39
+ uses: actions/checkout@v5
40
+ with:
41
+ repository: epics-containers/example-services
42
+ path: example-services
43
+
44
+ - name: Run docker compose
45
+ uses: hoverkraft-tech/compose-action@v2.4.1
46
+ with:
47
+ compose-file: "./example-services/compose.yaml"
48
+ services: |
49
+ bl01t-di-cam-01
50
+ bl01t-mo-sim-01
51
+ ca-gateway
52
+
53
+ - name: Run system tests
54
+ run: uv run --locked tox -e system-tests
55
+
56
+ - name: Upload coverage to Codecov
57
+ uses: codecov/codecov-action@v5
58
+ with:
59
+ name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
60
+ files: ./cov.xml
61
+ env:
62
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -14,14 +14,12 @@ jobs:
14
14
  steps:
15
15
  - name: Checkout
16
16
  uses: actions/checkout@v5
17
- with:
18
- fetch-depth: 0
19
17
 
20
- - name: Install python packages
21
- uses: ./.github/actions/install_requirements
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v7
22
20
 
23
21
  - name: Run import linter
24
- run: lint-imports
22
+ run: uv run --locked lint-imports
25
23
 
26
24
  - name: Run tox
27
- run: tox -e ${{ inputs.tox }}
25
+ run: uv run --locked tox -e ${{ inputs.tox }}
@@ -20,21 +20,16 @@ jobs:
20
20
  matrix:
21
21
  runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
22
22
  python-version: ["3.11", "3.12", "3.13"]
23
- include:
24
- # Include one that runs in the dev environment
25
- - runs-on: "ubuntu-latest"
26
- python-version: "dev"
27
23
  fail-fast: false
28
24
  uses: ./.github/workflows/_test.yml
29
25
  with:
30
26
  runs-on: ${{ matrix.runs-on }}
31
27
  python-version: ${{ matrix.python-version }}
32
- secrets:
33
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
34
28
 
35
29
  docs:
36
30
  uses: ./.github/workflows/_docs.yml
37
-
31
+ permissions:
32
+ contents: write
38
33
 
39
34
  dist:
40
35
  uses: ./.github/workflows/_dist.yml
@@ -10,4 +10,4 @@ jobs:
10
10
  linkcheck:
11
11
  uses: ./.github/workflows/_tox.yml
12
12
  with:
13
- tox: docs build -- -b linkcheck
13
+ tox: docs -- -b linkcheck
@@ -0,0 +1,19 @@
1
+ # This allow-list is limited to YAML/YML files to cut down SealedSecrets false positives.
2
+ # All gitleaks default rules still apply everywhere (useDefault = true).
3
+ # To broaden this allow-list to all files, comment out the 'paths' line below.
4
+
5
+ [extend]
6
+ useDefault = true
7
+
8
+ [[rules]]
9
+ id = "generic-api-key"
10
+
11
+ # Pattern-only allowlist for long Ag… tokens in YAML
12
+ [[rules.allowlists]]
13
+ condition = "AND"
14
+ regexes = [
15
+ # Boundary-safe Ag… token without lookarounds (RE2-safe)
16
+ '''(?:^|[^A-Za-z0-9+/=])(Ag[A-Za-z0-9+/]{500,}={0,2})(?:[^A-Za-z0-9+/=]|$)'''
17
+ ]
18
+ # Limit to YAML only for now. Comment this out if you want it to apply everywhere.
19
+ paths = ['''(?i).*\.ya?ml$''']
@@ -3,6 +3,7 @@ repos:
3
3
  rev: v5.0.0
4
4
  hooks:
5
5
  - id: check-added-large-files
6
+ exclude: ^uv.lock
6
7
  - id: check-yaml
7
8
  - id: check-merge-conflict
8
9
  - id: end-of-file-fixer
@@ -31,6 +32,13 @@ repos:
31
32
  types: [python]
32
33
  require_serial: false
33
34
 
35
+ - id: uv-sync
36
+ name: update uv.lock and venv
37
+ pass_filenames: false
38
+ language: system
39
+ entry: uv sync
40
+ files: ^(uv\.lock|pyproject\.toml)$
41
+
34
42
  - repo: https://github.com/gitleaks/gitleaks
35
43
  rev: v8.28.0
36
44
  hooks:
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,8 @@
1
+ # The devcontainer should use the developer target and run as root with podman
2
+ # or docker with user namespaces.
3
+ FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:noble AS developer
4
+
5
+ # Add any system dependencies for the developer/build environment here
6
+ RUN apt-get update -y && apt-get install -y --no-install-recommends \
7
+ graphviz \
8
+ && apt-get dist-clean
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dls-dodal
3
- Version: 1.67.0
3
+ Version: 1.69.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
@@ -231,37 +231,7 @@ Requires-Dist: redis
231
231
  Requires-Dist: scanspec>=0.7.3
232
232
  Requires-Dist: pyzmq==26.3.0
233
233
  Requires-Dist: deepdiff
234
- Requires-Dist: daq-config-server>=v1.0.0-rc.2
235
- Provides-Extra: dev
236
- Requires-Dist: black; extra == "dev"
237
- Requires-Dist: diff-cover; extra == "dev"
238
- Requires-Dist: import-linter; extra == "dev"
239
- Requires-Dist: ispyb; extra == "dev"
240
- Requires-Dist: mypy; extra == "dev"
241
- Requires-Dist: myst-parser; extra == "dev"
242
- Requires-Dist: ophyd_async[sim]>=v0.14.0; extra == "dev"
243
- Requires-Dist: pipdeptree; extra == "dev"
244
- Requires-Dist: pre-commit; extra == "dev"
245
- Requires-Dist: psutil; extra == "dev"
246
- Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
247
- Requires-Dist: pyright==1.1.406; extra == "dev"
248
- Requires-Dist: pytest; extra == "dev"
249
- Requires-Dist: pytest-asyncio; extra == "dev"
250
- Requires-Dist: pytest-cov; extra == "dev"
251
- Requires-Dist: pytest-json-report; extra == "dev"
252
- Requires-Dist: pytest-random-order; extra == "dev"
253
- Requires-Dist: ruff; extra == "dev"
254
- Requires-Dist: sphinx<7.4.6; extra == "dev"
255
- Requires-Dist: sphinx-autobuild; extra == "dev"
256
- Requires-Dist: sphinx-copybutton; extra == "dev"
257
- Requires-Dist: sphinxcontrib-mermaid; extra == "dev"
258
- Requires-Dist: sphinx-design; extra == "dev"
259
- Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
260
- Requires-Dist: tox-direct; extra == "dev"
261
- Requires-Dist: types-requests; extra == "dev"
262
- Requires-Dist: types-mock; extra == "dev"
263
- Requires-Dist: types-PyYAML; extra == "dev"
264
- Requires-Dist: types-aiofiles; extra == "dev"
234
+ Requires-Dist: daq-config-server>=v1.0.0
265
235
  Dynamic: license-file
266
236
 
267
237
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
@@ -1,7 +1,7 @@
1
1
 
2
2
  # How to check code coverage
3
3
 
4
- Code coverage is reported to the command line and to a `cov.xml` file by the command `tox -e tests`. The file is uploaded to the Codecov service in CI.
4
+ Code coverage is reported to the command line and to a `cov.xml` file by the command `uv run tox -e tests`. The file is uploaded to the Codecov service in CI.
5
5
 
6
6
  If you are using VSCode IDE, you can also check code coverage by right-clicking on the test icon and selecting `Run with coverage`. This will re-run the test and highlight line numbers in your file:
7
7
  - Green = covered by tests
@@ -19,17 +19,16 @@ in a container under [VSCode](https://code.visualstudio.com/)
19
19
  If on a DLS machine make sure you have python >3.11 running by doing `module load python/3.11`
20
20
 
21
21
  ```
22
- python3 -m venv venv
23
- source venv/bin/activate
24
- pip install --upgrade pip
25
- pip install -e '.[dev]'
22
+ module load uv
23
+ uv sync --group dev
24
+ source .venv/bin/activate
26
25
  ```
27
26
 
28
27
  ## See what was installed
29
28
 
30
29
  To see a graph of the python package dependency tree type:
31
30
 
32
- $ pipdeptree
31
+ $ uv tree
33
32
 
34
33
  :::
35
34
 
@@ -49,7 +48,7 @@ code .
49
48
  Now you have a development environment you can run the tests in a terminal:
50
49
 
51
50
  ```
52
- tox -p
51
+ uv run tox -p
53
52
  ```
54
53
 
55
54
  This will run in parallel the following checks:
@@ -7,7 +7,7 @@ Code linting is handled by [ruff](https://docs.astral.sh/ruff) run under [pre-co
7
7
  You can run the above checks on all files with this command:
8
8
 
9
9
  ```
10
- $ tox -e pre-commit
10
+ $ uv run tox -e pre-commit
11
11
  ```
12
12
 
13
13
  Or you can install a pre-commit hook that will run each time you do a `git commit` on just the files that have changed:
@@ -0,0 +1,43 @@
1
+ # Lock requirements
2
+
3
+ ## Introduction
4
+
5
+ Since the move to `uv`, this project natively supports a lockfile. This is a set of "known good" dependencies that the tests are run against, and will be used to create a container if one is built.
6
+
7
+ ## Specifying dependencies
8
+
9
+ The source of dependencies is the project's `pyproject.toml`. They can come from:
10
+ - Project dependencies (from `[project]` `dependencies =`)
11
+ - Dev dependencies (from `[dependency-groups]` `dev =`)
12
+ - Transitive dependencies (child dependencies of the above)
13
+
14
+ Dependencies are loosely specified in `pyproject.toml`, like `sphinx-autobuild` or `pydata-sphinx-theme>=0.12`. They should state a minimum version if you are using features that are added in a specific version. There should be no upper bound by default, only insert one if an upstream release of a dependency breaks your code, and you don't have time to fix it immediately.
15
+
16
+ ## Updating the lockfile
17
+
18
+ When you have updated `pyproject.toml` then run:
19
+ ```
20
+ $ uv sync
21
+ ```
22
+
23
+ This will ensure that any new dependencies you add will be placed in the lockfile, and your venv updated to match. It will *not* update any existing dependencies, unless `pyproject.toml` requires a later version.
24
+
25
+ This command will be run by [pre-commit](./lint) during a `git commit` and by CI.
26
+
27
+ To update all dependencies to their latest versions run:
28
+ ```
29
+ uv sync --upgrade
30
+ ```
31
+ This command will be run by [renovate](./renovate) once a week in CI.
32
+
33
+ ```{seealso}
34
+ [The uv docs on locking and syncing](https://docs.astral.sh/uv/concepts/projects/sync)
35
+ ```
36
+
37
+ ## Modifying the venv to add other projects
38
+
39
+ Peer projects (those checked out next to the project) are visible in the devcontainer, and can be added into the venv by running `uv pip install -e ../other_project`. This will allow live changes made in this other project to be immediately reflected in the venv.
40
+
41
+ ```{note}
42
+ This venv is activated by default, and global to the container, so if you `uv sync` from `other_project` then it will **replace** the contents of the venv with `other_project`'s dependencies.
43
+ ```
@@ -28,7 +28,7 @@ If you find that your tests are being skipped or not recognised by `pytest`, che
28
28
  When you have some fully working tests then you can run it with coverage:
29
29
 
30
30
  ```
31
- $ tox -e tests
31
+ $ uv run tox -e tests
32
32
  ```
33
33
 
34
34
  It will also report coverage to the command line and to `cov.xml`.
@@ -54,8 +54,11 @@ cd example-services
54
54
  podman compose up -d bl01t-di-cam-01 bl01t-mo-sim-01 ca-gateway
55
55
  ```
56
56
 
57
+ **Note:** Do not run the system tests from the same shell as the above `environment.sh` script interferes with the
58
+ ability to run the tests due to also setting EPICS_ environment variables.
59
+
57
60
  Once this is done, then the system tests can be run:
58
61
 
59
62
  ```commandline
60
- tox -e system-report
63
+ uv run tox -e system-tests
61
64
  ```
@@ -3,5 +3,5 @@
3
3
  Static type analysis is done with [pyright](https://microsoft.github.io/pyright) or [mypy](https://www.mypy-lang.org) dependent on the settings in `pyproject.toml`. It checks type definition in source files without running them, and highlights potential issues where types do not match. You can run it with:
4
4
 
5
5
  ```
6
- $ tox -e type-checking
6
+ $ uv run tox -e type-checking
7
7
  ```