dls-dodal 1.33.0__tar.gz → 1.35.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 (378) hide show
  1. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.copier-answers.yml +3 -1
  2. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/CONTRIBUTING.md +1 -1
  3. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/pages/make_switcher.py +8 -6
  4. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_pypi.yml +2 -0
  5. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_release.yml +1 -1
  6. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/ci.yml +1 -1
  7. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.gitignore +1 -0
  8. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/Dockerfile +1 -1
  9. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/PKG-INFO +3 -3
  10. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/README.md +1 -1
  11. {dls_dodal-1.33.0/tests → dls_dodal-1.35.0}/conftest.py +52 -28
  12. dls_dodal-1.35.0/docs/_api.rst +16 -0
  13. dls_dodal-1.35.0/docs/_templates/custom-module-template.rst +37 -0
  14. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/conf.py +13 -5
  15. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/create-beamline.rst +1 -1
  16. dls_dodal-1.35.0/docs/how-to/write-tests.md +8 -0
  17. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference/standards.rst +1 -1
  18. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference.md +1 -1
  19. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/pyproject.toml +5 -3
  20. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/PKG-INFO +3 -3
  21. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/SOURCES.txt +48 -21
  22. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/requires.txt +1 -1
  23. dls_dodal-1.35.0/src/dodal/__init__.py +11 -0
  24. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/_version.py +2 -2
  25. dls_dodal-1.35.0/src/dodal/beamline_specific_utils/i03.py +17 -0
  26. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/__init__.py +2 -3
  27. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i03.py +41 -9
  28. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i04.py +26 -4
  29. dls_dodal-1.35.0/src/dodal/beamlines/i10.py +257 -0
  30. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i22.py +25 -13
  31. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i24.py +11 -11
  32. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p38.py +24 -13
  33. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/beamline_utils.py +1 -2
  34. dls_dodal-1.35.0/src/dodal/common/crystal_metadata.py +61 -0
  35. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/signal_utils.py +10 -14
  36. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/types.py +2 -7
  37. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/CTAB.py +1 -1
  38. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/aperture.py +1 -1
  39. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/aperturescatterguard.py +20 -8
  40. dls_dodal-1.35.0/src/dodal/devices/apple2_undulator.py +603 -0
  41. dls_dodal-1.35.0/src/dodal/devices/areadetector/plugins/CAM.py +29 -0
  42. dls_dodal-1.35.0/src/dodal/devices/areadetector/plugins/MJPG.py +83 -0
  43. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/attenuator.py +1 -1
  44. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/backlight.py +11 -11
  45. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/cryostream.py +3 -5
  46. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/dcm.py +26 -2
  47. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/detector_motion.py +3 -5
  48. dls_dodal-1.35.0/src/dodal/devices/diamond_filter.py +46 -0
  49. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/eiger.py +6 -2
  50. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/eiger_odin.py +48 -39
  51. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/fast_grid_scan.py +1 -1
  52. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/fluorescence_detector_motion.py +5 -7
  53. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/focusing_mirror.py +26 -19
  54. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/hutch_shutter.py +4 -5
  55. dls_dodal-1.35.0/src/dodal/devices/i10/i10_apple2.py +399 -0
  56. dls_dodal-1.35.0/src/dodal/devices/i10/i10_setting_data.py +7 -0
  57. dls_dodal-1.35.0/src/dodal/devices/i22/dcm.py +124 -0
  58. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i22/fswitch.py +5 -5
  59. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/aperture.py +3 -5
  60. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/beamstop.py +3 -5
  61. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/dcm.py +1 -1
  62. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/dual_backlight.py +9 -11
  63. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/pmac.py +35 -46
  64. dls_dodal-1.35.0/src/dodal/devices/i24/vgonio.py +16 -0
  65. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/ipin.py +5 -3
  66. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/linkam3.py +7 -7
  67. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/oav_calculations.py +22 -0
  68. dls_dodal-1.35.0/src/dodal/devices/oav/oav_detector.py +127 -0
  69. dls_dodal-1.35.0/src/dodal/devices/oav/oav_parameters.py +160 -0
  70. dls_dodal-1.35.0/src/dodal/devices/oav/oav_to_redis_forwarder.py +171 -0
  71. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +9 -7
  72. {dls_dodal-1.33.0/src/dodal/devices/oav → dls_dodal-1.35.0/src/dodal/devices/oav/snapshots}/grid_overlay.py +16 -59
  73. dls_dodal-1.35.0/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +64 -0
  74. dls_dodal-1.35.0/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +57 -0
  75. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/utils.py +28 -27
  76. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p99/sample_stage.py +3 -5
  77. dls_dodal-1.35.0/src/dodal/devices/pgm.py +40 -0
  78. dls_dodal-1.35.0/src/dodal/devices/qbpm.py +18 -0
  79. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/robot.py +5 -5
  80. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/smargon.py +3 -3
  81. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/synchrotron.py +9 -4
  82. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/tetramm.py +9 -9
  83. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/thawer.py +13 -7
  84. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/undulator.py +7 -6
  85. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/adjuster_plans.py +1 -1
  86. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/epics_util.py +1 -1
  87. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/lookup_tables.py +4 -5
  88. dls_dodal-1.35.0/src/dodal/devices/watsonmarlow323_pump.py +45 -0
  89. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/webcam.py +9 -2
  90. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xbpm_feedback.py +3 -5
  91. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xspress3/xspress3.py +8 -9
  92. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xspress3/xspress3_channel.py +3 -5
  93. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zebra.py +12 -8
  94. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zebra_controlled_shutter.py +5 -6
  95. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/__init__.py +2 -2
  96. dls_dodal-1.35.0/src/dodal/devices/zocalo/zocalo_constants.py +3 -0
  97. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/zocalo_interaction.py +2 -1
  98. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/zocalo_results.py +105 -89
  99. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/data_session_metadata.py +2 -2
  100. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/motor_util_plans.py +11 -9
  101. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/utils.py +11 -0
  102. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_aperturescatterguard_system.py +2 -2
  103. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_eiger_system.py +1 -1
  104. dls_dodal-1.35.0/system_tests/test_oav_system.py +55 -0
  105. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_oav_to_redis_system.py +11 -6
  106. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_zocalo_results.py +36 -15
  107. dls_dodal-1.35.0/tests/beamlines/unit_tests/test_i24.py +27 -0
  108. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/beamlines/unit_tests/test_mapping.py +2 -2
  109. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_beamline_utils.py +1 -2
  110. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_device_instantiation.py +3 -2
  111. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_coordination.py +1 -1
  112. dls_dodal-1.35.0/tests/common/test_crystal_metadata.py +37 -0
  113. dls_dodal-1.35.0/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +53 -0
  114. dls_dodal-1.35.0/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +29 -0
  115. dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
  116. dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
  117. dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
  118. dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
  119. dls_dodal-1.35.0/tests/devices/i10/test_i10Apple2.py +495 -0
  120. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_dcm.py +16 -39
  121. dls_dodal-1.35.0/tests/devices/test_diamond_filter.py +57 -0
  122. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/test_pmac.py +4 -4
  123. dls_dodal-1.35.0/tests/devices/unit_tests/i24/test_vgonio.py +25 -0
  124. dls_dodal-1.35.0/tests/devices/unit_tests/oav/conftest.py +25 -0
  125. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +3 -3
  126. {dls_dodal-1.33.0/tests/devices/unit_tests → dls_dodal-1.35.0/tests/devices/unit_tests/oav}/test_grid_overlay.py +3 -3
  127. dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav.py +129 -0
  128. dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_parameters.py +78 -0
  129. dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +202 -0
  130. dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_utils.py +113 -0
  131. dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_snapshots.py +192 -0
  132. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +4 -6
  133. dls_dodal-1.35.0/tests/devices/unit_tests/test_apple2_undulator.py +357 -0
  134. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_backlight.py +4 -4
  135. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_dcm.py +10 -0
  136. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_eiger.py +25 -20
  137. dls_dodal-1.35.0/tests/devices/unit_tests/test_focusing_mirror.py +259 -0
  138. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_gridscan.py +2 -2
  139. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_hutch_shutter.py +1 -2
  140. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_linkam3.py +1 -1
  141. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_odin.py +87 -18
  142. dls_dodal-1.35.0/tests/devices/unit_tests/test_qbpm.py +29 -0
  143. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_tetramm.py +27 -15
  144. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_thawer.py +5 -7
  145. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_undulator_dcm.py +1 -2
  146. dls_dodal-1.35.0/tests/devices/unit_tests/test_watsonmarlow323_pump.py +47 -0
  147. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_xspress3.py +1 -1
  148. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zebra.py +6 -6
  149. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zocalo_interaction.py +1 -1
  150. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zocalo_results.py +58 -46
  151. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +3 -2
  152. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_lookup_tables.py +4 -4
  153. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_save_panda.py +1 -1
  154. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/__main__.py +33 -12
  155. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +12 -2
  156. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/plans/test_motor_util_plans.py +6 -6
  157. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/preprocessors/test_filesystem_metadata.py +2 -1
  158. dls_dodal-1.33.0/docs/reference/api.md +0 -26
  159. dls_dodal-1.33.0/src/dodal/__init__.py +0 -3
  160. dls_dodal-1.33.0/src/dodal/beamline_specific_utils/i03.py +0 -13
  161. dls_dodal-1.33.0/src/dodal/beamlines/i04_1.py +0 -140
  162. dls_dodal-1.33.0/src/dodal/devices/areadetector/plugins/MJPG.py +0 -138
  163. dls_dodal-1.33.0/src/dodal/devices/i22/dcm.py +0 -157
  164. dls_dodal-1.33.0/src/dodal/devices/i24/i24_vgonio.py +0 -17
  165. dls_dodal-1.33.0/src/dodal/devices/oav/oav_detector.py +0 -92
  166. dls_dodal-1.33.0/src/dodal/devices/oav/oav_errors.py +0 -35
  167. dls_dodal-1.33.0/src/dodal/devices/oav/oav_parameters.py +0 -214
  168. dls_dodal-1.33.0/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -129
  169. dls_dodal-1.33.0/tests/beamlines/unit_tests/test_i24.py +0 -11
  170. dls_dodal-1.33.0/tests/devices/system_tests/test_oav_system.py +0 -46
  171. dls_dodal-1.33.0/tests/devices/unit_tests/areadetector/plugins/test_MJPG.py +0 -45
  172. dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav.py +0 -133
  173. dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -48
  174. dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -140
  175. dls_dodal-1.33.0/tests/devices/unit_tests/test_focusing_mirror.py +0 -270
  176. dls_dodal-1.33.0/tests/devices/unit_tests/test_oav.py +0 -262
  177. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.devcontainer/devcontainer.json +0 -0
  178. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
  179. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/actions/install_requirements/action.yml +0 -0
  180. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/dependabot.yml +0 -0
  181. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/pages/index.html +0 -0
  182. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_check.yml +0 -0
  183. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_dist.yml +0 -0
  184. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_docs.yml +0 -0
  185. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_test.yml +0 -0
  186. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_tox.yml +0 -0
  187. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/periodic.yml +0 -0
  188. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.pre-commit-config.yaml +0 -0
  189. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/extensions.json +0 -0
  190. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/launch.json +0 -0
  191. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/settings.json +0 -0
  192. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/tasks.json +0 -0
  193. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/LICENSE +0 -0
  194. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/catalog-info.yaml +0 -0
  195. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/_templates/autosummary/class.rst +0 -0
  196. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/_templates/autosummary/module.rst +0 -0
  197. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/assets/zocalo.png +0 -0
  198. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  199. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  200. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/COPYME +0 -0
  201. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions.md +0 -0
  202. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations.md +0 -0
  203. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/genindex.md +0 -0
  204. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/build-docs.md +0 -0
  205. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/contribute.md +0 -0
  206. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/coverage.md +0 -0
  207. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/dev-install.md +0 -0
  208. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/excalidraw.md +0 -0
  209. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/lint.md +0 -0
  210. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/lock-requirements.md +0 -0
  211. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
  212. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/make-release.md +0 -0
  213. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/move-code.rst +0 -0
  214. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/pypi.md +0 -0
  215. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/run-tests.md +0 -0
  216. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/static-analysis.md +0 -0
  217. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/update-template.md +0 -0
  218. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/zocalo.rst +0 -0
  219. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to.md +0 -0
  220. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/images/dls-logo.svg +0 -0
  221. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/images/excalidraw-example.svg +0 -0
  222. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/index.md +0 -0
  223. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference/device-standards.rst +0 -0
  224. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials/get_started.rst +0 -0
  225. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials/installation.md +0 -0
  226. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials.md +0 -0
  227. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/pull_request_template.md +0 -0
  228. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/setup.cfg +0 -0
  229. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/__init__.py +0 -0
  230. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
  231. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
  232. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
  233. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/__main__.py +0 -0
  234. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/adsim.py +0 -0
  235. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
  236. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/README.md +0 -0
  237. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/b01_1.py +0 -0
  238. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i13_1.py +0 -0
  239. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i20_1.py +0 -0
  240. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i23.py +0 -0
  241. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p45.py +0 -0
  242. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p99.py +0 -0
  243. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/training_rig.py +0 -0
  244. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/cli.py +0 -0
  245. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/__init__.py +0 -0
  246. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/__init__.py +0 -0
  247. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
  248. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
  249. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/coordination.py +0 -0
  250. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/maths.py +0 -0
  251. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/udc_directory_provider.py +0 -0
  252. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/visit.py +0 -0
  253. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/__init__.py +0 -0
  254. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/adsim.py +0 -0
  255. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/__init__.py +0 -0
  256. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adaravis.py +0 -0
  257. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adsim.py +0 -0
  258. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adutils.py +0 -0
  259. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/__init__.py +0 -0
  260. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
  261. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
  262. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_resolution.py +0 -0
  263. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/detector.py +0 -0
  264. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/flux.py +0 -0
  265. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i03/__init__.py +0 -0
  266. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i04/transfocator.py +0 -0
  267. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i20_1/__init__.py +0 -0
  268. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i22/nxsas.py +0 -0
  269. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/__init__.py +0 -0
  270. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
  271. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
  272. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/motors.py +0 -0
  273. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/__init__.py +0 -0
  274. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
  275. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
  276. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
  277. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p45.py +0 -0
  278. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p99/__init__.py +0 -0
  279. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
  280. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/scatterguard.py +0 -0
  281. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/scintillator.py +0 -0
  282. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/slits.py +0 -0
  283. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/status.py +0 -0
  284. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/training_rig/__init__.py +0 -0
  285. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
  286. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/turbo_slit.py +0 -0
  287. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/undulator_dcm.py +0 -0
  288. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/__init__.py +0 -0
  289. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/motor_utils.py +0 -0
  290. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/save_panda.py +0 -0
  291. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/test_utils.py +0 -0
  292. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/log.py +0 -0
  293. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
  294. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/check_topup.py +0 -0
  295. {dls_dodal-1.33.0/tests → dls_dodal-1.35.0/system_tests}/__init__.py +0 -0
  296. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_gridscan_system.py +0 -0
  297. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_slit_gaps_system.py +0 -0
  298. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_smargon_system.py +0 -0
  299. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_synchrotron_system.py +0 -0
  300. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_undulator_system.py +0 -0
  301. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_zebra_system.py +0 -0
  302. {dls_dodal-1.33.0/tests/beamlines → dls_dodal-1.35.0/tests}/__init__.py +0 -0
  303. {dls_dodal-1.33.0/tests/beamlines/unit_tests → dls_dodal-1.35.0/tests/beamlines}/__init__.py +0 -0
  304. {dls_dodal-1.33.0/tests/common → dls_dodal-1.35.0/tests/beamlines/unit_tests}/__init__.py +0 -0
  305. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
  306. {dls_dodal-1.33.0/tests/common/beamlines → dls_dodal-1.35.0/tests/common}/__init__.py +0 -0
  307. {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0/tests/common/beamlines}/__init__.py +0 -0
  308. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
  309. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_device_helpers.py +0 -0
  310. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_maths.py +0 -0
  311. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_udc_directory_provider.py +0 -0
  312. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_visit.py +0 -0
  313. {dls_dodal-1.33.0/tests/devices/i04 → dls_dodal-1.35.0/tests/devices}/__init__.py +0 -0
  314. {dls_dodal-1.33.0/tests/devices/system_tests → dls_dodal-1.35.0/tests/devices/i04}/__init__.py +0 -0
  315. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i04/test_transfocator.py +0 -0
  316. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_fswitch.py +0 -0
  317. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_metadataholder.py +0 -0
  318. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
  319. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/__init__.py +0 -0
  320. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/conftest.py +0 -0
  321. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
  322. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
  323. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
  324. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
  325. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
  326. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
  327. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
  328. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
  329. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
  330. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_aperture.py +0 -0
  331. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
  332. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
  333. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
  334. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
  335. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
  336. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  337. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  338. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_display.configuration +0 -0
  339. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
  340. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
  341. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
  342. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_shutter.py +0 -0
  343. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_slits.py +0 -0
  344. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_smargon.py +0 -0
  345. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_status.py +0 -0
  346. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
  347. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_undulator.py +0 -0
  348. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_utils.py +0 -0
  349. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_webcam.py +0 -0
  350. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
  351. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/__init__.py +0 -0
  352. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
  353. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline.py +0 -0
  354. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
  355. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_broken_dependency.py +0 -0
  356. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_dependencies.py +0 -0
  357. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
  358. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
  359. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_some_devices_working.py +0 -0
  360. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/README.rst +0 -0
  361. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/__init__.py +0 -0
  362. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/plans/test_topup_plan.py +0 -0
  363. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_cli.py +0 -0
  364. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/bad_beamlineParameters +0 -0
  365. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/i04_beamlineParameters +0 -0
  366. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  367. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
  368. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
  369. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  370. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  371. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
  372. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
  373. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/topup_long_delay.txt +0 -0
  374. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/topup_short_params.txt +0 -0
  375. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_utils.py +0 -0
  376. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/unit_tests/__init__.py +0 -0
  377. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/unit_tests/test_cli.py +0 -0
  378. {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/unit_tests/test_log.py +0 -0
@@ -1,9 +1,11 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 2.2.0
2
+ _commit: 2.5.0
3
3
  _src_path: gh:DiamondLightSource/python-copier-template
4
4
  author_email: dominic.oram@diamond.ac.uk
5
5
  author_name: Dominic Oram
6
+ component_lifecycle: production
6
7
  component_owner: group:data-acquisition
8
+ component_type: library
7
9
  description: Ophyd devices and other utils that could be used across DLS beamlines
8
10
  distribution_name: dls-dodal
9
11
  docker: false
@@ -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/2.2.0/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/2.5.0/how-to.html).
@@ -1,3 +1,5 @@
1
+ """Make switcher.json to allow docs to switch between different versions."""
2
+
1
3
  import json
2
4
  import logging
3
5
  from argparse import ArgumentParser
@@ -6,6 +8,7 @@ from subprocess import CalledProcessError, check_output
6
8
 
7
9
 
8
10
  def report_output(stdout: bytes, label: str) -> list[str]:
11
+ """Print and return something received frm stdout."""
9
12
  ret = stdout.decode().strip().split("\n")
10
13
  print(f"{label}: {ret}")
11
14
  return ret
@@ -52,14 +55,12 @@ def get_versions(ref: str, add: str | None) -> list[str]:
52
55
  return versions
53
56
 
54
57
 
55
- def write_json(path: Path, repository: str, versions: str):
58
+ def write_json(path: Path, repository: str, versions: list[str]):
59
+ """Write the JSON switcher to path."""
56
60
  org, repo_name = repository.split("/")
57
- pages_url = f"https://{org}.github.io"
58
- if repo_name != f"{org}.github.io":
59
- # Only add the repo name if it isn't the source for the org pages site
60
- pages_url += f"/{repo_name}"
61
61
  struct = [
62
- {"version": version, "url": f"{pages_url}/{version}/"} for version in versions
62
+ {"version": version, "url": f"https://{org}.github.io/{repo_name}/{version}/"}
63
+ for version in versions
63
64
  ]
64
65
  text = json.dumps(struct, indent=2)
65
66
  print(f"JSON switcher:\n{text}")
@@ -67,6 +68,7 @@ def write_json(path: Path, repository: str, versions: str):
67
68
 
68
69
 
69
70
  def main(args=None):
71
+ """Parse args and write switcher."""
70
72
  parser = ArgumentParser(
71
73
  description="Make a versions.json file from gh-pages directories"
72
74
  )
@@ -15,3 +15,5 @@ jobs:
15
15
 
16
16
  - name: Publish to PyPI using trusted publishing
17
17
  uses: pypa/gh-action-pypi-publish@release/v1
18
+ with:
19
+ attestations: false
@@ -23,7 +23,7 @@ jobs:
23
23
  - name: Create GitHub Release
24
24
  # We pin to the SHA, not the tag, for security reasons.
25
25
  # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
26
- uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
26
+ uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9
27
27
  with:
28
28
  prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
29
29
  files: "*"
@@ -21,7 +21,7 @@ jobs:
21
21
  strategy:
22
22
  matrix:
23
23
  runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
24
- python-version: ["3.10", "3.11"] # add 3.12 when p4p #145 is fixed
24
+ python-version: ["3.10", "3.11", "3.12"]
25
25
  include:
26
26
  # Include one that runs in the dev environment
27
27
  - runs-on: "ubuntu-latest"
@@ -57,6 +57,7 @@ tmp/
57
57
  # Sphinx documentation
58
58
  docs/_build/
59
59
  docs/reference/generated/
60
+ docs/_api
60
61
 
61
62
  # PyBuilder
62
63
  target/
@@ -1,7 +1,7 @@
1
1
  # The devcontainer should use the developer target and run as root with podman
2
2
  # or docker with user namespaces.
3
3
  ARG PYTHON_VERSION=3.11
4
- FROM python:${PYTHON_VERSION} as developer
4
+ FROM python:${PYTHON_VERSION} AS developer
5
5
 
6
6
  # Add any system dependencies for the developer/build environment here
7
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dls-dodal
3
- Version: 1.33.0
3
+ Version: 1.35.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -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.7,>=0.6
219
+ Requires-Dist: ophyd-async==0.8.0a4
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -263,7 +263,7 @@ Requires-Dist: types-aiofiles; extra == "dev"
263
263
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
264
264
  [![Coverage](https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg)](https://codecov.io/gh/DiamondLightSource/dodal)
265
265
  [![PyPI](https://img.shields.io/pypi/v/dls-dodal.svg)](https://pypi.org/project/dls-dodal)
266
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
266
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
267
267
 
268
268
  # dodal
269
269
 
@@ -1,7 +1,7 @@
1
1
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
2
2
  [![Coverage](https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg)](https://codecov.io/gh/DiamondLightSource/dodal)
3
3
  [![PyPI](https://img.shields.io/pypi/v/dls-dodal.svg)](https://pypi.org/project/dls-dodal)
4
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
5
5
 
6
6
  # dodal
7
7
 
@@ -7,6 +7,7 @@ import time
7
7
  from collections.abc import Mapping
8
8
  from os import environ, getenv
9
9
  from pathlib import Path
10
+ from typing import Any
10
11
  from unittest.mock import MagicMock, patch
11
12
 
12
13
  import pytest
@@ -17,8 +18,7 @@ from ophyd_async.core import (
17
18
  PathProvider,
18
19
  )
19
20
 
20
- from dodal.beamlines import i03
21
- from dodal.common.beamlines import beamline_utils
21
+ from dodal.common.beamlines import beamline_parameters, beamline_utils
22
22
  from dodal.common.visit import (
23
23
  DirectoryServiceClient,
24
24
  LocalDirectoryServiceClient,
@@ -32,30 +32,62 @@ mock_paths = [
32
32
  ("DAQ_CONFIGURATION_PATH", MOCK_DAQ_CONFIG_PATH),
33
33
  ("ZOOM_PARAMS_FILE", "tests/devices/unit_tests/test_jCameraManZoomLevels.xml"),
34
34
  ("DISPLAY_CONFIG", "tests/devices/unit_tests/test_display.configuration"),
35
+ ("LOOK_UPTABLE_DIR", "tests/devices/i10/lookupTables/"),
35
36
  ]
36
37
  mock_attributes_table = {
37
38
  "i03": mock_paths,
39
+ "i10": mock_paths,
38
40
  "s03": mock_paths,
39
41
  "i04": mock_paths,
40
42
  "s04": mock_paths,
43
+ "i24": mock_paths,
41
44
  }
42
45
 
46
+ BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
47
+ environ["DODAL_TEST_MODE"] = "true"
48
+
49
+
50
+ @pytest.fixture(autouse=True)
51
+ def patch_open_to_prevent_dls_reads_in_tests():
52
+ unpatched_open = open
53
+
54
+ def patched_open(*args, **kwargs):
55
+ requested_path = Path(args[0])
56
+ if requested_path.is_absolute():
57
+ for p in BANNED_PATHS:
58
+ assert not requested_path.is_relative_to(
59
+ p
60
+ ), f"Attempt to open {requested_path} from inside a unit test"
61
+ return unpatched_open(*args, **kwargs)
62
+
63
+ with patch("builtins.open", side_effect=patched_open):
64
+ yield []
65
+
66
+
43
67
  # Prevent pytest from catching exceptions when debugging in vscode so that break on
44
68
  # exception works correctly (see: https://github.com/pytest-dev/pytest/issues/7409)
45
69
  if os.getenv("PYTEST_RAISE", "0") == "1":
46
70
 
47
71
  @pytest.hookimpl(tryfirst=True)
48
- def pytest_exception_interact(call):
49
- raise call.excinfo.value
72
+ def pytest_exception_interact(call: pytest.CallInfo[Any]):
73
+ if call.excinfo is not None:
74
+ raise call.excinfo.value
75
+ else:
76
+ raise RuntimeError(
77
+ f"{call} has no exception data, an unknown error has occurred"
78
+ )
50
79
 
51
80
  @pytest.hookimpl(tryfirst=True)
52
- def pytest_internalerror(excinfo):
81
+ def pytest_internalerror(excinfo: pytest.ExceptionInfo[Any]):
53
82
  raise excinfo.value
54
83
 
55
84
 
56
85
  def mock_beamline_module_filepaths(bl_name, bl_module):
57
86
  if mock_attributes := mock_attributes_table.get(bl_name):
58
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
+ )
59
91
 
60
92
 
61
93
  @pytest.fixture(scope="function")
@@ -65,12 +97,12 @@ def module_and_devices_for_beamline(request):
65
97
  bl_mod = importlib.import_module("dodal.beamlines." + beamline)
66
98
  importlib.reload(bl_mod)
67
99
  mock_beamline_module_filepaths(beamline, bl_mod)
68
- devices, _ = make_all_devices(
100
+ devices, exceptions = make_all_devices(
69
101
  bl_mod,
70
102
  include_skipped=True,
71
103
  fake_with_ophyd_sim=True,
72
104
  )
73
- yield (bl_mod, devices)
105
+ yield (bl_mod, devices, exceptions)
74
106
  beamline_utils.clear_devices()
75
107
  del bl_mod
76
108
 
@@ -92,14 +124,6 @@ def pytest_runtest_teardown():
92
124
  sys.modules["dodal.beamlines.beamline_utils"].clear_devices()
93
125
 
94
126
 
95
- @pytest.fixture
96
- def vfm_mirror_voltages(RE: RunEngine):
97
- voltages = i03.vfm_mirror_voltages(fake_with_ophyd_sim=True)
98
- voltages.voltage_lookup_table_path = "tests/test_data/test_mirror_focus.json"
99
- yield voltages
100
- beamline_utils.clear_devices()
101
-
102
-
103
127
  s03_epics_server_port = getenv("S03_EPICS_CA_SERVER_PORT")
104
128
  s03_epics_repeater_port = getenv("S03_EPICS_CA_REPEATER_PORT")
105
129
 
@@ -132,19 +156,6 @@ async def static_path_provider(
132
156
  return svpp
133
157
 
134
158
 
135
- @pytest.fixture
136
- async def RE():
137
- RE = RunEngine()
138
- # make sure the event loop is thoroughly up and running before we try to create
139
- # any ophyd_async devices which might need it
140
- timeout = time.monotonic() + 1
141
- while not RE.loop.is_running():
142
- await asyncio.sleep(0)
143
- if time.monotonic() > timeout:
144
- raise TimeoutError("This really shouldn't happen but just in case...")
145
- yield RE
146
-
147
-
148
159
  @pytest.fixture
149
160
  def run_engine_documents(RE: RunEngine) -> Mapping[str, list[dict]]:
150
161
  docs: dict[str, list[dict]] = {}
@@ -162,3 +173,16 @@ def failed_status(failure: Exception) -> Status:
162
173
  status = Status()
163
174
  status.set_exception(failure)
164
175
  return status
176
+
177
+
178
+ @pytest.fixture
179
+ async def RE():
180
+ RE = RunEngine()
181
+ # make sure the event loop is thoroughly up and running before we try to create
182
+ # any ophyd_async devices which might need it
183
+ timeout = time.monotonic() + 1
184
+ while not RE.loop.is_running():
185
+ await asyncio.sleep(0)
186
+ if time.monotonic() > timeout:
187
+ raise TimeoutError("This really shouldn't happen but just in case...")
188
+ yield RE
@@ -0,0 +1,16 @@
1
+ :orphan:
2
+
3
+ ..
4
+ This page is not included in the TOC tree, but must exist so that the
5
+ autosummary pages are generated for dodal and all its
6
+ subpackages
7
+
8
+ API
9
+ ===
10
+
11
+ .. autosummary::
12
+ :toctree: _api
13
+ :template: custom-module-template.rst
14
+ :recursive:
15
+
16
+ dodal
@@ -0,0 +1,37 @@
1
+ {{ ('``' + fullname + '``') | underline }}
2
+
3
+ {%- set filtered_members = [] %}
4
+ {%- for item in members %}
5
+ {%- if item in functions + classes + exceptions + attributes %}
6
+ {% set _ = filtered_members.append(item) %}
7
+ {%- endif %}
8
+ {%- endfor %}
9
+
10
+ .. automodule:: {{ fullname }}
11
+ :members:
12
+
13
+ {% block modules %}
14
+ {% if modules %}
15
+ .. rubric:: Submodules
16
+
17
+ .. autosummary::
18
+ :toctree:
19
+ :template: custom-module-template.rst
20
+ :recursive:
21
+ {% for item in modules %}
22
+ {{ item }}
23
+ {%- endfor %}
24
+ {% endif %}
25
+ {% endblock %}
26
+
27
+ {% block members %}
28
+ {% if filtered_members %}
29
+ .. rubric:: Members
30
+
31
+ .. autosummary::
32
+ :nosignatures:
33
+ {% for item in filtered_members %}
34
+ {{ item }}
35
+ {%- endfor %}
36
+ {% endif %}
37
+ {% endblock %}
@@ -1,8 +1,9 @@
1
- # Configuration file for the Sphinx documentation builder.
2
- #
3
- # This file only contains a selection of the most common options. For a full
4
- # list see the documentation:
5
- # https://www.sphinx-doc.org/en/master/usage/configuration.html
1
+ """Configuration file for the Sphinx documentation builder.
2
+
3
+ This file only contains a selection of the most common options. For a full
4
+ list see the documentation:
5
+ https://www.sphinx-doc.org/en/master/usage/configuration.html
6
+ """
6
7
 
7
8
  import sys
8
9
  from inspect import isclass
@@ -33,6 +34,7 @@ else:
33
34
  extensions = [
34
35
  # Use this for generating API docs
35
36
  "sphinx.ext.autodoc",
37
+ # and making summary tables at the top of API docs
36
38
  "sphinx.ext.autosummary",
37
39
  # This can parse google style docstrings
38
40
  "sphinx.ext.napoleon",
@@ -91,6 +93,12 @@ autodoc_preserve_defaults = True
91
93
  autosummary_generate = True
92
94
  autosummary_imported_members = False
93
95
 
96
+ # Document only what is in __all__
97
+ autosummary_ignore_module_all = False
98
+
99
+ # Add any paths that contain templates here, relative to this directory.
100
+ templates_path = ["_templates"]
101
+
94
102
  # Output graphviz directive produced images in a scalable format
95
103
  graphviz_output_format = "svg"
96
104
 
@@ -11,7 +11,7 @@ Each beamline should have its own file in the ``doodal.beamlines`` folder, in wh
11
11
  beamline are instantiated. The file should be named after the colloquial name for the beamline. For example:
12
12
 
13
13
  * ``i03.py``
14
- * ``i04_1.py``
14
+ * ``i20_1.py``
15
15
  * ``vmxi.py``
16
16
 
17
17
  Beamline modules (in ``dodal.beamlines``) are code-as-configuration. They define the set of devices and common device
@@ -0,0 +1,8 @@
1
+ # Writing Tests in This Python Project
2
+
3
+ Testing is essential to maintain the integrity and reliability of the codebase. Follow the guidelines below to write tests for this project effectively.
4
+
5
+ ## Test Organization
6
+
7
+ - **Unit Tests**: Place unit tests for individual components in the `tests` directory, but take care to mirror the file structure of the `src` folder with the corresponding code files. Use the `test_*.py` naming convention for test files.
8
+ - **System Tests**: Tests that interact with DLS infrastructure, network, and filesystem should be placed in the top-level `systems_test` folder. This separation ensures that these tests are easily identifiable and can be run independently from unit tests.
@@ -29,7 +29,7 @@ Supported Python Versions
29
29
  As a standard for the python versions to support, we should be matching the deprecation policy at
30
30
  https://numpy.org/neps/nep-0029-deprecation_policy.html.
31
31
 
32
- Currently supported versions are: 3.10, 3.11.
32
+ Currently supported versions are: 3.10, 3.11, 3.12. (As of the last edit of this document.)
33
33
 
34
34
  .. _documentation_standards:
35
35
 
@@ -6,7 +6,7 @@ Technical reference material including APIs and release notes.
6
6
  :maxdepth: 1
7
7
  :glob:
8
8
 
9
- reference/*
9
+ API <_api/dodal>
10
10
  genindex
11
11
  Release Notes <https://github.com/DiamondLightSource/dodal/releases>
12
12
  ```
@@ -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.6,<0.7",
18
+ "ophyd-async==0.8.0a4",
19
19
  "bluesky",
20
20
  "pyepics",
21
21
  "dataclasses-json",
@@ -91,7 +91,8 @@ dodal = ["*.txt"]
91
91
  version_file = "src/dodal/_version.py"
92
92
 
93
93
  [tool.pyright]
94
- reportMissingImports = false # Ignore missing stubs in imported modules
94
+ typeCheckingMode = "standard"
95
+ reportMissingImports = false # Ignore missing stubs in imported modules
95
96
 
96
97
  [tool.pytest.ini_options]
97
98
  # Run pytest with all our checkers, and don't spam us with massive tracebacks on error
@@ -115,7 +116,7 @@ filterwarnings = [
115
116
  "ignore::DeprecationWarning:wheel",
116
117
  ]
117
118
  # Doctest python code in docs, python code in src docstrings, test functions in tests
118
- testpaths = "docs src tests"
119
+ testpaths = "docs src tests system_tests"
119
120
 
120
121
  [tool.coverage.report]
121
122
  exclude_also = [
@@ -176,3 +177,4 @@ lint.select = [
176
177
  # See https://github.com/DiamondLightSource/python-copier-template/issues/154
177
178
  # Remove this line to forbid private member access in tests
178
179
  "tests/**/*" = ["SLF001"]
180
+ "system_tests/**/*" = ["SLF001"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dls-dodal
3
- Version: 1.33.0
3
+ Version: 1.35.0
4
4
  Summary: Ophyd devices and other utils that could be used across DLS beamlines
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -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.7,>=0.6
219
+ Requires-Dist: ophyd-async==0.8.0a4
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -263,7 +263,7 @@ Requires-Dist: types-aiofiles; extra == "dev"
263
263
  [![CI](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml/badge.svg)](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
264
264
  [![Coverage](https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg)](https://codecov.io/gh/DiamondLightSource/dodal)
265
265
  [![PyPI](https://img.shields.io/pypi/v/dls-dodal.svg)](https://pypi.org/project/dls-dodal)
266
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
266
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
267
267
 
268
268
  # dodal
269
269