dls-dodal 1.68.0__tar.gz → 1.69.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.68.0 → dls_dodal-1.69.0}/.copier-answers.yml +3 -3
- dls_dodal-1.69.0/.devcontainer/devcontainer.json +72 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/CONTRIBUTING.md +1 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/_dist.yml +6 -5
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/_docs.yml +6 -3
- dls_dodal-1.69.0/.github/workflows/_test.yml +62 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/_tox.yml +4 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/ci.yml +2 -7
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/periodic.yml +1 -1
- dls_dodal-1.69.0/.gitleaks.toml +19 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.pre-commit-config.yaml +8 -0
- dls_dodal-1.69.0/.python-version +1 -0
- dls_dodal-1.69.0/Dockerfile +8 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/PKG-INFO +1 -31
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/coverage.md +1 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/dev-install.md +5 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/lint.md +1 -1
- dls_dodal-1.69.0/docs/how-to/lock-requirements.md +43 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/run-tests.md +5 -2
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/static-analysis.md +1 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/pyproject.toml +98 -27
- dls_dodal-1.69.0/renovate.json +37 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/PKG-INFO +1 -31
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/SOURCES.txt +19 -4
- dls_dodal-1.69.0/src/dls_dodal.egg-info/requires.txt +19 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/_version.py +3 -3
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/adsim.py +30 -23
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i02_1.py +14 -42
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i02_2.py +5 -11
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i03.py +4 -1
- dls_dodal-1.69.0/src/dodal/beamlines/i03_supervisor.py +19 -0
- dls_dodal-1.69.0/src/dodal/beamlines/i04.py +307 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i05.py +8 -0
- dls_dodal-1.69.0/src/dodal/beamlines/i06_1.py +24 -0
- dls_dodal-1.69.0/src/dodal/beamlines/i09.py +103 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i09_1.py +8 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i09_2.py +4 -4
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i16.py +11 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i20_1.py +14 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i21.py +12 -4
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i23.py +19 -25
- dls_dodal-1.69.0/src/dodal/beamlines/i24.py +168 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p60.py +11 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/__init__.py +2 -1
- dls_dodal-1.69.0/src/dodal/common/maths.py +130 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/eiger.py +29 -14
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/__init__.py +3 -3
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_controller.py +19 -8
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_enums.py +0 -5
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_region.py +2 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/energy_sources.py +27 -26
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/specs/specs_detector.py +7 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +7 -6
- dls_dodal-1.69.0/src/dodal/devices/fast_shutter.py +152 -0
- dls_dodal-1.69.0/src/dodal/devices/i04/beam_centre.py +84 -0
- dls_dodal-1.69.0/src/dodal/devices/i04/max_pixel.py +25 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/murko_results.py +18 -3
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/i10_apple2.py +6 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i17/i17_apple2.py +6 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/commissioning_jungfrau.py +9 -10
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/insertion_device/__init__.py +12 -8
- dls_dodal-1.69.0/src/dodal/devices/insertion_device/apple2_controller.py +380 -0
- dls_dodal-1.69.0/src/dodal/devices/insertion_device/apple2_undulator.py +430 -0
- dls_dodal-1.69.0/src/dodal/devices/insertion_device/energy.py +88 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/insertion_device/energy_motor_lookup.py +1 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/insertion_device/lookup_table_models.py +2 -2
- dls_dodal-1.69.0/src/dodal/devices/insertion_device/polarisation.py +36 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_detector.py +66 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/utils.py +17 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/robot.py +35 -18
- dls_dodal-1.69.0/src/dodal/devices/selectable_source.py +38 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra.py +15 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +1 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/system_tests/test_adsim.py +3 -15
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/system_tests/test_cli.py +2 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_beamline_utils.py +24 -3
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_maths.py +47 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/conftest.py +0 -1
- dls_dodal-1.69.0/tests/devices/electron_analyser/base/test_base_controller.py +210 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/base/test_energy_sources.py +7 -6
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/conftest.py +13 -3
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/specs/test_specs_region.py +2 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/vgscienta/test_vgsicenta_region.py +2 -1
- dls_dodal-1.69.0/tests/devices/i04/test_beam_centre.py +125 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i04/test_max_pixel.py +6 -21
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i04/test_murko_results.py +39 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_i09_apple2.py +32 -32
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_i10_apple2.py +13 -11
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i17/test_i17_apple2.py +5 -5
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i24/test_commissioning_jungfrau.py +2 -2
- dls_dodal-1.69.0/tests/devices/insertion_device/conftest.py +144 -0
- dls_dodal-1.69.0/tests/devices/insertion_device/test_apple2_controller.py +147 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_apple2_undulator.py +72 -28
- dls_dodal-1.69.0/tests/devices/insertion_device/test_energy.py +51 -0
- dls_dodal-1.69.0/tests/devices/insertion_device/test_polarisation.py +48 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/util.py +3 -5
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_snapshots.py +3 -1
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_bart_robot.py +29 -21
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_eiger.py +4 -1
- dls_dodal-1.69.0/tests/devices/test_fast_shutters.py +181 -0
- dls_dodal-1.69.0/tests/devices/test_selectable_source.py +44 -0
- dls_dodal-1.69.0/tests/test_data/scintillator_with_beam.jpg +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_utils.py +0 -24
- dls_dodal-1.69.0/tests/testing/fixtures/__init__.py +0 -0
- dls_dodal-1.69.0/uv.lock +3968 -0
- dls_dodal-1.68.0/.devcontainer/devcontainer.json +0 -46
- dls_dodal-1.68.0/.github/actions/install_requirements/action.yml +0 -35
- dls_dodal-1.68.0/.github/dependabot.yml +0 -28
- dls_dodal-1.68.0/.github/scripts/check_test_durations.py +0 -30
- dls_dodal-1.68.0/.github/workflows/_test.yml +0 -88
- dls_dodal-1.68.0/Dockerfile +0 -13
- dls_dodal-1.68.0/docs/how-to/lock-requirements.md +0 -39
- dls_dodal-1.68.0/src/dls_dodal.egg-info/requires.txt +0 -50
- dls_dodal-1.68.0/src/dodal/beamlines/i04.py +0 -412
- dls_dodal-1.68.0/src/dodal/beamlines/i09.py +0 -59
- dls_dodal-1.68.0/src/dodal/beamlines/i24.py +0 -218
- dls_dodal-1.68.0/src/dodal/common/maths.py +0 -50
- dls_dodal-1.68.0/src/dodal/devices/fast_shutter.py +0 -69
- dls_dodal-1.68.0/src/dodal/devices/i04/max_pixel.py +0 -38
- dls_dodal-1.68.0/src/dodal/devices/insertion_device/apple2_undulator.py +0 -809
- dls_dodal-1.68.0/tests/devices/electron_analyser/base/test_base_controller.py +0 -115
- dls_dodal-1.68.0/tests/devices/insertion_device/conftest.py +0 -44
- dls_dodal-1.68.0/tests/devices/test_fast_shutters.py +0 -47
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.gitignore +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/LICENSE +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/README.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/assets/where-to-put-dodal-logic.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/conf.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0004-make-devices-factory.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0005-standardise-devices-at-epics-level.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/0006-devices-shared-between-endstations.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/umls/apple2_design.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations/umls/i10_id_design.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/explanations.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/genindex.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/create-beamline.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/create-device.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/external-io-devices.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/move-code.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/tidy-docs.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to/zocalo.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/how-to.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/index.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/reference/device-standards.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/reference/standards.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/reference.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/tutorials/get_started.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/pull_request_template.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/setup.cfg +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamline_specific_utils/i05_shared.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b07.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b07_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b16.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b18.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/b21.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i05_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i06.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i07.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i10_optics.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i11.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i15.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i15_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i17.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i18.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_2.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/k07.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/k11.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/commissioning_mode.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/data_util.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/device_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/common/watcher_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/device_manager.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/aithre_lasershaping/laser_robot.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/cam.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/areadetector/plugins/mjpg.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b07/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b07/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/ccmc.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b07_1/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b16/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/b16/detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/beamsize/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/beamsize/beamsize.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/collimation_table.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/common_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/controllers.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_driver_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/base/base_util.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/specs/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/specs/specs_driver_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/specs/specs_enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/specs/specs_region.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/vgscienta/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/vgscienta/vgscienta_driver_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/vgscienta/vgscienta_enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/electron_analyser/vgscienta/vgscienta_region.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/eurotherm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_1/fast_grid_scan.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_1/sample_motors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i02_2/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/beamsize.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/constants.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i03/undulator_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/beamsize.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/constants.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i05/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i05/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i07/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i07/dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i07/id.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/hard_energy.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_1_shared/hard_undulator_functions.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_2_shared/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i09_2_shared/i09_apple2.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/diagnostics.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/cyberstar_blower.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/diff_stages.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/mythen.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/nx100robot.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i11/spinner.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i13_1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i13_1/merlin.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i13_1/merlin_controller.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/focussing_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/jack.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/laue.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/motors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/multilayer_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i15/rail.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i17/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i18/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i18/kb_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/attenuator_motor_squad.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/blueapi_device.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/hutch_access.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/access_controlled/shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/diffractometer.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/mapt_configuration.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i19/pin_col_stages.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i21/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i21/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/i24/vgonio.py +0 -0
- /dls_dodal-1.68.0/src/dodal/devices/insertion_device/id_enum.py → /dls_dodal-1.69.0/src/dodal/devices/insertion_device/enum.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/mx_phase1/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/mx_phase1/beamstop.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/enums.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p60/lab_xray_source.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/andor2_point.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/positioner.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/tetramm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/v2f.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/parameters/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/bimorph.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/load_panda_yaml.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/preprocessors/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/spec_path.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/verify_undulator_gap.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.68.0/src/dodal/testing/fixtures → dls_dodal-1.69.0/src/dodal/testing}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/testing/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/testing/electron_analyser/device_factory.py +0 -0
- {dls_dodal-1.68.0/src/dodal/testing/fixtures/devices → dls_dodal-1.69.0/src/dodal/testing/fixtures}/__init__.py +0 -0
- {dls_dodal-1.68.0/system_tests → dls_dodal-1.69.0/src/dodal/testing/fixtures/devices}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/devices/apple2.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/run_engine.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/testing/fixtures/utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.68.0/tests → dls_dodal-1.69.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/system_tests/conftest.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.68.0/tests/beamlines → dls_dodal-1.69.0/tests}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/common → dls_dodal-1.69.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/beamlines/test_b16.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/beamlines/test_i03.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/beamlines/test_i24.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/beamlines/test_mapping.py +0 -0
- {dls_dodal-1.68.0/tests/common/beamlines → dls_dodal-1.69.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices → dls_dodal-1.69.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_commissioning_mode.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/common/test_watcher_utils.py +0 -0
- {dls_dodal-1.68.0/tests/devices/aithre_lasershaping → dls_dodal-1.69.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/b07_1 → dls_dodal-1.69.0/tests/devices/aithre_lasershaping}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/aithre_lasershaping/test_goniometer.py +0 -0
- {dls_dodal-1.68.0/tests/devices/current_amplifier → dls_dodal-1.69.0/tests/devices/b07_1}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/b07_1/test_ccmc.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/conftest.py +0 -0
- {dls_dodal-1.68.0/tests/devices/detector → dls_dodal-1.69.0/tests/devices/current_amplifier}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.68.0/tests/devices/electron_analyser → dls_dodal-1.69.0/tests/devices/detector}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/detector/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/detector/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/detector/test_detector.py +0 -0
- {dls_dodal-1.68.0/tests/devices/electron_analyser/base → dls_dodal-1.69.0/tests/devices/electron_analyser}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/electron_analyser/specs → dls_dodal-1.69.0/tests/devices/electron_analyser/base}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/base/test_base_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/base/test_base_driver_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/base/test_base_region.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/base/test_base_util.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/assert_func.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/helper_util/sequence.py +0 -0
- {dls_dodal-1.68.0/tests/devices/electron_analyser/vgscienta → dls_dodal-1.69.0/tests/devices/electron_analyser/specs}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/specs/test_specs_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/specs/test_specs_driver_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/specs_sequence.seq +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/test_data/vgscienta_sequence.seq +0 -0
- {dls_dodal-1.68.0/tests/devices/i02_1 → dls_dodal-1.69.0/tests/devices/electron_analyser/vgscienta}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/vgscienta/test_vgscienta_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/electron_analyser/vgscienta/test_vgscienta_driver_io.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i03 → dls_dodal-1.69.0/tests/devices/i02_1}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i02_1/test_fast_grid_scan.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i04 → dls_dodal-1.69.0/tests/devices/i03}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i03/test_beamsize.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i03/test_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i03/test_undulator_dcm.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i09 → dls_dodal-1.69.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i04/conftest.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i04/test_beamsize.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i07/IIDCalibrationTable.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i07/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i07/test_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i07/test_id.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i09_1 → dls_dodal-1.69.0/tests/devices/i09}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i09_1_shared → dls_dodal-1.69.0/tests/devices/i09_1}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i09_2_shared → dls_dodal-1.69.0/tests/devices/i09_1_shared}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_data/test_lookuptable_i09_hu.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_hard_energy.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_1_shared/test_undulator_functions.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i10 → dls_dodal-1.69.0/tests/devices/i09_2_shared}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/ExpectedJIDEnergy2GapCalibrations.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/ExpectedJIDEnergy2PhaseCalibrations.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/JIDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/JIDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i09_2_shared/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i11 → dls_dodal-1.69.0/tests/devices/i10}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdd.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2GapCalibrationsIdu.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidd.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i10/test_data/expectedIDEnergy2PhaseCalibrationsidu.json +0 -0
- {dls_dodal-1.68.0/tests/devices/i13_1 → dls_dodal-1.69.0/tests/devices/i11}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i11/test_i11devices.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i11/test_mythen.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i15 → dls_dodal-1.69.0/tests/devices/i13_1}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i13_1/test_merlin.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i17 → dls_dodal-1.69.0/tests/devices/i15}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i18 → dls_dodal-1.69.0/tests/devices/i17}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i19 → dls_dodal-1.69.0/tests/devices/i18}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i19/access_controlled → dls_dodal-1.69.0/tests/devices/i19}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i22 → dls_dodal-1.69.0/tests/devices/i19/access_controlled}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_attenuator_motor_squad.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_attenuator_position_demand.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/access_controlled/test_shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/test_backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/test_diffractometer.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/test_mapt.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i19/test_pin_col.py +0 -0
- {dls_dodal-1.68.0/tests/devices/i24 → dls_dodal-1.69.0/tests/devices/i22}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i22/test_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.68.0/tests/devices/insertion_device → dls_dodal-1.69.0/tests/devices/i24}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i24/test_pmac.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/i24/test_vgonio.py +0 -0
- {dls_dodal-1.68.0/tests/devices/mx_phase1 → dls_dodal-1.69.0/tests/devices/insertion_device}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_energy_motor_lookup.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/insertion_device/test_lookup_tables_models.py +0 -0
- {dls_dodal-1.68.0/tests/devices/oav → dls_dodal-1.69.0/tests/devices/mx_phase1}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/mx_phase1/test_beamstop.py +0 -0
- {dls_dodal-1.68.0/tests/devices/oav/image_recognition → dls_dodal-1.69.0/tests/devices/oav}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/conftest.py +0 -0
- {dls_dodal-1.68.0/tests/devices/p60 → dls_dodal-1.69.0/tests/devices/oav/image_recognition}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/oav_snapshot_test.png +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_data/test_OAVCentring.json +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.68.0/tests/devices/p99 → dls_dodal-1.69.0/tests/devices/p60}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/p60/test_lab_xray_source.py +0 -0
- {dls_dodal-1.68.0/tests/devices/temperature_controller → dls_dodal-1.69.0/tests/devices/p99}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.68.0/tests/devices/temperature_controller/lakeshore → dls_dodal-1.69.0/tests/devices/temperature_controller}/__init__.py +0 -0
- {dls_dodal-1.68.0/tests/devices/util → dls_dodal-1.69.0/tests/devices/temperature_controller/lakeshore}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/temperature_controller/lakeshore/test_lakeshore_io.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_aperture.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_aperture_scatterguard.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_attenuator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_backlight.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_baton.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_beam_converter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_common_dcm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_controllers.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/domain/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_daq_configuration/lookup/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_data/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_data/test_lookup_table.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_focusing_mirror.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_gridscan.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_hutch_shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_motors.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_odin.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_positioner.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_qbpm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_scintillator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_slits.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_smargon.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_synchrotron.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_tetramm.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_thawer.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_turbo_slit.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_undulator.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_utils.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_webcam.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_xspress3.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_zebra.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_zebra_shutter.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/test_zocalo_results.py +0 -0
- {dls_dodal-1.68.0/tests/fake_zocalo → dls_dodal-1.69.0/tests/devices/util}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/devices/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.68.0/tests/plan_stubs → dls_dodal-1.69.0/tests/fake_zocalo}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.68.0/tests/plans → dls_dodal-1.69.0/tests/plan_stubs}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_data_session.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.68.0/tests/plans/test_preprocessors → dls_dodal-1.69.0/tests/plans}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_bimorph.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_configure_arm_trigger_and_disarm_detector.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_load_panda_yaml.py +0 -0
- {dls_dodal-1.68.0/tests/preprocessors → dls_dodal-1.69.0/tests/plans/test_preprocessors}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_save_panda.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.68.0/tests/testing → dls_dodal-1.69.0/tests/preprocessors}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_cli.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/test_display.configuration +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_data/test_oav_zoom_levels.xml +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_device_manager.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/test_log.py +0 -0
- {dls_dodal-1.68.0/tests/testing/fixtures → dls_dodal-1.69.0/tests/testing}/__init__.py +0 -0
- {dls_dodal-1.68.0 → dls_dodal-1.69.0}/tests/testing/fixtures/test_run_engine.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier
|
|
2
|
-
_commit:
|
|
2
|
+
_commit: 5.0.1
|
|
3
3
|
_src_path: https://github.com/DiamondLightSource/python-copier-template
|
|
4
4
|
author_email: dominic.oram@diamond.ac.uk
|
|
5
5
|
author_name: Dominic Oram
|
|
@@ -7,7 +7,7 @@ component_lifecycle: production
|
|
|
7
7
|
component_owner: group:data-acquisition
|
|
8
8
|
component_type: library
|
|
9
9
|
description: Ophyd devices and other utils that could be used across DLS beamlines
|
|
10
|
-
distribution_name: dls-dodal
|
|
10
|
+
distribution_name: dls-dodal # Can change to dodal https://github.com/DiamondLightSource/dodal/issues/681
|
|
11
11
|
docker: false
|
|
12
12
|
docs_type: sphinx
|
|
13
13
|
git_platform: github.com
|
|
@@ -15,5 +15,5 @@ github_org: DiamondLightSource
|
|
|
15
15
|
package_name: dodal
|
|
16
16
|
pypi: true
|
|
17
17
|
repo_name: dodal
|
|
18
|
-
strict_typing: false
|
|
18
|
+
strict_typing: false # Should move to strict typing in future
|
|
19
19
|
type_checker: pyright
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// For format details, see https://containers.dev/implementors/json_reference/
|
|
2
|
+
{
|
|
3
|
+
"name": "Python 3 Developer Container",
|
|
4
|
+
"build": {
|
|
5
|
+
"dockerfile": "../Dockerfile",
|
|
6
|
+
"target": "developer"
|
|
7
|
+
},
|
|
8
|
+
"remoteEnv": {
|
|
9
|
+
// Allow X11 apps to run inside the container
|
|
10
|
+
"DISPLAY": "${localEnv:DISPLAY}",
|
|
11
|
+
// Put things that allow it in the persistent cache
|
|
12
|
+
"PRE_COMMIT_HOME": "/cache/pre-commit",
|
|
13
|
+
"UV_CACHE_DIR": "/cache/uv",
|
|
14
|
+
"UV_PYTHON_CACHE_DIR": "/cache/uv-python",
|
|
15
|
+
// Make a venv that is specific for this workspace path as the cache is shared
|
|
16
|
+
"UV_PROJECT_ENVIRONMENT": "/cache/venv-for${localWorkspaceFolder}",
|
|
17
|
+
// Do the equivalent of "activate" the venv so we don't have to "uv run" everything
|
|
18
|
+
"VIRTUAL_ENV": "/cache/venv-for${localWorkspaceFolder}",
|
|
19
|
+
"PATH": "/cache/venv-for${localWorkspaceFolder}/bin:${containerEnv:PATH}"
|
|
20
|
+
},
|
|
21
|
+
"customizations": {
|
|
22
|
+
"vscode": {
|
|
23
|
+
// Set *default* container specific settings.json values on container create.
|
|
24
|
+
"settings": {
|
|
25
|
+
// Use the container's python by default
|
|
26
|
+
"python.defaultInterpreterPath": "/cache/venv-for${localWorkspaceFolder}/bin/python",
|
|
27
|
+
// Don't activate the venv as it is already in the PATH
|
|
28
|
+
"python.terminal.activateEnvInCurrentTerminal": false,
|
|
29
|
+
"python.terminal.activateEnvironment": false,
|
|
30
|
+
// Workaround to prevent garbled python REPL in the terminal
|
|
31
|
+
// https://github.com/microsoft/vscode-python/issues/25505
|
|
32
|
+
"python.terminal.shellIntegration.enabled": false
|
|
33
|
+
},
|
|
34
|
+
// Add the IDs of extensions you want installed when the container is created.
|
|
35
|
+
"extensions": [
|
|
36
|
+
"ms-python.python",
|
|
37
|
+
"github.vscode-github-actions",
|
|
38
|
+
"tamasfe.even-better-toml",
|
|
39
|
+
"redhat.vscode-yaml",
|
|
40
|
+
"ryanluker.vscode-coverage-gutters",
|
|
41
|
+
"charliermarsh.ruff",
|
|
42
|
+
"ms-azuretools.vscode-docker"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
// Create the config folder for the bash-config feature and uv cache
|
|
47
|
+
"initializeCommand": "mkdir -p ${localEnv:HOME}/.config/terminal-config",
|
|
48
|
+
"runArgs": [
|
|
49
|
+
// Allow the container to access the host X11 display and EPICS CA
|
|
50
|
+
"--net=host",
|
|
51
|
+
// Make sure SELinux does not disable with access to host filesystems like tmp
|
|
52
|
+
"--security-opt=label=disable"
|
|
53
|
+
],
|
|
54
|
+
"mounts": [
|
|
55
|
+
// Mount in the user terminal config folder so it can be edited
|
|
56
|
+
{
|
|
57
|
+
"source": "${localEnv:HOME}/.config/terminal-config",
|
|
58
|
+
"target": "/user-terminal-config",
|
|
59
|
+
"type": "bind"
|
|
60
|
+
},
|
|
61
|
+
// Keep a persistent cross container cache for uv, pre-commit, and the venvs
|
|
62
|
+
{
|
|
63
|
+
"source": "devcontainer-shared-cache",
|
|
64
|
+
"target": "/cache",
|
|
65
|
+
"type": "volume"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
// Mount the parent as /workspaces so we can pip install peers as editable
|
|
69
|
+
"workspaceMount": "source=${localWorkspaceFolder}/..,target=/workspaces,type=bind",
|
|
70
|
+
// After the container is created, recreate the venv then make pre-commit first run faster
|
|
71
|
+
"postCreateCommand": "uv venv --clear && uv sync && pre-commit install --install-hooks"
|
|
72
|
+
}
|
|
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
|
|
|
24
24
|
|
|
25
25
|
This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
|
|
26
26
|
|
|
27
|
-
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/
|
|
27
|
+
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.0.1/how-to.html).
|
|
@@ -12,10 +12,13 @@ jobs:
|
|
|
12
12
|
# Need this to get version number from last tag
|
|
13
13
|
fetch-depth: 0
|
|
14
14
|
|
|
15
|
+
- name: Install uv
|
|
16
|
+
uses: astral-sh/setup-uv@v7
|
|
17
|
+
|
|
15
18
|
- name: Build sdist and wheel
|
|
16
19
|
run: >
|
|
17
20
|
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) &&
|
|
18
|
-
|
|
21
|
+
uvx --from build pyproject-build
|
|
19
22
|
|
|
20
23
|
- name: Upload sdist and wheel as artifacts
|
|
21
24
|
uses: actions/upload-artifact@v5
|
|
@@ -24,12 +27,10 @@ jobs:
|
|
|
24
27
|
path: dist
|
|
25
28
|
|
|
26
29
|
- name: Check for packaging errors
|
|
27
|
-
run:
|
|
30
|
+
run: uvx twine check --strict dist/*
|
|
28
31
|
|
|
29
32
|
- name: Install produced wheel
|
|
30
|
-
|
|
31
|
-
with:
|
|
32
|
-
pip-install: dist/*.whl
|
|
33
|
+
run: python -m pip install dist/*.whl
|
|
33
34
|
|
|
34
35
|
- name: Test module --version works using the installed wheel
|
|
35
36
|
run: python -m dodal --version
|
|
@@ -20,11 +20,14 @@ jobs:
|
|
|
20
20
|
- name: Install system packages
|
|
21
21
|
run: sudo apt-get install graphviz
|
|
22
22
|
|
|
23
|
-
- name: Install
|
|
24
|
-
uses:
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v7
|
|
25
|
+
|
|
26
|
+
# - name: Install requirements
|
|
27
|
+
# run: uv sync --group dev
|
|
25
28
|
|
|
26
29
|
- name: Build docs
|
|
27
|
-
run: tox -e docs
|
|
30
|
+
run: uv run --locked tox -e docs
|
|
28
31
|
|
|
29
32
|
- name: Remove environment.pickle
|
|
30
33
|
run: rm build/html/.doctrees/environment.pickle
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
on:
|
|
2
|
+
workflow_call:
|
|
3
|
+
inputs:
|
|
4
|
+
python-version:
|
|
5
|
+
type: string
|
|
6
|
+
description: The version of python to install, default is from .python-version file
|
|
7
|
+
default: ""
|
|
8
|
+
runs-on:
|
|
9
|
+
type: string
|
|
10
|
+
description: The runner to run this job on
|
|
11
|
+
required: true
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
# https://github.com/pytest-dev/pytest/issues/2042
|
|
15
|
+
PY_IGNORE_IMPORTMISMATCH: "1"
|
|
16
|
+
UV_PYTHON: ${{ inputs.python-version }}
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
run:
|
|
20
|
+
runs-on: ${{ inputs.runs-on }}
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout
|
|
24
|
+
uses: actions/checkout@v5
|
|
25
|
+
with:
|
|
26
|
+
# Need this to get version number from last tag
|
|
27
|
+
fetch-depth: 0
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v7
|
|
31
|
+
|
|
32
|
+
- name: Install latest versions of python packages
|
|
33
|
+
run: uv sync --python ${{ inputs.python-version }} --group dev
|
|
34
|
+
|
|
35
|
+
- name: Run tests
|
|
36
|
+
run: uv run --locked tox -e tests
|
|
37
|
+
|
|
38
|
+
- name: Checkout simulated devices
|
|
39
|
+
uses: actions/checkout@v5
|
|
40
|
+
with:
|
|
41
|
+
repository: epics-containers/example-services
|
|
42
|
+
path: example-services
|
|
43
|
+
|
|
44
|
+
- name: Run docker compose
|
|
45
|
+
uses: hoverkraft-tech/compose-action@v2.4.1
|
|
46
|
+
with:
|
|
47
|
+
compose-file: "./example-services/compose.yaml"
|
|
48
|
+
services: |
|
|
49
|
+
bl01t-di-cam-01
|
|
50
|
+
bl01t-mo-sim-01
|
|
51
|
+
ca-gateway
|
|
52
|
+
|
|
53
|
+
- name: Run system tests
|
|
54
|
+
run: uv run --locked tox -e system-tests
|
|
55
|
+
|
|
56
|
+
- name: Upload coverage to Codecov
|
|
57
|
+
uses: codecov/codecov-action@v5
|
|
58
|
+
with:
|
|
59
|
+
name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
|
|
60
|
+
files: ./cov.xml
|
|
61
|
+
env:
|
|
62
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -14,14 +14,12 @@ jobs:
|
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout
|
|
16
16
|
uses: actions/checkout@v5
|
|
17
|
-
with:
|
|
18
|
-
fetch-depth: 0
|
|
19
17
|
|
|
20
|
-
- name: Install
|
|
21
|
-
uses:
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v7
|
|
22
20
|
|
|
23
21
|
- name: Run import linter
|
|
24
|
-
run: lint-imports
|
|
22
|
+
run: uv run --locked lint-imports
|
|
25
23
|
|
|
26
24
|
- name: Run tox
|
|
27
|
-
run: tox -e ${{ inputs.tox }}
|
|
25
|
+
run: uv run --locked tox -e ${{ inputs.tox }}
|
|
@@ -20,21 +20,16 @@ jobs:
|
|
|
20
20
|
matrix:
|
|
21
21
|
runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
|
|
22
22
|
python-version: ["3.11", "3.12", "3.13"]
|
|
23
|
-
include:
|
|
24
|
-
# Include one that runs in the dev environment
|
|
25
|
-
- runs-on: "ubuntu-latest"
|
|
26
|
-
python-version: "dev"
|
|
27
23
|
fail-fast: false
|
|
28
24
|
uses: ./.github/workflows/_test.yml
|
|
29
25
|
with:
|
|
30
26
|
runs-on: ${{ matrix.runs-on }}
|
|
31
27
|
python-version: ${{ matrix.python-version }}
|
|
32
|
-
secrets:
|
|
33
|
-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
34
28
|
|
|
35
29
|
docs:
|
|
36
30
|
uses: ./.github/workflows/_docs.yml
|
|
37
|
-
|
|
31
|
+
permissions:
|
|
32
|
+
contents: write
|
|
38
33
|
|
|
39
34
|
dist:
|
|
40
35
|
uses: ./.github/workflows/_dist.yml
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This allow-list is limited to YAML/YML files to cut down SealedSecrets false positives.
|
|
2
|
+
# All gitleaks default rules still apply everywhere (useDefault = true).
|
|
3
|
+
# To broaden this allow-list to all files, comment out the 'paths' line below.
|
|
4
|
+
|
|
5
|
+
[extend]
|
|
6
|
+
useDefault = true
|
|
7
|
+
|
|
8
|
+
[[rules]]
|
|
9
|
+
id = "generic-api-key"
|
|
10
|
+
|
|
11
|
+
# Pattern-only allowlist for long Ag… tokens in YAML
|
|
12
|
+
[[rules.allowlists]]
|
|
13
|
+
condition = "AND"
|
|
14
|
+
regexes = [
|
|
15
|
+
# Boundary-safe Ag… token without lookarounds (RE2-safe)
|
|
16
|
+
'''(?:^|[^A-Za-z0-9+/=])(Ag[A-Za-z0-9+/]{500,}={0,2})(?:[^A-Za-z0-9+/=]|$)'''
|
|
17
|
+
]
|
|
18
|
+
# Limit to YAML only for now. Comment this out if you want it to apply everywhere.
|
|
19
|
+
paths = ['''(?i).*\.ya?ml$''']
|
|
@@ -3,6 +3,7 @@ repos:
|
|
|
3
3
|
rev: v5.0.0
|
|
4
4
|
hooks:
|
|
5
5
|
- id: check-added-large-files
|
|
6
|
+
exclude: ^uv.lock
|
|
6
7
|
- id: check-yaml
|
|
7
8
|
- id: check-merge-conflict
|
|
8
9
|
- id: end-of-file-fixer
|
|
@@ -31,6 +32,13 @@ repos:
|
|
|
31
32
|
types: [python]
|
|
32
33
|
require_serial: false
|
|
33
34
|
|
|
35
|
+
- id: uv-sync
|
|
36
|
+
name: update uv.lock and venv
|
|
37
|
+
pass_filenames: false
|
|
38
|
+
language: system
|
|
39
|
+
entry: uv sync
|
|
40
|
+
files: ^(uv\.lock|pyproject\.toml)$
|
|
41
|
+
|
|
34
42
|
- repo: https://github.com/gitleaks/gitleaks
|
|
35
43
|
rev: v8.28.0
|
|
36
44
|
hooks:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# The devcontainer should use the developer target and run as root with podman
|
|
2
|
+
# or docker with user namespaces.
|
|
3
|
+
FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:noble AS developer
|
|
4
|
+
|
|
5
|
+
# Add any system dependencies for the developer/build environment here
|
|
6
|
+
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
7
|
+
graphviz \
|
|
8
|
+
&& apt-get dist-clean
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.69.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
|
|
@@ -232,36 +232,6 @@ Requires-Dist: scanspec>=0.7.3
|
|
|
232
232
|
Requires-Dist: pyzmq==26.3.0
|
|
233
233
|
Requires-Dist: deepdiff
|
|
234
234
|
Requires-Dist: daq-config-server>=v1.0.0
|
|
235
|
-
Provides-Extra: dev
|
|
236
|
-
Requires-Dist: black; extra == "dev"
|
|
237
|
-
Requires-Dist: diff-cover; extra == "dev"
|
|
238
|
-
Requires-Dist: import-linter; extra == "dev"
|
|
239
|
-
Requires-Dist: ispyb; extra == "dev"
|
|
240
|
-
Requires-Dist: mypy; extra == "dev"
|
|
241
|
-
Requires-Dist: myst-parser; extra == "dev"
|
|
242
|
-
Requires-Dist: ophyd_async[sim]>=v0.14.0; extra == "dev"
|
|
243
|
-
Requires-Dist: pipdeptree; extra == "dev"
|
|
244
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
245
|
-
Requires-Dist: psutil; extra == "dev"
|
|
246
|
-
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
247
|
-
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
248
|
-
Requires-Dist: pytest; extra == "dev"
|
|
249
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
250
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
251
|
-
Requires-Dist: pytest-json-report; extra == "dev"
|
|
252
|
-
Requires-Dist: pytest-random-order; extra == "dev"
|
|
253
|
-
Requires-Dist: ruff; extra == "dev"
|
|
254
|
-
Requires-Dist: sphinx<7.4.6; extra == "dev"
|
|
255
|
-
Requires-Dist: sphinx-autobuild; extra == "dev"
|
|
256
|
-
Requires-Dist: sphinx-copybutton; extra == "dev"
|
|
257
|
-
Requires-Dist: sphinxcontrib-mermaid; extra == "dev"
|
|
258
|
-
Requires-Dist: sphinx-design; extra == "dev"
|
|
259
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
|
|
260
|
-
Requires-Dist: tox-direct; extra == "dev"
|
|
261
|
-
Requires-Dist: types-requests; extra == "dev"
|
|
262
|
-
Requires-Dist: types-mock; extra == "dev"
|
|
263
|
-
Requires-Dist: types-PyYAML; extra == "dev"
|
|
264
|
-
Requires-Dist: types-aiofiles; extra == "dev"
|
|
265
235
|
Dynamic: license-file
|
|
266
236
|
|
|
267
237
|
[](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
# How to check code coverage
|
|
3
3
|
|
|
4
|
-
Code coverage is reported to the command line and to a `cov.xml` file by the command `tox -e tests`. The file is uploaded to the Codecov service in CI.
|
|
4
|
+
Code coverage is reported to the command line and to a `cov.xml` file by the command `uv run tox -e tests`. The file is uploaded to the Codecov service in CI.
|
|
5
5
|
|
|
6
6
|
If you are using VSCode IDE, you can also check code coverage by right-clicking on the test icon and selecting `Run with coverage`. This will re-run the test and highlight line numbers in your file:
|
|
7
7
|
- Green = covered by tests
|
|
@@ -19,17 +19,16 @@ in a container under [VSCode](https://code.visualstudio.com/)
|
|
|
19
19
|
If on a DLS machine make sure you have python >3.11 running by doing `module load python/3.11`
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
pip install -e '.[dev]'
|
|
22
|
+
module load uv
|
|
23
|
+
uv sync --group dev
|
|
24
|
+
source .venv/bin/activate
|
|
26
25
|
```
|
|
27
26
|
|
|
28
27
|
## See what was installed
|
|
29
28
|
|
|
30
29
|
To see a graph of the python package dependency tree type:
|
|
31
30
|
|
|
32
|
-
$
|
|
31
|
+
$ uv tree
|
|
33
32
|
|
|
34
33
|
:::
|
|
35
34
|
|
|
@@ -49,7 +48,7 @@ code .
|
|
|
49
48
|
Now you have a development environment you can run the tests in a terminal:
|
|
50
49
|
|
|
51
50
|
```
|
|
52
|
-
tox -p
|
|
51
|
+
uv run tox -p
|
|
53
52
|
```
|
|
54
53
|
|
|
55
54
|
This will run in parallel the following checks:
|
|
@@ -7,7 +7,7 @@ Code linting is handled by [ruff](https://docs.astral.sh/ruff) run under [pre-co
|
|
|
7
7
|
You can run the above checks on all files with this command:
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
$ tox -e pre-commit
|
|
10
|
+
$ uv run tox -e pre-commit
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Or you can install a pre-commit hook that will run each time you do a `git commit` on just the files that have changed:
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Lock requirements
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
Since the move to `uv`, this project natively supports a lockfile. This is a set of "known good" dependencies that the tests are run against, and will be used to create a container if one is built.
|
|
6
|
+
|
|
7
|
+
## Specifying dependencies
|
|
8
|
+
|
|
9
|
+
The source of dependencies is the project's `pyproject.toml`. They can come from:
|
|
10
|
+
- Project dependencies (from `[project]` `dependencies =`)
|
|
11
|
+
- Dev dependencies (from `[dependency-groups]` `dev =`)
|
|
12
|
+
- Transitive dependencies (child dependencies of the above)
|
|
13
|
+
|
|
14
|
+
Dependencies are loosely specified in `pyproject.toml`, like `sphinx-autobuild` or `pydata-sphinx-theme>=0.12`. They should state a minimum version if you are using features that are added in a specific version. There should be no upper bound by default, only insert one if an upstream release of a dependency breaks your code, and you don't have time to fix it immediately.
|
|
15
|
+
|
|
16
|
+
## Updating the lockfile
|
|
17
|
+
|
|
18
|
+
When you have updated `pyproject.toml` then run:
|
|
19
|
+
```
|
|
20
|
+
$ uv sync
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This will ensure that any new dependencies you add will be placed in the lockfile, and your venv updated to match. It will *not* update any existing dependencies, unless `pyproject.toml` requires a later version.
|
|
24
|
+
|
|
25
|
+
This command will be run by [pre-commit](./lint) during a `git commit` and by CI.
|
|
26
|
+
|
|
27
|
+
To update all dependencies to their latest versions run:
|
|
28
|
+
```
|
|
29
|
+
uv sync --upgrade
|
|
30
|
+
```
|
|
31
|
+
This command will be run by [renovate](./renovate) once a week in CI.
|
|
32
|
+
|
|
33
|
+
```{seealso}
|
|
34
|
+
[The uv docs on locking and syncing](https://docs.astral.sh/uv/concepts/projects/sync)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Modifying the venv to add other projects
|
|
38
|
+
|
|
39
|
+
Peer projects (those checked out next to the project) are visible in the devcontainer, and can be added into the venv by running `uv pip install -e ../other_project`. This will allow live changes made in this other project to be immediately reflected in the venv.
|
|
40
|
+
|
|
41
|
+
```{note}
|
|
42
|
+
This venv is activated by default, and global to the container, so if you `uv sync` from `other_project` then it will **replace** the contents of the venv with `other_project`'s dependencies.
|
|
43
|
+
```
|
|
@@ -28,7 +28,7 @@ If you find that your tests are being skipped or not recognised by `pytest`, che
|
|
|
28
28
|
When you have some fully working tests then you can run it with coverage:
|
|
29
29
|
|
|
30
30
|
```
|
|
31
|
-
$ tox -e tests
|
|
31
|
+
$ uv run tox -e tests
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
It will also report coverage to the command line and to `cov.xml`.
|
|
@@ -54,8 +54,11 @@ cd example-services
|
|
|
54
54
|
podman compose up -d bl01t-di-cam-01 bl01t-mo-sim-01 ca-gateway
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
+
**Note:** Do not run the system tests from the same shell as the above `environment.sh` script interferes with the
|
|
58
|
+
ability to run the tests due to also setting EPICS_ environment variables.
|
|
59
|
+
|
|
57
60
|
Once this is done, then the system tests can be run:
|
|
58
61
|
|
|
59
62
|
```commandline
|
|
60
|
-
tox -e system-
|
|
63
|
+
uv run tox -e system-tests
|
|
61
64
|
```
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
Static type analysis is done with [pyright](https://microsoft.github.io/pyright) or [mypy](https://www.mypy-lang.org) dependent on the settings in `pyproject.toml`. It checks type definition in source files without running them, and highlights potential issues where types do not match. You can run it with:
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
$ tox -e type-checking
|
|
6
|
+
$ uv run tox -e type-checking
|
|
7
7
|
```
|
|
@@ -38,7 +38,7 @@ license.file = "LICENSE"
|
|
|
38
38
|
readme = "README.md"
|
|
39
39
|
requires-python = ">=3.11"
|
|
40
40
|
|
|
41
|
-
[
|
|
41
|
+
[dependency-groups]
|
|
42
42
|
dev = [
|
|
43
43
|
"black",
|
|
44
44
|
"diff-cover",
|
|
@@ -49,7 +49,6 @@ dev = [
|
|
|
49
49
|
# "copier",
|
|
50
50
|
"myst-parser",
|
|
51
51
|
"ophyd_async[sim]>=v0.14.0",
|
|
52
|
-
"pipdeptree",
|
|
53
52
|
"pre-commit",
|
|
54
53
|
"psutil",
|
|
55
54
|
"pydata-sphinx-theme>=0.12",
|
|
@@ -59,6 +58,7 @@ dev = [
|
|
|
59
58
|
"pytest-asyncio",
|
|
60
59
|
"pytest-cov",
|
|
61
60
|
"pytest-json-report",
|
|
61
|
+
"pytest-timeout",
|
|
62
62
|
"pytest-random-order",
|
|
63
63
|
"ruff",
|
|
64
64
|
"sphinx<7.4.6", # pinned due to https://github.com/sphinx-doc/sphinx/issues/12660
|
|
@@ -67,7 +67,7 @@ dev = [
|
|
|
67
67
|
"sphinxcontrib-mermaid",
|
|
68
68
|
"sphinx-design",
|
|
69
69
|
"sphinx-autodoc-typehints",
|
|
70
|
-
"tox-
|
|
70
|
+
"tox-uv",
|
|
71
71
|
"types-requests",
|
|
72
72
|
"types-mock",
|
|
73
73
|
"types-PyYAML",
|
|
@@ -113,6 +113,7 @@ reportMissingImports = false # Ignore missing stubs in imported modules
|
|
|
113
113
|
[tool.pytest.ini_options]
|
|
114
114
|
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
|
|
115
115
|
asyncio_mode = "auto"
|
|
116
|
+
timeout = 1
|
|
116
117
|
markers = [
|
|
117
118
|
"requires: marks tests as requiring other infrastructure",
|
|
118
119
|
"skip_in_pycharm: marks test as not working in pycharm testrunner",
|
|
@@ -140,37 +141,107 @@ exclude_also = [
|
|
|
140
141
|
omit = ["*/dodal/testing/fixtures/*"]
|
|
141
142
|
|
|
142
143
|
[tool.coverage.run]
|
|
144
|
+
patch = ["subprocess"]
|
|
143
145
|
data_file = "/tmp/dodal.coverage"
|
|
144
146
|
|
|
145
147
|
[tool.coverage.paths]
|
|
146
148
|
# Tests are run from installed location, map back to the src directory
|
|
147
149
|
source = ["src", "**/site-packages/"]
|
|
148
150
|
|
|
149
|
-
# tox must currently be configured via an embedded ini string
|
|
150
|
-
# See: https://github.com/tox-dev/tox/issues/999
|
|
151
151
|
[tool.tox]
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
[
|
|
157
|
-
#
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
152
|
+
skipsdist = true
|
|
153
|
+
# envs to runs automatically with tox -p
|
|
154
|
+
env_list = ["pre-commit", "type-checking", "tests", "docs"]
|
|
155
|
+
|
|
156
|
+
[tool.tox.env_run_base]
|
|
157
|
+
# Pass all environment variables to the test environments
|
|
158
|
+
passenv = ["*"]
|
|
159
|
+
|
|
160
|
+
[tool.tox.env.pre-commit]
|
|
161
|
+
description = "Run pre-commit on all files"
|
|
162
|
+
commands = [
|
|
163
|
+
[
|
|
164
|
+
"pre-commit",
|
|
165
|
+
"run",
|
|
166
|
+
"--all-files",
|
|
167
|
+
"--show-diff-on-failure",
|
|
168
|
+
{ replace = "posargs", default = [
|
|
169
|
+
], extend = true },
|
|
170
|
+
],
|
|
171
|
+
]
|
|
172
|
+
|
|
173
|
+
[tool.tox.env.type-checking]
|
|
174
|
+
description = "Run pyright"
|
|
175
|
+
commands = [
|
|
176
|
+
[
|
|
177
|
+
"pyright",
|
|
178
|
+
"--pythonpath",
|
|
179
|
+
"{env:VIRTUAL_ENV}/bin/python",
|
|
180
|
+
"src",
|
|
181
|
+
"tests",
|
|
182
|
+
{ replace = "posargs", default = [
|
|
183
|
+
], extend = true },
|
|
184
|
+
],
|
|
185
|
+
]
|
|
186
|
+
|
|
187
|
+
[tool.tox.env.tests]
|
|
188
|
+
description = "Run tests with coverage"
|
|
189
|
+
commands = [
|
|
190
|
+
[
|
|
191
|
+
"pytest",
|
|
192
|
+
"--cov=dodal",
|
|
193
|
+
"--cov-report",
|
|
194
|
+
"term",
|
|
195
|
+
"--cov-report",
|
|
196
|
+
"xml:cov.xml",
|
|
197
|
+
"tests",
|
|
198
|
+
{ replace = "posargs", default = [
|
|
199
|
+
], extend = true },
|
|
200
|
+
],
|
|
201
|
+
]
|
|
202
|
+
|
|
203
|
+
[tool.tox.env.system-tests]
|
|
204
|
+
description = "Run system tests with coverage"
|
|
205
|
+
commands = [
|
|
206
|
+
[
|
|
207
|
+
"pytest",
|
|
208
|
+
"-m", "not requires(instrument=\"i04\")",
|
|
209
|
+
"--cov-report", "xml:system_cov.xml",
|
|
210
|
+
"--timeout=10",
|
|
211
|
+
"system_tests",
|
|
212
|
+
{ replace = "posargs", default = [], extend = true },
|
|
213
|
+
],
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
[tool.tox.env.docs]
|
|
217
|
+
description = "Run docs build with clean environment"
|
|
218
|
+
commands = [
|
|
219
|
+
[
|
|
220
|
+
"sphinx-build",
|
|
221
|
+
"--fresh-env",
|
|
222
|
+
"--show-traceback",
|
|
223
|
+
"--keep-going",
|
|
224
|
+
"docs",
|
|
225
|
+
"build/html",
|
|
226
|
+
{ replace = "posargs", default = [
|
|
227
|
+
], extend = true },
|
|
228
|
+
],
|
|
229
|
+
]
|
|
230
|
+
|
|
231
|
+
[tool.tox.env.docs-autobuild]
|
|
232
|
+
description = "Run docs with autobuild on change"
|
|
233
|
+
commands = [
|
|
234
|
+
[
|
|
235
|
+
"sphinx-autobuild",
|
|
236
|
+
"--show-traceback",
|
|
237
|
+
"--watch",
|
|
238
|
+
"README.md",
|
|
239
|
+
"docs",
|
|
240
|
+
"build/html",
|
|
241
|
+
{ replace = "posargs", default = [
|
|
242
|
+
], extend = true },
|
|
243
|
+
],
|
|
244
|
+
]
|
|
174
245
|
|
|
175
246
|
[tool.ruff]
|
|
176
247
|
src = ["src", "tests"]
|