dls-dodal 1.62.0__tar.gz → 1.64.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.
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_test.yml +0 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/PKG-INFO +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/conftest.py +5 -35
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/make-release.md +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/write-tests.md +10 -10
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/reference/device-standards.md +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/pyproject.toml +15 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dls_dodal.egg-info/PKG-INFO +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dls_dodal.egg-info/SOURCES.txt +32 -14
- dls_dodal-1.64.0/src/dls_dodal.egg-info/entry_points.txt +3 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dls_dodal.egg-info/requires.txt +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/_version.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/__init__.py +1 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/adsim.py +5 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b21.py +3 -1
- dls_dodal-1.64.0/src/dodal/beamlines/i02_2.py +32 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i03.py +9 -0
- dls_dodal-1.64.0/src/dodal/beamlines/i07.py +21 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i09.py +11 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i09_1.py +10 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i09_2.py +30 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i10.py +7 -69
- dls_dodal-1.64.0/src/dodal/beamlines/i10_1.py +35 -0
- dls_dodal-1.64.0/src/dodal/beamlines/i10_optics.py +231 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i15_1.py +5 -5
- dls_dodal-1.64.0/src/dodal/beamlines/i17.py +96 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i18.py +15 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i19_1.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i19_2.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i19_optics.py +4 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i21.py +31 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i24.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/cli.py +7 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/visit.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/aperturescatterguard.py +6 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/apple2_undulator.py +225 -126
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/attenuator/filter_selections.py +6 -6
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b07_1/ccmc.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/common_dcm.py +63 -16
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/femto.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/sr570.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/fast_grid_scan.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/fast_shutter.py +19 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i03/dcm.py +4 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i03/undulator_dcm.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i04/murko_results.py +35 -14
- dls_dodal-1.64.0/src/dodal/devices/i07/dcm.py +33 -0
- dls_dodal-1.64.0/src/dodal/devices/i09/__init__.py +3 -0
- dls_dodal-1.64.0/src/dodal/devices/i09_1_shared/__init__.py +3 -0
- dls_dodal-1.64.0/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +111 -0
- dls_dodal-1.64.0/src/dodal/devices/i10/__init__.py +29 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/diagnostics.py +37 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/i10_apple2.py +125 -229
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/slits.py +38 -6
- dls_dodal-1.64.0/src/dodal/devices/i15/dcm.py +39 -0
- dls_dodal-1.64.0/src/dodal/devices/i17/i17_apple2.py +51 -0
- {dls_dodal-1.62.0/src/dodal/devices/i19 → dls_dodal-1.64.0/src/dodal/devices/i19/access_controlled}/shutter.py +7 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i22/dcm.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/dcm.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/oav_detector.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/oav_parameters.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/snapshots/snapshot.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +12 -12
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/utils.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/pgm.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/robot.py +5 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/tetramm.py +9 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/thawer.py +0 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/util/lookup_tables.py +8 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/v2f.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zocalo/__init__.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zocalo/zocalo_results.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/log.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plan_stubs/motor_utils.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/save_panda.py +7 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/verify_undulator_gap.py +4 -4
- dls_dodal-1.64.0/src/dodal/testing/fixtures/run_engine.py +46 -0
- dls_dodal-1.64.0/src/dodal/testing/fixtures/utils.py +57 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/system_tests/test_adsim.py +9 -9
- dls_dodal-1.64.0/system_tests/test_cli.py +31 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/system_tests/test_oav_system.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/system_tests/test_oav_to_redis_system.py +5 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/beamlines/test_beamline_parameters.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/beamlines/test_commissioning_mode.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/beamlines/test_device_instantiation.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_visit.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_watcher_utils.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/conftest.py +3 -55
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/b07_1/test_ccmc.py +7 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/current_amplifier/test_femto.py +19 -14
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/current_amplifier/test_sr570.py +25 -20
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/abstract/test_base_detector.py +2 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +8 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/conftest.py +19 -11
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/specs/test_detector.py +0 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/specs/test_driver_io.py +13 -13
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_detector.py +2 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/vgscienta/test_detector.py +0 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +12 -13
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i03/test_dcm.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i03/test_undulator_dcm.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i04/test_murko_results.py +90 -56
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i04/test_transfocator.py +6 -2
- dls_dodal-1.64.0/tests/devices/i07/test_dcm.py +36 -0
- dls_dodal-1.64.0/tests/devices/i09_1_shared/test_data/__init__.py +9 -0
- dls_dodal-1.64.0/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +26 -0
- dls_dodal-1.64.0/tests/devices/i09_1_shared/test_undulator_functions.py +53 -0
- dls_dodal-1.62.0/tests/devices/i10/test_i10Apple2.py → dls_dodal-1.64.0/tests/devices/i10/test_i10_apple2.py +294 -161
- dls_dodal-1.64.0/tests/devices/i17/test_i17_apple2.py +51 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i18/test_kb_mirror.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_shutter.py +36 -16
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i22/test_dcm.py +8 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i22/test_fswitch.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i24/test_dual_backlight.py +10 -10
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i24/test_focus_mirrors.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i24/test_pmac.py +14 -14
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i24/test_vgonio.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/mx_phase1/test_beamstop.py +11 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +8 -6
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_oav.py +7 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_oav_utils.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_snapshots.py +8 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/p60/test_lab_xray_source.py +6 -6
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/p99/test_p99_stage.py +9 -9
- dls_dodal-1.64.0/tests/devices/temperature_controller/__init__.py +0 -0
- dls_dodal-1.64.0/tests/devices/temperature_controller/lakeshore/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +9 -11
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +1 -1
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_aperture.py +3 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_aperture_scatterguard.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_apple2_undulator.py +79 -75
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_attenuator.py +5 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_backlight.py +8 -8
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_bart_robot.py +7 -7
- dls_dodal-1.64.0/tests/devices/test_common_dcm.py +46 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_eiger.py +11 -11
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_fast_shutters.py +12 -8
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_focusing_mirror.py +16 -16
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_gridscan.py +12 -12
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_hutch_shutter.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_odin.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_smargon.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_synchrotron.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_tetramm.py +11 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_thawer.py +3 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_utils.py +8 -8
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_webcam.py +2 -5
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_xbpm_feedback.py +9 -9
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_xspress3.py +7 -7
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_zebra_constants_mapping.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_zocalo_results.py +26 -24
- dls_dodal-1.64.0/tests/devices/util/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_adjuster_plans.py +4 -4
- dls_dodal-1.64.0/tests/fake_zocalo/__init__.py +0 -0
- dls_dodal-1.64.0/tests/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_data_session.py +4 -4
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_motor_util_plans.py +32 -26
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_topup_plan.py +19 -10
- dls_dodal-1.64.0/tests/plans/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/conftest.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_bimorph.py +23 -23
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +2 -2
- dls_dodal-1.64.0/tests/plans/test_preprocessors/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +6 -6
- {dls_dodal-1.62.0/tests/devices/util → dls_dodal-1.64.0/tests/plans}/test_save_panda.py +0 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_scanspec.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_verify_undulator_gap_plan.py +5 -3
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_wrapped.py +8 -8
- dls_dodal-1.64.0/tests/preprocessors/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/preprocessors/test_filesystem_metadata.py +24 -24
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_cli.py +2 -2
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_log.py +28 -28
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_utils.py +1 -1
- dls_dodal-1.62.0/src/dls_dodal.egg-info/entry_points.txt +0 -3
- dls_dodal-1.62.0/src/dodal/beamlines/i10-1.py +0 -25
- dls_dodal-1.62.0/src/dodal/beamlines/i17.py +0 -37
- dls_dodal-1.62.0/src/dodal/devices/i09/__init__.py +0 -4
- dls_dodal-1.62.0/src/dodal/devices/i09/dcm.py +0 -26
- dls_dodal-1.62.0/src/dodal/devices/i15/dcm.py +0 -78
- dls_dodal-1.62.0/system_tests/test_cli.py +0 -12
- dls_dodal-1.62.0/tests/devices/i09/test_dcm.py +0 -52
- dls_dodal-1.62.0/tests/devices/i15/test_dcm.py +0 -17
- dls_dodal-1.62.0/tests/devices/test.png +0 -0
- dls_dodal-1.62.0/tests/devices/test_common_dcm.py +0 -8
- dls_dodal-1.62.0/tests/devices/test_status.py +0 -14
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.gitignore +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/Dockerfile +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/LICENSE +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/README.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/conf.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/umls/apple2_design.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations/umls/i10_id_design.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/explanations.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/genindex.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/create-beamline.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/create-device.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/external-io-devices.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/move-code.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to/zocalo.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/how-to.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/index.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/reference/standards.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/reference.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/tutorials/get_started.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/pull_request_template.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/setup.cfg +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamline_specific_utils/i05_shared.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b07.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b07_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b16.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/b18.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i05.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i05_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i11.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i15.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/k07.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/k11.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/p60.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/data_util.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/device_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/common/watcher_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
- /dls_dodal-1.62.0/src/dodal/devices/areadetector/plugins/CAM.py → /dls_dodal-1.64.0/src/dodal/devices/areadetector/plugins/cam.py +0 -0
- /dls_dodal-1.62.0/src/dodal/devices/areadetector/plugins/MJPG.py → /dls_dodal-1.64.0/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/attenuator/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b07/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b07/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b07_1/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b07_1/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b16/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/b16/detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/collimation_table.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/controllers.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/energy_sources.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/specs/detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/types.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/util.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/eurotherm.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i02_1/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i10 → dls_dodal-1.64.0/src/dodal/devices/i02_2}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i04/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i04/constants.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i05/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i05/enums.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i10/rasor → dls_dodal-1.64.0/src/dodal/devices/i07}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i09/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i09_1/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i09_1/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i11 → dls_dodal-1.64.0/src/dodal/devices/i10/rasor}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i13_1 → dls_dodal-1.64.0/src/dodal/devices/i11}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i11/diff_stages.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i11/mythen.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i11/nx100robot.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i11/spinner.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i15 → dls_dodal-1.64.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i18 → dls_dodal-1.64.0/src/dodal/devices/i15}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/jack.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/laue.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/motors.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i15/rail.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i19 → dls_dodal-1.64.0/src/dodal/devices/i17}/__init__.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i20_1 → dls_dodal-1.64.0/src/dodal/devices/i18}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i18/diode.py +0 -0
- /dls_dodal-1.62.0/src/dodal/devices/i18/KBMirror.py → /dls_dodal-1.64.0/src/dodal/devices/i18/kb_mirror.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i22 → dls_dodal-1.64.0/src/dodal/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i24 → dls_dodal-1.64.0/src/dodal/devices/i19/access_controlled}/__init__.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i19 → dls_dodal-1.64.0/src/dodal/devices/i19/access_controlled}/blueapi_device.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/i19 → dls_dodal-1.64.0/src/dodal/devices/i19/access_controlled}/hutch_access.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i19/backlight.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i19/diffractometer.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/mx_phase1 → dls_dodal-1.64.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i21/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i21/enums.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/oav → dls_dodal-1.64.0/src/dodal/devices/i22}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/oav/snapshots → dls_dodal-1.64.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/commissioning_jungfrau.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/p99 → dls_dodal-1.64.0/src/dodal/devices/mx_phase1}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/temperture_controller/lakeshore → dls_dodal-1.64.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/util → dls_dodal-1.64.0/src/dodal/devices/oav/snapshots}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p60/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p60/enums.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/xspress3 → dls_dodal-1.64.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p99/andor2_point.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/positioner.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
- {dls_dodal-1.62.0/src/dodal/devices/zebra → dls_dodal-1.64.0/src/dodal/devices/temperture_controller/lakeshore}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.62.0/src/dodal/parameters → dls_dodal-1.64.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.62.0/src/dodal/plan_stubs → dls_dodal-1.64.0/src/dodal/devices/xspress3}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.62.0/src/dodal/plans/preprocessors → dls_dodal-1.64.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zebra/zebra.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.62.0/system_tests → dls_dodal-1.64.0/src/dodal/parameters}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.62.0/tests → dls_dodal-1.64.0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/bimorph.py +0 -0
- {dls_dodal-1.62.0/tests/beamlines → dls_dodal-1.64.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/testing/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
- {dls_dodal-1.62.0/tests/common → dls_dodal-1.64.0/src/dodal/testing/fixtures}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/testing/setup.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.62.0/tests/common/beamlines → dls_dodal-1.64.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices → dls_dodal-1.64.0/tests}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/aithre_lasershaping → dls_dodal-1.64.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/beamlines/test_b16.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/beamlines/test_i03.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/beamlines/test_i24.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/beamlines/test_mapping.py +0 -0
- {dls_dodal-1.62.0/tests/devices/b07_1 → dls_dodal-1.64.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/current_amplifier → dls_dodal-1.64.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.62.0/tests/devices/detector → dls_dodal-1.64.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/electron_analyser → dls_dodal-1.64.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
- {dls_dodal-1.62.0/tests/devices/electron_analyser/abstract → dls_dodal-1.64.0/tests/devices/b07_1}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/electron_analyser/specs → dls_dodal-1.64.0/tests/devices/current_amplifier}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.64.0/tests/devices/detector}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/detector/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/detector/test_detector.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i02_1 → dls_dodal-1.64.0/tests/devices/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i03 → dls_dodal-1.64.0/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i04 → dls_dodal-1.64.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/specs/test_region.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_energy_sources.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/test_util.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i09 → dls_dodal-1.64.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i10 → dls_dodal-1.64.0/tests/devices/i02_1}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i11 → dls_dodal-1.64.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i13_1 → dls_dodal-1.64.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i15 → dls_dodal-1.64.0/tests/devices/i07}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i18 → dls_dodal-1.64.0/tests/devices/i09}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i19 → dls_dodal-1.64.0/tests/devices/i09_1}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i22 → dls_dodal-1.64.0/tests/devices/i09_1_shared}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/i24 → dls_dodal-1.64.0/tests/devices/i10}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.62.0/tests/devices/mx_phase1 → dls_dodal-1.64.0/tests/devices/i11}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i11/test_i11devices.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i11/test_mythen.py +0 -0
- {dls_dodal-1.62.0/tests/devices/oav → dls_dodal-1.64.0/tests/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.62.0/tests/devices/oav/image_recognition → dls_dodal-1.64.0/tests/devices/i15}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/p60 → dls_dodal-1.64.0/tests/devices/i17}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/p99 → dls_dodal-1.64.0/tests/devices/i18}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/devices/temperature_controller → dls_dodal-1.64.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_backlight.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_diffractometer.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_mapt.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i19/test_pin_col.py +0 -0
- {dls_dodal-1.62.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.64.0/tests/devices/i22}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.62.0/tests/devices/util → dls_dodal-1.64.0/tests/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/i24/test_commissioning_jungfrau.py +0 -0
- {dls_dodal-1.62.0/tests/fake_zocalo → dls_dodal-1.64.0/tests/devices/mx_phase1}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/plan_stubs → dls_dodal-1.64.0/tests/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/conftest.py +0 -0
- {dls_dodal-1.62.0/tests/plans → dls_dodal-1.64.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.62.0/tests/plans/test_preprocessors → dls_dodal-1.64.0/tests/devices/p60}/__init__.py +0 -0
- {dls_dodal-1.62.0/tests/preprocessors → dls_dodal-1.64.0/tests/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_baton.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_beam_converter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_controllers.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_motors.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_positioner.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_qbpm.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_scintillator.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_slits.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_turbo_slit.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_undulator.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_zebra.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_zebra_shutter.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/devices/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/__init__.py +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/test_display.configuration +0 -0
- {dls_dodal-1.62.0 → dls_dodal-1.64.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.64.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: click
|
|
217
217
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async[ca,pva]>=0.13.
|
|
218
|
+
Requires-Dist: ophyd-async[ca,pva]>=0.13.5
|
|
219
219
|
Requires-Dist: bluesky>=1.14.5
|
|
220
220
|
Requires-Dist: pyepics
|
|
221
221
|
Requires-Dist: dataclasses-json
|
|
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
245
245
|
Requires-Dist: pre-commit; extra == "dev"
|
|
246
246
|
Requires-Dist: psutil; extra == "dev"
|
|
247
247
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
248
|
-
Requires-Dist: pyright; extra == "dev"
|
|
248
|
+
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
249
249
|
Requires-Dist: pytest; extra == "dev"
|
|
250
250
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
251
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
import logging
|
|
3
2
|
import sys
|
|
4
|
-
import time
|
|
5
|
-
from collections.abc import Mapping
|
|
6
3
|
from os import environ
|
|
7
4
|
from pathlib import Path
|
|
8
5
|
from unittest.mock import MagicMock, patch
|
|
9
6
|
|
|
10
7
|
import pytest
|
|
11
|
-
from bluesky.run_engine import RunEngine
|
|
12
8
|
from ophyd.status import Status
|
|
13
9
|
from ophyd_async.core import (
|
|
14
10
|
PathInfo,
|
|
@@ -37,7 +33,7 @@ mock_paths = [
|
|
|
37
33
|
]
|
|
38
34
|
mock_attributes_table = {
|
|
39
35
|
"i03": mock_paths,
|
|
40
|
-
"
|
|
36
|
+
"i10_optics": mock_paths,
|
|
41
37
|
"i04": mock_paths,
|
|
42
38
|
"s04": mock_paths,
|
|
43
39
|
"i19_1": mock_paths,
|
|
@@ -49,6 +45,10 @@ BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
|
|
|
49
45
|
environ["DODAL_TEST_MODE"] = "true"
|
|
50
46
|
|
|
51
47
|
|
|
48
|
+
# Add run_engine fixtures to be used in tests
|
|
49
|
+
pytest_plugins = ["dodal.testing.fixtures.run_engine"]
|
|
50
|
+
|
|
51
|
+
|
|
52
52
|
@pytest.fixture(autouse=True)
|
|
53
53
|
def patch_open_to_prevent_dls_reads_in_tests():
|
|
54
54
|
unpatched_open = open
|
|
@@ -105,37 +105,7 @@ async def static_path_provider(
|
|
|
105
105
|
return svpp
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
@pytest.fixture
|
|
109
|
-
def run_engine_documents(RE: RunEngine) -> Mapping[str, list[dict]]:
|
|
110
|
-
docs: dict[str, list[dict]] = {}
|
|
111
|
-
|
|
112
|
-
def append_and_print(name, doc):
|
|
113
|
-
if name not in docs:
|
|
114
|
-
docs[name] = []
|
|
115
|
-
docs[name] += [doc]
|
|
116
|
-
|
|
117
|
-
RE.subscribe(append_and_print)
|
|
118
|
-
return docs
|
|
119
|
-
|
|
120
|
-
|
|
121
108
|
def failed_status(failure: Exception) -> Status:
|
|
122
109
|
status = Status()
|
|
123
110
|
status.set_exception(failure)
|
|
124
111
|
return status
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
@pytest.fixture(scope="session", autouse=True)
|
|
128
|
-
async def _ensure_running_bluesky_event_loop():
|
|
129
|
-
RE = RunEngine()
|
|
130
|
-
# make sure the event loop is thoroughly up and running before we try to create
|
|
131
|
-
# any ophyd_async devices which might need it
|
|
132
|
-
timeout = time.monotonic() + 1
|
|
133
|
-
while not RE.loop.is_running():
|
|
134
|
-
await asyncio.sleep(0)
|
|
135
|
-
if time.monotonic() > timeout:
|
|
136
|
-
raise TimeoutError("This really shouldn't happen but just in case...")
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
@pytest.fixture()
|
|
140
|
-
async def RE():
|
|
141
|
-
yield RunEngine()
|
|
@@ -21,7 +21,7 @@ you will not get the option to edit the release notes.
|
|
|
21
21
|
|
|
22
22
|
A new release will be made and the wheel and sdist uploaded to PyPI.
|
|
23
23
|
|
|
24
|
-
[release]: https://github.com/DiamondLightSource/
|
|
24
|
+
[release]: https://github.com/DiamondLightSource/dodal/releases
|
|
25
25
|
|
|
26
26
|
## Deciding release numbers
|
|
27
27
|
|
|
@@ -58,9 +58,11 @@ class MyDevice(StandardReadable, Stageable):
|
|
|
58
58
|
|
|
59
59
|
In this example, we need to test the `stage` and `unstage` methods. For more complex devices, it is also a good idea to test the `read` method to confirm that we get the expected read signals back when this method is called.
|
|
60
60
|
|
|
61
|
-
We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
|
|
61
|
+
We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Common fixtures, such as the `run_engine` used in the below tests, can also be defined in `dodal/tests/conftest.py`, which is a special file recognised by `pytest`. These fixtures are automatically available to any test in the same directory (and its subdirectories) without needing to import them. This is useful for defining common setup code once without duplicating it across test files.
|
|
64
|
+
|
|
65
|
+
Devices are set up in the fixture using the `init_devices(mock=True)` function from `ophyd_async.core`, which automatically initialises the device in mock mode.
|
|
64
66
|
|
|
65
67
|
In order for `pytest` to detect something as a test, a function should begin with `test_*`. The test function should be self-descriptive about what it is testing, and it is acceptable (even encouraged) to have longer names for test functions for clarity.
|
|
66
68
|
|
|
@@ -75,29 +77,27 @@ from ophyd_async.testing import assert_reading, get_mock_put, partial_reading
|
|
|
75
77
|
from dodal.device.my_device import MyDevice
|
|
76
78
|
|
|
77
79
|
|
|
78
|
-
# RunEngine is needed to make sure there is an event loop when creating device.
|
|
79
80
|
@pytest.fixture
|
|
80
|
-
async def sim_my_device(
|
|
81
|
+
async def sim_my_device() -> MyDevice:
|
|
81
82
|
async with init_devices(mock=True):
|
|
82
83
|
sim_my_device = MyDevice("TEST:")
|
|
83
84
|
return sim_my_device
|
|
84
85
|
|
|
85
86
|
|
|
86
|
-
def test_my_device_stage(sim_my_device: MyDevice,
|
|
87
|
-
|
|
87
|
+
def test_my_device_stage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
|
|
88
|
+
run_engine(bps.stage(sim_my_device, wait=True), wait=True)
|
|
88
89
|
get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.ON, wait=True)
|
|
89
90
|
|
|
90
91
|
|
|
91
|
-
def test_my_device_unstage(sim_my_device: MyDevice,
|
|
92
|
-
|
|
92
|
+
def test_my_device_unstage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
|
|
93
|
+
run_engine(bps.unstage(sim_my_device, wait=True), wait=True)
|
|
93
94
|
get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.OFF, wait=True)
|
|
94
|
-
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
You should test the output of a device when the device has many signals read and you want to ensure the correct ones are read at the correct times, or when the `read` method of it or one of its signals (e.g. a DerivedSignal) requires testing. Functions are defined in `ophyd-async` to aid with this. `assert_reading` allows us to compare the readings generated from a `Readable` device to the expected results.
|
|
98
98
|
|
|
99
99
|
```Python
|
|
100
|
-
async def test_my_device_read(sim_my_device: MyDevice,
|
|
100
|
+
async def test_my_device_read(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
|
|
101
101
|
prefix = sim_my_device.name
|
|
102
102
|
await assert_reading(
|
|
103
103
|
sim_my_device,
|
|
@@ -112,7 +112,7 @@ Whilst it would be possible to do:
|
|
|
112
112
|
this has potential negative side effects:
|
|
113
113
|
|
|
114
114
|
* When the plan is simulated it will still set the parameter on the device
|
|
115
|
-
* There may be external things attached to the
|
|
115
|
+
* There may be external things attached to the RunEngine that are tracking messages e.g. metrics. A set like this would be
|
|
116
116
|
lost
|
|
117
117
|
|
|
118
118
|
Instead you should make a soft signal:
|
|
@@ -14,7 +14,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
|
|
|
14
14
|
dependencies = [
|
|
15
15
|
"click",
|
|
16
16
|
"ophyd",
|
|
17
|
-
"ophyd-async[ca,pva]>=0.13.
|
|
17
|
+
"ophyd-async[ca,pva]>=0.13.5",
|
|
18
18
|
"bluesky>=1.14.5",
|
|
19
19
|
"pyepics",
|
|
20
20
|
"dataclasses-json",
|
|
@@ -23,15 +23,15 @@ dependencies = [
|
|
|
23
23
|
"requests",
|
|
24
24
|
"graypy",
|
|
25
25
|
"pydantic>=2.0",
|
|
26
|
-
"opencv-python-headless",
|
|
26
|
+
"opencv-python-headless", # For pin-tip detection.
|
|
27
27
|
"numpy",
|
|
28
28
|
"aiofiles",
|
|
29
29
|
"aiohttp",
|
|
30
30
|
"redis",
|
|
31
31
|
"scanspec>=0.7.3",
|
|
32
|
-
"pyzmq==26.3.0",
|
|
32
|
+
"pyzmq==26.3.0", # Until we can move to RHEL 8 https://github.com/DiamondLightSource/mx-bluesky/issues/1139
|
|
33
33
|
"deepdiff",
|
|
34
|
-
"daq-config-server>=v1.0.0-rc.2"
|
|
34
|
+
"daq-config-server>=v1.0.0-rc.2", # For getting Configuration settings.
|
|
35
35
|
]
|
|
36
36
|
|
|
37
37
|
dynamic = ["version"]
|
|
@@ -54,7 +54,8 @@ dev = [
|
|
|
54
54
|
"pre-commit",
|
|
55
55
|
"psutil",
|
|
56
56
|
"pydata-sphinx-theme>=0.12",
|
|
57
|
-
|
|
57
|
+
# Pin to previous pyright until https://github.com/microsoft/pyright/issues/11060 is fixed
|
|
58
|
+
"pyright==1.1.406",
|
|
58
59
|
"pytest",
|
|
59
60
|
"pytest-asyncio",
|
|
60
61
|
"pytest-cov",
|
|
@@ -76,7 +77,7 @@ dev = [
|
|
|
76
77
|
|
|
77
78
|
[project.scripts]
|
|
78
79
|
dodal = "dodal.__main__:main"
|
|
79
|
-
save-panda = "dodal.
|
|
80
|
+
save-panda = "dodal.plans.save_panda:main"
|
|
80
81
|
|
|
81
82
|
[project.urls]
|
|
82
83
|
GitHub = "https://github.com/DiamondLightSource/dodal"
|
|
@@ -136,6 +137,8 @@ testpaths = "docs src tests system_tests"
|
|
|
136
137
|
exclude_also = [
|
|
137
138
|
'^"""', # Ignore the start/end of a file-level triple quoted docstring
|
|
138
139
|
]
|
|
140
|
+
# Exclude pytest.fixtures from code coverage report
|
|
141
|
+
omit = ["*/dodal/testing/fixtures/*"]
|
|
139
142
|
|
|
140
143
|
[tool.coverage.run]
|
|
141
144
|
data_file = "/tmp/dodal.coverage"
|
|
@@ -182,6 +185,7 @@ lint.select = [
|
|
|
182
185
|
"C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
|
|
183
186
|
"E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
|
|
184
187
|
"F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
|
|
188
|
+
"N", # pep8-naming - https://docs.astral.sh/ruff/rules/#pep8-naming-n
|
|
185
189
|
"W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
|
|
186
190
|
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
|
|
187
191
|
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
|
|
@@ -194,7 +198,7 @@ lint.select = [
|
|
|
194
198
|
[tool.ruff.lint.per-file-ignores]
|
|
195
199
|
# By default, private member access is allowed in tests
|
|
196
200
|
# See https://github.com/DiamondLightSource/python-copier-template/issues/154
|
|
197
|
-
# Remove this line to forbid private member access, walrus operators, banned api in asserts in tests
|
|
201
|
+
# Remove this line to forbid private member access, walrus operators, banned api in asserts in tests
|
|
198
202
|
"tests/**/*" = ["SLF001", "RUF018", "TID251"]
|
|
199
203
|
"system_tests/**/*" = ["SLF001", "RUF018", "TID251"]
|
|
200
204
|
".github/**/*" = ["INP001"]
|
|
@@ -203,6 +207,10 @@ lint.select = [
|
|
|
203
207
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
204
208
|
"time.sleep".msg = "Use bps.sleep or asyncio.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
|
|
205
209
|
|
|
210
|
+
[tool.ruff.lint.flake8-import-conventions.extend-aliases]
|
|
211
|
+
# We often shorten "Annotated" to "A" for brevity
|
|
212
|
+
"typing.Annotated" = "A"
|
|
213
|
+
|
|
206
214
|
[tool.importlinter]
|
|
207
215
|
root_package = "dodal"
|
|
208
216
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.64.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: click
|
|
217
217
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async[ca,pva]>=0.13.
|
|
218
|
+
Requires-Dist: ophyd-async[ca,pva]>=0.13.5
|
|
219
219
|
Requires-Dist: bluesky>=1.14.5
|
|
220
220
|
Requires-Dist: pyepics
|
|
221
221
|
Requires-Dist: dataclasses-json
|
|
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
245
245
|
Requires-Dist: pre-commit; extra == "dev"
|
|
246
246
|
Requires-Dist: psutil; extra == "dev"
|
|
247
247
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
248
|
-
Requires-Dist: pyright; extra == "dev"
|
|
248
|
+
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
249
249
|
Requires-Dist: pytest; extra == "dev"
|
|
250
250
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
251
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -104,15 +104,18 @@ src/dodal/beamlines/b16.py
|
|
|
104
104
|
src/dodal/beamlines/b18.py
|
|
105
105
|
src/dodal/beamlines/b21.py
|
|
106
106
|
src/dodal/beamlines/i02_1.py
|
|
107
|
+
src/dodal/beamlines/i02_2.py
|
|
107
108
|
src/dodal/beamlines/i03.py
|
|
108
109
|
src/dodal/beamlines/i04.py
|
|
109
110
|
src/dodal/beamlines/i05.py
|
|
110
111
|
src/dodal/beamlines/i05_1.py
|
|
112
|
+
src/dodal/beamlines/i07.py
|
|
111
113
|
src/dodal/beamlines/i09.py
|
|
112
114
|
src/dodal/beamlines/i09_1.py
|
|
113
115
|
src/dodal/beamlines/i09_2.py
|
|
114
|
-
src/dodal/beamlines/i10-1.py
|
|
115
116
|
src/dodal/beamlines/i10.py
|
|
117
|
+
src/dodal/beamlines/i10_1.py
|
|
118
|
+
src/dodal/beamlines/i10_optics.py
|
|
116
119
|
src/dodal/beamlines/i11.py
|
|
117
120
|
src/dodal/beamlines/i13_1.py
|
|
118
121
|
src/dodal/beamlines/i15.py
|
|
@@ -198,9 +201,9 @@ src/dodal/devices/aithre_lasershaping/__init__.py
|
|
|
198
201
|
src/dodal/devices/aithre_lasershaping/goniometer.py
|
|
199
202
|
src/dodal/devices/aithre_lasershaping/laser_robot.py
|
|
200
203
|
src/dodal/devices/areadetector/__init__.py
|
|
201
|
-
src/dodal/devices/areadetector/plugins/CAM.py
|
|
202
|
-
src/dodal/devices/areadetector/plugins/MJPG.py
|
|
203
204
|
src/dodal/devices/areadetector/plugins/__init__.py
|
|
205
|
+
src/dodal/devices/areadetector/plugins/cam.py
|
|
206
|
+
src/dodal/devices/areadetector/plugins/mjpg.py
|
|
204
207
|
src/dodal/devices/attenuator/__init__.py
|
|
205
208
|
src/dodal/devices/attenuator/attenuator.py
|
|
206
209
|
src/dodal/devices/attenuator/filter.py
|
|
@@ -248,6 +251,7 @@ src/dodal/devices/electron_analyser/vgscienta/region.py
|
|
|
248
251
|
src/dodal/devices/i02_1/__init__.py
|
|
249
252
|
src/dodal/devices/i02_1/fast_grid_scan.py
|
|
250
253
|
src/dodal/devices/i02_1/sample_motors.py
|
|
254
|
+
src/dodal/devices/i02_2/__init__.py
|
|
251
255
|
src/dodal/devices/i03/__init__.py
|
|
252
256
|
src/dodal/devices/i03/dcm.py
|
|
253
257
|
src/dodal/devices/i03/undulator_dcm.py
|
|
@@ -257,11 +261,14 @@ src/dodal/devices/i04/murko_results.py
|
|
|
257
261
|
src/dodal/devices/i04/transfocator.py
|
|
258
262
|
src/dodal/devices/i05/__init__.py
|
|
259
263
|
src/dodal/devices/i05/enums.py
|
|
264
|
+
src/dodal/devices/i07/__init__.py
|
|
265
|
+
src/dodal/devices/i07/dcm.py
|
|
260
266
|
src/dodal/devices/i09/__init__.py
|
|
261
|
-
src/dodal/devices/i09/dcm.py
|
|
262
267
|
src/dodal/devices/i09/enums.py
|
|
263
268
|
src/dodal/devices/i09_1/__init__.py
|
|
264
269
|
src/dodal/devices/i09_1/enums.py
|
|
270
|
+
src/dodal/devices/i09_1_shared/__init__.py
|
|
271
|
+
src/dodal/devices/i09_1_shared/hard_undulator_functions.py
|
|
265
272
|
src/dodal/devices/i10/__init__.py
|
|
266
273
|
src/dodal/devices/i10/diagnostics.py
|
|
267
274
|
src/dodal/devices/i10/i10_apple2.py
|
|
@@ -289,18 +296,21 @@ src/dodal/devices/i15/laue.py
|
|
|
289
296
|
src/dodal/devices/i15/motors.py
|
|
290
297
|
src/dodal/devices/i15/multilayer_mirror.py
|
|
291
298
|
src/dodal/devices/i15/rail.py
|
|
292
|
-
src/dodal/devices/
|
|
299
|
+
src/dodal/devices/i17/__init__.py
|
|
300
|
+
src/dodal/devices/i17/i17_apple2.py
|
|
293
301
|
src/dodal/devices/i18/__init__.py
|
|
294
302
|
src/dodal/devices/i18/diode.py
|
|
303
|
+
src/dodal/devices/i18/kb_mirror.py
|
|
295
304
|
src/dodal/devices/i19/__init__.py
|
|
296
305
|
src/dodal/devices/i19/backlight.py
|
|
297
306
|
src/dodal/devices/i19/beamstop.py
|
|
298
|
-
src/dodal/devices/i19/blueapi_device.py
|
|
299
307
|
src/dodal/devices/i19/diffractometer.py
|
|
300
|
-
src/dodal/devices/i19/hutch_access.py
|
|
301
308
|
src/dodal/devices/i19/mapt_configuration.py
|
|
302
309
|
src/dodal/devices/i19/pin_col_stages.py
|
|
303
|
-
src/dodal/devices/i19/
|
|
310
|
+
src/dodal/devices/i19/access_controlled/__init__.py
|
|
311
|
+
src/dodal/devices/i19/access_controlled/blueapi_device.py
|
|
312
|
+
src/dodal/devices/i19/access_controlled/hutch_access.py
|
|
313
|
+
src/dodal/devices/i19/access_controlled/shutter.py
|
|
304
314
|
src/dodal/devices/i20_1/__init__.py
|
|
305
315
|
src/dodal/devices/i21/__init__.py
|
|
306
316
|
src/dodal/devices/i21/enums.py
|
|
@@ -379,6 +389,9 @@ src/dodal/testing/__init__.py
|
|
|
379
389
|
src/dodal/testing/setup.py
|
|
380
390
|
src/dodal/testing/electron_analyser/__init__.py
|
|
381
391
|
src/dodal/testing/electron_analyser/device_factory.py
|
|
392
|
+
src/dodal/testing/fixtures/__init__.py
|
|
393
|
+
src/dodal/testing/fixtures/run_engine.py
|
|
394
|
+
src/dodal/testing/fixtures/utils.py
|
|
382
395
|
system_tests/__init__.py
|
|
383
396
|
system_tests/test_adsim.py
|
|
384
397
|
system_tests/test_cli.py
|
|
@@ -415,7 +428,6 @@ tests/common/beamlines/test_beamline_utils.py
|
|
|
415
428
|
tests/common/beamlines/test_commissioning_mode.py
|
|
416
429
|
tests/common/beamlines/test_device_instantiation.py
|
|
417
430
|
tests/devices/__init__.py
|
|
418
|
-
tests/devices/test.png
|
|
419
431
|
tests/devices/test_aperture.py
|
|
420
432
|
tests/devices/test_aperture_scatterguard.py
|
|
421
433
|
tests/devices/test_apple2_undulator.py
|
|
@@ -441,7 +453,6 @@ tests/devices/test_qbpm.py
|
|
|
441
453
|
tests/devices/test_scintillator.py
|
|
442
454
|
tests/devices/test_slits.py
|
|
443
455
|
tests/devices/test_smargon.py
|
|
444
|
-
tests/devices/test_status.py
|
|
445
456
|
tests/devices/test_synchrotron.py
|
|
446
457
|
tests/devices/test_tetramm.py
|
|
447
458
|
tests/devices/test_thawer.py
|
|
@@ -501,10 +512,16 @@ tests/devices/i03/test_undulator_dcm.py
|
|
|
501
512
|
tests/devices/i04/__init__.py
|
|
502
513
|
tests/devices/i04/test_murko_results.py
|
|
503
514
|
tests/devices/i04/test_transfocator.py
|
|
515
|
+
tests/devices/i07/__init__.py
|
|
516
|
+
tests/devices/i07/test_dcm.py
|
|
504
517
|
tests/devices/i09/__init__.py
|
|
505
|
-
tests/devices/
|
|
518
|
+
tests/devices/i09_1/__init__.py
|
|
519
|
+
tests/devices/i09_1_shared/__init__.py
|
|
520
|
+
tests/devices/i09_1_shared/test_undulator_functions.py
|
|
521
|
+
tests/devices/i09_1_shared/test_data/__init__.py
|
|
522
|
+
tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt
|
|
506
523
|
tests/devices/i10/__init__.py
|
|
507
|
-
tests/devices/i10/
|
|
524
|
+
tests/devices/i10/test_i10_apple2.py
|
|
508
525
|
tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv
|
|
509
526
|
tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv
|
|
510
527
|
tests/devices/i10/test_data/__init__.py
|
|
@@ -518,7 +535,8 @@ tests/devices/i11/test_mythen.py
|
|
|
518
535
|
tests/devices/i13_1/__init__.py
|
|
519
536
|
tests/devices/i13_1/test_merlin.py
|
|
520
537
|
tests/devices/i15/__init__.py
|
|
521
|
-
tests/devices/
|
|
538
|
+
tests/devices/i17/__init__.py
|
|
539
|
+
tests/devices/i17/test_i17_apple2.py
|
|
522
540
|
tests/devices/i18/__init__.py
|
|
523
541
|
tests/devices/i18/test_kb_mirror.py
|
|
524
542
|
tests/devices/i19/__init__.py
|
|
@@ -577,7 +595,6 @@ tests/devices/util/__init__.py
|
|
|
577
595
|
tests/devices/util/test_adjuster_plans.py
|
|
578
596
|
tests/devices/util/test_beamline_specific_utils.py
|
|
579
597
|
tests/devices/util/test_lookup_tables.py
|
|
580
|
-
tests/devices/util/test_save_panda.py
|
|
581
598
|
tests/devices/util/test_data/__init__.py
|
|
582
599
|
tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt
|
|
583
600
|
tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt
|
|
@@ -599,6 +616,7 @@ tests/plans/conftest.py
|
|
|
599
616
|
tests/plans/test_bimorph.py
|
|
600
617
|
tests/plans/test_compliance.py
|
|
601
618
|
tests/plans/test_configure_arm_trigger_and_disarm_detector.py
|
|
619
|
+
tests/plans/test_save_panda.py
|
|
602
620
|
tests/plans/test_scanspec.py
|
|
603
621
|
tests/plans/test_verify_undulator_gap_plan.py
|
|
604
622
|
tests/plans/test_wrapped.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
click
|
|
2
2
|
ophyd
|
|
3
|
-
ophyd-async[ca,pva]>=0.13.
|
|
3
|
+
ophyd-async[ca,pva]>=0.13.5
|
|
4
4
|
bluesky>=1.14.5
|
|
5
5
|
pyepics
|
|
6
6
|
dataclasses-json
|
|
@@ -31,7 +31,7 @@ pipdeptree
|
|
|
31
31
|
pre-commit
|
|
32
32
|
psutil
|
|
33
33
|
pydata-sphinx-theme>=0.12
|
|
34
|
-
pyright
|
|
34
|
+
pyright==1.1.406
|
|
35
35
|
pytest
|
|
36
36
|
pytest-asyncio
|
|
37
37
|
pytest-cov
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.64.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 64, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g15623816b'
|
|
@@ -29,7 +29,9 @@ https://epics-containers.github.io/main/tutorials/launch_example.html
|
|
|
29
29
|
And ensure that the signals are visible:
|
|
30
30
|
|
|
31
31
|
```sh
|
|
32
|
-
export EPICS_CA_ADDR_LIST=127.0.0.1:
|
|
32
|
+
export EPICS_CA_ADDR_LIST=127.0.0.1:9064
|
|
33
|
+
export EPICS_CA_NAME_SERVERS=127.0.0.1:9064
|
|
34
|
+
export EPICS_PVA_NAME_SERVERS=127.0.0.1:9075
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
How to use the devices in a plan:
|
|
@@ -53,10 +55,10 @@ set_path_provider(
|
|
|
53
55
|
)
|
|
54
56
|
)
|
|
55
57
|
|
|
56
|
-
|
|
58
|
+
run_engine = RunEngine()
|
|
57
59
|
d = det(connect_immediately=True)
|
|
58
60
|
s = stage(connect_immediately=True)
|
|
59
|
-
|
|
61
|
+
run_engine(count([d], num=10))
|
|
60
62
|
```
|
|
61
63
|
|
|
62
64
|
"""
|
|
@@ -55,7 +55,9 @@ def mirror() -> SimpleMirror:
|
|
|
55
55
|
|
|
56
56
|
@device_factory()
|
|
57
57
|
def it() -> QDV2F:
|
|
58
|
-
return QDV2F(
|
|
58
|
+
return QDV2F(
|
|
59
|
+
prefix=f"{PREFIX.beamline_prefix}-DI-PHDGN-07:PHD1:", intensity_suffix="I"
|
|
60
|
+
)
|
|
59
61
|
|
|
60
62
|
|
|
61
63
|
@device_factory()
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Beamline i02-2 is also known as VMXi, or I02I"""
|
|
2
|
+
|
|
3
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
4
|
+
device_factory,
|
|
5
|
+
)
|
|
6
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
7
|
+
from dodal.devices.motors import XYStage
|
|
8
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("i02-2")
|
|
13
|
+
PREFIX = BeamlinePrefix(BL, suffix="I")
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
DAQ_CONFIGURATION_PATH = "/dls_sw/i02-2/software/daq_configuration"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@device_factory()
|
|
20
|
+
def synchrotron() -> Synchrotron:
|
|
21
|
+
"""Get the i02-2 synchrotron device, instantiate it if it hasn't already been.
|
|
22
|
+
If this is called when already instantiated in i02-2, it will return the existing object.
|
|
23
|
+
"""
|
|
24
|
+
return Synchrotron()
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@device_factory()
|
|
28
|
+
def sample_motors() -> XYStage:
|
|
29
|
+
"""Get the i02-2 goniometer device, instantiate it if it hasn't already been.
|
|
30
|
+
If this is called when already instantiated in i02-2, it will return the existing object.
|
|
31
|
+
"""
|
|
32
|
+
return XYStage(f"{PREFIX.beamline_prefix}-MO-GONIO-01:SAMPLE:")
|
|
@@ -29,6 +29,7 @@ from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScanThr
|
|
|
29
29
|
from dodal.devices.fluorescence_detector_motion import FluorescenceDetector
|
|
30
30
|
from dodal.devices.flux import Flux
|
|
31
31
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
32
|
+
from dodal.devices.hutch_shutter import HutchShutter
|
|
32
33
|
from dodal.devices.i03 import Beamstop
|
|
33
34
|
from dodal.devices.i03.dcm import DCM
|
|
34
35
|
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
@@ -323,6 +324,14 @@ def sample_shutter() -> ZebraShutter:
|
|
|
323
324
|
return ZebraShutter(f"{PREFIX.beamline_prefix}-EA-SHTR-01:")
|
|
324
325
|
|
|
325
326
|
|
|
327
|
+
@device_factory()
|
|
328
|
+
def hutch_shutter() -> HutchShutter:
|
|
329
|
+
"""Get the i03 hutch shutter device, instantiate it if it hasn't already been.
|
|
330
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
331
|
+
"""
|
|
332
|
+
return HutchShutter(f"{PREFIX.beamline_prefix}-PS-SHTR-01:")
|
|
333
|
+
|
|
334
|
+
|
|
326
335
|
@device_factory()
|
|
327
336
|
def flux() -> Flux:
|
|
328
337
|
"""Get the i03 flux device, instantiate it if it hasn't already been.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
+
from dodal.devices.i07.dcm import DCM
|
|
4
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
5
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
6
|
+
|
|
7
|
+
BL = get_beamline_name("i07")
|
|
8
|
+
set_log_beamline(BL)
|
|
9
|
+
set_utils_beamline(BL)
|
|
10
|
+
PREFIX = BeamlinePrefix(BL)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@device_factory()
|
|
14
|
+
def dcm() -> DCM:
|
|
15
|
+
"""Instantiate DCM using two PV bases"""
|
|
16
|
+
dcm = DCM(
|
|
17
|
+
f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
18
|
+
f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
19
|
+
"dcm",
|
|
20
|
+
)
|
|
21
|
+
return dcm
|
|
@@ -2,9 +2,14 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
2
2
|
device_factory,
|
|
3
3
|
)
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.common_dcm import (
|
|
6
|
+
DoubleCrystalMonochromatorWithDSpacing,
|
|
7
|
+
PitchAndRollCrystal,
|
|
8
|
+
StationaryCrystal,
|
|
9
|
+
)
|
|
5
10
|
from dodal.devices.electron_analyser import DualEnergySource
|
|
6
11
|
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
|
|
7
|
-
from dodal.devices.i09 import
|
|
12
|
+
from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
|
|
8
13
|
from dodal.devices.pgm import PGM
|
|
9
14
|
from dodal.devices.synchrotron import Synchrotron
|
|
10
15
|
from dodal.log import set_beamline as set_log_beamline
|
|
@@ -30,13 +35,15 @@ def pgm() -> PGM:
|
|
|
30
35
|
|
|
31
36
|
|
|
32
37
|
@device_factory()
|
|
33
|
-
def dcm() ->
|
|
34
|
-
return
|
|
38
|
+
def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
|
|
39
|
+
return DoubleCrystalMonochromatorWithDSpacing(
|
|
40
|
+
f"{PREFIX.beamline_prefix}-MO-DCM-01:", PitchAndRollCrystal, StationaryCrystal
|
|
41
|
+
)
|
|
35
42
|
|
|
36
43
|
|
|
37
44
|
@device_factory()
|
|
38
45
|
def energy_source() -> DualEnergySource:
|
|
39
|
-
return DualEnergySource(dcm().
|
|
46
|
+
return DualEnergySource(dcm().energy_in_eV, pgm().energy.user_readback)
|
|
40
47
|
|
|
41
48
|
|
|
42
49
|
# Connect will work again after this work completed
|