dls-dodal 1.36.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.36.0 → dls_dodal-1.36.1a0}/PKG-INFO +2 -2
- dls_dodal-1.36.1a0/docs/explanations/decisions/0003-make-devices-factory.md +28 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/pyproject.toml +1 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/PKG-INFO +2 -2
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/SOURCES.txt +9 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/requires.txt +1 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i24.py +56 -7
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/training_rig.py +16 -26
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/cli.py +54 -8
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/beamline_utils.py +32 -2
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/device_helpers.py +2 -0
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/dcm.py +5 -4
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/fast_grid_scan.py +21 -46
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/linkam3.py +1 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/motors.py +14 -10
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_detector.py +2 -2
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +4 -5
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/robot.py +1 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/tetramm.py +1 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/undulator.py +4 -1
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/undulator_dcm.py +3 -19
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_results.py +7 -7
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/utils.py +151 -2
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_oav_system.py +2 -4
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_beamline_utils.py +83 -1
- {dls_dodal-1.36.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.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +11 -9
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav.py +2 -2
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_aperture_scatterguard.py +127 -52
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_eiger.py +1 -1
- {dls_dodal-1.36.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.36.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.36.0 → dls_dodal-1.36.1a0}/tests/test_utils.py +178 -1
- dls_dodal-1.36.1a0/tests/unit_tests/test_cli.py +307 -0
- dls_dodal-1.36.0/src/dodal/beamlines/i22.py +0 -392
- dls_dodal-1.36.0/src/dodal/beamlines/p99.py +0 -61
- dls_dodal-1.36.0/src/dodal/devices/aperturescatterguard.py +0 -243
- dls_dodal-1.36.0/src/dodal/devices/p99/sample_stage.py +0 -41
- dls_dodal-1.36.0/tests/unit_tests/test_cli.py +0 -113
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.copier-answers.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/pages/index.html +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.gitignore +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.vscode/launch.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.vscode/settings.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/Dockerfile +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/LICENSE +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/README.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/catalog-info.yaml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/conftest.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/_api.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/conf.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/explanations.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/genindex.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/how-to.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/index.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/reference.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/docs/tutorials.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/pull_request_template.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/setup.cfg +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/adsim.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i03.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adaravis.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adsim.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/adutils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/attenuator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/save_panda.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zebra.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/log.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i04/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_shutter.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_cli.py +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.36.0 → dls_dodal-1.36.1a0}/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.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.36.
|
|
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
|
|
@@ -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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.36.
|
|
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
|
|
@@ -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
|
|
@@ -240,6 +245,7 @@ tests/fake_beamline_dependencies.py
|
|
|
240
245
|
tests/fake_beamline_disordered_dependencies.py
|
|
241
246
|
tests/fake_beamline_misbehaving_builtins.py
|
|
242
247
|
tests/fake_beamline_some_devices_working.py
|
|
248
|
+
tests/fake_device_factory_beamline.py
|
|
243
249
|
tests/test_cli.py
|
|
244
250
|
tests/test_utils.py
|
|
245
251
|
tests/beamlines/__init__.py
|
|
@@ -295,6 +301,7 @@ tests/devices/unit_tests/test_linkam3.py
|
|
|
295
301
|
tests/devices/unit_tests/test_lookup_table.txt
|
|
296
302
|
tests/devices/unit_tests/test_lookup_table_2.txt
|
|
297
303
|
tests/devices/unit_tests/test_odin.py
|
|
304
|
+
tests/devices/unit_tests/test_pressure_jump_cell.py
|
|
298
305
|
tests/devices/unit_tests/test_qbpm.py
|
|
299
306
|
tests/devices/unit_tests/test_shutter.py
|
|
300
307
|
tests/devices/unit_tests/test_slits.py
|
|
@@ -318,6 +325,8 @@ tests/devices/unit_tests/detector/test_det_resolution.py
|
|
|
318
325
|
tests/devices/unit_tests/detector/test_detector.py
|
|
319
326
|
tests/devices/unit_tests/i24/__init__.py
|
|
320
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
|
|
321
330
|
tests/devices/unit_tests/i24/test_pmac.py
|
|
322
331
|
tests/devices/unit_tests/i24/test_vgonio.py
|
|
323
332
|
tests/devices/unit_tests/oav/__init__.py
|
|
@@ -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
|
+
)
|
|
@@ -19,6 +19,7 @@ from dodal.devices.focusing_mirror import FocusingMirror
|
|
|
19
19
|
from dodal.devices.i22.dcm import DoubleCrystalMonochromator
|
|
20
20
|
from dodal.devices.i22.fswitch import FSwitch
|
|
21
21
|
from dodal.devices.linkam3 import Linkam3
|
|
22
|
+
from dodal.devices.pressure_jump_cell import PressureJumpCell
|
|
22
23
|
from dodal.devices.slits import Slits
|
|
23
24
|
from dodal.devices.tetramm import TetrammDetector
|
|
24
25
|
from dodal.devices.undulator import Undulator
|
|
@@ -312,7 +313,7 @@ def linkam(
|
|
|
312
313
|
return device_instantiation(
|
|
313
314
|
Linkam3,
|
|
314
315
|
"linkam",
|
|
315
|
-
"-EA-LINKM-02:",
|
|
316
|
+
f"{BeamlinePrefix(BL).insertion_prefix}-EA-LINKM-02:",
|
|
316
317
|
wait_for_connection,
|
|
317
318
|
fake_with_ophyd_sim,
|
|
318
319
|
)
|
|
@@ -329,3 +330,17 @@ def ppump(
|
|
|
329
330
|
wait_for_connection,
|
|
330
331
|
fake_with_ophyd_sim,
|
|
331
332
|
)
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def high_pressure_xray_cell(
|
|
336
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
337
|
+
) -> PressureJumpCell:
|
|
338
|
+
return device_instantiation(
|
|
339
|
+
PressureJumpCell,
|
|
340
|
+
"high_pressure_xray_cell",
|
|
341
|
+
f"{BeamlinePrefix(BL).insertion_prefix}-EA",
|
|
342
|
+
wait_for_connection,
|
|
343
|
+
fake_with_ophyd_sim,
|
|
344
|
+
cell_prefix="-HPXC-01:",
|
|
345
|
+
adc_prefix="-ADC",
|
|
346
|
+
)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory, set_beamline
|
|
2
|
+
from dodal.devices.motors import XYZPositioner
|
|
3
|
+
from dodal.devices.p99.sample_stage import FilterMotor, SampleAngleStage
|
|
4
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
5
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
6
|
+
|
|
7
|
+
BL = get_beamline_name("p99")
|
|
8
|
+
PREFIX = BeamlinePrefix(BL)
|
|
9
|
+
set_log_beamline(BL)
|
|
10
|
+
set_beamline(BL)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@device_factory()
|
|
14
|
+
def angle_stage() -> SampleAngleStage:
|
|
15
|
+
return SampleAngleStage(f"{PREFIX.beamline_prefix}-MO-STAGE-01:")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def filter() -> FilterMotor:
|
|
20
|
+
return FilterMotor(f"{PREFIX.beamline_prefix}-MO-STAGE-02:MP:SELECT")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def sample_stage() -> XYZPositioner:
|
|
25
|
+
return XYZPositioner(f"{PREFIX.beamline_prefix}-MO-STAGE-02:")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@device_factory()
|
|
29
|
+
def lab_stage() -> XYZPositioner:
|
|
30
|
+
return XYZPositioner(f"{PREFIX.beamline_prefix}-MO-STAGE-02:LAB:")
|