dls-dodal 1.46.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.46.0 → dls_dodal-1.47.0}/PKG-INFO +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/conftest.py +1 -12
- dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/docs/reference/device-standards.rst +3 -4
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/pyproject.toml +7 -7
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/PKG-INFO +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/SOURCES.txt +36 -28
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/__init__.py +0 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b07.py +2 -6
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b07_1.py +1 -3
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i03.py +12 -15
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i04.py +48 -16
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i09.py +1 -3
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i09_1.py +1 -3
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i23.py +17 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/p38.py +1 -1
- {dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/beamline_parameters.py +1 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/data_util.py +4 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/aperturescatterguard.py +47 -47
- {dls_dodal-1.46.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.46.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.46.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.46.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.46.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.46.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.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.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/diagnostics.py +9 -61
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/focus_mirrors.py +9 -13
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/pilatus_metadata.py +9 -9
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/pmac.py +19 -14
- {dls_dodal-1.46.0/src/dodal/devices/i03 → dls_dodal-1.47.0/src/dodal/devices/mx_phase1}/beamstop.py +6 -12
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_calculations.py +2 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_detector.py +32 -22
- {dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/src/dodal/devices/tetramm.py +5 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/util/adjuster_plans.py +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/__init__.py +0 -3
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_results.py +6 -32
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/log.py +14 -14
- dls_dodal-1.47.0/src/dodal/plan_stubs/electron_analyser/__init__.py +3 -0
- dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/system_tests/test_adsim.py +7 -4
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/system_tests/test_oav_system.py +8 -8
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/system_tests/test_oav_to_redis_system.py +6 -3
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_mapping.py +0 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_beamline_parameters.py +9 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_beamline_utils.py +5 -18
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/conftest.py +11 -16
- {dls_dodal-1.46.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.46.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.46.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.46.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.46.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.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i03/test_undulator_dcm.py +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +1 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_pmac.py +41 -5
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_utils.py +22 -10
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +14 -10
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_backlight.py +4 -4
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_eiger.py +2 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_gridscan.py +13 -1
- {dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_undulator.py +1 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_webcam.py +5 -5
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zocalo_results.py +3 -44
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_topup_plan.py +6 -4
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +2 -2
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_utils.py +7 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/unit_tests/test_cli.py +2 -1
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/unit_tests/test_log.py +9 -7
- dls_dodal-1.46.0/src/dodal/beamlines/p99.py +0 -34
- dls_dodal-1.46.0/src/dodal/common/signal_utils.py +0 -88
- dls_dodal-1.46.0/src/dodal/devices/diamond_filter.py +0 -46
- dls_dodal-1.46.0/src/dodal/devices/electron_analyser/abstract_analyser_io.py +0 -47
- dls_dodal-1.46.0/src/dodal/devices/electron_analyser/specs_analyser_io.py +0 -19
- dls_dodal-1.46.0/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +0 -26
- dls_dodal-1.46.0/src/dodal/devices/logging_ophyd_device.py +0 -17
- dls_dodal-1.46.0/system_tests/test_aperturescatterguard_system.py +0 -165
- dls_dodal-1.46.0/system_tests/test_eiger_system.py +0 -45
- dls_dodal-1.46.0/system_tests/test_gridscan_system.py +0 -43
- dls_dodal-1.46.0/system_tests/test_slit_gaps_system.py +0 -10
- dls_dodal-1.46.0/system_tests/test_smargon_system.py +0 -14
- dls_dodal-1.46.0/system_tests/test_synchrotron_system.py +0 -14
- dls_dodal-1.46.0/system_tests/test_undulator_system.py +0 -16
- dls_dodal-1.46.0/system_tests/test_zebra_system.py +0 -28
- dls_dodal-1.46.0/system_tests/test_zocalo_results.py +0 -140
- dls_dodal-1.46.0/tests/common/test_signal_utils.py +0 -84
- dls_dodal-1.46.0/tests/devices/i10/test_diagnostic.py +0 -27
- dls_dodal-1.46.0/tests/devices/unit_tests/conftest.py +0 -18
- dls_dodal-1.46.0/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +0 -149
- dls_dodal-1.46.0/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +0 -78
- dls_dodal-1.46.0/tests/devices/unit_tests/electron_analyser/test_util.py +0 -41
- dls_dodal-1.46.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +0 -119
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.gitignore +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/Dockerfile +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/LICENSE +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/README.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/conf.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/explanations.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/genindex.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/how-to.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/index.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/reference.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/pull_request_template.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/setup.cfg +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/requires.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i18.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_2.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/common_dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i03/dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/electron_analyser → dls_dodal-1.47.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/KBMirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/table.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/i03 → dls_dodal-1.47.0/src/dodal/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/hutch_access.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i19/shutter.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/i13_1 → dls_dodal-1.47.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/i19 → dls_dodal-1.47.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/i20_1 → dls_dodal-1.47.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/i24 → dls_dodal-1.47.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/oav → dls_dodal-1.47.0/src/dodal/devices/training_rig}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/p99 → dls_dodal-1.47.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/training_rig → dls_dodal-1.47.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/util → dls_dodal-1.47.0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.46.0/src/dodal/devices/zebra → dls_dodal-1.47.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.46.0/src/dodal/plan_stubs → dls_dodal-1.47.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.46.0/src/dodal/plan_stubs/electron_analyser → dls_dodal-1.47.0/tests}/__init__.py +0 -0
- {dls_dodal-1.46.0/src/dodal/plans/preprocessors → dls_dodal-1.47.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.46.0/system_tests → dls_dodal-1.47.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.46.0/tests → dls_dodal-1.47.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.46.0/tests → dls_dodal-1.47.0/tests/common}/beamlines/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/constants.py +0 -0
- {dls_dodal-1.46.0/tests/beamlines/unit_tests → dls_dodal-1.47.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.46.0/tests/common → dls_dodal-1.47.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.46.0/tests/common/beamlines → dls_dodal-1.47.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i18/test_table.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
- {dls_dodal-1.46.0/tests/devices → dls_dodal-1.47.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i19/test_shutter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/test_common_dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.46.0/tests/devices/i03 → dls_dodal-1.47.0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.46.0/tests/devices/i04 → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.46.0/tests/devices/i19 → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/abstract}/__init__.py +0 -0
- {dls_dodal-1.46.0/tests/devices/unit_tests → dls_dodal-1.47.0/tests/devices/unit_tests/electron_analyser/specs}/__init__.py +0 -0
- {dls_dodal-1.46.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.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i03/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i03/test_dcm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_baton.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_motors.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_turbo_slit.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_data_session.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.46.0 → dls_dodal-1.47.0}/tests/unit_tests/__init__.py +0 -0
|
@@ -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
|
|
@@ -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]
|
|
@@ -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
|
|
@@ -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
|
|
@@ -188,16 +188,26 @@ src/dodal/devices/detector/det_resolution.py
|
|
|
188
188
|
src/dodal/devices/detector/detector.py
|
|
189
189
|
src/dodal/devices/detector/detector_motion.py
|
|
190
190
|
src/dodal/devices/electron_analyser/__init__.py
|
|
191
|
-
src/dodal/devices/electron_analyser/
|
|
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/
|
|
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
|
|
197
205
|
src/dodal/devices/i03/__init__.py
|
|
198
|
-
src/dodal/devices/i03/beamstop.py
|
|
199
206
|
src/dodal/devices/i03/dcm.py
|
|
200
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
|
|
201
211
|
src/dodal/devices/i04/transfocator.py
|
|
202
212
|
src/dodal/devices/i10/diagnostics.py
|
|
203
213
|
src/dodal/devices/i10/i10_apple2.py
|
|
@@ -234,6 +244,7 @@ src/dodal/devices/i24/i24_detector_motion.py
|
|
|
234
244
|
src/dodal/devices/i24/pilatus_metadata.py
|
|
235
245
|
src/dodal/devices/i24/pmac.py
|
|
236
246
|
src/dodal/devices/i24/vgonio.py
|
|
247
|
+
src/dodal/devices/mx_phase1/beamstop.py
|
|
237
248
|
src/dodal/devices/oav/__init__.py
|
|
238
249
|
src/dodal/devices/oav/oav_calculations.py
|
|
239
250
|
src/dodal/devices/oav/oav_detector.py
|
|
@@ -248,6 +259,7 @@ src/dodal/devices/oav/snapshots/snapshot.py
|
|
|
248
259
|
src/dodal/devices/oav/snapshots/snapshot_image_processing.py
|
|
249
260
|
src/dodal/devices/oav/snapshots/snapshot_with_grid.py
|
|
250
261
|
src/dodal/devices/p99/__init__.py
|
|
262
|
+
src/dodal/devices/p99/andor2_point.py
|
|
251
263
|
src/dodal/devices/p99/sample_stage.py
|
|
252
264
|
src/dodal/devices/training_rig/__init__.py
|
|
253
265
|
src/dodal/devices/training_rig/sample_stage.py
|
|
@@ -273,7 +285,7 @@ src/dodal/plan_stubs/data_session.py
|
|
|
273
285
|
src/dodal/plan_stubs/motor_utils.py
|
|
274
286
|
src/dodal/plan_stubs/wrapped.py
|
|
275
287
|
src/dodal/plan_stubs/electron_analyser/__init__.py
|
|
276
|
-
src/dodal/plan_stubs/electron_analyser/
|
|
288
|
+
src/dodal/plan_stubs/electron_analyser/configure_driver.py
|
|
277
289
|
src/dodal/plans/__init__.py
|
|
278
290
|
src/dodal/plans/save_panda.py
|
|
279
291
|
src/dodal/plans/scanspec.py
|
|
@@ -283,18 +295,9 @@ src/dodal/plans/preprocessors/__init__.py
|
|
|
283
295
|
src/dodal/plans/preprocessors/verify_undulator_gap.py
|
|
284
296
|
system_tests/__init__.py
|
|
285
297
|
system_tests/test_adsim.py
|
|
286
|
-
system_tests/test_aperturescatterguard_system.py
|
|
287
298
|
system_tests/test_cli.py
|
|
288
|
-
system_tests/test_eiger_system.py
|
|
289
|
-
system_tests/test_gridscan_system.py
|
|
290
299
|
system_tests/test_oav_system.py
|
|
291
300
|
system_tests/test_oav_to_redis_system.py
|
|
292
|
-
system_tests/test_slit_gaps_system.py
|
|
293
|
-
system_tests/test_smargon_system.py
|
|
294
|
-
system_tests/test_synchrotron_system.py
|
|
295
|
-
system_tests/test_undulator_system.py
|
|
296
|
-
system_tests/test_zebra_system.py
|
|
297
|
-
system_tests/test_zocalo_results.py
|
|
298
301
|
tests/__init__.py
|
|
299
302
|
tests/conftest.py
|
|
300
303
|
tests/constants.py
|
|
@@ -316,7 +319,6 @@ tests/common/__init__.py
|
|
|
316
319
|
tests/common/test_coordination.py
|
|
317
320
|
tests/common/test_crystal_metadata.py
|
|
318
321
|
tests/common/test_maths.py
|
|
319
|
-
tests/common/test_signal_utils.py
|
|
320
322
|
tests/common/test_udc_directory_provider.py
|
|
321
323
|
tests/common/test_visit.py
|
|
322
324
|
tests/common/beamlines/__init__.py
|
|
@@ -330,8 +332,8 @@ tests/devices/test_diamond_filter.py
|
|
|
330
332
|
tests/devices/i03/__init__.py
|
|
331
333
|
tests/devices/i03/test_beamstop.py
|
|
332
334
|
tests/devices/i04/__init__.py
|
|
335
|
+
tests/devices/i04/test_murko_results.py
|
|
333
336
|
tests/devices/i04/test_transfocator.py
|
|
334
|
-
tests/devices/i10/test_diagnostic.py
|
|
335
337
|
tests/devices/i10/test_i10Apple2.py
|
|
336
338
|
tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv
|
|
337
339
|
tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv
|
|
@@ -351,7 +353,6 @@ tests/devices/i22/test_fswitch.py
|
|
|
351
353
|
tests/devices/i22/test_metadataholder.py
|
|
352
354
|
tests/devices/training_rig/test_sample_stage.py
|
|
353
355
|
tests/devices/unit_tests/__init__.py
|
|
354
|
-
tests/devices/unit_tests/conftest.py
|
|
355
356
|
tests/devices/unit_tests/test_OAVCentring.json
|
|
356
357
|
tests/devices/unit_tests/test_aperture.py
|
|
357
358
|
tests/devices/unit_tests/test_aperture_scatterguard.py
|
|
@@ -374,6 +375,7 @@ tests/devices/unit_tests/test_lookup_table.txt
|
|
|
374
375
|
tests/devices/unit_tests/test_lookup_table_2.txt
|
|
375
376
|
tests/devices/unit_tests/test_motors.py
|
|
376
377
|
tests/devices/unit_tests/test_odin.py
|
|
378
|
+
tests/devices/unit_tests/test_positioner.py
|
|
377
379
|
tests/devices/unit_tests/test_pressure_jump_cell.py
|
|
378
380
|
tests/devices/unit_tests/test_qbpm.py
|
|
379
381
|
tests/devices/unit_tests/test_slits.py
|
|
@@ -401,12 +403,18 @@ 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
|
|
410
418
|
tests/devices/unit_tests/i03/__init__.py
|
|
411
419
|
tests/devices/unit_tests/i03/test_dcm.py
|
|
412
420
|
tests/devices/unit_tests/i03/test_undulator_dcm.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
|
|
@@ -24,7 +24,7 @@ from dodal.devices.eiger import EigerDetector
|
|
|
24
24
|
from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
|
|
25
25
|
from dodal.devices.flux import Flux
|
|
26
26
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
27
|
-
from dodal.devices.i03
|
|
27
|
+
from dodal.devices.i03 import Beamstop
|
|
28
28
|
from dodal.devices.i03.dcm import DCM
|
|
29
29
|
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
30
30
|
from dodal.devices.motors import XYZPositioner
|
|
@@ -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)
|
|
@@ -118,7 +117,7 @@ def dcm() -> 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
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
1
|
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
4
|
-
from dodal.common.beamlines.beamline_utils import
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
3
|
+
device_factory,
|
|
4
|
+
device_instantiation,
|
|
5
|
+
)
|
|
5
6
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
6
7
|
from dodal.devices.aperturescatterguard import (
|
|
7
8
|
AperturePosition,
|
|
@@ -17,12 +18,16 @@ from dodal.devices.eiger import EigerDetector
|
|
|
17
18
|
from dodal.devices.fast_grid_scan import ZebraFastGridScan
|
|
18
19
|
from dodal.devices.flux import Flux
|
|
19
20
|
from dodal.devices.i03.dcm import DCM
|
|
21
|
+
from dodal.devices.i04.constants import RedisConstants
|
|
22
|
+
from dodal.devices.i04.murko_results import MurkoResultsDevice
|
|
20
23
|
from dodal.devices.i04.transfocator import Transfocator
|
|
21
24
|
from dodal.devices.ipin import IPin
|
|
22
25
|
from dodal.devices.motors import XYZPositioner
|
|
26
|
+
from dodal.devices.mx_phase1.beamstop import Beamstop
|
|
23
27
|
from dodal.devices.oav.oav_detector import OAV
|
|
24
28
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
25
29
|
from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
|
|
30
|
+
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
26
31
|
from dodal.devices.robot import BartRobot
|
|
27
32
|
from dodal.devices.s4_slit_gaps import S4SlitGaps
|
|
28
33
|
from dodal.devices.smargon import Smargon
|
|
@@ -37,6 +42,7 @@ from dodal.devices.zebra.zebra_constants_mapping import (
|
|
|
37
42
|
ZebraTTLOutputs,
|
|
38
43
|
)
|
|
39
44
|
from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
|
|
45
|
+
from dodal.devices.zocalo import ZocaloResults
|
|
40
46
|
from dodal.log import set_beamline as set_log_beamline
|
|
41
47
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
42
48
|
|
|
@@ -46,9 +52,6 @@ ZOOM_PARAMS_FILE = (
|
|
|
46
52
|
DISPLAY_CONFIG = "/dls_sw/i04/software/gda_versions/var/display.configuration"
|
|
47
53
|
DAQ_CONFIGURATION_PATH = "/dls_sw/i04/software/daq_configuration"
|
|
48
54
|
|
|
49
|
-
REDIS_HOST = "i04-valkey-murko.diamond.ac.uk"
|
|
50
|
-
REDIS_PASSWORD = os.environ.get("VALKEY_PASSWORD", "test_redis_password")
|
|
51
|
-
MURKO_REDIS_DB = 7
|
|
52
55
|
|
|
53
56
|
BL = get_beamline_name("s04")
|
|
54
57
|
set_log_beamline(BL)
|
|
@@ -107,13 +110,13 @@ def ipin() -> IPin:
|
|
|
107
110
|
|
|
108
111
|
|
|
109
112
|
@device_factory()
|
|
110
|
-
def beamstop() ->
|
|
113
|
+
def beamstop() -> Beamstop:
|
|
111
114
|
"""Get the i04 beamstop device, instantiate it if it hasn't already been.
|
|
112
115
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
113
116
|
"""
|
|
114
|
-
return
|
|
117
|
+
return Beamstop(
|
|
115
118
|
f"{PREFIX.beamline_prefix}-MO-BS-01:",
|
|
116
|
-
|
|
119
|
+
beamline_parameters=get_beamline_parameters(),
|
|
117
120
|
)
|
|
118
121
|
|
|
119
122
|
|
|
@@ -350,19 +353,48 @@ def oav_to_redis_forwarder() -> OAVToRedisForwarder:
|
|
|
350
353
|
return OAVToRedisForwarder(
|
|
351
354
|
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
352
355
|
name="oav_to_redis_forwarder",
|
|
353
|
-
redis_host=REDIS_HOST,
|
|
354
|
-
redis_password=REDIS_PASSWORD,
|
|
355
|
-
redis_db=
|
|
356
|
+
redis_host=RedisConstants.REDIS_HOST,
|
|
357
|
+
redis_password=RedisConstants.REDIS_PASSWORD,
|
|
358
|
+
redis_db=RedisConstants.MURKO_REDIS_DB,
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
@device_factory()
|
|
363
|
+
def murko_results() -> MurkoResultsDevice:
|
|
364
|
+
"""Get the i04 OAV to redis forwarder, instantiate it if it hasn't already been.
|
|
365
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
366
|
+
"""
|
|
367
|
+
return MurkoResultsDevice(
|
|
368
|
+
name="murko_results",
|
|
369
|
+
redis_host=RedisConstants.REDIS_HOST,
|
|
370
|
+
redis_password=RedisConstants.REDIS_PASSWORD,
|
|
371
|
+
redis_db=RedisConstants.MURKO_REDIS_DB,
|
|
356
372
|
)
|
|
357
373
|
|
|
358
374
|
|
|
359
375
|
@device_factory()
|
|
360
376
|
def diamond_filter() -> DiamondFilter[I04Filters]:
|
|
361
377
|
"""Get the i04 diamond filter device, instantiate it if it hasn't already been.
|
|
362
|
-
If this is called when already instantiated in
|
|
378
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
363
379
|
"""
|
|
364
380
|
return DiamondFilter[I04Filters](
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
381
|
+
f"{PREFIX.beamline_prefix}-MO-FLTR-01:Y", I04Filters
|
|
382
|
+
)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
@device_factory()
|
|
386
|
+
def zocalo() -> ZocaloResults:
|
|
387
|
+
"""Get the i04 ZocaloResults device, instantiate it if it hasn't already been.
|
|
388
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
389
|
+
"""
|
|
390
|
+
return ZocaloResults(channel="xrc.i04")
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
@device_factory()
|
|
394
|
+
def pin_tip_detection() -> PinTipDetection:
|
|
395
|
+
"""Get the i04 pin tip detection device, instantiate it if it hasn't already been.
|
|
396
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
397
|
+
"""
|
|
398
|
+
return PinTipDetection(
|
|
399
|
+
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
368
400
|
)
|
|
@@ -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
|
-
VGScientaAnalyserDriverIO,
|
|
7
|
-
)
|
|
5
|
+
from dodal.devices.electron_analyser.vgscienta import VGScientaAnalyserDriverIO
|
|
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
|
|
@@ -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
|