dls-dodal 1.45.0__tar.gz → 1.47.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.45.0 → dls_dodal-1.47.0}/PKG-INFO +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/conftest.py +1 -12
- dls_dodal-1.45.0/docs/explanations/decisions/0003-make-devices-factory.md → dls_dodal-1.47.0/docs/explanations/decisions/0004-make-devices-factory.md +1 -1
- dls_dodal-1.47.0/docs/how-to/external-io-devices.md +27 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/reference/device-standards.rst +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/pyproject.toml +8 -8
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/PKG-INFO +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/SOURCES.txt +43 -32
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/requires.txt +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/__init__.py +0 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b07.py +2 -6
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b07_1.py +1 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i03.py +16 -19
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i04.py +49 -17
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i09.py +1 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i09_1.py +1 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i18.py +7 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i22.py +3 -3
- dls_dodal-1.47.0/src/dodal/beamlines/i23.py +111 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/p38.py +4 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/p60.py +2 -6
- dls_dodal-1.47.0/src/dodal/beamlines/p99.py +78 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/beamline_parameters.py +1 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/beamline_utils.py +5 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/data_util.py +4 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/aperturescatterguard.py +47 -47
- dls_dodal-1.47.0/src/dodal/devices/common_dcm.py +77 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +1 -1
- dls_dodal-1.47.0/src/dodal/devices/diamond_filter.py +34 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/eiger.py +1 -1
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/__init__.py +8 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/abstract/__init__.py +28 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/abstract/base_detector.py +210 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +121 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_region.py → dls_dodal-1.47.0/src/dodal/devices/electron_analyser/abstract/base_region.py +2 -9
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/specs/__init__.py +11 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/specs/detector.py +29 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/specs/driver_io.py +64 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_region.py → dls_dodal-1.47.0/src/dodal/devices/electron_analyser/specs/region.py +1 -1
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/types.py +6 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/util.py +13 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/vgscienta/__init__.py +12 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/vgscienta/detector.py +36 -0
- dls_dodal-1.47.0/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +39 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_region.py → dls_dodal-1.47.0/src/dodal/devices/electron_analyser/vgscienta/region.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/fast_grid_scan.py +7 -9
- dls_dodal-1.47.0/src/dodal/devices/i03/__init__.py +3 -0
- {dls_dodal-1.45.0/src/dodal/devices → dls_dodal-1.47.0/src/dodal/devices/i03}/dcm.py +8 -12
- {dls_dodal-1.45.0/src/dodal/devices → dls_dodal-1.47.0/src/dodal/devices/i03}/undulator_dcm.py +6 -4
- dls_dodal-1.47.0/src/dodal/devices/i04/__init__.py +3 -0
- dls_dodal-1.47.0/src/dodal/devices/i04/constants.py +9 -0
- dls_dodal-1.47.0/src/dodal/devices/i04/murko_results.py +195 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/diagnostics.py +9 -61
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i13_1/merlin.py +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i13_1/merlin_controller.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/dcm.py +10 -12
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/dcm.py +8 -17
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/focus_mirrors.py +9 -13
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/pilatus_metadata.py +9 -9
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/pmac.py +19 -14
- {dls_dodal-1.45.0/src/dodal/devices/i03 → dls_dodal-1.47.0/src/dodal/devices/mx_phase1}/beamstop.py +6 -12
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_calculations.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_detector.py +32 -22
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/utils.py +2 -2
- dls_dodal-1.47.0/src/dodal/devices/p99/andor2_point.py +41 -0
- dls_dodal-1.47.0/src/dodal/devices/positioner.py +49 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/tetramm.py +8 -6
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/turbo_slit.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/util/adjuster_plans.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra.py +4 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/__init__.py +0 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_results.py +6 -32
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/log.py +14 -14
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/data_session.py +10 -1
- dls_dodal-1.47.0/src/dodal/plan_stubs/electron_analyser/__init__.py +3 -0
- dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser/configure_controller.py → dls_dodal-1.47.0/src/dodal/plan_stubs/electron_analyser/configure_driver.py +30 -18
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/verify_undulator_gap.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/system_tests/test_adsim.py +7 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/system_tests/test_oav_system.py +8 -8
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/system_tests/test_oav_to_redis_system.py +6 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_mapping.py +0 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_beamline_parameters.py +9 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_beamline_utils.py +5 -18
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/conftest.py +11 -16
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i03/test_beamstop.py +1 -1
- dls_dodal-1.47.0/tests/devices/i04/test_murko_results.py +361 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i13_1/test_merlin.py +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i22/test_dcm.py +21 -16
- dls_dodal-1.47.0/tests/devices/test_common_dcm.py +8 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/test_diamond_filter.py +7 -10
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/abstract/test_base_detector.py +77 -0
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/abstract/test_base_driver_io.py +180 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/electron_analyser/conftest.py +24 -33
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/specs/test_detector.py +41 -0
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/specs/test_driver_io.py +141 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/specs/test_region.py +6 -12
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/test_util.py +85 -0
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/vgscienta/test_detector.py +34 -0
- dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/vgscienta/test_driver_io.py +143 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py +9 -14
- {dls_dodal-1.45.0/tests/devices/unit_tests → dls_dodal-1.47.0/tests/devices/unit_tests/i03}/test_dcm.py +2 -2
- {dls_dodal-1.45.0/tests/devices/unit_tests → dls_dodal-1.47.0/tests/devices/unit_tests/i03}/test_undulator_dcm.py +3 -3
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +1 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_pmac.py +41 -5
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_utils.py +22 -10
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +14 -10
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_backlight.py +4 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_eiger.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_gridscan.py +13 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_hutch_shutter.py +1 -2
- dls_dodal-1.47.0/tests/devices/unit_tests/test_positioner.py +36 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_tetramm.py +19 -19
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_undulator.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_webcam.py +5 -5
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zocalo_results.py +3 -44
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_data_session.py +14 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_topup_plan.py +6 -4
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/conftest.py +3 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_utils.py +7 -1
- dls_dodal-1.47.0/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/unit_tests/test_cli.py +2 -1
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/unit_tests/test_log.py +9 -7
- dls_dodal-1.45.0/src/dodal/beamlines/i23.py +0 -40
- dls_dodal-1.45.0/src/dodal/beamlines/p99.py +0 -34
- dls_dodal-1.45.0/src/dodal/common/signal_utils.py +0 -88
- dls_dodal-1.45.0/src/dodal/devices/diamond_filter.py +0 -46
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_analyser_io.py +0 -47
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_analyser_io.py +0 -19
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +0 -26
- dls_dodal-1.45.0/src/dodal/devices/logging_ophyd_device.py +0 -17
- dls_dodal-1.45.0/system_tests/test_aperturescatterguard_system.py +0 -165
- dls_dodal-1.45.0/system_tests/test_eiger_system.py +0 -45
- dls_dodal-1.45.0/system_tests/test_gridscan_system.py +0 -43
- dls_dodal-1.45.0/system_tests/test_slit_gaps_system.py +0 -10
- dls_dodal-1.45.0/system_tests/test_smargon_system.py +0 -14
- dls_dodal-1.45.0/system_tests/test_synchrotron_system.py +0 -14
- dls_dodal-1.45.0/system_tests/test_undulator_system.py +0 -16
- dls_dodal-1.45.0/system_tests/test_zebra_system.py +0 -28
- dls_dodal-1.45.0/system_tests/test_zocalo_results.py +0 -140
- dls_dodal-1.45.0/tests/common/test_signal_utils.py +0 -84
- dls_dodal-1.45.0/tests/devices/i10/test_diagnostic.py +0 -27
- dls_dodal-1.45.0/tests/devices/unit_tests/conftest.py +0 -18
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +0 -149
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +0 -78
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_util.py +0 -41
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +0 -119
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.gitignore +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/Dockerfile +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/LICENSE +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/README.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/conf.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/explanations.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/genindex.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/how-to.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/index.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/reference.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/pull_request_template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/setup.cfg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/electron_analyser → dls_dodal-1.47.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/KBMirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/table.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/i03 → dls_dodal-1.47.0/src/dodal/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/hutch_access.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/shutter.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/i13_1 → dls_dodal-1.47.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/i19 → dls_dodal-1.47.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/i20_1 → dls_dodal-1.47.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/i24 → dls_dodal-1.47.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/oav → dls_dodal-1.47.0/src/dodal/devices/training_rig}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/p99 → dls_dodal-1.47.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/training_rig → dls_dodal-1.47.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/util → dls_dodal-1.47.0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.45.0/src/dodal/devices/zebra → dls_dodal-1.47.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.45.0/src/dodal/plan_stubs → dls_dodal-1.47.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser → dls_dodal-1.47.0/tests}/__init__.py +0 -0
- {dls_dodal-1.45.0/src/dodal/plans/preprocessors → dls_dodal-1.47.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.45.0/system_tests → dls_dodal-1.47.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.45.0/tests → dls_dodal-1.47.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests → dls_dodal-1.47.0/tests/common}/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/constants.py +0 -0
- {dls_dodal-1.45.0/tests/beamlines/unit_tests → dls_dodal-1.47.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/common → dls_dodal-1.47.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/common/beamlines → dls_dodal-1.47.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i18/test_table.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
- {dls_dodal-1.45.0/tests/devices → dls_dodal-1.47.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i19/test_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.45.0/tests/devices/i03 → dls_dodal-1.47.0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.45.0/tests/devices/i04 → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/i19 → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/abstract}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/specs}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/vgscienta}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/i24 → dls_dodal-1.47.0/tests/devices/unit_tests/i03}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/oav → dls_dodal-1.47.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/util → dls_dodal-1.47.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_baton.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_motors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_turbo_slit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.45.0/tests/fake_zocalo → dls_dodal-1.47.0/tests/devices/unit_tests/util}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.45.0/tests/unit_tests → dls_dodal-1.47.0/tests/fake_zocalo}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.47.0}/tests/test_data/topup_short_params.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.47.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.10.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.10.0a3
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -4,7 +4,7 @@ import os
|
|
|
4
4
|
import sys
|
|
5
5
|
import time
|
|
6
6
|
from collections.abc import Mapping
|
|
7
|
-
from os import environ
|
|
7
|
+
from os import environ
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Any
|
|
10
10
|
from unittest.mock import MagicMock, patch
|
|
@@ -35,7 +35,6 @@ mock_paths = [
|
|
|
35
35
|
mock_attributes_table = {
|
|
36
36
|
"i03": mock_paths,
|
|
37
37
|
"i10": mock_paths,
|
|
38
|
-
"s03": mock_paths,
|
|
39
38
|
"i04": mock_paths,
|
|
40
39
|
"s04": mock_paths,
|
|
41
40
|
"i19_1": mock_paths,
|
|
@@ -98,16 +97,6 @@ def pytest_runtest_teardown():
|
|
|
98
97
|
sys.modules["dodal.beamlines.beamline_utils"].clear_devices()
|
|
99
98
|
|
|
100
99
|
|
|
101
|
-
s03_epics_server_port = getenv("S03_EPICS_CA_SERVER_PORT")
|
|
102
|
-
s03_epics_repeater_port = getenv("S03_EPICS_CA_REPEATER_PORT")
|
|
103
|
-
|
|
104
|
-
if s03_epics_server_port is not None:
|
|
105
|
-
environ["EPICS_CA_SERVER_PORT"] = s03_epics_server_port
|
|
106
|
-
print(f"[EPICS_CA_SERVER_PORT] = {s03_epics_server_port}")
|
|
107
|
-
if s03_epics_repeater_port is not None:
|
|
108
|
-
environ["EPICS_CA_REPEATER_PORT"] = s03_epics_repeater_port
|
|
109
|
-
print(f"[EPICS_CA_REPEATER_PORT] = {s03_epics_repeater_port}")
|
|
110
|
-
|
|
111
100
|
PATH_INFO_FOR_TESTING: PathInfo = PathInfo(
|
|
112
101
|
directory_path=Path("/does/not/exist"),
|
|
113
102
|
filename="on_this_filesystem",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# How to Write External IO Devices
|
|
2
|
+
|
|
3
|
+
## Motivation and Overview
|
|
4
|
+
|
|
5
|
+
At Diamond Dodal devices primarily refer to python classes referencing EPICS channels, with some internal logic.
|
|
6
|
+
There are instances when input-output operations are desired that do not work with EPICS.
|
|
7
|
+
For example, many GDA-compatible features need disk IO as GDA relies heavily on XML files to define various variables.
|
|
8
|
+
One may need a bluesky calibration plan to start with cached values - those could be in the filesystem or a key value store like Redis.
|
|
9
|
+
|
|
10
|
+
Direct IO inside plans is not allowed when inside the RunEngine context.
|
|
11
|
+
|
|
12
|
+
As far as is possible, we want our devices to only talk to EPICS PVs. The [config server](https://github.com/DiamondLightSource/daq-config-server) should fulfil the majority of use cases. Where we can't do that, it is possible to make ophyd-async devices, but heavily discouraged and that would be a temporary solution until the config server supports that IO.
|
|
13
|
+
It's not recommended to read from the filesystem going forward and instead development effort will be put into the config server.
|
|
14
|
+
|
|
15
|
+
## Extant examples
|
|
16
|
+
|
|
17
|
+
- [aperturescatterguard](../../src/dodal/devices/aperturescatterguard.py) - reads a set of valid positions from a file.
|
|
18
|
+
- [oav_to_redis_forwarder](../../src/dodal/devices/oav/oav_to_redis_forwarder.py) - pushes data into redis
|
|
19
|
+
- [OAV_detector](../../src/dodal/devices/oav/oav_detector.py) - detector configuration is based on a file on disk
|
|
20
|
+
|
|
21
|
+
## Existing patterns
|
|
22
|
+
|
|
23
|
+
Those three devices have been mostly at the MX beamlines. To see a more up to date list, narrow down the search to the [beamlines folder](../../src/dodal/beamlines/) and search for a `dls` string. You will see `Path` calls that are about data writing, but also some ALL_CAPS constants such as `DISPLAY_CONFIG`.
|
|
24
|
+
There are two cases, either the IO operation we're looking into is just on device start, or it's an ongoing thing. If it's just in the start as a config, the established pattern is to provide a Class for that object, and make a standlone function in the device file to load it from the filesystem, taking path as a parameter.
|
|
25
|
+
Then inside the specific file in the beamlines folder, the device takes the product of calling the function with a beamline-specific path. The fact the device just takes an object makes it easier to write mocks for testing.
|
|
26
|
+
|
|
27
|
+
Conversely if the IO is ongoing throughout the lifetime of the device object, AsyncStatus logic must be implemented, as in the oav_to_redis_forwarder, mentioned earlier.
|
|
@@ -150,10 +150,9 @@ based on this and so this has the issues listed above. Instead you should make s
|
|
|
150
150
|
def __init__(self):
|
|
151
151
|
self.underlying_motor = Motor("MOTOR")
|
|
152
152
|
with self.add_children_as_readables():
|
|
153
|
-
self.in_out =
|
|
153
|
+
self.in_out = derived_signal_r(self._get_in_out_from_hardware, current_position= self.underlying_motor)
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
current_position = await self.underlying_motor.get_value()
|
|
155
|
+
def _get_in_out_from_hardware(self, current_position:float)->InOut:
|
|
157
156
|
if isclose(current_position, 0):
|
|
158
157
|
return InOut.IN
|
|
159
158
|
elif isclose(current_position, 100):
|
|
@@ -169,6 +168,6 @@ based on this and so this has the issues listed above. Instead you should make s
|
|
|
169
168
|
else:
|
|
170
169
|
await self.underlying_motor.set(0)
|
|
171
170
|
|
|
172
|
-
|
|
171
|
+
For detail on how to use derived signal see `ophyd-async how to guide. <https://blueskyproject.io/ophyd-async/main/how-to/derive-one-signal-from-others.html>`__
|
|
173
172
|
|
|
174
173
|
.. _flowchart: https://blueskyproject.io/ophyd-async/main/how-to/choose-interfaces-for-devices.html
|
|
@@ -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.10.
|
|
18
|
+
"ophyd-async>=0.10.0a3",
|
|
19
19
|
"bluesky",
|
|
20
20
|
"pyepics",
|
|
21
21
|
"dataclasses-json",
|
|
@@ -24,9 +24,9 @@ dependencies = [
|
|
|
24
24
|
"requests",
|
|
25
25
|
"graypy",
|
|
26
26
|
"pydantic>=2.0",
|
|
27
|
-
"opencv-python-headless",
|
|
28
|
-
"aioca",
|
|
29
|
-
"p4p",
|
|
27
|
+
"opencv-python-headless", # For pin-tip detection.
|
|
28
|
+
"aioca", # Required for CA support with ophyd-async.
|
|
29
|
+
"p4p", # Required for PVA support with ophyd-async.
|
|
30
30
|
"numpy",
|
|
31
31
|
"aiofiles",
|
|
32
32
|
"aiohttp",
|
|
@@ -103,9 +103,9 @@ reportMissingImports = false # Ignore missing stubs in imported modules
|
|
|
103
103
|
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
|
|
104
104
|
asyncio_mode = "auto"
|
|
105
105
|
markers = [
|
|
106
|
-
"s03: marks tests as requiring the s03 simulator running (deselect with '-m \"not s03\"')",
|
|
107
106
|
"adsim: marks tests as requiring the containerised AreaDetector simulator running (deselect with '-m \"not adsim\"')",
|
|
108
107
|
"skip_in_pycharm: marks test as not working in pycharm testrunner",
|
|
108
|
+
"system_test: marks test as other system test that requires infrastructure"
|
|
109
109
|
]
|
|
110
110
|
addopts = """
|
|
111
111
|
--cov=dodal --cov-report term --cov-report xml:cov.xml
|
|
@@ -154,12 +154,12 @@ allowlist_externals =
|
|
|
154
154
|
sphinx-build
|
|
155
155
|
sphinx-autobuild
|
|
156
156
|
commands =
|
|
157
|
-
tests: pytest -m 'not (
|
|
157
|
+
tests: pytest -m 'not (adsim)' --cov=dodal --cov-report term --cov-report xml:cov.xml {posargs}
|
|
158
158
|
type-checking: pyright src tests {posargs}
|
|
159
159
|
pre-commit: pre-commit run --all-files --show-diff-on-failure {posargs}
|
|
160
160
|
docs: sphinx-{posargs:build -E} -T docs build/html
|
|
161
|
-
unit-report: pytest -m 'not (
|
|
162
|
-
system-report: pytest -m 'not (
|
|
161
|
+
unit-report: pytest -m 'not (adsim)' --cov=dodal --cov-report term --cov-report xml:unit_cov.xml --json-report --json-report-file=unit-report.json tests {posargs}
|
|
162
|
+
system-report: pytest -m 'not (adsim or system_test)' --cov=dodal --cov-report term --cov-report xml:system_cov.xml --json-report --json-report-file=system-report.json system_tests {posargs}
|
|
163
163
|
"""
|
|
164
164
|
|
|
165
165
|
[tool.ruff]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.47.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.10.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.10.0a3
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -46,7 +46,7 @@ docs/explanations/reviews.md
|
|
|
46
46
|
docs/explanations/decisions/0001-record-architecture-decisions.md
|
|
47
47
|
docs/explanations/decisions/0002-switched-to-python-copier-template.md
|
|
48
48
|
docs/explanations/decisions/0003-codeowners.md
|
|
49
|
-
docs/explanations/decisions/
|
|
49
|
+
docs/explanations/decisions/0004-make-devices-factory.md
|
|
50
50
|
docs/explanations/decisions/COPYME
|
|
51
51
|
docs/how-to/build-docs.md
|
|
52
52
|
docs/how-to/contribute.md
|
|
@@ -54,6 +54,7 @@ docs/how-to/coverage.md
|
|
|
54
54
|
docs/how-to/create-beamline.rst
|
|
55
55
|
docs/how-to/dev-install.md
|
|
56
56
|
docs/how-to/excalidraw.md
|
|
57
|
+
docs/how-to/external-io-devices.md
|
|
57
58
|
docs/how-to/lint.md
|
|
58
59
|
docs/how-to/lock-requirements.md
|
|
59
60
|
docs/how-to/make-new-ophyd-async-device.rst
|
|
@@ -119,7 +120,6 @@ src/dodal/common/coordination.py
|
|
|
119
120
|
src/dodal/common/crystal_metadata.py
|
|
120
121
|
src/dodal/common/data_util.py
|
|
121
122
|
src/dodal/common/maths.py
|
|
122
|
-
src/dodal/common/signal_utils.py
|
|
123
123
|
src/dodal/common/types.py
|
|
124
124
|
src/dodal/common/udc_directory_provider.py
|
|
125
125
|
src/dodal/common/visit.py
|
|
@@ -136,8 +136,8 @@ src/dodal/devices/apple2_undulator.py
|
|
|
136
136
|
src/dodal/devices/backlight.py
|
|
137
137
|
src/dodal/devices/baton.py
|
|
138
138
|
src/dodal/devices/bimorph_mirror.py
|
|
139
|
+
src/dodal/devices/common_dcm.py
|
|
139
140
|
src/dodal/devices/cryostream.py
|
|
140
|
-
src/dodal/devices/dcm.py
|
|
141
141
|
src/dodal/devices/diamond_filter.py
|
|
142
142
|
src/dodal/devices/eiger.py
|
|
143
143
|
src/dodal/devices/eiger_odin.py
|
|
@@ -148,10 +148,10 @@ src/dodal/devices/focusing_mirror.py
|
|
|
148
148
|
src/dodal/devices/hutch_shutter.py
|
|
149
149
|
src/dodal/devices/ipin.py
|
|
150
150
|
src/dodal/devices/linkam3.py
|
|
151
|
-
src/dodal/devices/logging_ophyd_device.py
|
|
152
151
|
src/dodal/devices/motors.py
|
|
153
152
|
src/dodal/devices/p45.py
|
|
154
153
|
src/dodal/devices/pgm.py
|
|
154
|
+
src/dodal/devices/positioner.py
|
|
155
155
|
src/dodal/devices/pressure_jump_cell.py
|
|
156
156
|
src/dodal/devices/qbpm.py
|
|
157
157
|
src/dodal/devices/robot.py
|
|
@@ -166,7 +166,6 @@ src/dodal/devices/tetramm.py
|
|
|
166
166
|
src/dodal/devices/thawer.py
|
|
167
167
|
src/dodal/devices/turbo_slit.py
|
|
168
168
|
src/dodal/devices/undulator.py
|
|
169
|
-
src/dodal/devices/undulator_dcm.py
|
|
170
169
|
src/dodal/devices/watsonmarlow323_pump.py
|
|
171
170
|
src/dodal/devices/webcam.py
|
|
172
171
|
src/dodal/devices/xbpm_feedback.py
|
|
@@ -189,14 +188,26 @@ src/dodal/devices/detector/det_resolution.py
|
|
|
189
188
|
src/dodal/devices/detector/detector.py
|
|
190
189
|
src/dodal/devices/detector/detector_motion.py
|
|
191
190
|
src/dodal/devices/electron_analyser/__init__.py
|
|
192
|
-
src/dodal/devices/electron_analyser/
|
|
193
|
-
src/dodal/devices/electron_analyser/
|
|
194
|
-
src/dodal/devices/electron_analyser/
|
|
195
|
-
src/dodal/devices/electron_analyser/
|
|
196
|
-
src/dodal/devices/electron_analyser/
|
|
197
|
-
src/dodal/devices/electron_analyser/
|
|
191
|
+
src/dodal/devices/electron_analyser/types.py
|
|
192
|
+
src/dodal/devices/electron_analyser/util.py
|
|
193
|
+
src/dodal/devices/electron_analyser/abstract/__init__.py
|
|
194
|
+
src/dodal/devices/electron_analyser/abstract/base_detector.py
|
|
195
|
+
src/dodal/devices/electron_analyser/abstract/base_driver_io.py
|
|
196
|
+
src/dodal/devices/electron_analyser/abstract/base_region.py
|
|
197
|
+
src/dodal/devices/electron_analyser/specs/__init__.py
|
|
198
|
+
src/dodal/devices/electron_analyser/specs/detector.py
|
|
199
|
+
src/dodal/devices/electron_analyser/specs/driver_io.py
|
|
200
|
+
src/dodal/devices/electron_analyser/specs/region.py
|
|
201
|
+
src/dodal/devices/electron_analyser/vgscienta/__init__.py
|
|
202
|
+
src/dodal/devices/electron_analyser/vgscienta/detector.py
|
|
203
|
+
src/dodal/devices/electron_analyser/vgscienta/driver_io.py
|
|
204
|
+
src/dodal/devices/electron_analyser/vgscienta/region.py
|
|
198
205
|
src/dodal/devices/i03/__init__.py
|
|
199
|
-
src/dodal/devices/i03/
|
|
206
|
+
src/dodal/devices/i03/dcm.py
|
|
207
|
+
src/dodal/devices/i03/undulator_dcm.py
|
|
208
|
+
src/dodal/devices/i04/__init__.py
|
|
209
|
+
src/dodal/devices/i04/constants.py
|
|
210
|
+
src/dodal/devices/i04/murko_results.py
|
|
200
211
|
src/dodal/devices/i04/transfocator.py
|
|
201
212
|
src/dodal/devices/i10/diagnostics.py
|
|
202
213
|
src/dodal/devices/i10/i10_apple2.py
|
|
@@ -233,6 +244,7 @@ src/dodal/devices/i24/i24_detector_motion.py
|
|
|
233
244
|
src/dodal/devices/i24/pilatus_metadata.py
|
|
234
245
|
src/dodal/devices/i24/pmac.py
|
|
235
246
|
src/dodal/devices/i24/vgonio.py
|
|
247
|
+
src/dodal/devices/mx_phase1/beamstop.py
|
|
236
248
|
src/dodal/devices/oav/__init__.py
|
|
237
249
|
src/dodal/devices/oav/oav_calculations.py
|
|
238
250
|
src/dodal/devices/oav/oav_detector.py
|
|
@@ -247,6 +259,7 @@ src/dodal/devices/oav/snapshots/snapshot.py
|
|
|
247
259
|
src/dodal/devices/oav/snapshots/snapshot_image_processing.py
|
|
248
260
|
src/dodal/devices/oav/snapshots/snapshot_with_grid.py
|
|
249
261
|
src/dodal/devices/p99/__init__.py
|
|
262
|
+
src/dodal/devices/p99/andor2_point.py
|
|
250
263
|
src/dodal/devices/p99/sample_stage.py
|
|
251
264
|
src/dodal/devices/training_rig/__init__.py
|
|
252
265
|
src/dodal/devices/training_rig/sample_stage.py
|
|
@@ -272,7 +285,7 @@ src/dodal/plan_stubs/data_session.py
|
|
|
272
285
|
src/dodal/plan_stubs/motor_utils.py
|
|
273
286
|
src/dodal/plan_stubs/wrapped.py
|
|
274
287
|
src/dodal/plan_stubs/electron_analyser/__init__.py
|
|
275
|
-
src/dodal/plan_stubs/electron_analyser/
|
|
288
|
+
src/dodal/plan_stubs/electron_analyser/configure_driver.py
|
|
276
289
|
src/dodal/plans/__init__.py
|
|
277
290
|
src/dodal/plans/save_panda.py
|
|
278
291
|
src/dodal/plans/scanspec.py
|
|
@@ -282,18 +295,9 @@ src/dodal/plans/preprocessors/__init__.py
|
|
|
282
295
|
src/dodal/plans/preprocessors/verify_undulator_gap.py
|
|
283
296
|
system_tests/__init__.py
|
|
284
297
|
system_tests/test_adsim.py
|
|
285
|
-
system_tests/test_aperturescatterguard_system.py
|
|
286
298
|
system_tests/test_cli.py
|
|
287
|
-
system_tests/test_eiger_system.py
|
|
288
|
-
system_tests/test_gridscan_system.py
|
|
289
299
|
system_tests/test_oav_system.py
|
|
290
300
|
system_tests/test_oav_to_redis_system.py
|
|
291
|
-
system_tests/test_slit_gaps_system.py
|
|
292
|
-
system_tests/test_smargon_system.py
|
|
293
|
-
system_tests/test_synchrotron_system.py
|
|
294
|
-
system_tests/test_undulator_system.py
|
|
295
|
-
system_tests/test_zebra_system.py
|
|
296
|
-
system_tests/test_zocalo_results.py
|
|
297
301
|
tests/__init__.py
|
|
298
302
|
tests/conftest.py
|
|
299
303
|
tests/constants.py
|
|
@@ -315,7 +319,6 @@ tests/common/__init__.py
|
|
|
315
319
|
tests/common/test_coordination.py
|
|
316
320
|
tests/common/test_crystal_metadata.py
|
|
317
321
|
tests/common/test_maths.py
|
|
318
|
-
tests/common/test_signal_utils.py
|
|
319
322
|
tests/common/test_udc_directory_provider.py
|
|
320
323
|
tests/common/test_visit.py
|
|
321
324
|
tests/common/beamlines/__init__.py
|
|
@@ -324,12 +327,13 @@ tests/common/beamlines/test_beamline_utils.py
|
|
|
324
327
|
tests/common/beamlines/test_device_helpers.py
|
|
325
328
|
tests/common/beamlines/test_device_instantiation.py
|
|
326
329
|
tests/devices/__init__.py
|
|
330
|
+
tests/devices/test_common_dcm.py
|
|
327
331
|
tests/devices/test_diamond_filter.py
|
|
328
332
|
tests/devices/i03/__init__.py
|
|
329
333
|
tests/devices/i03/test_beamstop.py
|
|
330
334
|
tests/devices/i04/__init__.py
|
|
335
|
+
tests/devices/i04/test_murko_results.py
|
|
331
336
|
tests/devices/i04/test_transfocator.py
|
|
332
|
-
tests/devices/i10/test_diagnostic.py
|
|
333
337
|
tests/devices/i10/test_i10Apple2.py
|
|
334
338
|
tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv
|
|
335
339
|
tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv
|
|
@@ -349,7 +353,6 @@ tests/devices/i22/test_fswitch.py
|
|
|
349
353
|
tests/devices/i22/test_metadataholder.py
|
|
350
354
|
tests/devices/training_rig/test_sample_stage.py
|
|
351
355
|
tests/devices/unit_tests/__init__.py
|
|
352
|
-
tests/devices/unit_tests/conftest.py
|
|
353
356
|
tests/devices/unit_tests/test_OAVCentring.json
|
|
354
357
|
tests/devices/unit_tests/test_aperture.py
|
|
355
358
|
tests/devices/unit_tests/test_aperture_scatterguard.py
|
|
@@ -361,7 +364,6 @@ tests/devices/unit_tests/test_baton.py
|
|
|
361
364
|
tests/devices/unit_tests/test_beam_converter.py
|
|
362
365
|
tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt
|
|
363
366
|
tests/devices/unit_tests/test_bimorph_mirror.py
|
|
364
|
-
tests/devices/unit_tests/test_dcm.py
|
|
365
367
|
tests/devices/unit_tests/test_display.configuration
|
|
366
368
|
tests/devices/unit_tests/test_eiger.py
|
|
367
369
|
tests/devices/unit_tests/test_focusing_mirror.py
|
|
@@ -373,6 +375,7 @@ tests/devices/unit_tests/test_lookup_table.txt
|
|
|
373
375
|
tests/devices/unit_tests/test_lookup_table_2.txt
|
|
374
376
|
tests/devices/unit_tests/test_motors.py
|
|
375
377
|
tests/devices/unit_tests/test_odin.py
|
|
378
|
+
tests/devices/unit_tests/test_positioner.py
|
|
376
379
|
tests/devices/unit_tests/test_pressure_jump_cell.py
|
|
377
380
|
tests/devices/unit_tests/test_qbpm.py
|
|
378
381
|
tests/devices/unit_tests/test_slits.py
|
|
@@ -383,7 +386,6 @@ tests/devices/unit_tests/test_tetramm.py
|
|
|
383
386
|
tests/devices/unit_tests/test_thawer.py
|
|
384
387
|
tests/devices/unit_tests/test_turbo_slit.py
|
|
385
388
|
tests/devices/unit_tests/test_undulator.py
|
|
386
|
-
tests/devices/unit_tests/test_undulator_dcm.py
|
|
387
389
|
tests/devices/unit_tests/test_utils.py
|
|
388
390
|
tests/devices/unit_tests/test_watsonmarlow323_pump.py
|
|
389
391
|
tests/devices/unit_tests/test_webcam.py
|
|
@@ -401,12 +403,21 @@ tests/devices/unit_tests/detector/test_det_resolution.py
|
|
|
401
403
|
tests/devices/unit_tests/detector/test_detector.py
|
|
402
404
|
tests/devices/unit_tests/electron_analyser/__init__.py
|
|
403
405
|
tests/devices/unit_tests/electron_analyser/conftest.py
|
|
404
|
-
tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py
|
|
405
|
-
tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py
|
|
406
|
-
tests/devices/unit_tests/electron_analyser/test_specs_region.py
|
|
407
406
|
tests/devices/unit_tests/electron_analyser/test_util.py
|
|
408
|
-
tests/devices/unit_tests/electron_analyser/
|
|
409
|
-
tests/devices/unit_tests/electron_analyser/
|
|
407
|
+
tests/devices/unit_tests/electron_analyser/abstract/__init__.py
|
|
408
|
+
tests/devices/unit_tests/electron_analyser/abstract/test_base_detector.py
|
|
409
|
+
tests/devices/unit_tests/electron_analyser/abstract/test_base_driver_io.py
|
|
410
|
+
tests/devices/unit_tests/electron_analyser/specs/__init__.py
|
|
411
|
+
tests/devices/unit_tests/electron_analyser/specs/test_detector.py
|
|
412
|
+
tests/devices/unit_tests/electron_analyser/specs/test_driver_io.py
|
|
413
|
+
tests/devices/unit_tests/electron_analyser/specs/test_region.py
|
|
414
|
+
tests/devices/unit_tests/electron_analyser/vgscienta/__init__.py
|
|
415
|
+
tests/devices/unit_tests/electron_analyser/vgscienta/test_detector.py
|
|
416
|
+
tests/devices/unit_tests/electron_analyser/vgscienta/test_driver_io.py
|
|
417
|
+
tests/devices/unit_tests/electron_analyser/vgscienta/test_region.py
|
|
418
|
+
tests/devices/unit_tests/i03/__init__.py
|
|
419
|
+
tests/devices/unit_tests/i03/test_dcm.py
|
|
420
|
+
tests/devices/unit_tests/i03/test_undulator_dcm.py
|
|
410
421
|
tests/devices/unit_tests/i24/__init__.py
|
|
411
422
|
tests/devices/unit_tests/i24/test_dual_backlight.py
|
|
412
423
|
tests/devices/unit_tests/i24/test_focus_mirrors.py
|
|
@@ -2,9 +2,7 @@ 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.electron_analyser.
|
|
6
|
-
SpecsAnalyserDriverIO,
|
|
7
|
-
)
|
|
5
|
+
from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
|
|
8
6
|
from dodal.devices.synchrotron import Synchrotron
|
|
9
7
|
from dodal.log import set_beamline as set_log_beamline
|
|
10
8
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -22,6 +20,4 @@ def synchrotron() -> Synchrotron:
|
|
|
22
20
|
|
|
23
21
|
@device_factory()
|
|
24
22
|
def analyser_driver() -> SpecsAnalyserDriverIO:
|
|
25
|
-
return SpecsAnalyserDriverIO(
|
|
26
|
-
name="analyser_driver", prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:"
|
|
27
|
-
)
|
|
23
|
+
return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
|
|
@@ -2,9 +2,7 @@ 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.electron_analyser.
|
|
6
|
-
SpecsAnalyserDriverIO,
|
|
7
|
-
)
|
|
5
|
+
from dodal.devices.electron_analyser.specs import SpecsAnalyserDriverIO
|
|
8
6
|
from dodal.devices.synchrotron import Synchrotron
|
|
9
7
|
from dodal.log import set_beamline as set_log_beamline
|
|
10
8
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -18,14 +18,15 @@ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
|
18
18
|
from dodal.devices.backlight import Backlight
|
|
19
19
|
from dodal.devices.baton import Baton
|
|
20
20
|
from dodal.devices.cryostream import CryoStream
|
|
21
|
-
from dodal.devices.dcm import DCM
|
|
22
21
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
23
22
|
from dodal.devices.diamond_filter import DiamondFilter, I03Filters
|
|
24
23
|
from dodal.devices.eiger import EigerDetector
|
|
25
24
|
from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
|
|
26
25
|
from dodal.devices.flux import Flux
|
|
27
26
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
28
|
-
from dodal.devices.i03
|
|
27
|
+
from dodal.devices.i03 import Beamstop
|
|
28
|
+
from dodal.devices.i03.dcm import DCM
|
|
29
|
+
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
29
30
|
from dodal.devices.motors import XYZPositioner
|
|
30
31
|
from dodal.devices.oav.oav_detector import OAV
|
|
31
32
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
@@ -37,7 +38,6 @@ from dodal.devices.smargon import Smargon
|
|
|
37
38
|
from dodal.devices.synchrotron import Synchrotron
|
|
38
39
|
from dodal.devices.thawer import Thawer
|
|
39
40
|
from dodal.devices.undulator import Undulator
|
|
40
|
-
from dodal.devices.undulator_dcm import UndulatorDCM
|
|
41
41
|
from dodal.devices.webcam import Webcam
|
|
42
42
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
43
43
|
from dodal.devices.xspress3.xspress3 import Xspress3
|
|
@@ -58,7 +58,7 @@ ZOOM_PARAMS_FILE = (
|
|
|
58
58
|
DISPLAY_CONFIG = "/dls_sw/i03/software/gda_versions/var/display.configuration"
|
|
59
59
|
DAQ_CONFIGURATION_PATH = "/dls_sw/i03/software/daq_configuration"
|
|
60
60
|
|
|
61
|
-
BL = get_beamline_name("
|
|
61
|
+
BL = get_beamline_name("i03")
|
|
62
62
|
set_log_beamline(BL)
|
|
63
63
|
set_utils_beamline(BL)
|
|
64
64
|
|
|
@@ -67,7 +67,6 @@ set_path_provider(PandASubpathProvider())
|
|
|
67
67
|
I03_ZEBRA_MAPPING = ZebraMapping(
|
|
68
68
|
outputs=ZebraTTLOutputs(TTL_DETECTOR=1, TTL_SHUTTER=2, TTL_XSPRESS3=3, TTL_PANDA=4),
|
|
69
69
|
sources=ZebraSources(),
|
|
70
|
-
AND_GATE_FOR_AUTO_SHUTTER=2,
|
|
71
70
|
)
|
|
72
71
|
|
|
73
72
|
PREFIX = BeamlinePrefix(BL)
|
|
@@ -113,12 +112,12 @@ def dcm() -> DCM:
|
|
|
113
112
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
114
113
|
"""
|
|
115
114
|
return DCM(
|
|
116
|
-
f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
117
|
-
"dcm",
|
|
115
|
+
prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
116
|
+
name="dcm",
|
|
118
117
|
)
|
|
119
118
|
|
|
120
119
|
|
|
121
|
-
@device_factory(
|
|
120
|
+
@device_factory()
|
|
122
121
|
def vfm() -> FocusingMirrorWithStripes:
|
|
123
122
|
return FocusingMirrorWithStripes(
|
|
124
123
|
prefix=f"{PREFIX.beamline_prefix}-OP-VFM-01:",
|
|
@@ -130,7 +129,7 @@ def vfm() -> FocusingMirrorWithStripes:
|
|
|
130
129
|
)
|
|
131
130
|
|
|
132
131
|
|
|
133
|
-
@device_factory(
|
|
132
|
+
@device_factory()
|
|
134
133
|
def mirror_voltages() -> MirrorVoltages:
|
|
135
134
|
return MirrorVoltages(
|
|
136
135
|
name="mirror_voltages",
|
|
@@ -147,7 +146,7 @@ def backlight() -> Backlight:
|
|
|
147
146
|
return Backlight(prefix=PREFIX.beamline_prefix, name="backlight")
|
|
148
147
|
|
|
149
148
|
|
|
150
|
-
@device_factory(
|
|
149
|
+
@device_factory()
|
|
151
150
|
def detector_motion() -> DetectorMotion:
|
|
152
151
|
"""Get the i03 detector motion device, instantiate it if it hasn't already been.
|
|
153
152
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -158,7 +157,7 @@ def detector_motion() -> DetectorMotion:
|
|
|
158
157
|
)
|
|
159
158
|
|
|
160
159
|
|
|
161
|
-
@device_factory(
|
|
160
|
+
@device_factory()
|
|
162
161
|
def eiger(mock: bool = False) -> EigerDetector:
|
|
163
162
|
"""Get the i03 Eiger device, instantiate it if it hasn't already been.
|
|
164
163
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -196,7 +195,7 @@ def panda_fast_grid_scan() -> PandAFastGridScan:
|
|
|
196
195
|
)
|
|
197
196
|
|
|
198
197
|
|
|
199
|
-
@device_factory(
|
|
198
|
+
@device_factory()
|
|
200
199
|
def oav(
|
|
201
200
|
params: OAVConfig | None = None,
|
|
202
201
|
) -> OAV:
|
|
@@ -210,7 +209,7 @@ def oav(
|
|
|
210
209
|
)
|
|
211
210
|
|
|
212
211
|
|
|
213
|
-
@device_factory(
|
|
212
|
+
@device_factory()
|
|
214
213
|
def pin_tip_detection() -> PinTipDetection:
|
|
215
214
|
"""Get the i03 pin tip detection device, instantiate it if it hasn't already been.
|
|
216
215
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -240,7 +239,7 @@ def s4_slit_gaps() -> S4SlitGaps:
|
|
|
240
239
|
)
|
|
241
240
|
|
|
242
241
|
|
|
243
|
-
@device_factory(
|
|
242
|
+
@device_factory()
|
|
244
243
|
def synchrotron() -> Synchrotron:
|
|
245
244
|
"""Get the i03 synchrotron device, instantiate it if it hasn't already been.
|
|
246
245
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -316,7 +315,7 @@ def panda() -> HDFPanda:
|
|
|
316
315
|
)
|
|
317
316
|
|
|
318
317
|
|
|
319
|
-
@device_factory(
|
|
318
|
+
@device_factory()
|
|
320
319
|
def sample_shutter() -> ZebraShutter:
|
|
321
320
|
"""Get the i03 sample shutter device, instantiate it if it hasn't already been.
|
|
322
321
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -327,7 +326,7 @@ def sample_shutter() -> ZebraShutter:
|
|
|
327
326
|
)
|
|
328
327
|
|
|
329
328
|
|
|
330
|
-
@device_factory(
|
|
329
|
+
@device_factory()
|
|
331
330
|
def flux() -> Flux:
|
|
332
331
|
"""Get the i03 flux device, instantiate it if it hasn't already been.
|
|
333
332
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -422,9 +421,7 @@ def diamond_filter() -> DiamondFilter[I03Filters]:
|
|
|
422
421
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
423
422
|
"""
|
|
424
423
|
return DiamondFilter[I03Filters](
|
|
425
|
-
|
|
426
|
-
name="diamond_filter",
|
|
427
|
-
data_type=I03Filters,
|
|
424
|
+
f"{PREFIX.beamline_prefix}-MO-FLTR-01:Y", I03Filters
|
|
428
425
|
)
|
|
429
426
|
|
|
430
427
|
|