dls-dodal 1.63.0__tar.gz → 1.65.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.63.0 → dls_dodal-1.65.0}/PKG-INFO +3 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/conftest.py +4 -34
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/make-release.md +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/write-tests.md +5 -5
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/pyproject.toml +5 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/PKG-INFO +3 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/SOURCES.txt +21 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/requires.txt +2 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/_version.py +3 -3
- dls_dodal-1.65.0/src/dodal/beamline_specific_utils/i05_shared.py +14 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b01_1.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07.py +6 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b07_1.py +6 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i03.py +9 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05.py +2 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i05_1.py +2 -2
- dls_dodal-1.65.0/src/dodal/beamlines/i07.py +21 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09.py +4 -4
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i09_1.py +7 -1
- dls_dodal-1.65.0/src/dodal/beamlines/i09_2.py +57 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_optics.py +53 -27
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i17.py +21 -11
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_2.py +22 -0
- dls_dodal-1.65.0/src/dodal/beamlines/i21.py +57 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i22.py +0 -17
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k07.py +6 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/cli.py +3 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/apple2_undulator.py +19 -17
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/ccmc.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/common_dcm.py +3 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/cryostream.py +21 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/undulator_dcm.py +1 -1
- dls_dodal-1.65.0/src/dodal/devices/i07/dcm.py +33 -0
- dls_dodal-1.65.0/src/dodal/devices/i09_1_shared/__init__.py +3 -0
- dls_dodal-1.65.0/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +111 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_apple2.py +4 -4
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/dcm.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/dcm.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/nxsas.py +5 -24
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/pgm.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/scintillator.py +4 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/undulator.py +29 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/lookup_tables.py +8 -2
- dls_dodal-1.65.0/src/dodal/plan_stubs/__init__.py +3 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/verify_undulator_gap.py +2 -2
- dls_dodal-1.65.0/src/dodal/testing/fixtures/run_engine.py +118 -0
- dls_dodal-1.65.0/src/dodal/testing/fixtures/utils.py +57 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_oav_to_redis_system.py +30 -7
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_device_instantiation.py +2 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_watcher_utils.py +2 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/conftest.py +3 -55
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/b07_1/test_ccmc.py +3 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_femto.py +9 -17
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/current_amplifier/test_sr570.py +11 -20
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/conftest.py +6 -6
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i03/test_dcm.py +1 -1
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i03/test_undulator_dcm.py +9 -9
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i04/test_transfocator.py +6 -2
- dls_dodal-1.65.0/tests/devices/i07/test_dcm.py +36 -0
- dls_dodal-1.65.0/tests/devices/i09_1_shared/test_data/__init__.py +9 -0
- dls_dodal-1.65.0/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +26 -0
- dls_dodal-1.65.0/tests/devices/i09_1_shared/test_undulator_functions.py +53 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_i10_apple2.py +97 -87
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_dcm.py +6 -6
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_fswitch.py +10 -12
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_pmac.py +9 -8
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -4
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_utils.py +13 -13
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +8 -9
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_apple2_undulator.py +22 -17
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_common_dcm.py +2 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_gridscan.py +8 -6
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_scintillator.py +20 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_smargon.py +2 -2
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_undulator.py +43 -0
- dls_dodal-1.65.0/tests/fake_zocalo/__init__.py +0 -0
- dls_dodal-1.65.0/tests/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_motor_util_plans.py +7 -9
- dls_dodal-1.65.0/tests/plans/__init__.py +0 -0
- dls_dodal-1.65.0/tests/plans/test_preprocessors/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_save_panda.py +8 -3
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_verify_undulator_gap_plan.py +1 -1
- dls_dodal-1.65.0/tests/preprocessors/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_cli.py +9 -2
- dls_dodal-1.65.0/tests/testing/__init__.py +0 -0
- dls_dodal-1.65.0/tests/testing/fixtures/__init__.py +0 -0
- dls_dodal-1.65.0/tests/testing/fixtures/test_run_engine.py +33 -0
- dls_dodal-1.63.0/src/dodal/beamline_specific_utils/i05_shared.py +0 -11
- dls_dodal-1.63.0/src/dodal/beamlines/i09_2.py +0 -24
- dls_dodal-1.63.0/src/dodal/beamlines/i21.py +0 -27
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.gitignore +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/Dockerfile +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/LICENSE +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/README.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/conf.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/umls/apple2_design.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations/umls/i10_id_design.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/explanations.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/genindex.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/create-beamline.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/create-device.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/external-io-devices.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/move-code.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to/zocalo.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/how-to.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/index.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/device-standards.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference/standards.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/reference.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials/get_started.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/pull_request_template.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/setup.cfg +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b16.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b18.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/b21.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i02_2.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i10_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i11.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i15_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i18.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/k11.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p60.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/data_util.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/device_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/common/watcher_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/cam.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b07_1/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/b16/detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/collimation_table.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/controllers.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/base_region.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/abstract/types.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/energy_sources.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/specs/region.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/types.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/util.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/electron_analyser/vgscienta/region.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/eurotherm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fast_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i02_2/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i03/dcm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/constants.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/murko_results.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i05/enums.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i10/rasor → dls_dodal-1.65.0/src/dodal/devices/i07}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i09_1/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/diagnostics.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i11 → dls_dodal-1.65.0/src/dodal/devices/i10/rasor}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i13_1 → dls_dodal-1.65.0/src/dodal/devices/i11}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/diff_stages.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/mythen.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/nx100robot.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i11/spinner.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i15 → dls_dodal-1.65.0/src/dodal/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i17 → dls_dodal-1.65.0/src/dodal/devices/i15}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/jack.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/laue.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/motors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i15/rail.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i18 → dls_dodal-1.65.0/src/dodal/devices/i17}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i17/i17_apple2.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i19 → dls_dodal-1.65.0/src/dodal/devices/i18}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i18/kb_mirror.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i19/access_controlled → dls_dodal-1.65.0/src/dodal/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i20_1 → dls_dodal-1.65.0/src/dodal/devices/i19/access_controlled}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/blueapi_device.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/hutch_access.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/access_controlled/shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/diffractometer.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i22 → dls_dodal-1.65.0/src/dodal/devices/i20_1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i21/enums.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/i24 → dls_dodal-1.65.0/src/dodal/devices/i22}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/mx_phase1 → dls_dodal-1.65.0/src/dodal/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/commissioning_jungfrau.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/oav → dls_dodal-1.65.0/src/dodal/devices/mx_phase1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/oav/snapshots → dls_dodal-1.65.0/src/dodal/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/p99 → dls_dodal-1.65.0/src/dodal/devices/oav/snapshots}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/enums.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/temperture_controller/lakeshore → dls_dodal-1.65.0/src/dodal/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/andor2_point.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/positioner.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/util → dls_dodal-1.65.0/src/dodal/devices/temperture_controller/lakeshore}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/tetramm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/xspress3 → dls_dodal-1.65.0/src/dodal/devices/util}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/v2f.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.63.0/src/dodal/devices/zebra → dls_dodal-1.65.0/src/dodal/devices/xspress3}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.63.0/src/dodal/parameters → dls_dodal-1.65.0/src/dodal/devices/zebra}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.63.0/src/dodal/plan_stubs → dls_dodal-1.65.0/src/dodal/parameters}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/bimorph.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/preprocessors/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
- {dls_dodal-1.63.0/system_tests → dls_dodal-1.65.0/src/dodal/testing/fixtures}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/testing/setup.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.63.0/tests → dls_dodal-1.65.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.63.0/tests/beamlines → dls_dodal-1.65.0/tests}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/common → dls_dodal-1.65.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_b16.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_i03.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_i24.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/beamlines/test_mapping.py +0 -0
- {dls_dodal-1.63.0/tests/common/beamlines → dls_dodal-1.65.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices → dls_dodal-1.65.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/beamlines/test_commissioning_mode.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.63.0/tests/devices/aithre_lasershaping → dls_dodal-1.65.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/b07_1 → dls_dodal-1.65.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
- {dls_dodal-1.63.0/tests/devices/current_amplifier → dls_dodal-1.65.0/tests/devices/b07_1}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/detector → dls_dodal-1.65.0/tests/devices/current_amplifier}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/electron_analyser → dls_dodal-1.65.0/tests/devices/detector}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/detector/test_detector.py +0 -0
- {dls_dodal-1.63.0/tests/devices/electron_analyser/abstract → dls_dodal-1.65.0/tests/devices/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/electron_analyser/specs → dls_dodal-1.65.0/tests/devices/electron_analyser/abstract}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/abstract/test_base_region.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
- {dls_dodal-1.63.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.65.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/specs/test_region.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_energy_sources.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/test_util.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i02_1 → dls_dodal-1.65.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_driver_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/electron_analyser/vgscienta/test_region.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i03 → dls_dodal-1.65.0/tests/devices/i02_1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i04 → dls_dodal-1.65.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i09 → dls_dodal-1.65.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i04/test_murko_results.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i10 → dls_dodal-1.65.0/tests/devices/i07}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i11 → dls_dodal-1.65.0/tests/devices/i09}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i13_1 → dls_dodal-1.65.0/tests/devices/i09_1}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i15 → dls_dodal-1.65.0/tests/devices/i09_1_shared}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i17 → dls_dodal-1.65.0/tests/devices/i10}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.63.0/tests/devices/i18 → dls_dodal-1.65.0/tests/devices/i11}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i11/test_i11devices.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i11/test_mythen.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i22 → dls_dodal-1.65.0/tests/devices/i15}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i24 → dls_dodal-1.65.0/tests/devices/i17}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i17/test_i17_apple2.py +0 -0
- {dls_dodal-1.63.0/tests/devices/mx_phase1 → dls_dodal-1.65.0/tests/devices/i18}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.63.0/tests/devices/oav → dls_dodal-1.65.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/oav/image_recognition → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/devices/i19 → dls_dodal-1.65.0/tests/devices/i19/access_controlled}/test_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_diffractometer.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_mapt.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i19/test_pin_col.py +0 -0
- {dls_dodal-1.63.0/tests/devices/p60 → dls_dodal-1.65.0/tests/devices/i22}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.63.0/tests/devices/p99 → dls_dodal-1.65.0/tests/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_commissioning_jungfrau.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/i24/test_vgonio.py +0 -0
- {dls_dodal-1.63.0/tests/devices/temperature_controller → dls_dodal-1.65.0/tests/devices/mx_phase1}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
- {dls_dodal-1.63.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.65.0/tests/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/conftest.py +0 -0
- {dls_dodal-1.63.0/tests/devices/util → dls_dodal-1.65.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/oav/test_snapshots.py +0 -0
- {dls_dodal-1.63.0/tests/fake_zocalo → dls_dodal-1.65.0/tests/devices/p60}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/p60/test_lab_xray_source.py +0 -0
- {dls_dodal-1.63.0/tests/plan_stubs → dls_dodal-1.65.0/tests/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.63.0/tests/plans → dls_dodal-1.65.0/tests/devices/temperature_controller}/__init__.py +0 -0
- {dls_dodal-1.63.0/tests/plans/test_preprocessors → dls_dodal-1.65.0/tests/devices/temperature_controller/lakeshore}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_aperture.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_aperture_scatterguard.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_attenuator.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_backlight.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_bart_robot.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_baton.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_beam_converter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_controllers.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_eiger.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_fast_shutters.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_focusing_mirror.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_hutch_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_motors.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_odin.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_positioner.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_qbpm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_slits.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_synchrotron.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_tetramm.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_thawer.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_turbo_slit.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_webcam.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_xspress3.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zebra_shutter.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/test_zocalo_results.py +0 -0
- {dls_dodal-1.63.0/tests/preprocessors → dls_dodal-1.65.0/tests/devices/util}/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/devices/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_data_session.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_bimorph.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/__init__.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_display.configuration +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_log.py +0 -0
- {dls_dodal-1.63.0 → dls_dodal-1.65.0}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.65.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>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: click
|
|
217
217
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async[ca,pva]>=0.13.
|
|
218
|
+
Requires-Dist: ophyd-async[ca,pva]>=0.13.5
|
|
219
219
|
Requires-Dist: bluesky>=1.14.5
|
|
220
220
|
Requires-Dist: pyepics
|
|
221
221
|
Requires-Dist: dataclasses-json
|
|
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
245
245
|
Requires-Dist: pre-commit; extra == "dev"
|
|
246
246
|
Requires-Dist: psutil; extra == "dev"
|
|
247
247
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
248
|
-
Requires-Dist: pyright; extra == "dev"
|
|
248
|
+
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
249
249
|
Requires-Dist: pytest; extra == "dev"
|
|
250
250
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
251
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
import logging
|
|
3
2
|
import sys
|
|
4
|
-
import time
|
|
5
|
-
from collections.abc import Mapping
|
|
6
3
|
from os import environ
|
|
7
4
|
from pathlib import Path
|
|
8
5
|
from unittest.mock import MagicMock, patch
|
|
9
6
|
|
|
10
7
|
import pytest
|
|
11
|
-
from bluesky.run_engine import RunEngine
|
|
12
8
|
from ophyd.status import Status
|
|
13
9
|
from ophyd_async.core import (
|
|
14
10
|
PathInfo,
|
|
@@ -49,6 +45,10 @@ BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
|
|
|
49
45
|
environ["DODAL_TEST_MODE"] = "true"
|
|
50
46
|
|
|
51
47
|
|
|
48
|
+
# Add run_engine fixtures to be used in tests
|
|
49
|
+
pytest_plugins = ["dodal.testing.fixtures.run_engine"]
|
|
50
|
+
|
|
51
|
+
|
|
52
52
|
@pytest.fixture(autouse=True)
|
|
53
53
|
def patch_open_to_prevent_dls_reads_in_tests():
|
|
54
54
|
unpatched_open = open
|
|
@@ -105,37 +105,7 @@ async def static_path_provider(
|
|
|
105
105
|
return svpp
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
@pytest.fixture
|
|
109
|
-
def run_engine_documents(run_engine: RunEngine) -> Mapping[str, list[dict]]:
|
|
110
|
-
docs: dict[str, list[dict]] = {}
|
|
111
|
-
|
|
112
|
-
def append_and_print(name, doc):
|
|
113
|
-
if name not in docs:
|
|
114
|
-
docs[name] = []
|
|
115
|
-
docs[name] += [doc]
|
|
116
|
-
|
|
117
|
-
run_engine.subscribe(append_and_print)
|
|
118
|
-
return docs
|
|
119
|
-
|
|
120
|
-
|
|
121
108
|
def failed_status(failure: Exception) -> Status:
|
|
122
109
|
status = Status()
|
|
123
110
|
status.set_exception(failure)
|
|
124
111
|
return status
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
@pytest.fixture(scope="session", autouse=True)
|
|
128
|
-
async def _ensure_running_bluesky_event_loop():
|
|
129
|
-
run_engine = RunEngine()
|
|
130
|
-
# make sure the event loop is thoroughly up and running before we try to create
|
|
131
|
-
# any ophyd_async devices which might need it
|
|
132
|
-
timeout = time.monotonic() + 1
|
|
133
|
-
while not run_engine.loop.is_running():
|
|
134
|
-
await asyncio.sleep(0)
|
|
135
|
-
if time.monotonic() > timeout:
|
|
136
|
-
raise TimeoutError("This really shouldn't happen but just in case...")
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
@pytest.fixture()
|
|
140
|
-
async def run_engine():
|
|
141
|
-
yield RunEngine()
|
|
@@ -21,7 +21,7 @@ you will not get the option to edit the release notes.
|
|
|
21
21
|
|
|
22
22
|
A new release will be made and the wheel and sdist uploaded to PyPI.
|
|
23
23
|
|
|
24
|
-
[release]: https://github.com/DiamondLightSource/
|
|
24
|
+
[release]: https://github.com/DiamondLightSource/dodal/releases
|
|
25
25
|
|
|
26
26
|
## Deciding release numbers
|
|
27
27
|
|
|
@@ -58,9 +58,11 @@ class MyDevice(StandardReadable, Stageable):
|
|
|
58
58
|
|
|
59
59
|
In this example, we need to test the `stage` and `unstage` methods. For more complex devices, it is also a good idea to test the `read` method to confirm that we get the expected read signals back when this method is called.
|
|
60
60
|
|
|
61
|
-
We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
|
|
61
|
+
We use [pytest](https://docs.pytest.org/en/stable/contents.html) for writing tests in dodal. A core part of this library is the use of fixtures. A fixture is a function decorated with `@pytest.fixture` that provides setup/teardown or reusable test data for your tests. It is defined once and can be reused across multiple tests. Fixtures are mainly used to define devices and then inject them into each test.
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Common fixtures, such as the `run_engine` used in the below tests, can also be defined in `dodal/tests/conftest.py`, which is a special file recognised by `pytest`. These fixtures are automatically available to any test in the same directory (and its subdirectories) without needing to import them. This is useful for defining common setup code once without duplicating it across test files.
|
|
64
|
+
|
|
65
|
+
Devices are set up in the fixture using the `init_devices(mock=True)` function from `ophyd_async.core`, which automatically initialises the device in mock mode.
|
|
64
66
|
|
|
65
67
|
In order for `pytest` to detect something as a test, a function should begin with `test_*`. The test function should be self-descriptive about what it is testing, and it is acceptable (even encouraged) to have longer names for test functions for clarity.
|
|
66
68
|
|
|
@@ -75,9 +77,8 @@ from ophyd_async.testing import assert_reading, get_mock_put, partial_reading
|
|
|
75
77
|
from dodal.device.my_device import MyDevice
|
|
76
78
|
|
|
77
79
|
|
|
78
|
-
# RunEngine is needed to make sure there is an event loop when creating device.
|
|
79
80
|
@pytest.fixture
|
|
80
|
-
async def sim_my_device(
|
|
81
|
+
async def sim_my_device() -> MyDevice:
|
|
81
82
|
async with init_devices(mock=True):
|
|
82
83
|
sim_my_device = MyDevice("TEST:")
|
|
83
84
|
return sim_my_device
|
|
@@ -91,7 +92,6 @@ def test_my_device_stage(sim_my_device: MyDevice, run_engine: RunEngine) -> None
|
|
|
91
92
|
def test_my_device_unstage(sim_my_device: MyDevice, run_engine: RunEngine) -> None:
|
|
92
93
|
run_engine(bps.unstage(sim_my_device, wait=True), wait=True)
|
|
93
94
|
get_mock_put(sim_my_device.signal_b).assert_called_once_with(OnOff.OFF, wait=True)
|
|
94
|
-
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
You should test the output of a device when the device has many signals read and you want to ensure the correct ones are read at the correct times, or when the `read` method of it or one of its signals (e.g. a DerivedSignal) requires testing. Functions are defined in `ophyd-async` to aid with this. `assert_reading` allows us to compare the readings generated from a `Readable` device to the expected results.
|
|
@@ -14,7 +14,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
|
|
|
14
14
|
dependencies = [
|
|
15
15
|
"click",
|
|
16
16
|
"ophyd",
|
|
17
|
-
"ophyd-async[ca,pva]>=0.13.
|
|
17
|
+
"ophyd-async[ca,pva]>=0.13.5",
|
|
18
18
|
"bluesky>=1.14.5",
|
|
19
19
|
"pyepics",
|
|
20
20
|
"dataclasses-json",
|
|
@@ -54,7 +54,8 @@ dev = [
|
|
|
54
54
|
"pre-commit",
|
|
55
55
|
"psutil",
|
|
56
56
|
"pydata-sphinx-theme>=0.12",
|
|
57
|
-
|
|
57
|
+
# Pin to previous pyright until https://github.com/microsoft/pyright/issues/11060 is fixed
|
|
58
|
+
"pyright==1.1.406",
|
|
58
59
|
"pytest",
|
|
59
60
|
"pytest-asyncio",
|
|
60
61
|
"pytest-cov",
|
|
@@ -136,6 +137,8 @@ testpaths = "docs src tests system_tests"
|
|
|
136
137
|
exclude_also = [
|
|
137
138
|
'^"""', # Ignore the start/end of a file-level triple quoted docstring
|
|
138
139
|
]
|
|
140
|
+
# Exclude pytest.fixtures from code coverage report
|
|
141
|
+
omit = ["*/dodal/testing/fixtures/*"]
|
|
139
142
|
|
|
140
143
|
[tool.coverage.run]
|
|
141
144
|
data_file = "/tmp/dodal.coverage"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.65.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>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,7 @@ Description-Content-Type: text/markdown
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: click
|
|
217
217
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async[ca,pva]>=0.13.
|
|
218
|
+
Requires-Dist: ophyd-async[ca,pva]>=0.13.5
|
|
219
219
|
Requires-Dist: bluesky>=1.14.5
|
|
220
220
|
Requires-Dist: pyepics
|
|
221
221
|
Requires-Dist: dataclasses-json
|
|
@@ -245,7 +245,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
245
245
|
Requires-Dist: pre-commit; extra == "dev"
|
|
246
246
|
Requires-Dist: psutil; extra == "dev"
|
|
247
247
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
248
|
-
Requires-Dist: pyright; extra == "dev"
|
|
248
|
+
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
249
249
|
Requires-Dist: pytest; extra == "dev"
|
|
250
250
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
251
251
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -109,6 +109,7 @@ src/dodal/beamlines/i03.py
|
|
|
109
109
|
src/dodal/beamlines/i04.py
|
|
110
110
|
src/dodal/beamlines/i05.py
|
|
111
111
|
src/dodal/beamlines/i05_1.py
|
|
112
|
+
src/dodal/beamlines/i07.py
|
|
112
113
|
src/dodal/beamlines/i09.py
|
|
113
114
|
src/dodal/beamlines/i09_1.py
|
|
114
115
|
src/dodal/beamlines/i09_2.py
|
|
@@ -260,10 +261,14 @@ src/dodal/devices/i04/murko_results.py
|
|
|
260
261
|
src/dodal/devices/i04/transfocator.py
|
|
261
262
|
src/dodal/devices/i05/__init__.py
|
|
262
263
|
src/dodal/devices/i05/enums.py
|
|
264
|
+
src/dodal/devices/i07/__init__.py
|
|
265
|
+
src/dodal/devices/i07/dcm.py
|
|
263
266
|
src/dodal/devices/i09/__init__.py
|
|
264
267
|
src/dodal/devices/i09/enums.py
|
|
265
268
|
src/dodal/devices/i09_1/__init__.py
|
|
266
269
|
src/dodal/devices/i09_1/enums.py
|
|
270
|
+
src/dodal/devices/i09_1_shared/__init__.py
|
|
271
|
+
src/dodal/devices/i09_1_shared/hard_undulator_functions.py
|
|
267
272
|
src/dodal/devices/i10/__init__.py
|
|
268
273
|
src/dodal/devices/i10/diagnostics.py
|
|
269
274
|
src/dodal/devices/i10/i10_apple2.py
|
|
@@ -384,6 +389,9 @@ src/dodal/testing/__init__.py
|
|
|
384
389
|
src/dodal/testing/setup.py
|
|
385
390
|
src/dodal/testing/electron_analyser/__init__.py
|
|
386
391
|
src/dodal/testing/electron_analyser/device_factory.py
|
|
392
|
+
src/dodal/testing/fixtures/__init__.py
|
|
393
|
+
src/dodal/testing/fixtures/run_engine.py
|
|
394
|
+
src/dodal/testing/fixtures/utils.py
|
|
387
395
|
system_tests/__init__.py
|
|
388
396
|
system_tests/test_adsim.py
|
|
389
397
|
system_tests/test_cli.py
|
|
@@ -504,7 +512,14 @@ tests/devices/i03/test_undulator_dcm.py
|
|
|
504
512
|
tests/devices/i04/__init__.py
|
|
505
513
|
tests/devices/i04/test_murko_results.py
|
|
506
514
|
tests/devices/i04/test_transfocator.py
|
|
515
|
+
tests/devices/i07/__init__.py
|
|
516
|
+
tests/devices/i07/test_dcm.py
|
|
507
517
|
tests/devices/i09/__init__.py
|
|
518
|
+
tests/devices/i09_1/__init__.py
|
|
519
|
+
tests/devices/i09_1_shared/__init__.py
|
|
520
|
+
tests/devices/i09_1_shared/test_undulator_functions.py
|
|
521
|
+
tests/devices/i09_1_shared/test_data/__init__.py
|
|
522
|
+
tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt
|
|
508
523
|
tests/devices/i10/__init__.py
|
|
509
524
|
tests/devices/i10/test_i10_apple2.py
|
|
510
525
|
tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv
|
|
@@ -530,7 +545,8 @@ tests/devices/i19/test_beamstop.py
|
|
|
530
545
|
tests/devices/i19/test_diffractometer.py
|
|
531
546
|
tests/devices/i19/test_mapt.py
|
|
532
547
|
tests/devices/i19/test_pin_col.py
|
|
533
|
-
tests/devices/i19/
|
|
548
|
+
tests/devices/i19/access_controlled/__init__.py
|
|
549
|
+
tests/devices/i19/access_controlled/test_shutter.py
|
|
534
550
|
tests/devices/i22/__init__.py
|
|
535
551
|
tests/devices/i22/test_dcm.py
|
|
536
552
|
tests/devices/i22/test_fswitch.py
|
|
@@ -614,4 +630,7 @@ tests/test_data/bad_beamlineParameters
|
|
|
614
630
|
tests/test_data/i04_beamlineParameters
|
|
615
631
|
tests/test_data/test_beamline_parameters.txt
|
|
616
632
|
tests/test_data/test_display.configuration
|
|
617
|
-
tests/test_data/test_oav_zoom_levels.xml
|
|
633
|
+
tests/test_data/test_oav_zoom_levels.xml
|
|
634
|
+
tests/testing/__init__.py
|
|
635
|
+
tests/testing/fixtures/__init__.py
|
|
636
|
+
tests/testing/fixtures/test_run_engine.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
click
|
|
2
2
|
ophyd
|
|
3
|
-
ophyd-async[ca,pva]>=0.13.
|
|
3
|
+
ophyd-async[ca,pva]>=0.13.5
|
|
4
4
|
bluesky>=1.14.5
|
|
5
5
|
pyepics
|
|
6
6
|
dataclasses-json
|
|
@@ -31,7 +31,7 @@ pipdeptree
|
|
|
31
31
|
pre-commit
|
|
32
32
|
psutil
|
|
33
33
|
pydata-sphinx-theme>=0.12
|
|
34
|
-
pyright
|
|
34
|
+
pyright==1.1.406
|
|
35
35
|
pytest
|
|
36
36
|
pytest-asyncio
|
|
37
37
|
pytest-cov
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.65.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 65, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g5fe631f29'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
|
+
from dodal.devices.i05.enums import Grating
|
|
3
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
4
|
+
from dodal.utils import BeamlinePrefix
|
|
5
|
+
|
|
6
|
+
PREFIX = BeamlinePrefix("i05", "I")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@device_factory()
|
|
10
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
11
|
+
return PlaneGratingMonochromator(
|
|
12
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
13
|
+
grating=Grating,
|
|
14
|
+
)
|
|
@@ -5,7 +5,7 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beam
|
|
|
5
5
|
from dodal.devices.b07 import Grating, LensMode, PsuMode
|
|
6
6
|
from dodal.devices.electron_analyser import EnergySource
|
|
7
7
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
8
|
-
from dodal.devices.pgm import
|
|
8
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
9
9
|
from dodal.devices.synchrotron import Synchrotron
|
|
10
10
|
from dodal.log import set_beamline as set_log_beamline
|
|
11
11
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -22,8 +22,11 @@ def synchrotron() -> Synchrotron:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@device_factory()
|
|
25
|
-
def pgm() ->
|
|
26
|
-
return
|
|
25
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
26
|
+
return PlaneGratingMonochromator(
|
|
27
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
28
|
+
grating=Grating,
|
|
29
|
+
)
|
|
27
30
|
|
|
28
31
|
|
|
29
32
|
@device_factory()
|
|
@@ -8,7 +8,7 @@ from dodal.devices.b07_1 import (
|
|
|
8
8
|
)
|
|
9
9
|
from dodal.devices.electron_analyser import EnergySource
|
|
10
10
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
11
|
-
from dodal.devices.pgm import
|
|
11
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
12
|
from dodal.devices.synchrotron import Synchrotron
|
|
13
13
|
from dodal.log import set_beamline as set_log_beamline
|
|
14
14
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -25,8 +25,11 @@ def synchrotron() -> Synchrotron:
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
@device_factory()
|
|
28
|
-
def pgm() ->
|
|
29
|
-
return
|
|
28
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
29
|
+
return PlaneGratingMonochromator(
|
|
30
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
31
|
+
grating=Grating,
|
|
32
|
+
)
|
|
30
33
|
|
|
31
34
|
|
|
32
35
|
# Connect will work again after this work completed
|
|
@@ -21,7 +21,7 @@ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
|
21
21
|
from dodal.devices.backlight import Backlight
|
|
22
22
|
from dodal.devices.baton import Baton
|
|
23
23
|
from dodal.devices.collimation_table import CollimationTable
|
|
24
|
-
from dodal.devices.cryostream import CryoStream
|
|
24
|
+
from dodal.devices.cryostream import CryoStream, CryoStreamGantry
|
|
25
25
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
26
26
|
from dodal.devices.diamond_filter import DiamondFilter, I03Filters
|
|
27
27
|
from dodal.devices.eiger import EigerDetector
|
|
@@ -396,6 +396,14 @@ def cryostream() -> CryoStream:
|
|
|
396
396
|
return CryoStream(PREFIX.beamline_prefix)
|
|
397
397
|
|
|
398
398
|
|
|
399
|
+
@device_factory()
|
|
400
|
+
def cryostream_gantry() -> CryoStreamGantry:
|
|
401
|
+
"""Get the i03 cryostream gantry device, instantiate it if it hasn't already been.
|
|
402
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
403
|
+
"""
|
|
404
|
+
return CryoStreamGantry(PREFIX.beamline_prefix)
|
|
405
|
+
|
|
406
|
+
|
|
399
407
|
@device_factory()
|
|
400
408
|
def diamond_filter() -> DiamondFilter[I03Filters]:
|
|
401
409
|
"""Get the i03 diamond filter device, instantiate it if it hasn't already been.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
3
3
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
4
|
-
from dodal.devices.pgm import
|
|
4
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
5
5
|
from dodal.devices.synchrotron import Synchrotron
|
|
6
6
|
from dodal.log import set_beamline as set_log_beamline
|
|
7
7
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -18,5 +18,5 @@ def synchrotron() -> Synchrotron:
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
@device_factory()
|
|
21
|
-
def pgm() ->
|
|
21
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
22
22
|
return i05_pgm()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from dodal.beamline_specific_utils.i05_shared import pgm as i05_pgm
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
3
3
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
4
|
-
from dodal.devices.pgm import
|
|
4
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
5
5
|
from dodal.devices.synchrotron import Synchrotron
|
|
6
6
|
from dodal.log import set_beamline as set_log_beamline
|
|
7
7
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -13,7 +13,7 @@ set_utils_beamline(BL)
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@device_factory()
|
|
16
|
-
def pgm() ->
|
|
16
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
17
17
|
return i05_pgm()
|
|
18
18
|
|
|
19
19
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
+
from dodal.devices.i07.dcm import DCM
|
|
4
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
5
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
6
|
+
|
|
7
|
+
BL = get_beamline_name("i07")
|
|
8
|
+
set_log_beamline(BL)
|
|
9
|
+
set_utils_beamline(BL)
|
|
10
|
+
PREFIX = BeamlinePrefix(BL)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@device_factory()
|
|
14
|
+
def dcm() -> DCM:
|
|
15
|
+
"""Instantiate DCM using two PV bases"""
|
|
16
|
+
dcm = DCM(
|
|
17
|
+
f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
18
|
+
f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
19
|
+
"dcm",
|
|
20
|
+
)
|
|
21
|
+
return dcm
|
|
@@ -10,7 +10,7 @@ from dodal.devices.common_dcm import (
|
|
|
10
10
|
from dodal.devices.electron_analyser import DualEnergySource
|
|
11
11
|
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
|
|
12
12
|
from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
|
|
13
|
-
from dodal.devices.pgm import
|
|
13
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
14
14
|
from dodal.devices.synchrotron import Synchrotron
|
|
15
15
|
from dodal.log import set_beamline as set_log_beamline
|
|
16
16
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -27,8 +27,8 @@ def synchrotron() -> Synchrotron:
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
@device_factory()
|
|
30
|
-
def pgm() ->
|
|
31
|
-
return
|
|
30
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
31
|
+
return PlaneGratingMonochromator(
|
|
32
32
|
prefix=f"{BeamlinePrefix(BL, suffix='J').beamline_prefix}-MO-PGM-01:",
|
|
33
33
|
grating=Grating,
|
|
34
34
|
)
|
|
@@ -43,7 +43,7 @@ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
|
|
|
43
43
|
|
|
44
44
|
@device_factory()
|
|
45
45
|
def energy_source() -> DualEnergySource:
|
|
46
|
-
return DualEnergySource(dcm().
|
|
46
|
+
return DualEnergySource(dcm().energy_in_eV, pgm().energy.user_readback)
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
# Connect will work again after this work completed
|
|
@@ -11,6 +11,7 @@ from dodal.devices.electron_analyser import EnergySource
|
|
|
11
11
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
12
12
|
from dodal.devices.i09_1 import LensMode, PsuMode
|
|
13
13
|
from dodal.devices.synchrotron import Synchrotron
|
|
14
|
+
from dodal.devices.undulator import UndulatorOrder
|
|
14
15
|
from dodal.log import set_beamline as set_log_beamline
|
|
15
16
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
16
17
|
|
|
@@ -34,7 +35,7 @@ def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
|
|
|
34
35
|
|
|
35
36
|
@device_factory()
|
|
36
37
|
def energy_source() -> EnergySource:
|
|
37
|
-
return EnergySource(dcm().
|
|
38
|
+
return EnergySource(dcm().energy_in_eV)
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
# Connect will work again after this work completed
|
|
@@ -47,3 +48,8 @@ def analyser() -> SpecsDetector[LensMode, PsuMode]:
|
|
|
47
48
|
psu_mode_type=PsuMode,
|
|
48
49
|
energy_source=energy_source(),
|
|
49
50
|
)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@device_factory()
|
|
54
|
+
def harmonics() -> UndulatorOrder:
|
|
55
|
+
return UndulatorOrder(name="harmonics")
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
+
device_factory,
|
|
3
|
+
)
|
|
4
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.devices.apple2_undulator import (
|
|
6
|
+
Apple2,
|
|
7
|
+
UndulatorGap,
|
|
8
|
+
UndulatorPhaseAxes,
|
|
9
|
+
)
|
|
10
|
+
from dodal.devices.i09.enums import Grating
|
|
11
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
13
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
14
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
15
|
+
|
|
16
|
+
BL = get_beamline_name("i09-2")
|
|
17
|
+
PREFIX = BeamlinePrefix(BL, suffix="J")
|
|
18
|
+
set_log_beamline(BL)
|
|
19
|
+
set_utils_beamline(BL)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@device_factory()
|
|
23
|
+
def synchrotron() -> Synchrotron:
|
|
24
|
+
return Synchrotron()
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@device_factory()
|
|
28
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
29
|
+
return PlaneGratingMonochromator(
|
|
30
|
+
prefix=f"{PREFIX.beamline_prefix}-MO-PGM-01:",
|
|
31
|
+
grating=Grating,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@device_factory()
|
|
36
|
+
def jid_gap() -> UndulatorGap:
|
|
37
|
+
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@device_factory()
|
|
41
|
+
def jid_phase() -> UndulatorPhaseAxes:
|
|
42
|
+
return UndulatorPhaseAxes(
|
|
43
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
44
|
+
top_outer="PUO",
|
|
45
|
+
top_inner="PUI",
|
|
46
|
+
btm_inner="PLI",
|
|
47
|
+
btm_outer="PLO",
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@device_factory()
|
|
52
|
+
def jid() -> Apple2:
|
|
53
|
+
"""I09 soft x-ray insertion device."""
|
|
54
|
+
return Apple2(
|
|
55
|
+
id_gap=jid_gap(),
|
|
56
|
+
id_phase=jid_phase(),
|
|
57
|
+
)
|
|
@@ -32,7 +32,7 @@ from dodal.devices.i10.i10_apple2 import (
|
|
|
32
32
|
|
|
33
33
|
# Imports taken from i10 while we work out how to deal with split end stations
|
|
34
34
|
from dodal.devices.i10.i10_setting_data import I10Grating
|
|
35
|
-
from dodal.devices.pgm import
|
|
35
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
36
36
|
from dodal.devices.synchrotron import Synchrotron
|
|
37
37
|
from dodal.log import set_beamline as set_log_beamline
|
|
38
38
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -59,9 +59,9 @@ def first_mirror() -> PiezoMirror:
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
@device_factory()
|
|
62
|
-
def pgm() ->
|
|
62
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
63
63
|
"I10 Plane Grating Monochromator, it can change energy via pgm.energy.set(<energy>)"
|
|
64
|
-
return
|
|
64
|
+
return PlaneGratingMonochromator(
|
|
65
65
|
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
66
66
|
grating=I10Grating,
|
|
67
67
|
grating_pv="NLINES2",
|
|
@@ -80,22 +80,35 @@ I10_CONF_CLIENT = ConfigServer(url="https://daq-config.diamond.ac.uk")
|
|
|
80
80
|
LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
|
|
81
81
|
|
|
82
82
|
|
|
83
|
+
@device_factory()
|
|
84
|
+
def idd_gap() -> UndulatorGap:
|
|
85
|
+
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@device_factory()
|
|
89
|
+
def idd_phase() -> UndulatorPhaseAxes:
|
|
90
|
+
return UndulatorPhaseAxes(
|
|
91
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
92
|
+
top_outer="RPQ1",
|
|
93
|
+
top_inner="RPQ2",
|
|
94
|
+
btm_inner="RPQ3",
|
|
95
|
+
btm_outer="RPQ4",
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@device_factory()
|
|
100
|
+
def idd_jaw_phase() -> UndulatorJawPhase:
|
|
101
|
+
return UndulatorJawPhase(
|
|
102
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
103
|
+
move_pv="RPQ1",
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
83
107
|
@device_factory()
|
|
84
108
|
def idd() -> I10Apple2:
|
|
85
109
|
"""i10 downstream insertion device:"""
|
|
86
110
|
return I10Apple2(
|
|
87
|
-
id_gap=
|
|
88
|
-
id_phase=UndulatorPhaseAxes(
|
|
89
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
90
|
-
top_outer="RPQ1",
|
|
91
|
-
top_inner="RPQ2",
|
|
92
|
-
btm_inner="RPQ3",
|
|
93
|
-
btm_outer="RPQ4",
|
|
94
|
-
),
|
|
95
|
-
id_jaw_phase=UndulatorJawPhase(
|
|
96
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
97
|
-
move_pv="RPQ1",
|
|
98
|
-
),
|
|
111
|
+
id_gap=idd_gap(), id_phase=idd_phase(), id_jaw_phase=idd_jaw_phase()
|
|
99
112
|
)
|
|
100
113
|
|
|
101
114
|
|
|
@@ -131,22 +144,35 @@ def energy_dd() -> BeamEnergy:
|
|
|
131
144
|
return BeamEnergy(id_energy=idd_energy(), mono=pgm().energy)
|
|
132
145
|
|
|
133
146
|
|
|
147
|
+
@device_factory()
|
|
148
|
+
def idu_gap() -> UndulatorGap:
|
|
149
|
+
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:")
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@device_factory()
|
|
153
|
+
def idu_phase() -> UndulatorPhaseAxes:
|
|
154
|
+
return UndulatorPhaseAxes(
|
|
155
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
156
|
+
top_outer="RPQ1",
|
|
157
|
+
top_inner="RPQ2",
|
|
158
|
+
btm_inner="RPQ3",
|
|
159
|
+
btm_outer="RPQ4",
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@device_factory()
|
|
164
|
+
def idu_jaw_phase() -> UndulatorJawPhase:
|
|
165
|
+
return UndulatorJawPhase(
|
|
166
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
167
|
+
move_pv="RPQ1",
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
|
|
134
171
|
@device_factory()
|
|
135
172
|
def idu() -> I10Apple2:
|
|
136
173
|
"""i10 upstream insertion device"""
|
|
137
174
|
return I10Apple2(
|
|
138
|
-
id_gap=
|
|
139
|
-
id_phase=UndulatorPhaseAxes(
|
|
140
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
141
|
-
top_outer="RPQ1",
|
|
142
|
-
top_inner="RPQ2",
|
|
143
|
-
btm_inner="RPQ3",
|
|
144
|
-
btm_outer="RPQ4",
|
|
145
|
-
),
|
|
146
|
-
id_jaw_phase=UndulatorJawPhase(
|
|
147
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
148
|
-
move_pv="RPQ1",
|
|
149
|
-
),
|
|
175
|
+
id_gap=idu_gap(), id_phase=idu_phase(), id_jaw_phase=idu_jaw_phase()
|
|
150
176
|
)
|
|
151
177
|
|
|
152
178
|
|