dls-dodal 1.35.0__tar.gz → 1.36.1a0__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.35.0 → dls_dodal-1.36.1a0}/PKG-INFO +4 -2
- dls_dodal-1.36.1a0/docs/explanations/decisions/0003-make-devices-factory.md +28 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/pyproject.toml +3 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/PKG-INFO +4 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/SOURCES.txt +24 -5
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/requires.txt +3 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/b01_1.py +16 -31
- dls_dodal-1.36.1a0/src/dodal/beamlines/i22.py +251 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i24.py +56 -7
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/p38.py +16 -1
- dls_dodal-1.36.1a0/src/dodal/beamlines/p99.py +30 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/training_rig.py +16 -26
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/cli.py +54 -8
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/beamline_utils.py +32 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/device_helpers.py +2 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/aperture.py +7 -0
- dls_dodal-1.36.1a0/src/dodal/devices/aperturescatterguard.py +359 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/dcm.py +5 -4
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/eiger.py +88 -49
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/fast_grid_scan.py +21 -46
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/focusing_mirror.py +8 -3
- dls_dodal-1.36.1a0/src/dodal/devices/i24/beam_center.py +12 -0
- dls_dodal-1.36.1a0/src/dodal/devices/i24/focus_mirrors.py +60 -0
- dls_dodal-1.36.1a0/src/dodal/devices/i24/pilatus_metadata.py +44 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/linkam3.py +1 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/motors.py +14 -10
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_detector.py +2 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +4 -5
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/utils.py +1 -0
- dls_dodal-1.36.1a0/src/dodal/devices/p99/sample_stage.py +37 -0
- dls_dodal-1.36.1a0/src/dodal/devices/pressure_jump_cell.py +299 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/robot.py +1 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/tetramm.py +1 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/undulator.py +4 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/undulator_dcm.py +3 -19
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_results.py +7 -7
- dls_dodal-1.35.0/src/dodal/plans/data_session_metadata.py → dls_dodal-1.36.1a0/src/dodal/plan_stubs/data_session.py +2 -2
- dls_dodal-1.35.0/src/dodal/plans/motor_util_plans.py → dls_dodal-1.36.1a0/src/dodal/plan_stubs/motor_utils.py +2 -2
- dls_dodal-1.36.1a0/src/dodal/plan_stubs/wrapped.py +150 -0
- dls_dodal-1.36.1a0/src/dodal/plans/__init__.py +4 -0
- dls_dodal-1.36.1a0/src/dodal/plans/scanspec.py +66 -0
- dls_dodal-1.36.1a0/src/dodal/plans/wrapped.py +57 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/utils.py +151 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_oav_system.py +2 -4
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_beamline_utils.py +83 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_device_instantiation.py +22 -12
- dls_dodal-1.36.1a0/tests/devices/unit_tests/i24/test_focus_mirrors.py +27 -0
- dls_dodal-1.36.1a0/tests/devices/unit_tests/i24/test_pilatus_metadata.py +24 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +11 -9
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav.py +2 -2
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_aperture_scatterguard.py +127 -52
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_eiger.py +12 -3
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_gridscan.py +16 -16
- dls_dodal-1.36.1a0/tests/devices/unit_tests/test_pressure_jump_cell.py +354 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_undulator_dcm.py +14 -13
- dls_dodal-1.36.1a0/tests/fake_device_factory_beamline.py +34 -0
- {dls_dodal-1.35.0/tests/plans → dls_dodal-1.36.1a0/tests/plan_stubs}/test_motor_util_plans.py +7 -7
- {dls_dodal-1.35.0/tests/plans → dls_dodal-1.36.1a0/tests/plan_stubs}/test_topup_plan.py +9 -9
- dls_dodal-1.36.1a0/tests/plan_stubs/test_wrapped_stubs.py +144 -0
- dls_dodal-1.36.1a0/tests/plans/conftest.py +40 -0
- dls_dodal-1.36.1a0/tests/plans/test_compliance.py +78 -0
- dls_dodal-1.36.1a0/tests/plans/test_scanspec.py +183 -0
- dls_dodal-1.36.1a0/tests/plans/test_wrapped.py +159 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/preprocessors/test_filesystem_metadata.py +1 -1
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_utils.py +178 -1
- dls_dodal-1.36.1a0/tests/unit_tests/__init__.py +0 -0
- dls_dodal-1.36.1a0/tests/unit_tests/test_cli.py +307 -0
- dls_dodal-1.35.0/src/dodal/beamlines/i22.py +0 -392
- dls_dodal-1.35.0/src/dodal/beamlines/p99.py +0 -61
- dls_dodal-1.35.0/src/dodal/devices/aperturescatterguard.py +0 -243
- dls_dodal-1.35.0/src/dodal/devices/p99/sample_stage.py +0 -41
- dls_dodal-1.35.0/tests/unit_tests/test_cli.py +0 -113
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.copier-answers.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/pages/index.html +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.gitignore +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.vscode/launch.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.vscode/settings.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/Dockerfile +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/LICENSE +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/README.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/catalog-info.yaml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/conftest.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/_api.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/conf.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/explanations.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/genindex.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/how-to.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/index.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/reference.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/docs/tutorials.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/pull_request_template.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/setup.cfg +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/adsim.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i03.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adaravis.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adsim.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adutils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/attenuator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/save_panda.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zebra.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/log.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.35.0/system_tests → dls_dodal-1.36.1a0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.35.0/src/dodal/plans → dls_dodal-1.36.1a0/src/dodal/plan_stubs}/check_topup.py +0 -0
- {dls_dodal-1.35.0/tests → dls_dodal-1.36.1a0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.35.0/tests/beamlines → dls_dodal-1.36.1a0/tests}/__init__.py +0 -0
- {dls_dodal-1.35.0/tests/beamlines/unit_tests → dls_dodal-1.36.1a0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.35.0/tests/common → dls_dodal-1.36.1a0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.35.0/tests/common/beamlines → dls_dodal-1.36.1a0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.35.0/tests/devices → dls_dodal-1.36.1a0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.35.0/tests/devices/i04 → dls_dodal-1.36.1a0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.35.0/tests/devices/unit_tests → dls_dodal-1.36.1a0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.35.0/tests/devices/unit_tests/i24 → dls_dodal-1.36.1a0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.35.0/tests/devices/unit_tests/oav → dls_dodal-1.36.1a0/tests/devices/unit_tests/i24}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.35.0/tests/devices/unit_tests/util → dls_dodal-1.36.1a0/tests/devices/unit_tests/oav}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_shutter.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.35.0/tests/fake_zocalo → dls_dodal-1.36.1a0/tests/devices/unit_tests/util}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.35.0/tests/unit_tests → dls_dodal-1.36.1a0/tests/fake_zocalo}/__init__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_cli.py +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.35.0 → dls_dodal-1.36.1a0}/tests/unit_tests/test_log.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.36.1a0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async
|
|
219
|
+
Requires-Dist: ophyd-async>=0.8.0a5
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -233,11 +233,13 @@ Requires-Dist: aiofiles
|
|
|
233
233
|
Requires-Dist: aiohttp
|
|
234
234
|
Requires-Dist: redis
|
|
235
235
|
Requires-Dist: deepdiff
|
|
236
|
+
Requires-Dist: scanspec>=0.7.3
|
|
236
237
|
Provides-Extra: dev
|
|
237
238
|
Requires-Dist: black; extra == "dev"
|
|
238
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
239
240
|
Requires-Dist: mypy; extra == "dev"
|
|
240
241
|
Requires-Dist: myst-parser; extra == "dev"
|
|
242
|
+
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
241
243
|
Requires-Dist: pipdeptree; extra == "dev"
|
|
242
244
|
Requires-Dist: pre-commit; extra == "dev"
|
|
243
245
|
Requires-Dist: psutil; extra == "dev"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 3. Add device factory decorator with lazy connect support
|
|
2
|
+
|
|
3
|
+
Date: 2024-04-26
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
Accepted
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
Device instances should be capable of being created without necessarily connecting, so long as they are connected prior to being utilised to collect data. The current method puts requirements on the init method of device classes, and does not expose all options for connecting to ophyd-async devices.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
DAQ members led us to this proposal:
|
|
16
|
+
|
|
17
|
+
- ophyd-async: make Device.connect(mock, timeout, force=False) idempotent
|
|
18
|
+
- ophyd-async: make ensure_connected(\*devices) plan stub
|
|
19
|
+
- dodal: make device_factory() decorator that may construct, name, cache and connect a device
|
|
20
|
+
- dodal: collect_factories() returns all device factories
|
|
21
|
+
- blueapi: call collect_factories(), instantiate and connect Devices appropriately, log those that fail
|
|
22
|
+
- blueapi: when plan is called, run ensure_connected on all plan args and defaults that are Devices
|
|
23
|
+
|
|
24
|
+
We can then iterate on this if the parallel connect causes a broadcast storm. We could also in future add a monitor to a heartbeat PV per device in Device.connect so that it would reconnect next time it was called.
|
|
25
|
+
|
|
26
|
+
## Consequences
|
|
27
|
+
|
|
28
|
+
Beamlines will be converted to use the decorator, and default arguments to plans should be replaced with a non-eagerly connecting call to the initializer controlling device.
|
|
@@ -15,7 +15,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
|
|
|
15
15
|
dependencies = [
|
|
16
16
|
"click",
|
|
17
17
|
"ophyd",
|
|
18
|
-
"ophyd-async
|
|
18
|
+
"ophyd-async >= 0.8.0a5",
|
|
19
19
|
"bluesky",
|
|
20
20
|
"pyepics",
|
|
21
21
|
"dataclasses-json",
|
|
@@ -32,6 +32,7 @@ dependencies = [
|
|
|
32
32
|
"aiohttp",
|
|
33
33
|
"redis",
|
|
34
34
|
"deepdiff",
|
|
35
|
+
"scanspec>=0.7.3",
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
dynamic = ["version"]
|
|
@@ -47,6 +48,7 @@ dev = [
|
|
|
47
48
|
# Commented out due to dependency version conflict with pydantic 1.x
|
|
48
49
|
# "copier",
|
|
49
50
|
"myst-parser",
|
|
51
|
+
"ophyd_async[sim]",
|
|
50
52
|
"pipdeptree",
|
|
51
53
|
"pre-commit",
|
|
52
54
|
"psutil",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.36.1a0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async
|
|
219
|
+
Requires-Dist: ophyd-async>=0.8.0a5
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -233,11 +233,13 @@ Requires-Dist: aiofiles
|
|
|
233
233
|
Requires-Dist: aiohttp
|
|
234
234
|
Requires-Dist: redis
|
|
235
235
|
Requires-Dist: deepdiff
|
|
236
|
+
Requires-Dist: scanspec>=0.7.3
|
|
236
237
|
Provides-Extra: dev
|
|
237
238
|
Requires-Dist: black; extra == "dev"
|
|
238
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
239
240
|
Requires-Dist: mypy; extra == "dev"
|
|
240
241
|
Requires-Dist: myst-parser; extra == "dev"
|
|
242
|
+
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
241
243
|
Requires-Dist: pipdeptree; extra == "dev"
|
|
242
244
|
Requires-Dist: pre-commit; extra == "dev"
|
|
243
245
|
Requires-Dist: psutil; extra == "dev"
|
|
@@ -43,6 +43,7 @@ docs/assets/zocalo.png
|
|
|
43
43
|
docs/explanations/decisions.md
|
|
44
44
|
docs/explanations/decisions/0001-record-architecture-decisions.md
|
|
45
45
|
docs/explanations/decisions/0002-switched-to-python-copier-template.md
|
|
46
|
+
docs/explanations/decisions/0003-make-devices-factory.md
|
|
46
47
|
docs/explanations/decisions/COPYME
|
|
47
48
|
docs/how-to/build-docs.md
|
|
48
49
|
docs/how-to/contribute.md
|
|
@@ -134,6 +135,7 @@ src/dodal/devices/logging_ophyd_device.py
|
|
|
134
135
|
src/dodal/devices/motors.py
|
|
135
136
|
src/dodal/devices/p45.py
|
|
136
137
|
src/dodal/devices/pgm.py
|
|
138
|
+
src/dodal/devices/pressure_jump_cell.py
|
|
137
139
|
src/dodal/devices/qbpm.py
|
|
138
140
|
src/dodal/devices/robot.py
|
|
139
141
|
src/dodal/devices/s4_slit_gaps.py
|
|
@@ -175,10 +177,13 @@ src/dodal/devices/i22/fswitch.py
|
|
|
175
177
|
src/dodal/devices/i22/nxsas.py
|
|
176
178
|
src/dodal/devices/i24/__init__.py
|
|
177
179
|
src/dodal/devices/i24/aperture.py
|
|
180
|
+
src/dodal/devices/i24/beam_center.py
|
|
178
181
|
src/dodal/devices/i24/beamstop.py
|
|
179
182
|
src/dodal/devices/i24/dcm.py
|
|
180
183
|
src/dodal/devices/i24/dual_backlight.py
|
|
184
|
+
src/dodal/devices/i24/focus_mirrors.py
|
|
181
185
|
src/dodal/devices/i24/i24_detector_motion.py
|
|
186
|
+
src/dodal/devices/i24/pilatus_metadata.py
|
|
182
187
|
src/dodal/devices/i24/pmac.py
|
|
183
188
|
src/dodal/devices/i24/vgonio.py
|
|
184
189
|
src/dodal/devices/oav/__init__.py
|
|
@@ -212,9 +217,14 @@ src/dodal/devices/zocalo/zocalo_constants.py
|
|
|
212
217
|
src/dodal/devices/zocalo/zocalo_interaction.py
|
|
213
218
|
src/dodal/devices/zocalo/zocalo_results.py
|
|
214
219
|
src/dodal/parameters/experiment_parameter_base.py
|
|
215
|
-
src/dodal/
|
|
216
|
-
src/dodal/
|
|
217
|
-
src/dodal/
|
|
220
|
+
src/dodal/plan_stubs/__init__.py
|
|
221
|
+
src/dodal/plan_stubs/check_topup.py
|
|
222
|
+
src/dodal/plan_stubs/data_session.py
|
|
223
|
+
src/dodal/plan_stubs/motor_utils.py
|
|
224
|
+
src/dodal/plan_stubs/wrapped.py
|
|
225
|
+
src/dodal/plans/__init__.py
|
|
226
|
+
src/dodal/plans/scanspec.py
|
|
227
|
+
src/dodal/plans/wrapped.py
|
|
218
228
|
system_tests/__init__.py
|
|
219
229
|
system_tests/test_aperturescatterguard_system.py
|
|
220
230
|
system_tests/test_eiger_system.py
|
|
@@ -235,6 +245,7 @@ tests/fake_beamline_dependencies.py
|
|
|
235
245
|
tests/fake_beamline_disordered_dependencies.py
|
|
236
246
|
tests/fake_beamline_misbehaving_builtins.py
|
|
237
247
|
tests/fake_beamline_some_devices_working.py
|
|
248
|
+
tests/fake_device_factory_beamline.py
|
|
238
249
|
tests/test_cli.py
|
|
239
250
|
tests/test_utils.py
|
|
240
251
|
tests/beamlines/__init__.py
|
|
@@ -290,6 +301,7 @@ tests/devices/unit_tests/test_linkam3.py
|
|
|
290
301
|
tests/devices/unit_tests/test_lookup_table.txt
|
|
291
302
|
tests/devices/unit_tests/test_lookup_table_2.txt
|
|
292
303
|
tests/devices/unit_tests/test_odin.py
|
|
304
|
+
tests/devices/unit_tests/test_pressure_jump_cell.py
|
|
293
305
|
tests/devices/unit_tests/test_qbpm.py
|
|
294
306
|
tests/devices/unit_tests/test_shutter.py
|
|
295
307
|
tests/devices/unit_tests/test_slits.py
|
|
@@ -313,6 +325,8 @@ tests/devices/unit_tests/detector/test_det_resolution.py
|
|
|
313
325
|
tests/devices/unit_tests/detector/test_detector.py
|
|
314
326
|
tests/devices/unit_tests/i24/__init__.py
|
|
315
327
|
tests/devices/unit_tests/i24/test_dual_backlight.py
|
|
328
|
+
tests/devices/unit_tests/i24/test_focus_mirrors.py
|
|
329
|
+
tests/devices/unit_tests/i24/test_pilatus_metadata.py
|
|
316
330
|
tests/devices/unit_tests/i24/test_pmac.py
|
|
317
331
|
tests/devices/unit_tests/i24/test_vgonio.py
|
|
318
332
|
tests/devices/unit_tests/oav/__init__.py
|
|
@@ -338,8 +352,13 @@ tests/fake_zocalo/README.rst
|
|
|
338
352
|
tests/fake_zocalo/__init__.py
|
|
339
353
|
tests/fake_zocalo/__main__.py
|
|
340
354
|
tests/fake_zocalo/dls_start_fake_zocalo.sh
|
|
341
|
-
tests/
|
|
342
|
-
tests/
|
|
355
|
+
tests/plan_stubs/test_motor_util_plans.py
|
|
356
|
+
tests/plan_stubs/test_topup_plan.py
|
|
357
|
+
tests/plan_stubs/test_wrapped_stubs.py
|
|
358
|
+
tests/plans/conftest.py
|
|
359
|
+
tests/plans/test_compliance.py
|
|
360
|
+
tests/plans/test_scanspec.py
|
|
361
|
+
tests/plans/test_wrapped.py
|
|
343
362
|
tests/preprocessors/test_filesystem_metadata.py
|
|
344
363
|
tests/test_data/bad_beamlineParameters
|
|
345
364
|
tests/test_data/i04_beamlineParameters
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
click
|
|
2
2
|
ophyd
|
|
3
|
-
ophyd-async
|
|
3
|
+
ophyd-async>=0.8.0a5
|
|
4
4
|
bluesky
|
|
5
5
|
pyepics
|
|
6
6
|
dataclasses-json
|
|
@@ -17,12 +17,14 @@ aiofiles
|
|
|
17
17
|
aiohttp
|
|
18
18
|
redis
|
|
19
19
|
deepdiff
|
|
20
|
+
scanspec>=0.7.3
|
|
20
21
|
|
|
21
22
|
[dev]
|
|
22
23
|
black
|
|
23
24
|
diff-cover
|
|
24
25
|
mypy
|
|
25
26
|
myst-parser
|
|
27
|
+
ophyd_async[sim]
|
|
26
28
|
pipdeptree
|
|
27
29
|
pre-commit
|
|
28
30
|
psutil
|
|
@@ -4,16 +4,19 @@ from ophyd_async.epics.adaravis import AravisDetector
|
|
|
4
4
|
from ophyd_async.fastcs.panda import HDFPanda
|
|
5
5
|
|
|
6
6
|
from dodal.common.beamlines.beamline_utils import (
|
|
7
|
-
|
|
7
|
+
device_factory,
|
|
8
8
|
get_path_provider,
|
|
9
9
|
set_path_provider,
|
|
10
10
|
)
|
|
11
11
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
12
|
+
from dodal.common.beamlines.device_helpers import HDF5_PREFIX
|
|
12
13
|
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
|
|
13
14
|
from dodal.devices.synchrotron import Synchrotron
|
|
14
15
|
from dodal.log import set_beamline as set_log_beamline
|
|
16
|
+
from dodal.utils import BeamlinePrefix
|
|
15
17
|
|
|
16
18
|
BL = "c01"
|
|
19
|
+
PREFIX = BeamlinePrefix(BL)
|
|
17
20
|
set_log_beamline(BL)
|
|
18
21
|
set_utils_beamline(BL)
|
|
19
22
|
|
|
@@ -36,42 +39,24 @@ https://argocd.diamond.ac.uk/applications?showFavorites=false&proj=&sync=&autoSy
|
|
|
36
39
|
"""
|
|
37
40
|
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
device_factory=HDFPanda,
|
|
44
|
-
name="panda",
|
|
45
|
-
prefix="-EA-PANDA-01:",
|
|
46
|
-
wait=wait_for_connection,
|
|
47
|
-
fake=fake_with_ophyd_sim,
|
|
42
|
+
@device_factory()
|
|
43
|
+
def panda() -> HDFPanda:
|
|
44
|
+
return HDFPanda(
|
|
45
|
+
f"{PREFIX.beamline_prefix}-EA-PANDA-01:",
|
|
48
46
|
path_provider=get_path_provider(),
|
|
49
47
|
)
|
|
50
48
|
|
|
51
49
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return device_instantiation(
|
|
56
|
-
Synchrotron,
|
|
57
|
-
"synchrotron",
|
|
58
|
-
"",
|
|
59
|
-
wait_for_connection,
|
|
60
|
-
fake_with_ophyd_sim,
|
|
61
|
-
bl_prefix=False,
|
|
62
|
-
)
|
|
50
|
+
@device_factory()
|
|
51
|
+
def synchrotron() -> Synchrotron:
|
|
52
|
+
return Synchrotron()
|
|
63
53
|
|
|
64
54
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
AravisDetector,
|
|
70
|
-
"manta",
|
|
71
|
-
"-DI-DCAM-02:",
|
|
72
|
-
wait_for_connection,
|
|
73
|
-
fake_with_ophyd_sim,
|
|
55
|
+
@device_factory()
|
|
56
|
+
def manta() -> AravisDetector:
|
|
57
|
+
return AravisDetector(
|
|
58
|
+
f"{PREFIX.beamline_prefix}-DI-DCAM-02:",
|
|
74
59
|
path_provider=get_path_provider(),
|
|
75
60
|
drv_suffix="CAM:",
|
|
76
|
-
hdf_suffix=
|
|
61
|
+
hdf_suffix=HDF5_PREFIX,
|
|
77
62
|
)
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from ophyd_async.epics.adaravis import AravisDetector
|
|
4
|
+
from ophyd_async.epics.adpilatus import PilatusDetector
|
|
5
|
+
from ophyd_async.fastcs.panda import HDFPanda
|
|
6
|
+
|
|
7
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
8
|
+
device_factory,
|
|
9
|
+
get_path_provider,
|
|
10
|
+
set_path_provider,
|
|
11
|
+
)
|
|
12
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
13
|
+
from dodal.common.beamlines.device_helpers import HDF5_PREFIX
|
|
14
|
+
from dodal.common.crystal_metadata import (
|
|
15
|
+
MaterialsEnum,
|
|
16
|
+
make_crystal_metadata_from_material,
|
|
17
|
+
)
|
|
18
|
+
from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
|
|
19
|
+
from dodal.devices.focusing_mirror import FocusingMirror
|
|
20
|
+
from dodal.devices.i22.dcm import DoubleCrystalMonochromator
|
|
21
|
+
from dodal.devices.i22.fswitch import FSwitch
|
|
22
|
+
from dodal.devices.i22.nxsas import NXSasMetadataHolder, NXSasOAV, NXSasPilatus
|
|
23
|
+
from dodal.devices.linkam3 import Linkam3
|
|
24
|
+
from dodal.devices.slits import Slits
|
|
25
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
26
|
+
from dodal.devices.tetramm import TetrammDetector
|
|
27
|
+
from dodal.devices.undulator import Undulator
|
|
28
|
+
from dodal.devices.watsonmarlow323_pump import WatsonMarlow323Pump
|
|
29
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
30
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
31
|
+
|
|
32
|
+
BL = get_beamline_name("i22")
|
|
33
|
+
PREFIX = BeamlinePrefix(BL)
|
|
34
|
+
set_log_beamline(BL)
|
|
35
|
+
set_utils_beamline(BL)
|
|
36
|
+
|
|
37
|
+
# Currently we must hard-code the visit, determining the visit at runtime requires
|
|
38
|
+
# infrastructure that is still WIP.
|
|
39
|
+
# Communication with GDA is also WIP so for now we determine an arbitrary scan number
|
|
40
|
+
# locally and write the commissioning directory. The scan number is not guaranteed to
|
|
41
|
+
# be unique and the data is at risk - this configuration is for testing only.
|
|
42
|
+
set_path_provider(
|
|
43
|
+
StaticVisitPathProvider(
|
|
44
|
+
BL,
|
|
45
|
+
Path("/dls/i22/data/2024/cm37271-2/bluesky"),
|
|
46
|
+
client=RemoteDirectoryServiceClient("http://i22-control:8088/api"),
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@device_factory()
|
|
52
|
+
def saxs() -> PilatusDetector:
|
|
53
|
+
metadata_holder = NXSasMetadataHolder(
|
|
54
|
+
x_pixel_size=(1.72e-1, "mm"),
|
|
55
|
+
y_pixel_size=(1.72e-1, "mm"),
|
|
56
|
+
description="Dectris Pilatus3 2M",
|
|
57
|
+
type="Photon Counting Hybrid Pixel",
|
|
58
|
+
sensor_material="silicon",
|
|
59
|
+
sensor_thickness=(0.45, "mm"),
|
|
60
|
+
distance=(4711.833684146172, "mm"),
|
|
61
|
+
)
|
|
62
|
+
return NXSasPilatus(
|
|
63
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:",
|
|
64
|
+
path_provider=get_path_provider(),
|
|
65
|
+
drv_suffix="CAM:",
|
|
66
|
+
hdf_suffix=HDF5_PREFIX,
|
|
67
|
+
metadata_holder=metadata_holder,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@device_factory()
|
|
72
|
+
def synchrotron() -> Synchrotron:
|
|
73
|
+
return Synchrotron()
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@device_factory()
|
|
77
|
+
def waxs() -> PilatusDetector:
|
|
78
|
+
metadata_holder = NXSasMetadataHolder(
|
|
79
|
+
x_pixel_size=(1.72e-1, "mm"),
|
|
80
|
+
y_pixel_size=(1.72e-1, "mm"),
|
|
81
|
+
description="Dectris Pilatus3 2M",
|
|
82
|
+
type="Photon Counting Hybrid Pixel",
|
|
83
|
+
sensor_material="silicon",
|
|
84
|
+
sensor_thickness=(0.45, "mm"),
|
|
85
|
+
distance=(175.4199417092314, "mm"),
|
|
86
|
+
)
|
|
87
|
+
return NXSasPilatus(
|
|
88
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-03:",
|
|
89
|
+
path_provider=get_path_provider(),
|
|
90
|
+
drv_suffix="CAM:",
|
|
91
|
+
hdf_suffix=HDF5_PREFIX,
|
|
92
|
+
metadata_holder=metadata_holder,
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@device_factory()
|
|
97
|
+
def i0() -> TetrammDetector:
|
|
98
|
+
return TetrammDetector(
|
|
99
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-XBPM-02:",
|
|
100
|
+
path_provider=get_path_provider(),
|
|
101
|
+
type="Cividec Diamond XBPM",
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
@device_factory()
|
|
106
|
+
def it() -> TetrammDetector:
|
|
107
|
+
return TetrammDetector(
|
|
108
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-TTRM-02:",
|
|
109
|
+
path_provider=get_path_provider(),
|
|
110
|
+
type="PIN Diode",
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
@device_factory()
|
|
115
|
+
def vfm() -> FocusingMirror:
|
|
116
|
+
return FocusingMirror(
|
|
117
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-KBM-01:VFM:",
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
@device_factory()
|
|
122
|
+
def hfm() -> FocusingMirror:
|
|
123
|
+
return FocusingMirror(
|
|
124
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-KBM-01:HFM:",
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@device_factory()
|
|
129
|
+
def dcm() -> DoubleCrystalMonochromator:
|
|
130
|
+
return DoubleCrystalMonochromator(
|
|
131
|
+
prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
132
|
+
temperature_prefix=f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
133
|
+
crystal_1_metadata=make_crystal_metadata_from_material(
|
|
134
|
+
MaterialsEnum.Si, (1, 1, 1)
|
|
135
|
+
),
|
|
136
|
+
crystal_2_metadata=make_crystal_metadata_from_material(
|
|
137
|
+
MaterialsEnum.Si, (1, 1, 1)
|
|
138
|
+
),
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
@device_factory()
|
|
143
|
+
def undulator() -> Undulator:
|
|
144
|
+
return Undulator(
|
|
145
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
146
|
+
id_gap_lookup_table_path="/dls_sw/i22/software/daq_configuration/lookup/BeamLine_Undulator_toGap.txt",
|
|
147
|
+
poles=80,
|
|
148
|
+
length=2.0,
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@device_factory()
|
|
153
|
+
def slits_1() -> Slits:
|
|
154
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:")
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
@device_factory()
|
|
158
|
+
def slits_2() -> Slits:
|
|
159
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:")
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
@device_factory()
|
|
163
|
+
def slits_3() -> Slits:
|
|
164
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:")
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
@device_factory()
|
|
168
|
+
def slits_4() -> Slits:
|
|
169
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:")
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
@device_factory()
|
|
173
|
+
def slits_5() -> Slits:
|
|
174
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:")
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
@device_factory()
|
|
178
|
+
def slits_6() -> Slits:
|
|
179
|
+
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:")
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@device_factory()
|
|
183
|
+
def fswitch() -> FSwitch:
|
|
184
|
+
return FSwitch(
|
|
185
|
+
prefix=f"{PREFIX.beamline_prefix}-MO-FSWT-01:",
|
|
186
|
+
lens_geometry="paraboloid",
|
|
187
|
+
cylindrical=True,
|
|
188
|
+
lens_material="Beryllium",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
# Must document what PandAs are physically connected to
|
|
193
|
+
# See: https://github.com/bluesky/ophyd-async/issues/284
|
|
194
|
+
@device_factory()
|
|
195
|
+
def panda1() -> HDFPanda:
|
|
196
|
+
return HDFPanda(
|
|
197
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PANDA-01:",
|
|
198
|
+
path_provider=get_path_provider(),
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
@device_factory(skip=True)
|
|
203
|
+
def panda2() -> HDFPanda:
|
|
204
|
+
return HDFPanda(
|
|
205
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PANDA-02:",
|
|
206
|
+
path_provider=get_path_provider(),
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
@device_factory(skip=True)
|
|
211
|
+
def panda3() -> HDFPanda:
|
|
212
|
+
return HDFPanda(
|
|
213
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PANDA-03:",
|
|
214
|
+
path_provider=get_path_provider(),
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
@device_factory(skip=True)
|
|
219
|
+
def panda4() -> HDFPanda:
|
|
220
|
+
return HDFPanda(
|
|
221
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PANDA-04:",
|
|
222
|
+
path_provider=get_path_provider(),
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
@device_factory()
|
|
227
|
+
def oav() -> AravisDetector:
|
|
228
|
+
metadata_holder = NXSasMetadataHolder(
|
|
229
|
+
x_pixel_size=(3.45e-3, "mm"), # Double check this figure
|
|
230
|
+
y_pixel_size=(3.45e-3, "mm"),
|
|
231
|
+
description="AVT Mako G-507B",
|
|
232
|
+
distance=(-1.0, "m"),
|
|
233
|
+
)
|
|
234
|
+
return NXSasOAV(
|
|
235
|
+
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
236
|
+
drv_suffix="DET:",
|
|
237
|
+
hdf_suffix=HDF5_PREFIX,
|
|
238
|
+
path_provider=get_path_provider(),
|
|
239
|
+
metadata_holder=metadata_holder,
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
@device_factory(skip=True)
|
|
244
|
+
def linkam() -> Linkam3:
|
|
245
|
+
return Linkam3(prefix=f"{PREFIX.beamline_prefix}-EA-TEMPC-05:")
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
@device_factory()
|
|
249
|
+
def ppump() -> WatsonMarlow323Pump:
|
|
250
|
+
"""Sample Environment Peristaltic Pump"""
|
|
251
|
+
return WatsonMarlow323Pump(f"{PREFIX.beamline_prefix}-EA-PUMP-01:")
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import
|
|
2
|
-
BL,
|
|
3
|
-
device_instantiation,
|
|
4
|
-
)
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import BL, device_instantiation
|
|
5
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
6
3
|
from dodal.devices.detector import DetectorParams
|
|
7
4
|
from dodal.devices.eiger import EigerDetector
|
|
8
5
|
from dodal.devices.hutch_shutter import HutchShutter
|
|
9
6
|
from dodal.devices.i24.aperture import Aperture
|
|
7
|
+
from dodal.devices.i24.beam_center import DetectorBeamCenter
|
|
10
8
|
from dodal.devices.i24.beamstop import Beamstop
|
|
11
9
|
from dodal.devices.i24.dcm import DCM
|
|
12
10
|
from dodal.devices.i24.dual_backlight import DualBacklight
|
|
11
|
+
from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
|
|
13
12
|
from dodal.devices.i24.i24_detector_motion import DetectorMotion
|
|
13
|
+
from dodal.devices.i24.pilatus_metadata import PilatusMetadata
|
|
14
14
|
from dodal.devices.i24.pmac import PMAC
|
|
15
15
|
from dodal.devices.i24.vgonio import VerticalGoniometer
|
|
16
16
|
from dodal.devices.oav.oav_detector import OAV
|
|
@@ -70,7 +70,6 @@ def backlight(
|
|
|
70
70
|
)
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
@skip_device(lambda: BL == "s24")
|
|
74
73
|
def detector_motion(
|
|
75
74
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
76
75
|
) -> DetectorMotion:
|
|
@@ -151,7 +150,6 @@ def oav(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) ->
|
|
|
151
150
|
)
|
|
152
151
|
|
|
153
152
|
|
|
154
|
-
@skip_device(lambda: BL == "s24")
|
|
155
153
|
def vgonio(
|
|
156
154
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
157
155
|
) -> VerticalGoniometer:
|
|
@@ -180,7 +178,6 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
|
|
|
180
178
|
)
|
|
181
179
|
|
|
182
180
|
|
|
183
|
-
@skip_device(lambda: BL == "s24")
|
|
184
181
|
def shutter(
|
|
185
182
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
186
183
|
) -> HutchShutter:
|
|
@@ -194,3 +191,55 @@ def shutter(
|
|
|
194
191
|
wait_for_connection,
|
|
195
192
|
fake_with_ophyd_sim,
|
|
196
193
|
)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def focus_mirrors(
|
|
197
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
198
|
+
) -> FocusMirrorsMode:
|
|
199
|
+
"""Get the i24 focus mirror devise to find the beam size."""
|
|
200
|
+
return device_instantiation(
|
|
201
|
+
FocusMirrorsMode,
|
|
202
|
+
"focus_mirrors",
|
|
203
|
+
"-OP-MFM-01:",
|
|
204
|
+
wait_for_connection,
|
|
205
|
+
fake_with_ophyd_sim,
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def eiger_beam_center(
|
|
210
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
211
|
+
) -> DetectorBeamCenter:
|
|
212
|
+
"""A device for setting/reading the beamcenter from the eiger on i24."""
|
|
213
|
+
return device_instantiation(
|
|
214
|
+
DetectorBeamCenter,
|
|
215
|
+
"eiger_bc",
|
|
216
|
+
"-EA-EIGER-01:CAM:",
|
|
217
|
+
wait_for_connection,
|
|
218
|
+
fake_with_ophyd_sim,
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def pilatus_beam_center(
|
|
223
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
224
|
+
) -> DetectorBeamCenter:
|
|
225
|
+
"""A device for setting/reading the beamcenter from the pilatus on i24."""
|
|
226
|
+
return device_instantiation(
|
|
227
|
+
DetectorBeamCenter,
|
|
228
|
+
"pilatus_bc",
|
|
229
|
+
"-EA-PILAT-01:cam1:",
|
|
230
|
+
wait_for_connection,
|
|
231
|
+
fake_with_ophyd_sim,
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def pilatus_metadata(
|
|
236
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
237
|
+
) -> PilatusMetadata:
|
|
238
|
+
"""A small pilatus driver device for figuring out the filename template."""
|
|
239
|
+
return device_instantiation(
|
|
240
|
+
PilatusMetadata,
|
|
241
|
+
"pilatus_meta",
|
|
242
|
+
"-EA-PILAT-01:",
|
|
243
|
+
wait_for_connection,
|
|
244
|
+
fake_with_ophyd_sim,
|
|
245
|
+
)
|