dls-dodal 1.44.0__tar.gz → 1.45.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.44.0 → dls_dodal-1.45.0}/PKG-INFO +1 -1
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/device-standards.rst +2 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/PKG-INFO +1 -1
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/SOURCES.txt +24 -7
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/__init__.py +2 -0
- dls_dodal-1.45.0/src/dodal/beamlines/b07.py +27 -0
- dls_dodal-1.45.0/src/dodal/beamlines/b07_1.py +25 -0
- dls_dodal-1.45.0/src/dodal/beamlines/i09.py +25 -0
- dls_dodal-1.45.0/src/dodal/beamlines/i09_1.py +25 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i10.py +19 -35
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_1.py +2 -1
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_2.py +2 -1
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i20_1.py +2 -1
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i23.py +10 -0
- dls_dodal-1.45.0/src/dodal/beamlines/p60.py +21 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/visit.py +1 -41
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +16 -23
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector.py +2 -1
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_analyser_io.py +47 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/abstract_region.py +112 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_analyser_io.py +19 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/specs_region.py +26 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +26 -0
- dls_dodal-1.45.0/src/dodal/devices/electron_analyser/vgscienta_region.py +90 -0
- dls_dodal-1.45.0/src/dodal/devices/i10/diagnostics.py +239 -0
- dls_dodal-1.45.0/src/dodal/devices/i10/slits.py +124 -0
- dls_dodal-1.45.0/src/dodal/devices/i19/blueapi_device.py +102 -0
- dls_dodal-1.45.0/src/dodal/devices/i19/shutter.py +41 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/motors.py +21 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/turbo_slit.py +8 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator.py +9 -7
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/adjuster_plans.py +1 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/lookup_tables.py +38 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/test_utils.py +1 -0
- dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser/configure_controller.py +80 -0
- dls_dodal-1.45.0/tests/common/test_visit.py +32 -0
- dls_dodal-1.45.0/tests/devices/i10/test_diagnostic.py +27 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i19/test_shutter.py +61 -15
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_detector.py +7 -3
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/conftest.py +90 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +149 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +78 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py +119 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_util.py +41 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +119 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +158 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beam_converter.py +29 -33
- dls_dodal-1.45.0/tests/devices/unit_tests/test_motors.py +54 -0
- dls_dodal-1.45.0/tests/devices/unit_tests/test_turbo_slit.py +54 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator.py +6 -5
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_undulator_dcm.py +2 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_lookup_tables.py +15 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline.py +2 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_broken_dependency.py +3 -3
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_dependencies.py +3 -3
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_disordered_dependencies.py +3 -3
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_data_session.py +3 -2
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/electron_analyser/specs_sequence.seq +4 -4
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_utils.py +2 -2
- dls_dodal-1.44.0/src/dodal/devices/electron_analyser/base_region.py +0 -64
- dls_dodal-1.44.0/src/dodal/devices/electron_analyser/specs/specs_region.py +0 -24
- dls_dodal-1.44.0/src/dodal/devices/electron_analyser/vgscienta/vgscienta_region.py +0 -77
- dls_dodal-1.44.0/src/dodal/devices/i10/slits.py +0 -37
- dls_dodal-1.44.0/src/dodal/devices/i19/shutter.py +0 -79
- dls_dodal-1.44.0/src/dodal/devices/util/motor_utils.py +0 -6
- dls_dodal-1.44.0/tests/common/test_visit.py +0 -242
- dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/test_specs_region.py +0 -63
- dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +0 -92
- dls_dodal-1.44.0/tests/devices/unit_tests/electron_analyser/utils.py +0 -16
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.gitignore +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/Dockerfile +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/LICENSE +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/README.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/conftest.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/conf.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/explanations.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/genindex.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/how-to.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/index.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/reference.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/pull_request_template.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/pyproject.toml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/setup.cfg +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/requires.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i03.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i18.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/data_util.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/dcm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/electron_analyser/specs → dls_dodal-1.45.0/src/dodal/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i03/beamstop.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/electron_analyser/vgscienta → dls_dodal-1.45.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/KBMirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/table.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/i03 → dls_dodal-1.45.0/src/dodal/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i19/hutch_access.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/i13_1 → dls_dodal-1.45.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/i19 → dls_dodal-1.45.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/i20_1 → dls_dodal-1.45.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/i24 → dls_dodal-1.45.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/tetramm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/oav → dls_dodal-1.45.0/src/dodal/devices/training_rig}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/undulator_dcm.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/p99 → dls_dodal-1.45.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/training_rig → dls_dodal-1.45.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/util → dls_dodal-1.45.0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.44.0/src/dodal/devices/zebra → dls_dodal-1.45.0/src/dodal/plan_stubs/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.44.0/src/dodal/plan_stubs → dls_dodal-1.45.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.44.0/src/dodal/plans/preprocessors → dls_dodal-1.45.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.44.0/system_tests → dls_dodal-1.45.0/tests}/__init__.py +0 -0
- {dls_dodal-1.44.0/tests → dls_dodal-1.45.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.44.0/tests/beamlines → dls_dodal-1.45.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.44.0/tests/beamlines/unit_tests → dls_dodal-1.45.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.44.0/tests/common → dls_dodal-1.45.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_signal_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/conftest.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/constants.py +0 -0
- {dls_dodal-1.44.0/tests/common/beamlines → dls_dodal-1.45.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.44.0/tests/devices → dls_dodal-1.45.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i03/test_beamstop.py +0 -0
- {dls_dodal-1.44.0/tests/devices/i03 → dls_dodal-1.45.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_table.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
- {dls_dodal-1.44.0/tests/devices/i04 → dls_dodal-1.45.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.44.0/tests/devices/i19 → dls_dodal-1.45.0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.44.0/tests/devices/unit_tests → dls_dodal-1.45.0/tests/devices/unit_tests/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_baton.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_eiger.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.44.0 → dls_dodal-1.45.0}/tests/unit_tests/test_log.py +0 -0
|
@@ -13,8 +13,8 @@ Where to put devices
|
|
|
13
13
|
Dodal is written with the philosophy that Ophyd devices should be assumed to be as generic as possible. I.e. you
|
|
14
14
|
should think about where to place them in the following order:
|
|
15
15
|
|
|
16
|
-
#. A device that could be used at any facility, e.g. a generic ``
|
|
17
|
-
standard IOC, should go in https://github.com/bluesky/ophyd-
|
|
16
|
+
#. A device that could be used at any facility, e.g. a generic ``Motor`` or a commercial product with a
|
|
17
|
+
standard IOC, should go in https://github.com/bluesky/ophyd-async
|
|
18
18
|
#. A device that may be on any beamline should go in the top level of the ``devices`` folder. If it is a quite
|
|
19
19
|
complex device (e.g. multiple files) it should have a folder of its own e.g. ``oav``
|
|
20
20
|
#. A device that is very specific to a particular beamline should go in the ``devices/ixx`` folder
|
|
@@ -92,9 +92,13 @@ src/dodal/beamlines/__init__.py
|
|
|
92
92
|
src/dodal/beamlines/adsim.py
|
|
93
93
|
src/dodal/beamlines/aithre.py
|
|
94
94
|
src/dodal/beamlines/b01_1.py
|
|
95
|
+
src/dodal/beamlines/b07.py
|
|
96
|
+
src/dodal/beamlines/b07_1.py
|
|
95
97
|
src/dodal/beamlines/i02_1.py
|
|
96
98
|
src/dodal/beamlines/i03.py
|
|
97
99
|
src/dodal/beamlines/i04.py
|
|
100
|
+
src/dodal/beamlines/i09.py
|
|
101
|
+
src/dodal/beamlines/i09_1.py
|
|
98
102
|
src/dodal/beamlines/i10.py
|
|
99
103
|
src/dodal/beamlines/i13_1.py
|
|
100
104
|
src/dodal/beamlines/i18.py
|
|
@@ -107,6 +111,7 @@ src/dodal/beamlines/i23.py
|
|
|
107
111
|
src/dodal/beamlines/i24.py
|
|
108
112
|
src/dodal/beamlines/p38.py
|
|
109
113
|
src/dodal/beamlines/p45.py
|
|
114
|
+
src/dodal/beamlines/p60.py
|
|
110
115
|
src/dodal/beamlines/p99.py
|
|
111
116
|
src/dodal/beamlines/training_rig.py
|
|
112
117
|
src/dodal/common/__init__.py
|
|
@@ -184,14 +189,16 @@ src/dodal/devices/detector/det_resolution.py
|
|
|
184
189
|
src/dodal/devices/detector/detector.py
|
|
185
190
|
src/dodal/devices/detector/detector_motion.py
|
|
186
191
|
src/dodal/devices/electron_analyser/__init__.py
|
|
187
|
-
src/dodal/devices/electron_analyser/
|
|
188
|
-
src/dodal/devices/electron_analyser/
|
|
189
|
-
src/dodal/devices/electron_analyser/
|
|
190
|
-
src/dodal/devices/electron_analyser/
|
|
191
|
-
src/dodal/devices/electron_analyser/
|
|
192
|
+
src/dodal/devices/electron_analyser/abstract_analyser_io.py
|
|
193
|
+
src/dodal/devices/electron_analyser/abstract_region.py
|
|
194
|
+
src/dodal/devices/electron_analyser/specs_analyser_io.py
|
|
195
|
+
src/dodal/devices/electron_analyser/specs_region.py
|
|
196
|
+
src/dodal/devices/electron_analyser/vgscienta_analyser_io.py
|
|
197
|
+
src/dodal/devices/electron_analyser/vgscienta_region.py
|
|
192
198
|
src/dodal/devices/i03/__init__.py
|
|
193
199
|
src/dodal/devices/i03/beamstop.py
|
|
194
200
|
src/dodal/devices/i04/transfocator.py
|
|
201
|
+
src/dodal/devices/i10/diagnostics.py
|
|
195
202
|
src/dodal/devices/i10/i10_apple2.py
|
|
196
203
|
src/dodal/devices/i10/i10_setting_data.py
|
|
197
204
|
src/dodal/devices/i10/mirrors.py
|
|
@@ -208,6 +215,7 @@ src/dodal/devices/i18/table.py
|
|
|
208
215
|
src/dodal/devices/i18/thor_labs_stage.py
|
|
209
216
|
src/dodal/devices/i19/__init__.py
|
|
210
217
|
src/dodal/devices/i19/beamstop.py
|
|
218
|
+
src/dodal/devices/i19/blueapi_device.py
|
|
211
219
|
src/dodal/devices/i19/hutch_access.py
|
|
212
220
|
src/dodal/devices/i19/shutter.py
|
|
213
221
|
src/dodal/devices/i20_1/__init__.py
|
|
@@ -246,7 +254,6 @@ src/dodal/devices/util/__init__.py
|
|
|
246
254
|
src/dodal/devices/util/adjuster_plans.py
|
|
247
255
|
src/dodal/devices/util/epics_util.py
|
|
248
256
|
src/dodal/devices/util/lookup_tables.py
|
|
249
|
-
src/dodal/devices/util/motor_utils.py
|
|
250
257
|
src/dodal/devices/util/test_utils.py
|
|
251
258
|
src/dodal/devices/xspress3/xspress3.py
|
|
252
259
|
src/dodal/devices/xspress3/xspress3_channel.py
|
|
@@ -264,6 +271,8 @@ src/dodal/plan_stubs/check_topup.py
|
|
|
264
271
|
src/dodal/plan_stubs/data_session.py
|
|
265
272
|
src/dodal/plan_stubs/motor_utils.py
|
|
266
273
|
src/dodal/plan_stubs/wrapped.py
|
|
274
|
+
src/dodal/plan_stubs/electron_analyser/__init__.py
|
|
275
|
+
src/dodal/plan_stubs/electron_analyser/configure_controller.py
|
|
267
276
|
src/dodal/plans/__init__.py
|
|
268
277
|
src/dodal/plans/save_panda.py
|
|
269
278
|
src/dodal/plans/scanspec.py
|
|
@@ -320,6 +329,7 @@ tests/devices/i03/__init__.py
|
|
|
320
329
|
tests/devices/i03/test_beamstop.py
|
|
321
330
|
tests/devices/i04/__init__.py
|
|
322
331
|
tests/devices/i04/test_transfocator.py
|
|
332
|
+
tests/devices/i10/test_diagnostic.py
|
|
323
333
|
tests/devices/i10/test_i10Apple2.py
|
|
324
334
|
tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv
|
|
325
335
|
tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv
|
|
@@ -361,6 +371,7 @@ tests/devices/unit_tests/test_jCameraManZoomLevels.xml
|
|
|
361
371
|
tests/devices/unit_tests/test_linkam3.py
|
|
362
372
|
tests/devices/unit_tests/test_lookup_table.txt
|
|
363
373
|
tests/devices/unit_tests/test_lookup_table_2.txt
|
|
374
|
+
tests/devices/unit_tests/test_motors.py
|
|
364
375
|
tests/devices/unit_tests/test_odin.py
|
|
365
376
|
tests/devices/unit_tests/test_pressure_jump_cell.py
|
|
366
377
|
tests/devices/unit_tests/test_qbpm.py
|
|
@@ -370,6 +381,7 @@ tests/devices/unit_tests/test_status.py
|
|
|
370
381
|
tests/devices/unit_tests/test_synchrotron.py
|
|
371
382
|
tests/devices/unit_tests/test_tetramm.py
|
|
372
383
|
tests/devices/unit_tests/test_thawer.py
|
|
384
|
+
tests/devices/unit_tests/test_turbo_slit.py
|
|
373
385
|
tests/devices/unit_tests/test_undulator.py
|
|
374
386
|
tests/devices/unit_tests/test_undulator_dcm.py
|
|
375
387
|
tests/devices/unit_tests/test_utils.py
|
|
@@ -387,9 +399,14 @@ tests/devices/unit_tests/current_amplifier/test_sr570.py
|
|
|
387
399
|
tests/devices/unit_tests/detector/test_det_dim_constants.py
|
|
388
400
|
tests/devices/unit_tests/detector/test_det_resolution.py
|
|
389
401
|
tests/devices/unit_tests/detector/test_detector.py
|
|
402
|
+
tests/devices/unit_tests/electron_analyser/__init__.py
|
|
403
|
+
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
|
|
390
406
|
tests/devices/unit_tests/electron_analyser/test_specs_region.py
|
|
407
|
+
tests/devices/unit_tests/electron_analyser/test_util.py
|
|
408
|
+
tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py
|
|
391
409
|
tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py
|
|
392
|
-
tests/devices/unit_tests/electron_analyser/utils.py
|
|
393
410
|
tests/devices/unit_tests/i24/__init__.py
|
|
394
411
|
tests/devices/unit_tests/i24/test_dual_backlight.py
|
|
395
412
|
tests/devices/unit_tests/i24/test_focus_mirrors.py
|
|
@@ -9,6 +9,8 @@ from pathlib import Path
|
|
|
9
9
|
# module name. Add any new beamlines whose name differs from their module name to this
|
|
10
10
|
# dictionary, which maps ${BEAMLINE} to dodal.beamlines.<MODULE NAME>
|
|
11
11
|
_BEAMLINE_NAME_OVERRIDES = {
|
|
12
|
+
"b07-1": "b07_1",
|
|
13
|
+
"i09-1": "i09_1",
|
|
12
14
|
"i13-1": "i13_1",
|
|
13
15
|
"i20-1": "i20_1",
|
|
14
16
|
"i19-1": "i19_1",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.electron_analyser.specs_analyser_io import (
|
|
6
|
+
SpecsAnalyserDriverIO,
|
|
7
|
+
)
|
|
8
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("b07")
|
|
13
|
+
PREFIX = BeamlinePrefix(BL, suffix="B")
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def synchrotron() -> Synchrotron:
|
|
20
|
+
return Synchrotron()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def analyser_driver() -> SpecsAnalyserDriverIO:
|
|
25
|
+
return SpecsAnalyserDriverIO(
|
|
26
|
+
name="analyser_driver", prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:"
|
|
27
|
+
)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.electron_analyser.specs_analyser_io import (
|
|
6
|
+
SpecsAnalyserDriverIO,
|
|
7
|
+
)
|
|
8
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("b07-1")
|
|
13
|
+
PREFIX = BeamlinePrefix(BL, suffix="C")
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def synchrotron() -> Synchrotron:
|
|
20
|
+
return Synchrotron()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def analyser_driver() -> SpecsAnalyserDriverIO:
|
|
25
|
+
return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.electron_analyser.vgscienta_analyser_io import (
|
|
6
|
+
VGScientaAnalyserDriverIO,
|
|
7
|
+
)
|
|
8
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("i09")
|
|
13
|
+
PREFIX = BeamlinePrefix(BL)
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def synchrotron() -> Synchrotron:
|
|
20
|
+
return Synchrotron()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def analyser_driver() -> VGScientaAnalyserDriverIO:
|
|
25
|
+
return VGScientaAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:")
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.electron_analyser.specs_analyser_io import (
|
|
6
|
+
SpecsAnalyserDriverIO,
|
|
7
|
+
)
|
|
8
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("i09-1")
|
|
13
|
+
PREFIX = BeamlinePrefix(BL, suffix="I")
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def synchrotron() -> Synchrotron:
|
|
20
|
+
return Synchrotron()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def analyser_driver() -> SpecsAnalyserDriverIO:
|
|
25
|
+
return SpecsAnalyserDriverIO(prefix=f"{PREFIX.beamline_prefix}-EA-DET-02:CAM:")
|
|
@@ -8,6 +8,7 @@ from dodal.devices.apple2_undulator import (
|
|
|
8
8
|
UndulatorPhaseAxes,
|
|
9
9
|
)
|
|
10
10
|
from dodal.devices.current_amplifiers import CurrentAmpDet
|
|
11
|
+
from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet
|
|
11
12
|
from dodal.devices.i10.i10_apple2 import (
|
|
12
13
|
I10Apple2,
|
|
13
14
|
I10Apple2PGM,
|
|
@@ -24,10 +25,9 @@ from dodal.devices.i10.rasor.rasor_motors import (
|
|
|
24
25
|
PinHole,
|
|
25
26
|
)
|
|
26
27
|
from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1
|
|
27
|
-
from dodal.devices.i10.slits import
|
|
28
|
+
from dodal.devices.i10.slits import I10Slits, I10SlitsDrainCurrent
|
|
28
29
|
from dodal.devices.motors import XYZPositioner
|
|
29
30
|
from dodal.devices.pgm import PGM
|
|
30
|
-
from dodal.devices.slits import MinimalSlits
|
|
31
31
|
from dodal.log import set_beamline as set_log_beamline
|
|
32
32
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
33
33
|
|
|
@@ -272,6 +272,9 @@ def idd_la_angle(
|
|
|
272
272
|
)
|
|
273
273
|
|
|
274
274
|
|
|
275
|
+
"""Mirrors"""
|
|
276
|
+
|
|
277
|
+
|
|
275
278
|
@device_factory()
|
|
276
279
|
def first_mirror() -> PiezoMirror:
|
|
277
280
|
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
|
|
@@ -283,58 +286,39 @@ def switching_mirror() -> PiezoMirror:
|
|
|
283
286
|
|
|
284
287
|
|
|
285
288
|
@device_factory()
|
|
286
|
-
def
|
|
287
|
-
return
|
|
288
|
-
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
|
|
289
|
-
)
|
|
289
|
+
def focusing_mirror() -> PiezoMirror:
|
|
290
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
|
|
290
291
|
|
|
291
292
|
|
|
292
|
-
|
|
293
|
-
def slit_2() -> I10Slits:
|
|
294
|
-
return I10Slits(
|
|
295
|
-
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
|
|
296
|
-
)
|
|
293
|
+
"""Optic slits"""
|
|
297
294
|
|
|
298
295
|
|
|
299
296
|
@device_factory()
|
|
300
|
-
def
|
|
301
|
-
return I10Slits(
|
|
302
|
-
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
|
|
303
|
-
)
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
"""Rasor devices"""
|
|
297
|
+
def slits() -> I10Slits:
|
|
298
|
+
return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-")
|
|
307
299
|
|
|
308
300
|
|
|
309
301
|
@device_factory()
|
|
310
|
-
def
|
|
311
|
-
return
|
|
302
|
+
def slits_current() -> I10SlitsDrainCurrent:
|
|
303
|
+
return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-")
|
|
312
304
|
|
|
313
305
|
|
|
314
|
-
|
|
315
|
-
def slit_4() -> MinimalSlits:
|
|
316
|
-
return MinimalSlits(
|
|
317
|
-
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
|
|
318
|
-
x_gap="XSIZE",
|
|
319
|
-
y_gap="YSIZE",
|
|
320
|
-
)
|
|
306
|
+
"""Diagnostics"""
|
|
321
307
|
|
|
322
308
|
|
|
323
309
|
@device_factory()
|
|
324
|
-
def
|
|
325
|
-
return
|
|
326
|
-
prefix=f"{PREFIX.beamline_prefix}-
|
|
310
|
+
def diagnostics() -> I10Diagnostic:
|
|
311
|
+
return I10Diagnostic(
|
|
312
|
+
prefix=f"{PREFIX.beamline_prefix}-DI-",
|
|
327
313
|
)
|
|
328
314
|
|
|
329
315
|
|
|
330
316
|
@device_factory()
|
|
331
|
-
def
|
|
332
|
-
return
|
|
333
|
-
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
|
|
334
|
-
)
|
|
317
|
+
def d5a_det() -> I10Diagnostic5ADet:
|
|
318
|
+
return I10Diagnostic5ADet(prefix=f"{PREFIX.beamline_prefix}-DI-")
|
|
335
319
|
|
|
336
320
|
|
|
337
|
-
"Rasor devices"
|
|
321
|
+
"""Rasor devices"""
|
|
338
322
|
|
|
339
323
|
|
|
340
324
|
@device_factory()
|
|
@@ -5,7 +5,8 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
5
5
|
set_beamline as set_utils_beamline,
|
|
6
6
|
)
|
|
7
7
|
from dodal.devices.i19.beamstop import BeamStop
|
|
8
|
-
from dodal.devices.i19.
|
|
8
|
+
from dodal.devices.i19.blueapi_device import HutchState
|
|
9
|
+
from dodal.devices.i19.shutter import AccessControlledShutter
|
|
9
10
|
from dodal.devices.oav.oav_detector import OAV
|
|
10
11
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
11
12
|
from dodal.devices.synchrotron import Synchrotron
|
|
@@ -5,7 +5,8 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
5
5
|
set_beamline as set_utils_beamline,
|
|
6
6
|
)
|
|
7
7
|
from dodal.devices.i19.beamstop import BeamStop
|
|
8
|
-
from dodal.devices.i19.
|
|
8
|
+
from dodal.devices.i19.blueapi_device import HutchState
|
|
9
|
+
from dodal.devices.i19.shutter import AccessControlledShutter
|
|
9
10
|
from dodal.devices.synchrotron import Synchrotron
|
|
10
11
|
from dodal.devices.zebra.zebra import Zebra
|
|
11
12
|
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
@@ -32,7 +32,8 @@ set_path_provider(
|
|
|
32
32
|
)
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
# NOTE this is mock as we cannot move items on the beamline until we get sign-off to do so
|
|
36
|
+
@device_factory(mock=True)
|
|
36
37
|
def turbo_slit() -> TurboSlit:
|
|
37
38
|
"""
|
|
38
39
|
turboslit for selecting energy from the polychromator
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
+
from dodal.devices.motors import SixAxisGonio
|
|
3
4
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
4
5
|
from dodal.log import set_beamline as set_log_beamline
|
|
5
6
|
from dodal.utils import BeamlinePrefix, get_beamline_name, get_hostname
|
|
@@ -28,3 +29,12 @@ def oav_pin_tip_detection() -> PinTipDetection:
|
|
|
28
29
|
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
29
30
|
"pin_tip_detection",
|
|
30
31
|
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@device_factory()
|
|
35
|
+
def gonio() -> SixAxisGonio:
|
|
36
|
+
"""Get the i23 goniometer"""
|
|
37
|
+
|
|
38
|
+
return SixAxisGonio(
|
|
39
|
+
f"{PREFIX.beamline_prefix}-MO-GONIO-01:",
|
|
40
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.electron_analyser.vgscienta_analyser_io import (
|
|
6
|
+
VGScientaAnalyserDriverIO,
|
|
7
|
+
)
|
|
8
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
9
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
10
|
+
|
|
11
|
+
BL = get_beamline_name("p60")
|
|
12
|
+
PREFIX = BeamlinePrefix(BL)
|
|
13
|
+
set_log_beamline(BL)
|
|
14
|
+
set_utils_beamline(BL)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@device_factory()
|
|
18
|
+
def analyser_driver() -> VGScientaAnalyserDriverIO:
|
|
19
|
+
return VGScientaAnalyserDriverIO(
|
|
20
|
+
name="analyser_driver", prefix=f"{PREFIX.beamline_prefix}-EA-DET-01:CAM:"
|
|
21
|
+
)
|
|
@@ -3,8 +3,7 @@ from pathlib import Path
|
|
|
3
3
|
from typing import Literal
|
|
4
4
|
|
|
5
5
|
from aiohttp import ClientSession
|
|
6
|
-
from
|
|
7
|
-
from ophyd_async.core import FilenameProvider, PathInfo, PathProvider
|
|
6
|
+
from ophyd_async.core import FilenameProvider, PathInfo
|
|
8
7
|
from pydantic import BaseModel
|
|
9
8
|
|
|
10
9
|
from dodal.common.types import UpdatingPathProvider
|
|
@@ -151,42 +150,3 @@ class StaticVisitPathProvider(UpdatingPathProvider):
|
|
|
151
150
|
return PathInfo(
|
|
152
151
|
directory_path=self._root, filename=self._filename_provider(device_name)
|
|
153
152
|
)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
DEFAULT_TEMPLATE = "{device_name}-{instrument}-{scan_id}"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
class StartDocumentPathProvider(PathProvider):
|
|
160
|
-
"""A PathProvider that sources from metadata in a RunStart document.
|
|
161
|
-
|
|
162
|
-
This uses metadata from a RunStart document to determine file names and data session
|
|
163
|
-
directories. The file naming defaults to "{device_name}-{instrument}-{scan_id}", so
|
|
164
|
-
the file name is incremented by scan number. A template can be included in the
|
|
165
|
-
StartDocument to allow for custom naming conventions.
|
|
166
|
-
|
|
167
|
-
"""
|
|
168
|
-
|
|
169
|
-
def __init__(self) -> None:
|
|
170
|
-
self._doc = {}
|
|
171
|
-
|
|
172
|
-
def update_run(self, name: str, start_doc: RunStart) -> None:
|
|
173
|
-
"""Cache a start document.
|
|
174
|
-
|
|
175
|
-
This can be plugged into the run engine's subscribe method.
|
|
176
|
-
"""
|
|
177
|
-
if name == "start":
|
|
178
|
-
self._doc = start_doc
|
|
179
|
-
|
|
180
|
-
def __call__(self, device_name: str | None = None) -> PathInfo:
|
|
181
|
-
"""Returns the directory path and filename for a given data_session.
|
|
182
|
-
|
|
183
|
-
The default template for file naming is: "{device_name}-{instrument}-{scan_id}"
|
|
184
|
-
however, this can be changed by providing a template in the start document. For
|
|
185
|
-
example: "template": "custom-{device_name}--{scan_id}".
|
|
186
|
-
|
|
187
|
-
If you do not provide a data_session_directory it will default to "/tmp".
|
|
188
|
-
"""
|
|
189
|
-
template = self._doc.get("template", DEFAULT_TEMPLATE)
|
|
190
|
-
sub_path = template.format_map(self._doc | {"device_name": device_name})
|
|
191
|
-
data_session_directory = Path(self._doc.get("data_session_directory", "/tmp"))
|
|
192
|
-
return PathInfo(directory_path=data_session_directory, filename=sub_path)
|
{dls_dodal-1.44.0 → dls_dodal-1.45.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py
RENAMED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from enum import Enum
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from dodal.devices.util.lookup_tables import (
|
|
4
|
+
linear_extrapolation_lut,
|
|
5
|
+
parse_lookup_table,
|
|
6
|
+
)
|
|
4
7
|
|
|
5
8
|
|
|
6
9
|
class Axis(Enum):
|
|
@@ -11,12 +14,20 @@ class Axis(Enum):
|
|
|
11
14
|
class DetectorDistanceToBeamXYConverter:
|
|
12
15
|
def __init__(self, lookup_file: str):
|
|
13
16
|
self.lookup_file: str = lookup_file
|
|
14
|
-
|
|
17
|
+
lookup_table_columns: list = parse_lookup_table(self.lookup_file)
|
|
18
|
+
self._d_to_x = linear_extrapolation_lut(
|
|
19
|
+
lookup_table_columns[0], lookup_table_columns[1]
|
|
20
|
+
)
|
|
21
|
+
self._d_to_y = linear_extrapolation_lut(
|
|
22
|
+
lookup_table_columns[0], lookup_table_columns[2]
|
|
23
|
+
)
|
|
15
24
|
|
|
16
25
|
def get_beam_xy_from_det_dist(self, det_dist_mm: float, beam_axis: Axis) -> float:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
return (
|
|
27
|
+
self._d_to_x(det_dist_mm)
|
|
28
|
+
if beam_axis == Axis.X_AXIS
|
|
29
|
+
else self._d_to_y(det_dist_mm)
|
|
30
|
+
)
|
|
20
31
|
|
|
21
32
|
def get_beam_axis_pixels(
|
|
22
33
|
self,
|
|
@@ -41,21 +52,3 @@ class DetectorDistanceToBeamXYConverter:
|
|
|
41
52
|
return self.get_beam_axis_pixels(
|
|
42
53
|
det_distance, image_size_pixels, det_dim, Axis.X_AXIS
|
|
43
54
|
)
|
|
44
|
-
|
|
45
|
-
def reload_lookup_table(self):
|
|
46
|
-
self.lookup_table_values = self.parse_table()
|
|
47
|
-
|
|
48
|
-
def parse_table(self) -> list:
|
|
49
|
-
rows = loadtxt(self.lookup_file, delimiter=" ", comments=["#", "Units"])
|
|
50
|
-
columns = list(zip(*rows, strict=False))
|
|
51
|
-
|
|
52
|
-
return columns
|
|
53
|
-
|
|
54
|
-
def __eq__(self, other):
|
|
55
|
-
if not isinstance(other, DetectorDistanceToBeamXYConverter):
|
|
56
|
-
return NotImplemented
|
|
57
|
-
if self.lookup_file != other.lookup_file:
|
|
58
|
-
return False
|
|
59
|
-
if self.lookup_table_values != other.lookup_table_values:
|
|
60
|
-
return False
|
|
61
|
-
return True
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from enum import Enum, auto
|
|
2
|
+
from functools import cached_property
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
|
|
4
5
|
from pydantic import BaseModel, Field, field_serializer, field_validator
|
|
@@ -49,7 +50,7 @@ class DetectorParams(BaseModel):
|
|
|
49
50
|
False # Remove in https://github.com/DiamondLightSource/hyperion/issues/1395
|
|
50
51
|
)
|
|
51
52
|
|
|
52
|
-
@
|
|
53
|
+
@cached_property
|
|
53
54
|
def beam_xy_converter(self) -> DetectorDistanceToBeamXYConverter:
|
|
54
55
|
return DetectorDistanceToBeamXYConverter(self.det_dist_to_beam_converter_path)
|
|
55
56
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import TypeVar
|
|
3
|
+
|
|
4
|
+
from ophyd_async.core import StandardReadable
|
|
5
|
+
from ophyd_async.epics.core import epics_signal_rw
|
|
6
|
+
|
|
7
|
+
from dodal.devices.electron_analyser.abstract_region import EnergyMode
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AbstractAnalyserDriverIO(ABC, StandardReadable):
|
|
11
|
+
"""
|
|
12
|
+
Generic device to configure electron analyser with new region settings.
|
|
13
|
+
Electron analysers should inherit from this class for further specialisation.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, prefix: str, name: str = "") -> None:
|
|
17
|
+
with self.add_children_as_readables():
|
|
18
|
+
self.low_energy = epics_signal_rw(float, prefix + "LOW_ENERGY")
|
|
19
|
+
self.high_energy = epics_signal_rw(float, prefix + "HIGH_ENERGY")
|
|
20
|
+
self.slices = epics_signal_rw(int, prefix + "SLICES")
|
|
21
|
+
self.lens_mode = epics_signal_rw(str, prefix + "LENS_MODE")
|
|
22
|
+
self.pass_energy = epics_signal_rw(
|
|
23
|
+
self.pass_energy_type, prefix + "PASS_ENERGY"
|
|
24
|
+
)
|
|
25
|
+
self.energy_step = epics_signal_rw(float, prefix + "STEP_SIZE")
|
|
26
|
+
self.iterations = epics_signal_rw(int, prefix + "NumExposures")
|
|
27
|
+
self.acquisition_mode = epics_signal_rw(str, prefix + "ACQ_MODE")
|
|
28
|
+
|
|
29
|
+
super().__init__(name)
|
|
30
|
+
|
|
31
|
+
def to_kinetic_energy(
|
|
32
|
+
self, value: float, excitation_energy: float, mode: EnergyMode
|
|
33
|
+
) -> float:
|
|
34
|
+
return excitation_energy - value if mode == EnergyMode.BINDING else value
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
@abstractmethod
|
|
38
|
+
def pass_energy_type(self) -> type:
|
|
39
|
+
"""
|
|
40
|
+
Return the type the pass_energy should be. Each one is unfortunately different
|
|
41
|
+
for the underlying analyser software and cannot be changed on epics side.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
TAbstractAnalyserDriverIO = TypeVar(
|
|
46
|
+
"TAbstractAnalyserDriverIO", bound=AbstractAnalyserDriverIO
|
|
47
|
+
)
|