dls-dodal 1.40.0__tar.gz → 1.42.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.42.0/.github/scripts/check_test_durations.py +30 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_test.yml +14 -3
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.gitignore +4 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/PKG-INFO +4 -2
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/create-beamline.rst +44 -32
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/pyproject.toml +10 -5
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/PKG-INFO +4 -2
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/SOURCES.txt +11 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/requires.txt +3 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/_version.py +9 -4
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/__init__.py +1 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/adsim.py +1 -1
- dls_dodal-1.42.0/src/dodal/beamlines/aithre.py +9 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i04.py +1 -1
- dls_dodal-1.42.0/src/dodal/beamlines/i19_optics.py +34 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i23.py +8 -11
- dls_dodal-1.42.0/src/dodal/beamlines/p38.py +210 -0
- dls_dodal-1.42.0/src/dodal/beamlines/p45.py +78 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/visit.py +1 -1
- dls_dodal-1.42.0/src/dodal/devices/aithre_lasershaping/goniometer.py +15 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/detector.py +1 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/eiger.py +2 -2
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/fast_grid_scan.py +10 -1
- dls_dodal-1.42.0/src/dodal/devices/i19/hutch_access.py +8 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +4 -3
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/p45.py +8 -8
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/pressure_jump_cell.py +5 -2
- dls_dodal-1.42.0/src/dodal/plans/preprocessors/verify_undulator_gap.py +49 -0
- dls_dodal-1.42.0/src/dodal/plans/verify_undulator_gap.py +19 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/utils.py +1 -6
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_eiger_system.py +1 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_undulator_system.py +2 -5
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/test_visit.py +1 -1
- dls_dodal-1.42.0/tests/constants.py +3 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/detector/test_det_resolution.py +1 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/detector/test_detector.py +6 -6
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_apple2_undulator.py +3 -3
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_eiger.py +1 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_gridscan.py +16 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_undulator.py +4 -7
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_undulator_dcm.py +3 -6
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_zocalo/__main__.py +27 -1
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plan_stubs/test_motor_util_plans.py +7 -11
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plans/conftest.py +21 -0
- dls_dodal-1.42.0/tests/plans/test_preprocessors/test_verify_undulator_gap.py +79 -0
- dls_dodal-1.42.0/tests/plans/test_verify_undulator_gap_plan.py +17 -0
- dls_dodal-1.42.0/tests/unit_tests/__init__.py +0 -0
- dls_dodal-1.40.0/src/dodal/beamlines/p38.py +0 -350
- dls_dodal-1.40.0/src/dodal/beamlines/p45.py +0 -117
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/Dockerfile +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/LICENSE +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/README.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/conftest.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/conf.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/explanations.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/genindex.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/how-to.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/index.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/reference.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/pull_request_template.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/setup.cfg +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i03.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i18.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i19_2.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i03/beamstop.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i13_1/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i13_1/merlin_io.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i18/KBMirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i18/table.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i19/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i19/shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/tetramm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/undulator_dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zebra/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zebra/zebra.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.40.0/system_tests → dls_dodal-1.42.0/src/dodal/plans/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.40.0/tests → dls_dodal-1.42.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.40.0/tests/beamlines → dls_dodal-1.42.0/tests}/__init__.py +0 -0
- {dls_dodal-1.40.0/tests/beamlines/unit_tests → dls_dodal-1.42.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.40.0/tests/common → dls_dodal-1.42.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.40.0/tests/common/beamlines → dls_dodal-1.42.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.40.0/tests/devices → dls_dodal-1.42.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/conftest.py +0 -0
- {dls_dodal-1.40.0/tests/devices/i03 → dls_dodal-1.42.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.40.0/tests/devices/i04 → dls_dodal-1.42.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i03/test_beamstop.py +0 -0
- {dls_dodal-1.40.0/tests/devices/i19 → dls_dodal-1.42.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i18/test_table.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
- {dls_dodal-1.40.0/tests/devices/unit_tests → dls_dodal-1.42.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i19/test_shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.40.0/tests/devices/unit_tests/i24 → dls_dodal-1.42.0/tests/devices/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.40.0/tests/devices/unit_tests/oav → dls_dodal-1.42.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.40.0/tests/devices/unit_tests/util → dls_dodal-1.42.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_shutter.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_tetramm.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.40.0/tests/fake_zocalo → dls_dodal-1.42.0/tests/devices/unit_tests/util}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.40.0/tests/unit_tests → dls_dodal-1.42.0/tests/fake_zocalo}/__init__.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/test_utils.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.40.0 → dls_dodal-1.42.0}/tests/unit_tests/test_log.py +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
# Get report filename and threshold from command-line arguments
|
|
5
|
+
REPORT_FILE = sys.argv[1] if len(sys.argv) > 1 else "report.json"
|
|
6
|
+
THRESHOLD = float(sys.argv[2]) if len(sys.argv) > 2 else 1.0
|
|
7
|
+
|
|
8
|
+
try:
|
|
9
|
+
with open(REPORT_FILE) as f:
|
|
10
|
+
data = json.load(f)
|
|
11
|
+
except FileNotFoundError:
|
|
12
|
+
print(f"❌ Error: Report file '{REPORT_FILE}' not found.")
|
|
13
|
+
sys.exit(1)
|
|
14
|
+
except json.JSONDecodeError:
|
|
15
|
+
print(f"❌ Error: Failed to parse JSON in '{REPORT_FILE}'.")
|
|
16
|
+
sys.exit(1)
|
|
17
|
+
|
|
18
|
+
slow_tests = [
|
|
19
|
+
(t["nodeid"], t["call"]["duration"])
|
|
20
|
+
for t in data.get("tests", [])
|
|
21
|
+
if "call" in t and t["call"]["duration"] > THRESHOLD
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
if slow_tests:
|
|
25
|
+
print(f"❌ The following tests exceeded the {THRESHOLD:.2f}s threshold:")
|
|
26
|
+
for test, duration in slow_tests:
|
|
27
|
+
print(f" - {test}: {duration:.2f}s")
|
|
28
|
+
sys.exit(1)
|
|
29
|
+
|
|
30
|
+
print("✅ All tests ran within the acceptable time limit.")
|
|
@@ -50,13 +50,24 @@ jobs:
|
|
|
50
50
|
python-version: ${{ inputs.python-version }}
|
|
51
51
|
pip-install: ".[dev]"
|
|
52
52
|
|
|
53
|
-
- name: Run tests
|
|
54
|
-
run: tox -e
|
|
53
|
+
- name: Run unit tests
|
|
54
|
+
run: tox -e unit-report
|
|
55
|
+
|
|
56
|
+
- name: Check unit test durations
|
|
57
|
+
run: |
|
|
58
|
+
python .github/scripts/check_test_durations.py unit-report.json 1
|
|
59
|
+
|
|
60
|
+
- name: Run system tests
|
|
61
|
+
run: tox -e system-report
|
|
62
|
+
|
|
63
|
+
- name: Check system test durations
|
|
64
|
+
run: |
|
|
65
|
+
python .github/scripts/check_test_durations.py system-report.json 5
|
|
55
66
|
|
|
56
67
|
- name: Upload coverage to Codecov
|
|
57
68
|
uses: codecov/codecov-action@v4
|
|
58
69
|
with:
|
|
59
70
|
name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
|
|
60
|
-
files:
|
|
71
|
+
files: ./unit_cov.xml,./system_cov.xml
|
|
61
72
|
env:
|
|
62
73
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.42.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
|
|
@@ -217,7 +217,7 @@ License-File: LICENSE
|
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
219
|
Requires-Dist: ophyd-async>=0.9.0a2
|
|
220
|
-
Requires-Dist: bluesky
|
|
220
|
+
Requires-Dist: bluesky==1.13.0
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
223
223
|
Requires-Dist: pillow
|
|
@@ -238,6 +238,7 @@ Provides-Extra: dev
|
|
|
238
238
|
Requires-Dist: black; extra == "dev"
|
|
239
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
240
240
|
Requires-Dist: import-linter; extra == "dev"
|
|
241
|
+
Requires-Dist: ispyb; extra == "dev"
|
|
241
242
|
Requires-Dist: mypy; extra == "dev"
|
|
242
243
|
Requires-Dist: myst-parser; extra == "dev"
|
|
243
244
|
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
@@ -249,6 +250,7 @@ Requires-Dist: pyright; extra == "dev"
|
|
|
249
250
|
Requires-Dist: pytest; extra == "dev"
|
|
250
251
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
252
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
253
|
+
Requires-Dist: pytest-json-report; extra == "dev"
|
|
252
254
|
Requires-Dist: pytest-random-order; extra == "dev"
|
|
253
255
|
Requires-Dist: ruff; extra == "dev"
|
|
254
256
|
Requires-Dist: sphinx<7.4.6; extra == "dev"
|
|
@@ -7,7 +7,7 @@ They include motors in the experiment hutch, optical components in the optics hu
|
|
|
7
7
|
Beamline Modules
|
|
8
8
|
----------------
|
|
9
9
|
|
|
10
|
-
Each beamline should have its own file in the ``
|
|
10
|
+
Each beamline should have its own file in the ``dodal.beamlines`` folder, in which the particular devices for the
|
|
11
11
|
beamline are instantiated. The file should be named after the colloquial name for the beamline. For example:
|
|
12
12
|
|
|
13
13
|
* ``i03.py``
|
|
@@ -25,55 +25,67 @@ The following example creates a fictitious beamline ``w41``, with a simulated tw
|
|
|
25
25
|
|
|
26
26
|
.. code-block:: python
|
|
27
27
|
|
|
28
|
-
from
|
|
28
|
+
from ophyd_async.epics.adaravis import AravisDetector
|
|
29
|
+
|
|
30
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
31
|
+
device_factory,
|
|
32
|
+
get_path_provider,
|
|
33
|
+
set_path_provider,
|
|
34
|
+
)
|
|
29
35
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
30
|
-
from dodal.
|
|
36
|
+
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
|
|
37
|
+
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
|
|
31
38
|
from dodal.devices.synchrotron import Synchrotron
|
|
32
39
|
from dodal.log import set_beamline as set_log_beamline
|
|
33
|
-
from dodal.utils import
|
|
40
|
+
from dodal.utils import BeamlinePrefix
|
|
34
41
|
|
|
35
42
|
BL = get_beamline_name("s41") # Default used when not on a live beamline
|
|
43
|
+
PREFIX = BeamlinePrefix(BL)
|
|
36
44
|
set_log_beamline(BL) # Configure logging and util functions
|
|
37
45
|
set_utils_beamline(BL)
|
|
38
46
|
|
|
47
|
+
# Currently we must hard-code the visit, determining the visit is WIP.
|
|
48
|
+
set_path_provider(
|
|
49
|
+
StaticVisitPathProvider(
|
|
50
|
+
BL,
|
|
51
|
+
# Root directory for all detectors
|
|
52
|
+
Path("/dls/w41/data/YYYY/cm12345-1"),
|
|
53
|
+
# Uses an existing GDA server to ensure filename uniqueness
|
|
54
|
+
client=RemoteDirectoryServiceClient("http://s41-control:8088/api"),
|
|
55
|
+
# Else if no GDA server use a LocalDirectoryServiceClient(),
|
|
56
|
+
)
|
|
57
|
+
)
|
|
39
58
|
|
|
40
59
|
"""
|
|
41
60
|
Define device factory functions below this point.
|
|
42
|
-
A device factory function is any function that has a return type which conforms
|
|
61
|
+
A device factory function is any function that has a return type which conforms
|
|
43
62
|
to one or more Bluesky Protocols.
|
|
44
63
|
"""
|
|
45
64
|
|
|
46
|
-
|
|
47
65
|
"""
|
|
48
|
-
A valid factory function which
|
|
49
|
-
- instantiated
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
66
|
+
A valid factory function which:
|
|
67
|
+
- may be instantiated automatically, selectively on live beamline
|
|
68
|
+
- caches and re-uses the result for subsequent calls
|
|
69
|
+
- automatically names the device
|
|
70
|
+
- may be skipped when make_all_devices is called on this module
|
|
71
|
+
- must be explicitly connected (may be automated by tools)
|
|
72
|
+
- when connected may connect to a simulated backend
|
|
73
|
+
- may be connected concurrently (when automated by tools)
|
|
54
74
|
""""
|
|
55
|
-
@
|
|
56
|
-
def synchrotron(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
fake_with_ophyd_sim,
|
|
68
|
-
bl_prefix=False,
|
|
75
|
+
@device_factory(skip = BL == "s41")
|
|
76
|
+
def synchrotron() -> Synchrotron:
|
|
77
|
+
return Synchrotron()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@device_factory()
|
|
81
|
+
def d11() -> AravisDetector:
|
|
82
|
+
return AravisDetector(
|
|
83
|
+
f"{PREFIX.beamline_prefix}-DI-DCAM-01:",
|
|
84
|
+
path_provider=get_path_provider(),
|
|
85
|
+
drv_suffix=CAM_SUFFIX,
|
|
86
|
+
fileio_suffix=HDF5_SUFFIX,
|
|
69
87
|
)
|
|
70
88
|
|
|
71
|
-
def d11(name: str = "D11") -> AdAravisDetector:
|
|
72
|
-
"""
|
|
73
|
-
Also a valid Device factory function, but as multiple calls would instantiate
|
|
74
|
-
multiple copies of a device, discouraged.
|
|
75
|
-
"""
|
|
76
|
-
return AdAravisDetector(name=name, prefix=f"{BL}-DI-DCAM-01:")
|
|
77
89
|
|
|
78
90
|
``w41`` should also be added to the list of ``ALL_BEAMLINES`` in ``tests/beamlines/test_device_instantiation``.
|
|
79
91
|
This test checks that the function returns a type that conforms to Bluesky protocols,
|
|
@@ -16,7 +16,7 @@ dependencies = [
|
|
|
16
16
|
"click",
|
|
17
17
|
"ophyd",
|
|
18
18
|
"ophyd-async >= 0.9.0a2",
|
|
19
|
-
"bluesky",
|
|
19
|
+
"bluesky == 1.13.0",
|
|
20
20
|
"pyepics",
|
|
21
21
|
"dataclasses-json",
|
|
22
22
|
"pillow",
|
|
@@ -45,6 +45,7 @@ dev = [
|
|
|
45
45
|
"black",
|
|
46
46
|
"diff-cover",
|
|
47
47
|
"import-linter",
|
|
48
|
+
"ispyb",
|
|
48
49
|
"mypy",
|
|
49
50
|
# Commented out due to dependency version conflict with pydantic 1.x
|
|
50
51
|
# "copier",
|
|
@@ -58,6 +59,7 @@ dev = [
|
|
|
58
59
|
"pytest",
|
|
59
60
|
"pytest-asyncio",
|
|
60
61
|
"pytest-cov",
|
|
62
|
+
"pytest-json-report",
|
|
61
63
|
"pytest-random-order",
|
|
62
64
|
"ruff",
|
|
63
65
|
"sphinx<7.4.6", # pinned due to https://github.com/sphinx-doc/sphinx/issues/12660
|
|
@@ -141,7 +143,7 @@ legacy_tox_ini = """
|
|
|
141
143
|
[tox]
|
|
142
144
|
skipsdist=True
|
|
143
145
|
|
|
144
|
-
[testenv:{pre-commit,type-checking,tests,docs}]
|
|
146
|
+
[testenv:{pre-commit,type-checking,tests,docs,unit-report,system-report}]
|
|
145
147
|
# Don't create a virtualenv for the command, requires tox-direct plugin
|
|
146
148
|
direct = True
|
|
147
149
|
passenv = *
|
|
@@ -156,6 +158,8 @@ commands =
|
|
|
156
158
|
type-checking: pyright src tests {posargs}
|
|
157
159
|
pre-commit: pre-commit run --all-files --show-diff-on-failure {posargs}
|
|
158
160
|
docs: sphinx-{posargs:build -E} -T docs build/html
|
|
161
|
+
unit-report: pytest -m 'not (s03 or adsim)' --cov=dodal --cov-report term --cov-report xml:unit_cov.xml --json-report --json-report-file=unit-report.json tests {posargs}
|
|
162
|
+
system-report: pytest -m 'not (s03 or adsim)' --cov=dodal --cov-report term --cov-report xml:system_cov.xml --json-report --json-report-file=system-report.json system_tests {posargs}
|
|
159
163
|
"""
|
|
160
164
|
|
|
161
165
|
[tool.ruff]
|
|
@@ -174,14 +178,15 @@ lint.select = [
|
|
|
174
178
|
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
|
|
175
179
|
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
|
|
176
180
|
"SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
|
|
181
|
+
"RUF018" # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
|
|
177
182
|
]
|
|
178
183
|
|
|
179
184
|
[tool.ruff.lint.per-file-ignores]
|
|
180
185
|
# By default, private member access is allowed in tests
|
|
181
186
|
# See https://github.com/DiamondLightSource/python-copier-template/issues/154
|
|
182
|
-
# Remove this line to forbid private member access in tests
|
|
183
|
-
"tests/**/*" = ["SLF001"]
|
|
184
|
-
"system_tests/**/*" = ["SLF001"]
|
|
187
|
+
# Remove this line to forbid private member access and walrus operators in asserts in tests
|
|
188
|
+
"tests/**/*" = ["SLF001", "RUF018"]
|
|
189
|
+
"system_tests/**/*" = ["SLF001", "RUF018"]
|
|
185
190
|
|
|
186
191
|
[tool.importlinter]
|
|
187
192
|
root_package = "dodal"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.42.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
|
|
@@ -217,7 +217,7 @@ License-File: LICENSE
|
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
219
|
Requires-Dist: ophyd-async>=0.9.0a2
|
|
220
|
-
Requires-Dist: bluesky
|
|
220
|
+
Requires-Dist: bluesky==1.13.0
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
223
223
|
Requires-Dist: pillow
|
|
@@ -238,6 +238,7 @@ Provides-Extra: dev
|
|
|
238
238
|
Requires-Dist: black; extra == "dev"
|
|
239
239
|
Requires-Dist: diff-cover; extra == "dev"
|
|
240
240
|
Requires-Dist: import-linter; extra == "dev"
|
|
241
|
+
Requires-Dist: ispyb; extra == "dev"
|
|
241
242
|
Requires-Dist: mypy; extra == "dev"
|
|
242
243
|
Requires-Dist: myst-parser; extra == "dev"
|
|
243
244
|
Requires-Dist: ophyd_async[sim]; extra == "dev"
|
|
@@ -249,6 +250,7 @@ Requires-Dist: pyright; extra == "dev"
|
|
|
249
250
|
Requires-Dist: pytest; extra == "dev"
|
|
250
251
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
252
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
253
|
+
Requires-Dist: pytest-json-report; extra == "dev"
|
|
252
254
|
Requires-Dist: pytest-random-order; extra == "dev"
|
|
253
255
|
Requires-Dist: ruff; extra == "dev"
|
|
254
256
|
Requires-Dist: sphinx<7.4.6; extra == "dev"
|
|
@@ -16,6 +16,7 @@ pyproject.toml
|
|
|
16
16
|
.github/actions/install_requirements/action.yml
|
|
17
17
|
.github/pages/index.html
|
|
18
18
|
.github/pages/make_switcher.py
|
|
19
|
+
.github/scripts/check_test_durations.py
|
|
19
20
|
.github/workflows/_check.yml
|
|
20
21
|
.github/workflows/_dist.yml
|
|
21
22
|
.github/workflows/_docs.yml
|
|
@@ -89,6 +90,7 @@ src/dodal/beamline_specific_utils/i03.py
|
|
|
89
90
|
src/dodal/beamlines/README.md
|
|
90
91
|
src/dodal/beamlines/__init__.py
|
|
91
92
|
src/dodal/beamlines/adsim.py
|
|
93
|
+
src/dodal/beamlines/aithre.py
|
|
92
94
|
src/dodal/beamlines/b01_1.py
|
|
93
95
|
src/dodal/beamlines/i02_1.py
|
|
94
96
|
src/dodal/beamlines/i03.py
|
|
@@ -98,6 +100,7 @@ src/dodal/beamlines/i13_1.py
|
|
|
98
100
|
src/dodal/beamlines/i18.py
|
|
99
101
|
src/dodal/beamlines/i19_1.py
|
|
100
102
|
src/dodal/beamlines/i19_2.py
|
|
103
|
+
src/dodal/beamlines/i19_optics.py
|
|
101
104
|
src/dodal/beamlines/i20_1.py
|
|
102
105
|
src/dodal/beamlines/i22.py
|
|
103
106
|
src/dodal/beamlines/i23.py
|
|
@@ -160,6 +163,7 @@ src/dodal/devices/undulator_dcm.py
|
|
|
160
163
|
src/dodal/devices/watsonmarlow323_pump.py
|
|
161
164
|
src/dodal/devices/webcam.py
|
|
162
165
|
src/dodal/devices/xbpm_feedback.py
|
|
166
|
+
src/dodal/devices/aithre_lasershaping/goniometer.py
|
|
163
167
|
src/dodal/devices/areadetector/plugins/CAM.py
|
|
164
168
|
src/dodal/devices/areadetector/plugins/MJPG.py
|
|
165
169
|
src/dodal/devices/attenuator/attenuator.py
|
|
@@ -196,6 +200,7 @@ src/dodal/devices/i18/diode.py
|
|
|
196
200
|
src/dodal/devices/i18/table.py
|
|
197
201
|
src/dodal/devices/i18/thor_labs_stage.py
|
|
198
202
|
src/dodal/devices/i19/__init__.py
|
|
203
|
+
src/dodal/devices/i19/hutch_access.py
|
|
199
204
|
src/dodal/devices/i19/shutter.py
|
|
200
205
|
src/dodal/devices/i20_1/__init__.py
|
|
201
206
|
src/dodal/devices/i22/dcm.py
|
|
@@ -254,7 +259,10 @@ src/dodal/plan_stubs/wrapped.py
|
|
|
254
259
|
src/dodal/plans/__init__.py
|
|
255
260
|
src/dodal/plans/save_panda.py
|
|
256
261
|
src/dodal/plans/scanspec.py
|
|
262
|
+
src/dodal/plans/verify_undulator_gap.py
|
|
257
263
|
src/dodal/plans/wrapped.py
|
|
264
|
+
src/dodal/plans/preprocessors/__init__.py
|
|
265
|
+
src/dodal/plans/preprocessors/verify_undulator_gap.py
|
|
258
266
|
system_tests/__init__.py
|
|
259
267
|
system_tests/test_adsim.py
|
|
260
268
|
system_tests/test_aperturescatterguard_system.py
|
|
@@ -271,6 +279,7 @@ system_tests/test_zebra_system.py
|
|
|
271
279
|
system_tests/test_zocalo_results.py
|
|
272
280
|
tests/__init__.py
|
|
273
281
|
tests/conftest.py
|
|
282
|
+
tests/constants.py
|
|
274
283
|
tests/fake_beamline.py
|
|
275
284
|
tests/fake_beamline_all_devices_raise_exception.py
|
|
276
285
|
tests/fake_beamline_broken_dependency.py
|
|
@@ -402,7 +411,9 @@ tests/plan_stubs/test_wrapped_stubs.py
|
|
|
402
411
|
tests/plans/conftest.py
|
|
403
412
|
tests/plans/test_compliance.py
|
|
404
413
|
tests/plans/test_scanspec.py
|
|
414
|
+
tests/plans/test_verify_undulator_gap_plan.py
|
|
405
415
|
tests/plans/test_wrapped.py
|
|
416
|
+
tests/plans/test_preprocessors/test_verify_undulator_gap.py
|
|
406
417
|
tests/preprocessors/test_filesystem_metadata.py
|
|
407
418
|
tests/test_data/bad_beamlineParameters
|
|
408
419
|
tests/test_data/i04_beamlineParameters
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
click
|
|
2
2
|
ophyd
|
|
3
3
|
ophyd-async>=0.9.0a2
|
|
4
|
-
bluesky
|
|
4
|
+
bluesky==1.13.0
|
|
5
5
|
pyepics
|
|
6
6
|
dataclasses-json
|
|
7
7
|
pillow
|
|
@@ -23,6 +23,7 @@ scanspec>=0.7.3
|
|
|
23
23
|
black
|
|
24
24
|
diff-cover
|
|
25
25
|
import-linter
|
|
26
|
+
ispyb
|
|
26
27
|
mypy
|
|
27
28
|
myst-parser
|
|
28
29
|
ophyd_async[sim]
|
|
@@ -34,6 +35,7 @@ pyright
|
|
|
34
35
|
pytest
|
|
35
36
|
pytest-asyncio
|
|
36
37
|
pytest-cov
|
|
38
|
+
pytest-json-report
|
|
37
39
|
pytest-random-order
|
|
38
40
|
ruff
|
|
39
41
|
sphinx<7.4.6
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
# file generated by
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
3
6
|
TYPE_CHECKING = False
|
|
4
7
|
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
6
11
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
12
|
else:
|
|
8
13
|
VERSION_TUPLE = object
|
|
@@ -12,5 +17,5 @@ __version__: str
|
|
|
12
17
|
__version_tuple__: VERSION_TUPLE
|
|
13
18
|
version_tuple: VERSION_TUPLE
|
|
14
19
|
|
|
15
|
-
__version__ = version = '1.
|
|
16
|
-
__version_tuple__ = version_tuple = (1,
|
|
20
|
+
__version__ = version = '1.42.0'
|
|
21
|
+
__version_tuple__ = version_tuple = (1, 42, 0)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
|
+
from dodal.devices.aithre_lasershaping.goniometer import Goniometer
|
|
3
|
+
|
|
4
|
+
PREFIX = "LA18L"
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@device_factory()
|
|
8
|
+
def goniometer() -> Goniometer:
|
|
9
|
+
return Goniometer(f"{PREFIX}-MO-LSR-01:", "goniometer")
|
|
@@ -46,7 +46,7 @@ ZOOM_PARAMS_FILE = (
|
|
|
46
46
|
DISPLAY_CONFIG = "/dls_sw/i04/software/gda_versions/var/display.configuration"
|
|
47
47
|
DAQ_CONFIGURATION_PATH = "/dls_sw/i04/software/daq_configuration"
|
|
48
48
|
|
|
49
|
-
REDIS_HOST =
|
|
49
|
+
REDIS_HOST = "i04-valkey-murko.diamond.ac.uk"
|
|
50
50
|
REDIS_PASSWORD = os.environ.get("VALKEY_PASSWORD", "test_redis_password")
|
|
51
51
|
MURKO_REDIS_DB = 7
|
|
52
52
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
5
|
+
set_beamline as set_utils_beamline,
|
|
6
|
+
)
|
|
7
|
+
from dodal.devices.hutch_shutter import HutchShutter
|
|
8
|
+
from dodal.devices.i19.hutch_access import HutchAccessControl
|
|
9
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
10
|
+
from dodal.utils import BeamlinePrefix
|
|
11
|
+
|
|
12
|
+
BL = "i19-optics"
|
|
13
|
+
PREFIX = BeamlinePrefix("i19", "I")
|
|
14
|
+
set_log_beamline(BL)
|
|
15
|
+
set_utils_beamline(BL)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@device_factory()
|
|
19
|
+
def shutter() -> HutchShutter:
|
|
20
|
+
"""Get the i19 hutch shutter device, instantiate it if it hasn't already been.
|
|
21
|
+
If this is called when already instantiated, it will return the existing object.
|
|
22
|
+
"""
|
|
23
|
+
return HutchShutter(
|
|
24
|
+
f"{PREFIX.beamline_prefix}-PS-SHTR-01:",
|
|
25
|
+
"shutter",
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@device_factory()
|
|
30
|
+
def access_control() -> HutchAccessControl:
|
|
31
|
+
"""Get a device that checks the active hutch for i19, instantiate it if it hasn't already been.
|
|
32
|
+
If this is called when already instantiated, it will return the existing object.
|
|
33
|
+
"""
|
|
34
|
+
return HutchAccessControl(f"{PREFIX.beamline_prefix}-OP-STAT-01:", "access_control")
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
3
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
4
4
|
from dodal.log import set_beamline as set_log_beamline
|
|
5
|
-
from dodal.utils import get_beamline_name, get_hostname
|
|
5
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name, get_hostname
|
|
6
6
|
|
|
7
7
|
BL = get_beamline_name("i23")
|
|
8
8
|
set_log_beamline(BL)
|
|
9
9
|
set_utils_beamline(BL)
|
|
10
10
|
|
|
11
|
+
PREFIX = BeamlinePrefix(BL)
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
def _is_i23_machine():
|
|
13
15
|
"""
|
|
@@ -18,16 +20,11 @@ def _is_i23_machine():
|
|
|
18
20
|
return hostname.startswith("i23-ws") or hostname.startswith("i23-control")
|
|
19
21
|
|
|
20
22
|
|
|
21
|
-
@
|
|
22
|
-
def oav_pin_tip_detection(
|
|
23
|
-
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
24
|
-
) -> PinTipDetection:
|
|
23
|
+
@device_factory(skip=lambda: not _is_i23_machine())
|
|
24
|
+
def oav_pin_tip_detection() -> PinTipDetection:
|
|
25
25
|
"""Get the i23 OAV pin-tip detection device"""
|
|
26
26
|
|
|
27
|
-
return
|
|
28
|
-
|
|
27
|
+
return PinTipDetection(
|
|
28
|
+
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
29
29
|
"pin_tip_detection",
|
|
30
|
-
"-DI-OAV-01:",
|
|
31
|
-
wait_for_connection,
|
|
32
|
-
fake_with_ophyd_sim,
|
|
33
30
|
)
|