dls-dodal 1.36.3__tar.gz → 1.38.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_tox.yml +3 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.pre-commit-config.yaml +8 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/PKG-INFO +4 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/conftest.py +3 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/reviews.md +1 -1
- dls_dodal-1.38.0/docs/how-to/zocalo.rst +71 -0
- dls_dodal-1.38.0/docs/reference/api.md +28 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/reference.md +1 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/pyproject.toml +16 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/PKG-INFO +4 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/SOURCES.txt +32 -5
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/requires.txt +2 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/_version.py +2 -2
- dls_dodal-1.38.0/src/dodal/beamlines/i02_1.py +37 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i03.py +34 -5
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i04.py +16 -5
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i10.py +105 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i13_1.py +20 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i22.py +15 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i24.py +14 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/p99.py +6 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/training_rig.py +10 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/crystal_metadata.py +3 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/udc_directory_provider.py +3 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/aperturescatterguard.py +3 -0
- {dls_dodal-1.36.3/src/dodal/devices → dls_dodal-1.38.0/src/dodal/devices/attenuator}/attenuator.py +29 -1
- dls_dodal-1.38.0/src/dodal/devices/attenuator/filter.py +11 -0
- dls_dodal-1.38.0/src/dodal/devices/attenuator/filter_selections.py +72 -0
- dls_dodal-1.38.0/src/dodal/devices/bimorph_mirror.py +151 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/__init__.py +34 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/current_amplifier.py +103 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +109 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/femto.py +143 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/sr570.py +214 -0
- dls_dodal-1.38.0/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +79 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/det_dim_constants.py +15 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/eiger_odin.py +3 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/fast_grid_scan.py +8 -3
- dls_dodal-1.38.0/src/dodal/devices/flux.py +14 -0
- dls_dodal-1.38.0/src/dodal/devices/i03/beamstop.py +85 -0
- dls_dodal-1.38.0/src/dodal/devices/i04/transfocator.py +96 -0
- dls_dodal-1.38.0/src/dodal/devices/i10/rasor/rasor_current_amp.py +72 -0
- dls_dodal-1.38.0/src/dodal/devices/i10/rasor/rasor_motors.py +62 -0
- dls_dodal-1.38.0/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +12 -0
- dls_dodal-1.38.0/src/dodal/devices/i13_1/merlin.py +33 -0
- dls_dodal-1.38.0/src/dodal/devices/i13_1/merlin_controller.py +52 -0
- dls_dodal-1.38.0/src/dodal/devices/i13_1/merlin_io.py +17 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/beam_center.py +1 -1
- dls_dodal-1.38.0/src/dodal/devices/p45.py +55 -0
- dls_dodal-1.38.0/src/dodal/devices/p99/sample_stage.py +11 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/robot.py +2 -2
- dls_dodal-1.38.0/src/dodal/devices/s4_slit_gaps.py +12 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/undulator_dcm.py +9 -11
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/util/lookup_tables.py +14 -10
- {dls_dodal-1.36.3/src/dodal/devices → dls_dodal-1.38.0/src/dodal/devices/zebra}/zebra.py +9 -33
- dls_dodal-1.38.0/src/dodal/devices/zebra/zebra_constants_mapping.py +96 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/zocalo/zocalo_interaction.py +2 -1
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/zocalo/zocalo_results.py +22 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/log.py +2 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plans/wrapped.py +3 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_zebra_system.py +3 -2
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/beamlines/test_beamline_utils.py +6 -7
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/beamlines/test_device_instantiation.py +6 -6
- dls_dodal-1.38.0/tests/devices/i03/test_beamstop.py +66 -0
- dls_dodal-1.38.0/tests/devices/i04/test_transfocator.py +74 -0
- dls_dodal-1.38.0/tests/devices/i13_1/test_merlin.py +106 -0
- dls_dodal-1.38.0/tests/devices/unit_tests/current_amplifier/test_femto.py +309 -0
- dls_dodal-1.38.0/tests/devices/unit_tests/current_amplifier/test_sr570.py +309 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/detector/test_det_resolution.py +6 -6
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/p99/test_p99_stage.py +10 -5
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +7 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_attenuator.py +10 -6
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_bart_robot.py +5 -4
- dls_dodal-1.38.0/tests/devices/unit_tests/test_bimorph_mirror.py +167 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_shutter.py +4 -4
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_undulator_dcm.py +38 -26
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_zebra.py +1 -1
- dls_dodal-1.38.0/tests/devices/unit_tests/test_zebra_constants_mapping.py +42 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_zocalo_results.py +31 -2
- dls_dodal-1.38.0/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/util/test_lookup_tables.py +22 -12
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/util/test_save_panda.py +9 -9
- dls_dodal-1.38.0/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_zocalo/__main__.py +3 -3
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plans/test_compliance.py +6 -6
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_utils.py +6 -8
- dls_dodal-1.38.0/tests/unit_tests/__init__.py +0 -0
- dls_dodal-1.36.3/docs/_api.rst +0 -16
- dls_dodal-1.36.3/docs/how-to/zocalo.rst +0 -13
- dls_dodal-1.36.3/src/dodal/devices/flux.py +0 -7
- dls_dodal-1.36.3/src/dodal/devices/i04/transfocator.py +0 -82
- dls_dodal-1.36.3/src/dodal/devices/p45.py +0 -44
- dls_dodal-1.36.3/src/dodal/devices/p99/sample_stage.py +0 -37
- dls_dodal-1.36.3/src/dodal/devices/s4_slit_gaps.py +0 -8
- dls_dodal-1.36.3/tests/devices/i04/test_transfocator.py +0 -66
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.gitignore +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/Dockerfile +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/LICENSE +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/README.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/conf.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/explanations.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/genindex.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/how-to.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/index.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/pull_request_template.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/setup.cfg +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/dcm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/i20_1 → dls_dodal-1.38.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/i24 → dls_dodal-1.38.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/oav → dls_dodal-1.38.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/p99 → dls_dodal-1.38.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/training_rig → dls_dodal-1.38.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/tetramm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/util → dls_dodal-1.38.0/src/dodal/devices/training_rig}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.36.3/src/dodal/plan_stubs → dls_dodal-1.38.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.36.3/system_tests → dls_dodal-1.38.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices → dls_dodal-1.38.0/src/dodal/devices/zebra}/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.36.3/tests → dls_dodal-1.38.0/src/dodal/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.36.3/src/dodal/devices/util → dls_dodal-1.38.0/src/dodal/plans}/save_panda.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.36.3/tests/beamlines → dls_dodal-1.38.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.36.3/tests/beamlines/unit_tests → dls_dodal-1.38.0/tests}/__init__.py +0 -0
- {dls_dodal-1.36.3/tests/common → dls_dodal-1.38.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.36.3/tests/common/beamlines → dls_dodal-1.38.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.36.3/tests/devices → dls_dodal-1.38.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.36.3/tests/devices/i04 → dls_dodal-1.38.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/conftest.py +0 -0
- {dls_dodal-1.36.3/tests/devices/unit_tests → dls_dodal-1.38.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.36.3/tests/devices/unit_tests/i24 → dls_dodal-1.38.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.36.3/tests/devices/unit_tests/oav → dls_dodal-1.38.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.36.3/tests/devices/unit_tests/util → dls_dodal-1.38.0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.36.3/tests/fake_zocalo → dls_dodal-1.38.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.36.3/tests/unit_tests → dls_dodal-1.38.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_eiger.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_cli.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.36.3 → dls_dodal-1.38.0}/tests/unit_tests/test_log.py +0 -0
|
@@ -22,3 +22,11 @@ repos:
|
|
|
22
22
|
entry: ruff format --force-exclude
|
|
23
23
|
types: [python]
|
|
24
24
|
require_serial: true
|
|
25
|
+
|
|
26
|
+
- id: import-contracts
|
|
27
|
+
name: Ensure import directionality
|
|
28
|
+
pass_filenames: false
|
|
29
|
+
language: system
|
|
30
|
+
entry: lint-imports
|
|
31
|
+
types: [python]
|
|
32
|
+
require_serial: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.38.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -228,7 +228,7 @@ Requires-Dist: pydantic>=2.0
|
|
|
228
228
|
Requires-Dist: opencv-python-headless
|
|
229
229
|
Requires-Dist: aioca
|
|
230
230
|
Requires-Dist: p4p
|
|
231
|
-
Requires-Dist: numpy
|
|
231
|
+
Requires-Dist: numpy
|
|
232
232
|
Requires-Dist: aiofiles
|
|
233
233
|
Requires-Dist: aiohttp
|
|
234
234
|
Requires-Dist: redis
|
|
@@ -237,6 +237,7 @@ Requires-Dist: scanspec>=0.7.3
|
|
|
237
237
|
Provides-Extra: dev
|
|
238
238
|
Requires-Dist: black; extra == "dev"
|
|
239
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
240
|
+
Requires-Dist: import-linter; extra == "dev"
|
|
240
241
|
Requires-Dist: mypy; extra == "dev"
|
|
241
242
|
Requires-Dist: myst-parser; extra == "dev"
|
|
242
243
|
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
@@ -53,9 +53,9 @@ def patch_open_to_prevent_dls_reads_in_tests():
|
|
|
53
53
|
requested_path = Path(args[0])
|
|
54
54
|
if requested_path.is_absolute():
|
|
55
55
|
for p in BANNED_PATHS:
|
|
56
|
-
assert not requested_path.is_relative_to(
|
|
57
|
-
|
|
58
|
-
)
|
|
56
|
+
assert not requested_path.is_relative_to(p), (
|
|
57
|
+
f"Attempt to open {requested_path} from inside a unit test"
|
|
58
|
+
)
|
|
59
59
|
return unpatched_open(*args, **kwargs)
|
|
60
60
|
|
|
61
61
|
with patch("builtins.open", side_effect=patched_open):
|
|
@@ -51,6 +51,6 @@ New members should be regular contributors to dodal and should have been "shadow
|
|
|
51
51
|
- Adherence to the review standards above as well as the [repository standards](../reference/standards.rst) and [device standards](../reference/device-standards.rst).
|
|
52
52
|
- Independent (i.e. not just to satisfy a reviewer) motivation to make sure all code in dodal is well-tested. Use of unit and system tests as appropriate. Clear effort made to keep test coverage high (>90%).
|
|
53
53
|
- Advanced understanding of bluesky and ophyd-async including concepts and best practices, such as how to appropriately split logic between devices/plans/callbacks.
|
|
54
|
-
- Humility in the use of reviewing as a tool in a way that balances the need to preserve quality with the need for progress. Appropriate use of the Must/Should/Could/Nit system documented above is helpful in showing this, as it gives the reviewer the opportunity to weight their comments in terms of project impact. They should also demonstrate similar
|
|
54
|
+
- Humility in the use of reviewing as a tool in a way that balances the need to preserve quality with the need for progress. Appropriate use of the Must/Should/Could/Nit system documented above is helpful in showing this, as it gives the reviewer the opportunity to weight their comments in terms of project impact. They should also demonstrate similar humility as a reviewee.
|
|
55
55
|
|
|
56
56
|
Additionally, they should be regularly raising issues in the repository and demonstrating the ability to write well formed issues, with well defined acceptance criteria, that are understandable without large amounts of context.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Zocalo Interaction
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
.. image:: ../assets/zocalo.png
|
|
5
|
+
:alt: Diagram of zocalo
|
|
6
|
+
|
|
7
|
+
Zocalo jobs are triggered based on their ISPyB DCID using the ``ZocaloTrigger`` class in a callback subscribed to the
|
|
8
|
+
Bluesky plan or ``RunEngine``. These can trigger processing for any kind of job, as zocalo infers the necessary
|
|
9
|
+
processing from data in ISPyB.
|
|
10
|
+
|
|
11
|
+
Results are received using the ``ZocaloResults`` device, so that they can be read into a plan and used for
|
|
12
|
+
decision-making. Currently the ``ZocaloResults`` device is only made to handle X-ray centring results. It subscribes to
|
|
13
|
+
a given zocalo RabbitMQ channel the first time that it is triggered.
|
|
14
|
+
|
|
15
|
+
Zocalo Service
|
|
16
|
+
==============
|
|
17
|
+
|
|
18
|
+
The Zocalo service processes incoming messages using recipes which describe routing of messages between processing
|
|
19
|
+
steps. You can see `source for the recipes here`_.
|
|
20
|
+
|
|
21
|
+
.. _source for the recipes here: https://gitlab.diamond.ac.uk/scisoft/zocalo/-/tree/master/recipes
|
|
22
|
+
|
|
23
|
+
You can find more information about Zocalo at https://confluence.diamond.ac.uk/display/SSCC/How+to+create+an+MX+processing+pipeline
|
|
24
|
+
|
|
25
|
+
Gridscans
|
|
26
|
+
---------
|
|
27
|
+
|
|
28
|
+
The Zocalo Service receives messages of the following form for both the xy and xz gridscans::
|
|
29
|
+
|
|
30
|
+
{
|
|
31
|
+
'recipes': ['mimas'],
|
|
32
|
+
'parameters': {
|
|
33
|
+
'ispyb_dcid': 16085800,
|
|
34
|
+
'filename': 'ins_10_31',
|
|
35
|
+
'start_frame_index': 0,
|
|
36
|
+
'number_of_frames': 1140,
|
|
37
|
+
'message_index': 0,
|
|
38
|
+
'event': 'start',
|
|
39
|
+
'guid': 'd6f117bb-c856-4df8-b9bc-2d3c625e9fd5'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
Zocalo is then sent stop messages::
|
|
44
|
+
|
|
45
|
+
{
|
|
46
|
+
'recipes': ['mimas'],
|
|
47
|
+
'parameters': {
|
|
48
|
+
'event': 'end',
|
|
49
|
+
'ispyb_dcid': 16085800,
|
|
50
|
+
'guid': '9a96e59c-da30-494c-8380-c7a5c828c2c9'
|
|
51
|
+
},
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
these tell zocalo that the data is now ready to be processed.
|
|
55
|
+
|
|
56
|
+
Zocalo then uses the ISPyB DataCollection ID to fetch the corresponding info from ISPyB
|
|
57
|
+
|
|
58
|
+
The messages that zocalo receives can be found in Graylog in the Zocalo stream, from there you can find the log of
|
|
59
|
+
the recipe processing using the path to the logbook that comes from messages like these::
|
|
60
|
+
Message saved in logbook at /dls/tmp/zocalo/dispatcher/2024-12/cb/62d35b-7cc9-4f1b-868b-712e82aa0271
|
|
61
|
+
|
|
62
|
+
From the zocalo graylog you can also see that once the gridscan nexus file is picked up (for the CPU gridscan) it
|
|
63
|
+
starts a recipe::
|
|
64
|
+
|
|
65
|
+
{'recipes': ['per-image-analysis-gridscan-i03-no-really'], 'parameters': {'ispyb_dcid': 16085803, 'filename': '{filename}', 'start_frame_index': '{start_frame_index}', 'number_of_frames': '{number_of_frames}', 'message_index': '{message_index}', 'guid': 'd10f8b8c-57a5-4dc4-acaf-a22f8d2bbf60'}, 'recipe': <workflows.recipe.recipe.Recipe object at 0x7f0587f13110>}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
If you look at the recipe json, Zocalo then runs Per-Image-Analysis on each frame and then assembles the results in
|
|
69
|
+
the `DLS X-Ray Centring service`_.
|
|
70
|
+
|
|
71
|
+
.. _DLS X-Ray Centring service: https://github.com/DiamondLightSource/python-dlstbx/blob/a8fcbd30335bf13f5e35df78badfc60397500535/src/dlstbx/services/xray_centering.py
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# API
|
|
2
|
+
|
|
3
|
+
```{eval-rst}
|
|
4
|
+
.. autosummary::
|
|
5
|
+
:recursive:
|
|
6
|
+
:toctree: generated
|
|
7
|
+
|
|
8
|
+
dodal.beamlines
|
|
9
|
+
dodal.common
|
|
10
|
+
dodal.devices
|
|
11
|
+
dodal.parameters
|
|
12
|
+
dodal.plan_stubs
|
|
13
|
+
dodal.plans
|
|
14
|
+
|
|
15
|
+
.. automodule:: dodal
|
|
16
|
+
|
|
17
|
+
``dodal``
|
|
18
|
+
-----------------------------------
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This is the internal API reference for dodal
|
|
22
|
+
|
|
23
|
+
```{eval-rst}
|
|
24
|
+
.. data:: dodal.__version__
|
|
25
|
+
:type: str
|
|
26
|
+
|
|
27
|
+
Version number as calculated by https://github.com/pypa/setuptools_scm
|
|
28
|
+
```
|
|
@@ -27,7 +27,7 @@ dependencies = [
|
|
|
27
27
|
"opencv-python-headless", # For pin-tip detection.
|
|
28
28
|
"aioca", # Required for CA support with ophyd-async.
|
|
29
29
|
"p4p", # Required for PVA support with ophyd-async.
|
|
30
|
-
"numpy
|
|
30
|
+
"numpy",
|
|
31
31
|
"aiofiles",
|
|
32
32
|
"aiohttp",
|
|
33
33
|
"redis",
|
|
@@ -44,6 +44,7 @@ requires-python = ">=3.10"
|
|
|
44
44
|
dev = [
|
|
45
45
|
"black",
|
|
46
46
|
"diff-cover",
|
|
47
|
+
"import-linter",
|
|
47
48
|
"mypy",
|
|
48
49
|
# Commented out due to dependency version conflict with pydantic 1.x
|
|
49
50
|
# "copier",
|
|
@@ -181,3 +182,17 @@ lint.select = [
|
|
|
181
182
|
# Remove this line to forbid private member access in tests
|
|
182
183
|
"tests/**/*" = ["SLF001"]
|
|
183
184
|
"system_tests/**/*" = ["SLF001"]
|
|
185
|
+
|
|
186
|
+
[tool.importlinter]
|
|
187
|
+
root_package = "dodal"
|
|
188
|
+
|
|
189
|
+
[[tool.importlinter.contracts]]
|
|
190
|
+
name = "Common cannot import from beamlines"
|
|
191
|
+
type = "forbidden"
|
|
192
|
+
source_modules = ["dodal.common"]
|
|
193
|
+
forbidden_modules = ["dodal.beamlines"]
|
|
194
|
+
|
|
195
|
+
[[tool.importlinter.contracts]]
|
|
196
|
+
name = "Enforce import order"
|
|
197
|
+
type = "layers"
|
|
198
|
+
layers = ["dodal.plans", "dodal.beamlines", "dodal.devices"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.38.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -228,7 +228,7 @@ Requires-Dist: pydantic>=2.0
|
|
|
228
228
|
Requires-Dist: opencv-python-headless
|
|
229
229
|
Requires-Dist: aioca
|
|
230
230
|
Requires-Dist: p4p
|
|
231
|
-
Requires-Dist: numpy
|
|
231
|
+
Requires-Dist: numpy
|
|
232
232
|
Requires-Dist: aiofiles
|
|
233
233
|
Requires-Dist: aiohttp
|
|
234
234
|
Requires-Dist: redis
|
|
@@ -237,6 +237,7 @@ Requires-Dist: scanspec>=0.7.3
|
|
|
237
237
|
Provides-Extra: dev
|
|
238
238
|
Requires-Dist: black; extra == "dev"
|
|
239
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
240
|
+
Requires-Dist: import-linter; extra == "dev"
|
|
240
241
|
Requires-Dist: mypy; extra == "dev"
|
|
241
242
|
Requires-Dist: myst-parser; extra == "dev"
|
|
242
243
|
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
@@ -29,7 +29,6 @@ pyproject.toml
|
|
|
29
29
|
.vscode/launch.json
|
|
30
30
|
.vscode/settings.json
|
|
31
31
|
.vscode/tasks.json
|
|
32
|
-
docs/_api.rst
|
|
33
32
|
docs/conf.py
|
|
34
33
|
docs/explanations.md
|
|
35
34
|
docs/genindex.md
|
|
@@ -67,6 +66,7 @@ docs/how-to/write-tests.md
|
|
|
67
66
|
docs/how-to/zocalo.rst
|
|
68
67
|
docs/images/dls-logo.svg
|
|
69
68
|
docs/images/excalidraw-example.svg
|
|
69
|
+
docs/reference/api.md
|
|
70
70
|
docs/reference/device-standards.rst
|
|
71
71
|
docs/reference/standards.rst
|
|
72
72
|
docs/tutorials/get_started.rst
|
|
@@ -90,6 +90,7 @@ src/dodal/beamlines/README.md
|
|
|
90
90
|
src/dodal/beamlines/__init__.py
|
|
91
91
|
src/dodal/beamlines/adsim.py
|
|
92
92
|
src/dodal/beamlines/b01_1.py
|
|
93
|
+
src/dodal/beamlines/i02_1.py
|
|
93
94
|
src/dodal/beamlines/i03.py
|
|
94
95
|
src/dodal/beamlines/i04.py
|
|
95
96
|
src/dodal/beamlines/i10.py
|
|
@@ -120,8 +121,8 @@ src/dodal/devices/adsim.py
|
|
|
120
121
|
src/dodal/devices/aperture.py
|
|
121
122
|
src/dodal/devices/aperturescatterguard.py
|
|
122
123
|
src/dodal/devices/apple2_undulator.py
|
|
123
|
-
src/dodal/devices/attenuator.py
|
|
124
124
|
src/dodal/devices/backlight.py
|
|
125
|
+
src/dodal/devices/bimorph_mirror.py
|
|
125
126
|
src/dodal/devices/cryostream.py
|
|
126
127
|
src/dodal/devices/dcm.py
|
|
127
128
|
src/dodal/devices/diamond_filter.py
|
|
@@ -156,10 +157,17 @@ src/dodal/devices/undulator_dcm.py
|
|
|
156
157
|
src/dodal/devices/watsonmarlow323_pump.py
|
|
157
158
|
src/dodal/devices/webcam.py
|
|
158
159
|
src/dodal/devices/xbpm_feedback.py
|
|
159
|
-
src/dodal/devices/zebra.py
|
|
160
|
-
src/dodal/devices/zebra_controlled_shutter.py
|
|
161
160
|
src/dodal/devices/areadetector/plugins/CAM.py
|
|
162
161
|
src/dodal/devices/areadetector/plugins/MJPG.py
|
|
162
|
+
src/dodal/devices/attenuator/attenuator.py
|
|
163
|
+
src/dodal/devices/attenuator/filter.py
|
|
164
|
+
src/dodal/devices/attenuator/filter_selections.py
|
|
165
|
+
src/dodal/devices/current_amplifiers/__init__.py
|
|
166
|
+
src/dodal/devices/current_amplifiers/current_amplifier.py
|
|
167
|
+
src/dodal/devices/current_amplifiers/current_amplifier_detector.py
|
|
168
|
+
src/dodal/devices/current_amplifiers/femto.py
|
|
169
|
+
src/dodal/devices/current_amplifiers/sr570.py
|
|
170
|
+
src/dodal/devices/current_amplifiers/struck_scaler_counter.py
|
|
163
171
|
src/dodal/devices/detector/__init__.py
|
|
164
172
|
src/dodal/devices/detector/det_dim_constants.py
|
|
165
173
|
src/dodal/devices/detector/det_dist_to_beam_converter.py
|
|
@@ -167,11 +175,19 @@ src/dodal/devices/detector/det_resolution.py
|
|
|
167
175
|
src/dodal/devices/detector/detector.py
|
|
168
176
|
src/dodal/devices/detector/detector_motion.py
|
|
169
177
|
src/dodal/devices/i03/__init__.py
|
|
178
|
+
src/dodal/devices/i03/beamstop.py
|
|
170
179
|
src/dodal/devices/i04/transfocator.py
|
|
171
180
|
src/dodal/devices/i10/i10_apple2.py
|
|
172
181
|
src/dodal/devices/i10/i10_setting_data.py
|
|
173
182
|
src/dodal/devices/i10/mirrors.py
|
|
174
183
|
src/dodal/devices/i10/slits.py
|
|
184
|
+
src/dodal/devices/i10/rasor/rasor_current_amp.py
|
|
185
|
+
src/dodal/devices/i10/rasor/rasor_motors.py
|
|
186
|
+
src/dodal/devices/i10/rasor/rasor_scaler_cards.py
|
|
187
|
+
src/dodal/devices/i13_1/__init__.py
|
|
188
|
+
src/dodal/devices/i13_1/merlin.py
|
|
189
|
+
src/dodal/devices/i13_1/merlin_controller.py
|
|
190
|
+
src/dodal/devices/i13_1/merlin_io.py
|
|
175
191
|
src/dodal/devices/i20_1/__init__.py
|
|
176
192
|
src/dodal/devices/i22/dcm.py
|
|
177
193
|
src/dodal/devices/i22/fswitch.py
|
|
@@ -209,10 +225,13 @@ src/dodal/devices/util/adjuster_plans.py
|
|
|
209
225
|
src/dodal/devices/util/epics_util.py
|
|
210
226
|
src/dodal/devices/util/lookup_tables.py
|
|
211
227
|
src/dodal/devices/util/motor_utils.py
|
|
212
|
-
src/dodal/devices/util/save_panda.py
|
|
213
228
|
src/dodal/devices/util/test_utils.py
|
|
214
229
|
src/dodal/devices/xspress3/xspress3.py
|
|
215
230
|
src/dodal/devices/xspress3/xspress3_channel.py
|
|
231
|
+
src/dodal/devices/zebra/__init__.py
|
|
232
|
+
src/dodal/devices/zebra/zebra.py
|
|
233
|
+
src/dodal/devices/zebra/zebra_constants_mapping.py
|
|
234
|
+
src/dodal/devices/zebra/zebra_controlled_shutter.py
|
|
216
235
|
src/dodal/devices/zocalo/__init__.py
|
|
217
236
|
src/dodal/devices/zocalo/zocalo_constants.py
|
|
218
237
|
src/dodal/devices/zocalo/zocalo_interaction.py
|
|
@@ -224,6 +243,7 @@ src/dodal/plan_stubs/data_session.py
|
|
|
224
243
|
src/dodal/plan_stubs/motor_utils.py
|
|
225
244
|
src/dodal/plan_stubs/wrapped.py
|
|
226
245
|
src/dodal/plans/__init__.py
|
|
246
|
+
src/dodal/plans/save_panda.py
|
|
227
247
|
src/dodal/plans/scanspec.py
|
|
228
248
|
src/dodal/plans/wrapped.py
|
|
229
249
|
system_tests/__init__.py
|
|
@@ -269,6 +289,8 @@ tests/common/beamlines/test_device_helpers.py
|
|
|
269
289
|
tests/common/beamlines/test_device_instantiation.py
|
|
270
290
|
tests/devices/__init__.py
|
|
271
291
|
tests/devices/test_diamond_filter.py
|
|
292
|
+
tests/devices/i03/__init__.py
|
|
293
|
+
tests/devices/i03/test_beamstop.py
|
|
272
294
|
tests/devices/i04/__init__.py
|
|
273
295
|
tests/devices/i04/test_transfocator.py
|
|
274
296
|
tests/devices/i10/test_i10Apple2.py
|
|
@@ -278,6 +300,7 @@ tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl
|
|
|
278
300
|
tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl
|
|
279
301
|
tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl
|
|
280
302
|
tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl
|
|
303
|
+
tests/devices/i13_1/test_merlin.py
|
|
281
304
|
tests/devices/i22/test_dcm.py
|
|
282
305
|
tests/devices/i22/test_fswitch.py
|
|
283
306
|
tests/devices/i22/test_metadataholder.py
|
|
@@ -293,6 +316,7 @@ tests/devices/unit_tests/test_backlight.py
|
|
|
293
316
|
tests/devices/unit_tests/test_bart_robot.py
|
|
294
317
|
tests/devices/unit_tests/test_beam_converter.py
|
|
295
318
|
tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt
|
|
319
|
+
tests/devices/unit_tests/test_bimorph_mirror.py
|
|
296
320
|
tests/devices/unit_tests/test_dcm.py
|
|
297
321
|
tests/devices/unit_tests/test_display.configuration
|
|
298
322
|
tests/devices/unit_tests/test_eiger.py
|
|
@@ -321,8 +345,11 @@ tests/devices/unit_tests/test_webcam.py
|
|
|
321
345
|
tests/devices/unit_tests/test_xbpm_feedback.py
|
|
322
346
|
tests/devices/unit_tests/test_xspress3.py
|
|
323
347
|
tests/devices/unit_tests/test_zebra.py
|
|
348
|
+
tests/devices/unit_tests/test_zebra_constants_mapping.py
|
|
324
349
|
tests/devices/unit_tests/test_zocalo_interaction.py
|
|
325
350
|
tests/devices/unit_tests/test_zocalo_results.py
|
|
351
|
+
tests/devices/unit_tests/current_amplifier/test_femto.py
|
|
352
|
+
tests/devices/unit_tests/current_amplifier/test_sr570.py
|
|
326
353
|
tests/devices/unit_tests/detector/test_det_dim_constants.py
|
|
327
354
|
tests/devices/unit_tests/detector/test_det_resolution.py
|
|
328
355
|
tests/devices/unit_tests/detector/test_detector.py
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""Beamline i02-1 is also known as VMXm, or I02J"""
|
|
2
|
+
|
|
3
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
4
|
+
device_factory,
|
|
5
|
+
)
|
|
6
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
7
|
+
from dodal.devices.attenuator.attenuator import EnumFilterAttenuator
|
|
8
|
+
from dodal.devices.attenuator.filter_selections import (
|
|
9
|
+
I02_1FilterFourSelections,
|
|
10
|
+
I02_1FilterOneSelections,
|
|
11
|
+
I02_1FilterThreeSelections,
|
|
12
|
+
I02_1FilterTwoSelections,
|
|
13
|
+
)
|
|
14
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
15
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
16
|
+
|
|
17
|
+
BL = get_beamline_name("i02-1")
|
|
18
|
+
PREFIX = BeamlinePrefix(BL, suffix="J")
|
|
19
|
+
set_log_beamline(BL)
|
|
20
|
+
set_utils_beamline(BL)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@device_factory()
|
|
24
|
+
def attenuator() -> EnumFilterAttenuator:
|
|
25
|
+
"""Get the i02-1 attenuator device, instantiate it if it hasn't already been.
|
|
26
|
+
If this is called when already instantiated in i02-1, it will return the existing object.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
return EnumFilterAttenuator(
|
|
30
|
+
f"{PREFIX.beamline_prefix}-OP-ATTN-01:",
|
|
31
|
+
(
|
|
32
|
+
I02_1FilterOneSelections,
|
|
33
|
+
I02_1FilterTwoSelections,
|
|
34
|
+
I02_1FilterThreeSelections,
|
|
35
|
+
I02_1FilterFourSelections,
|
|
36
|
+
),
|
|
37
|
+
)
|
|
@@ -13,7 +13,7 @@ from dodal.devices.aperturescatterguard import (
|
|
|
13
13
|
ApertureScatterguard,
|
|
14
14
|
load_positions_from_beamline_parameters,
|
|
15
15
|
)
|
|
16
|
-
from dodal.devices.attenuator import
|
|
16
|
+
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
17
17
|
from dodal.devices.backlight import Backlight
|
|
18
18
|
from dodal.devices.cryostream import CryoStream
|
|
19
19
|
from dodal.devices.dcm import DCM
|
|
@@ -24,6 +24,7 @@ from dodal.devices.eiger import EigerDetector
|
|
|
24
24
|
from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
|
|
25
25
|
from dodal.devices.flux import Flux
|
|
26
26
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
27
|
+
from dodal.devices.i03.beamstop import Beamstop
|
|
27
28
|
from dodal.devices.motors import XYZPositioner
|
|
28
29
|
from dodal.devices.oav.oav_detector import OAV
|
|
29
30
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
@@ -39,8 +40,13 @@ from dodal.devices.undulator_dcm import UndulatorDCM
|
|
|
39
40
|
from dodal.devices.webcam import Webcam
|
|
40
41
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
41
42
|
from dodal.devices.xspress3.xspress3 import Xspress3
|
|
42
|
-
from dodal.devices.zebra import Zebra
|
|
43
|
-
from dodal.devices.
|
|
43
|
+
from dodal.devices.zebra.zebra import Zebra
|
|
44
|
+
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
45
|
+
ZebraMapping,
|
|
46
|
+
ZebraSources,
|
|
47
|
+
ZebraTTLOutputs,
|
|
48
|
+
)
|
|
49
|
+
from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
|
|
44
50
|
from dodal.devices.zocalo import ZocaloResults
|
|
45
51
|
from dodal.log import set_beamline as set_log_beamline
|
|
46
52
|
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
|
|
@@ -57,6 +63,12 @@ set_utils_beamline(BL)
|
|
|
57
63
|
|
|
58
64
|
set_path_provider(PandASubpathProvider())
|
|
59
65
|
|
|
66
|
+
I03_ZEBRA_MAPPING = ZebraMapping(
|
|
67
|
+
outputs=ZebraTTLOutputs(TTL_DETECTOR=1, TTL_SHUTTER=2, TTL_XSPRESS3=3, TTL_PANDA=4),
|
|
68
|
+
sources=ZebraSources(),
|
|
69
|
+
AND_GATE_FOR_AUTO_SHUTTER=2,
|
|
70
|
+
)
|
|
71
|
+
|
|
60
72
|
|
|
61
73
|
def aperture_scatterguard(
|
|
62
74
|
wait_for_connection: bool = True,
|
|
@@ -80,12 +92,12 @@ def aperture_scatterguard(
|
|
|
80
92
|
|
|
81
93
|
def attenuator(
|
|
82
94
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
83
|
-
) ->
|
|
95
|
+
) -> BinaryFilterAttenuator:
|
|
84
96
|
"""Get the i03 attenuator device, instantiate it if it hasn't already been.
|
|
85
97
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
86
98
|
"""
|
|
87
99
|
return device_instantiation(
|
|
88
|
-
|
|
100
|
+
BinaryFilterAttenuator,
|
|
89
101
|
"attenuator",
|
|
90
102
|
"-EA-ATTN-01:",
|
|
91
103
|
wait_for_connection,
|
|
@@ -93,6 +105,22 @@ def attenuator(
|
|
|
93
105
|
)
|
|
94
106
|
|
|
95
107
|
|
|
108
|
+
def beamstop(
|
|
109
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
110
|
+
) -> Beamstop:
|
|
111
|
+
"""Get the i03 beamstop device, instantiate it if it hasn't already been.
|
|
112
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
113
|
+
"""
|
|
114
|
+
return device_instantiation(
|
|
115
|
+
Beamstop,
|
|
116
|
+
"beamstop",
|
|
117
|
+
"-MO-BS-01:",
|
|
118
|
+
wait_for_connection,
|
|
119
|
+
fake_with_ophyd_sim,
|
|
120
|
+
beamline_parameters=get_beamline_parameters(),
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
|
|
96
124
|
def dcm(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -> DCM:
|
|
97
125
|
"""Get the i03 DCM device, instantiate it if it hasn't already been.
|
|
98
126
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
@@ -351,6 +379,7 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
|
|
|
351
379
|
"-EA-ZEBRA-01:",
|
|
352
380
|
wait_for_connection,
|
|
353
381
|
fake_with_ophyd_sim,
|
|
382
|
+
mapping=I03_ZEBRA_MAPPING,
|
|
354
383
|
)
|
|
355
384
|
|
|
356
385
|
|
|
@@ -6,7 +6,7 @@ from dodal.devices.aperturescatterguard import (
|
|
|
6
6
|
ApertureScatterguard,
|
|
7
7
|
load_positions_from_beamline_parameters,
|
|
8
8
|
)
|
|
9
|
-
from dodal.devices.attenuator import
|
|
9
|
+
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
10
10
|
from dodal.devices.backlight import Backlight
|
|
11
11
|
from dodal.devices.dcm import DCM
|
|
12
12
|
from dodal.devices.detector import DetectorParams
|
|
@@ -28,8 +28,13 @@ from dodal.devices.synchrotron import Synchrotron
|
|
|
28
28
|
from dodal.devices.thawer import Thawer
|
|
29
29
|
from dodal.devices.undulator import Undulator
|
|
30
30
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
31
|
-
from dodal.devices.zebra import Zebra
|
|
32
|
-
from dodal.devices.
|
|
31
|
+
from dodal.devices.zebra.zebra import Zebra
|
|
32
|
+
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
33
|
+
ZebraMapping,
|
|
34
|
+
ZebraSources,
|
|
35
|
+
ZebraTTLOutputs,
|
|
36
|
+
)
|
|
37
|
+
from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
|
|
33
38
|
from dodal.log import set_beamline as set_log_beamline
|
|
34
39
|
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
|
|
35
40
|
|
|
@@ -47,6 +52,11 @@ BL = get_beamline_name("s04")
|
|
|
47
52
|
set_log_beamline(BL)
|
|
48
53
|
set_utils_beamline(BL)
|
|
49
54
|
|
|
55
|
+
I04_ZEBRA_MAPPING = ZebraMapping(
|
|
56
|
+
outputs=(ZebraTTLOutputs(TTL_DETECTOR=1, TTL_FAST_SHUTTER=2, TTL_XSPRESS3=3)),
|
|
57
|
+
sources=ZebraSources(),
|
|
58
|
+
)
|
|
59
|
+
|
|
50
60
|
|
|
51
61
|
def smargon(
|
|
52
62
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
@@ -138,12 +148,12 @@ def sample_shutter(
|
|
|
138
148
|
|
|
139
149
|
def attenuator(
|
|
140
150
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
141
|
-
) ->
|
|
151
|
+
) -> BinaryFilterAttenuator:
|
|
142
152
|
"""Get the i04 attenuator device, instantiate it if it hasn't already been.
|
|
143
153
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
144
154
|
"""
|
|
145
155
|
return device_instantiation(
|
|
146
|
-
|
|
156
|
+
BinaryFilterAttenuator,
|
|
147
157
|
"attenuator",
|
|
148
158
|
"-EA-ATTN-01:",
|
|
149
159
|
wait_for_connection,
|
|
@@ -341,6 +351,7 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
|
|
|
341
351
|
"-EA-ZEBRA-01:",
|
|
342
352
|
wait_for_connection,
|
|
343
353
|
fake_with_ophyd_sim,
|
|
354
|
+
mapping=I04_ZEBRA_MAPPING,
|
|
344
355
|
)
|
|
345
356
|
|
|
346
357
|
|