dls-dodal 1.32.0__tar.gz → 1.34.1__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.32.0 → dls_dodal-1.34.1}/.copier-answers.yml +3 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/CONTRIBUTING.md +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/pages/make_switcher.py +8 -6
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_pypi.yml +2 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_release.yml +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/ci.yml +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.gitignore +1 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/Dockerfile +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/PKG-INFO +3 -3
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/README.md +1 -1
- dls_dodal-1.34.1/docs/_api.rst +16 -0
- dls_dodal-1.34.1/docs/_templates/custom-module-template.rst +37 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/conf.py +13 -5
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/create-beamline.rst +1 -1
- dls_dodal-1.34.1/docs/how-to/write-tests.md +8 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/reference/device-standards.rst +78 -5
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/reference/standards.rst +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/reference.md +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/pull_request_template.md +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/pyproject.toml +8 -6
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/PKG-INFO +3 -3
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/SOURCES.txt +42 -19
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/requires.txt +1 -1
- dls_dodal-1.34.1/src/dodal/__init__.py +11 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/_version.py +2 -2
- dls_dodal-1.34.1/src/dodal/beamline_specific_utils/i03.py +17 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/__init__.py +2 -3
- dls_dodal-1.34.1/src/dodal/beamlines/b01_1.py +77 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i03.py +41 -9
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i04.py +26 -4
- dls_dodal-1.34.1/src/dodal/beamlines/i10.py +257 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i22.py +1 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i24.py +7 -7
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/p38.py +1 -2
- dls_dodal-1.34.1/src/dodal/common/signal_utils.py +53 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/types.py +2 -7
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/aperturescatterguard.py +12 -15
- dls_dodal-1.34.1/src/dodal/devices/apple2_undulator.py +602 -0
- dls_dodal-1.34.1/src/dodal/devices/areadetector/plugins/CAM.py +31 -0
- dls_dodal-1.34.1/src/dodal/devices/areadetector/plugins/MJPG.py +83 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/backlight.py +7 -6
- dls_dodal-1.34.1/src/dodal/devices/diamond_filter.py +47 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/eiger.py +6 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/eiger_odin.py +48 -39
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/focusing_mirror.py +14 -8
- dls_dodal-1.34.1/src/dodal/devices/i10/i10_apple2.py +398 -0
- dls_dodal-1.34.1/src/dodal/devices/i10/i10_setting_data.py +7 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i22/dcm.py +7 -8
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/dual_backlight.py +5 -5
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/oav_calculations.py +22 -0
- dls_dodal-1.34.1/src/dodal/devices/oav/oav_detector.py +127 -0
- dls_dodal-1.34.1/src/dodal/devices/oav/oav_parameters.py +160 -0
- dls_dodal-1.34.1/src/dodal/devices/oav/oav_to_redis_forwarder.py +170 -0
- {dls_dodal-1.32.0/src/dodal/devices/oav → dls_dodal-1.34.1/src/dodal/devices/oav/snapshots}/grid_overlay.py +0 -43
- dls_dodal-1.34.1/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +64 -0
- dls_dodal-1.34.1/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +57 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/utils.py +26 -25
- dls_dodal-1.34.1/src/dodal/devices/pgm.py +41 -0
- dls_dodal-1.34.1/src/dodal/devices/qbpm.py +18 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/robot.py +2 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/smargon.py +2 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/tetramm.py +2 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/undulator.py +2 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/adjuster_plans.py +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/lookup_tables.py +4 -5
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/zebra.py +5 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/zocalo/zocalo_results.py +13 -10
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/plans/data_session_metadata.py +2 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/plans/motor_util_plans.py +11 -9
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/utils.py +7 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_aperturescatterguard_system.py +2 -2
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_eiger_system.py +1 -1
- dls_dodal-1.34.1/system_tests/test_oav_system.py +55 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_oav_to_redis_system.py +11 -6
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/beamlines/unit_tests/test_i24.py +2 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/beamlines/unit_tests/test_mapping.py +2 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/beamlines/test_device_instantiation.py +3 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/test_coordination.py +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/conftest.py +38 -15
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +53 -0
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +29 -0
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- dls_dodal-1.34.1/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- dls_dodal-1.34.1/tests/devices/i10/test_i10Apple2.py +485 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/i22/test_dcm.py +2 -2
- dls_dodal-1.34.1/tests/devices/test_diamond_filter.py +57 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/i24/test_pmac.py +1 -1
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/conftest.py +25 -0
- {dls_dodal-1.32.0/tests/devices/unit_tests → dls_dodal-1.34.1/tests/devices/unit_tests/oav}/test_grid_overlay.py +3 -3
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/test_oav.py +129 -0
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/test_oav_parameters.py +78 -0
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +202 -0
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/test_oav_utils.py +110 -0
- dls_dodal-1.34.1/tests/devices/unit_tests/oav/test_snapshots.py +188 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_aperture_scatterguard.py +45 -20
- dls_dodal-1.34.1/tests/devices/unit_tests/test_apple2_undulator.py +359 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_backlight.py +4 -4
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_eiger.py +24 -18
- dls_dodal-1.34.1/tests/devices/unit_tests/test_focusing_mirror.py +259 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_odin.py +87 -18
- dls_dodal-1.34.1/tests/devices/unit_tests/test_qbpm.py +29 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_tetramm.py +26 -14
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_zebra.py +3 -3
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_zocalo_results.py +49 -53
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +3 -2
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/util/test_lookup_tables.py +4 -4
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/util/test_save_panda.py +1 -1
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/preprocessors/test_filesystem_metadata.py +2 -1
- dls_dodal-1.32.0/docs/reference/api.md +0 -26
- dls_dodal-1.32.0/src/dodal/__init__.py +0 -3
- dls_dodal-1.32.0/src/dodal/beamline_specific_utils/i03.py +0 -13
- dls_dodal-1.32.0/src/dodal/beamlines/i04_1.py +0 -140
- dls_dodal-1.32.0/src/dodal/devices/areadetector/plugins/MJPG.py +0 -138
- dls_dodal-1.32.0/src/dodal/devices/oav/oav_detector.py +0 -106
- dls_dodal-1.32.0/src/dodal/devices/oav/oav_errors.py +0 -35
- dls_dodal-1.32.0/src/dodal/devices/oav/oav_parameters.py +0 -214
- dls_dodal-1.32.0/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -129
- dls_dodal-1.32.0/tests/devices/system_tests/test_oav_system.py +0 -46
- dls_dodal-1.32.0/tests/devices/unit_tests/areadetector/plugins/test_MJPG.py +0 -45
- dls_dodal-1.32.0/tests/devices/unit_tests/oav/test_oav.py +0 -162
- dls_dodal-1.32.0/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -48
- dls_dodal-1.32.0/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -140
- dls_dodal-1.32.0/tests/devices/unit_tests/test_focusing_mirror.py +0 -270
- dls_dodal-1.32.0/tests/devices/unit_tests/test_oav.py +0 -284
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/dependabot.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/pages/index.html +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.vscode/extensions.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.vscode/launch.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.vscode/settings.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/.vscode/tasks.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/LICENSE +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/catalog-info.yaml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/explanations.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/genindex.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/how-to.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/index.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/docs/tutorials.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/setup.cfg +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/adsim.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/cli.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/areadetector/adaravis.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/areadetector/adsim.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/areadetector/adutils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/attenuator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/dcm.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/i24_vgonio.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/undulator_dcm.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/save_panda.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/log.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/src/dodal/plans/check_topup.py +0 -0
- {dls_dodal-1.32.0/tests → dls_dodal-1.34.1/system_tests}/__init__.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.32.0/tests/beamlines → dls_dodal-1.34.1/tests}/__init__.py +0 -0
- {dls_dodal-1.32.0/tests/beamlines/unit_tests → dls_dodal-1.34.1/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.32.0/tests/common → dls_dodal-1.34.1/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.32.0/tests/common/beamlines → dls_dodal-1.34.1/tests/common}/__init__.py +0 -0
- {dls_dodal-1.32.0/tests/devices → dls_dodal-1.34.1/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.32.0/tests/devices/i04 → dls_dodal-1.34.1/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.32.0/tests/devices/system_tests → dls_dodal-1.34.1/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_gridscan.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_shutter.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_undulator_dcm.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/plans/test_motor_util_plans.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/plans/test_topup_plan.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_cli.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/test_utils.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.32.0 → dls_dodal-1.34.1}/tests/unit_tests/test_log.py +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier
|
|
2
|
-
_commit: 2.
|
|
2
|
+
_commit: 2.5.0
|
|
3
3
|
_src_path: gh:DiamondLightSource/python-copier-template
|
|
4
4
|
author_email: dominic.oram@diamond.ac.uk
|
|
5
5
|
author_name: Dominic Oram
|
|
6
|
+
component_lifecycle: production
|
|
6
7
|
component_owner: group:data-acquisition
|
|
8
|
+
component_type: library
|
|
7
9
|
description: Ophyd devices and other utils that could be used across DLS beamlines
|
|
8
10
|
distribution_name: dls-dodal
|
|
9
11
|
docker: false
|
|
@@ -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/2.
|
|
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/2.5.0/how-to.html).
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Make switcher.json to allow docs to switch between different versions."""
|
|
2
|
+
|
|
1
3
|
import json
|
|
2
4
|
import logging
|
|
3
5
|
from argparse import ArgumentParser
|
|
@@ -6,6 +8,7 @@ from subprocess import CalledProcessError, check_output
|
|
|
6
8
|
|
|
7
9
|
|
|
8
10
|
def report_output(stdout: bytes, label: str) -> list[str]:
|
|
11
|
+
"""Print and return something received frm stdout."""
|
|
9
12
|
ret = stdout.decode().strip().split("\n")
|
|
10
13
|
print(f"{label}: {ret}")
|
|
11
14
|
return ret
|
|
@@ -52,14 +55,12 @@ def get_versions(ref: str, add: str | None) -> list[str]:
|
|
|
52
55
|
return versions
|
|
53
56
|
|
|
54
57
|
|
|
55
|
-
def write_json(path: Path, repository: str, versions: str):
|
|
58
|
+
def write_json(path: Path, repository: str, versions: list[str]):
|
|
59
|
+
"""Write the JSON switcher to path."""
|
|
56
60
|
org, repo_name = repository.split("/")
|
|
57
|
-
pages_url = f"https://{org}.github.io"
|
|
58
|
-
if repo_name != f"{org}.github.io":
|
|
59
|
-
# Only add the repo name if it isn't the source for the org pages site
|
|
60
|
-
pages_url += f"/{repo_name}"
|
|
61
61
|
struct = [
|
|
62
|
-
{"version": version, "url": f"{
|
|
62
|
+
{"version": version, "url": f"https://{org}.github.io/{repo_name}/{version}/"}
|
|
63
|
+
for version in versions
|
|
63
64
|
]
|
|
64
65
|
text = json.dumps(struct, indent=2)
|
|
65
66
|
print(f"JSON switcher:\n{text}")
|
|
@@ -67,6 +68,7 @@ def write_json(path: Path, repository: str, versions: str):
|
|
|
67
68
|
|
|
68
69
|
|
|
69
70
|
def main(args=None):
|
|
71
|
+
"""Parse args and write switcher."""
|
|
70
72
|
parser = ArgumentParser(
|
|
71
73
|
description="Make a versions.json file from gh-pages directories"
|
|
72
74
|
)
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
- name: Create GitHub Release
|
|
24
24
|
# We pin to the SHA, not the tag, for security reasons.
|
|
25
25
|
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
|
|
26
|
-
uses: softprops/action-gh-release@
|
|
26
|
+
uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9
|
|
27
27
|
with:
|
|
28
28
|
prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
|
|
29
29
|
files: "*"
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
strategy:
|
|
22
22
|
matrix:
|
|
23
23
|
runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
|
|
24
|
-
python-version: ["3.10", "3.11"
|
|
24
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
25
25
|
include:
|
|
26
26
|
# Include one that runs in the dev environment
|
|
27
27
|
- runs-on: "ubuntu-latest"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# The devcontainer should use the developer target and run as root with podman
|
|
2
2
|
# or docker with user namespaces.
|
|
3
3
|
ARG PYTHON_VERSION=3.11
|
|
4
|
-
FROM python:${PYTHON_VERSION}
|
|
4
|
+
FROM python:${PYTHON_VERSION} AS developer
|
|
5
5
|
|
|
6
6
|
# Add any system dependencies for the developer/build environment here
|
|
7
7
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.34.1
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async<0.
|
|
219
|
+
Requires-Dist: ophyd-async<0.8,>=0.7.0a1
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -263,7 +263,7 @@ Requires-Dist: types-aiofiles; extra == "dev"
|
|
|
263
263
|
[](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
|
|
264
264
|
[](https://codecov.io/gh/DiamondLightSource/dodal)
|
|
265
265
|
[](https://pypi.org/project/dls-dodal)
|
|
266
|
-
[](https://
|
|
266
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
267
267
|
|
|
268
268
|
# dodal
|
|
269
269
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
|
|
2
2
|
[](https://codecov.io/gh/DiamondLightSource/dodal)
|
|
3
3
|
[](https://pypi.org/project/dls-dodal)
|
|
4
|
-
[](https://
|
|
4
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
5
5
|
|
|
6
6
|
# dodal
|
|
7
7
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
:orphan:
|
|
2
|
+
|
|
3
|
+
..
|
|
4
|
+
This page is not included in the TOC tree, but must exist so that the
|
|
5
|
+
autosummary pages are generated for dodal and all its
|
|
6
|
+
subpackages
|
|
7
|
+
|
|
8
|
+
API
|
|
9
|
+
===
|
|
10
|
+
|
|
11
|
+
.. autosummary::
|
|
12
|
+
:toctree: _api
|
|
13
|
+
:template: custom-module-template.rst
|
|
14
|
+
:recursive:
|
|
15
|
+
|
|
16
|
+
dodal
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{{ ('``' + fullname + '``') | underline }}
|
|
2
|
+
|
|
3
|
+
{%- set filtered_members = [] %}
|
|
4
|
+
{%- for item in members %}
|
|
5
|
+
{%- if item in functions + classes + exceptions + attributes %}
|
|
6
|
+
{% set _ = filtered_members.append(item) %}
|
|
7
|
+
{%- endif %}
|
|
8
|
+
{%- endfor %}
|
|
9
|
+
|
|
10
|
+
.. automodule:: {{ fullname }}
|
|
11
|
+
:members:
|
|
12
|
+
|
|
13
|
+
{% block modules %}
|
|
14
|
+
{% if modules %}
|
|
15
|
+
.. rubric:: Submodules
|
|
16
|
+
|
|
17
|
+
.. autosummary::
|
|
18
|
+
:toctree:
|
|
19
|
+
:template: custom-module-template.rst
|
|
20
|
+
:recursive:
|
|
21
|
+
{% for item in modules %}
|
|
22
|
+
{{ item }}
|
|
23
|
+
{%- endfor %}
|
|
24
|
+
{% endif %}
|
|
25
|
+
{% endblock %}
|
|
26
|
+
|
|
27
|
+
{% block members %}
|
|
28
|
+
{% if filtered_members %}
|
|
29
|
+
.. rubric:: Members
|
|
30
|
+
|
|
31
|
+
.. autosummary::
|
|
32
|
+
:nosignatures:
|
|
33
|
+
{% for item in filtered_members %}
|
|
34
|
+
{{ item }}
|
|
35
|
+
{%- endfor %}
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% endblock %}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"""Configuration file for the Sphinx documentation builder.
|
|
2
|
+
|
|
3
|
+
This file only contains a selection of the most common options. For a full
|
|
4
|
+
list see the documentation:
|
|
5
|
+
https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
6
|
+
"""
|
|
6
7
|
|
|
7
8
|
import sys
|
|
8
9
|
from inspect import isclass
|
|
@@ -33,6 +34,7 @@ else:
|
|
|
33
34
|
extensions = [
|
|
34
35
|
# Use this for generating API docs
|
|
35
36
|
"sphinx.ext.autodoc",
|
|
37
|
+
# and making summary tables at the top of API docs
|
|
36
38
|
"sphinx.ext.autosummary",
|
|
37
39
|
# This can parse google style docstrings
|
|
38
40
|
"sphinx.ext.napoleon",
|
|
@@ -91,6 +93,12 @@ autodoc_preserve_defaults = True
|
|
|
91
93
|
autosummary_generate = True
|
|
92
94
|
autosummary_imported_members = False
|
|
93
95
|
|
|
96
|
+
# Document only what is in __all__
|
|
97
|
+
autosummary_ignore_module_all = False
|
|
98
|
+
|
|
99
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
100
|
+
templates_path = ["_templates"]
|
|
101
|
+
|
|
94
102
|
# Output graphviz directive produced images in a scalable format
|
|
95
103
|
graphviz_output_format = "svg"
|
|
96
104
|
|
|
@@ -11,7 +11,7 @@ Each beamline should have its own file in the ``doodal.beamlines`` folder, in wh
|
|
|
11
11
|
beamline are instantiated. The file should be named after the colloquial name for the beamline. For example:
|
|
12
12
|
|
|
13
13
|
* ``i03.py``
|
|
14
|
-
* ``
|
|
14
|
+
* ``i20_1.py``
|
|
15
15
|
* ``vmxi.py``
|
|
16
16
|
|
|
17
17
|
Beamline modules (in ``dodal.beamlines``) are code-as-configuration. They define the set of devices and common device
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Writing Tests in This Python Project
|
|
2
|
+
|
|
3
|
+
Testing is essential to maintain the integrity and reliability of the codebase. Follow the guidelines below to write tests for this project effectively.
|
|
4
|
+
|
|
5
|
+
## Test Organization
|
|
6
|
+
|
|
7
|
+
- **Unit Tests**: Place unit tests for individual components in the `tests` directory, but take care to mirror the file structure of the `src` folder with the corresponding code files. Use the `test_*.py` naming convention for test files.
|
|
8
|
+
- **System Tests**: Tests that interact with DLS infrastructure, network, and filesystem should be placed in the top-level `systems_test` folder. This separation ensures that these tests are easily identifiable and can be run independently from unit tests.
|
|
@@ -21,6 +21,17 @@ should think about where to place them in the following order:
|
|
|
21
21
|
|
|
22
22
|
This is in an effort to avoid duplication across facilities/beamlines.
|
|
23
23
|
|
|
24
|
+
Device Best Practices
|
|
25
|
+
----------------------------
|
|
26
|
+
|
|
27
|
+
Ophyd-async directory contains a flowchart_ for a simplified decision tree about what interfaces
|
|
28
|
+
should a given device implement. In addition to this the following guidelines are strongly recommended:
|
|
29
|
+
|
|
30
|
+
#. Devices should contain only the PV suffixes that are generic for any instance of the device. See `PV Suffixes`_
|
|
31
|
+
#. Anything in a device that is expected to be set externally should be a signal. See `Use of signals`_
|
|
32
|
+
#. Devices should not hold state, when they are read they should read the hardware. See `Holding State`_
|
|
33
|
+
|
|
34
|
+
|
|
24
35
|
PV Suffixes
|
|
25
36
|
-----------
|
|
26
37
|
|
|
@@ -86,16 +97,78 @@ Instead you should make a soft signal:
|
|
|
86
97
|
|
|
87
98
|
class MyDevice(Device):
|
|
88
99
|
def __init__(self):
|
|
89
|
-
self.param =
|
|
100
|
+
self.param = soft_signal_rw(str)
|
|
90
101
|
|
|
91
102
|
my_device = MyDevice()
|
|
92
103
|
def my_plan():
|
|
93
104
|
yield from bps.mv(my_device.param, "new_value")
|
|
94
105
|
|
|
95
|
-
Ophyd Devices best practices
|
|
96
|
-
----------------------------
|
|
97
106
|
|
|
98
|
-
|
|
99
|
-
|
|
107
|
+
Holding State
|
|
108
|
+
-------------
|
|
109
|
+
|
|
110
|
+
Devices should avoid holding state as much as possible. Ophyd devices are mostly trying to reflect the state of hardware and so when the device is read that hardware should be read.
|
|
111
|
+
|
|
112
|
+
If the device holds the state itself it is likely to not reflect the real hardware if:
|
|
113
|
+
* The device has just been initialised
|
|
114
|
+
* The hardware has changed independently e.g. via EPICS directly
|
|
115
|
+
* The hardware has failed to do what the device expected
|
|
116
|
+
|
|
117
|
+
For example, if I have a device that I would like to treat as moving in/out based on an underlying axis then it would be incorrect to implement it like this:
|
|
118
|
+
|
|
119
|
+
.. code-block:: python
|
|
120
|
+
|
|
121
|
+
class InOut(Enum):
|
|
122
|
+
IN = 0
|
|
123
|
+
OUT = 0
|
|
124
|
+
|
|
125
|
+
class MyDevice(Device):
|
|
126
|
+
def __init__(self):
|
|
127
|
+
self.underlying_motor = Motor("MOTOR")
|
|
128
|
+
with self.add_children_as_readables():
|
|
129
|
+
self.in_out, self._in_out_setter = soft_signal_r_and_setter(InOut)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
@AsyncStatus.wrap
|
|
133
|
+
async def set(self, value: InOut):
|
|
134
|
+
if value == InOut.IN:
|
|
135
|
+
await self.underlying_motor.set(100)
|
|
136
|
+
else:
|
|
137
|
+
await self.underlying_motor.set(0)
|
|
138
|
+
self._in_out_setter(value)
|
|
139
|
+
|
|
140
|
+
While this may appear to work fine during normal operation the state of in_out is only ever updated if the ophyd device is set. It is incorrect to assume that underlying_motor only changes
|
|
141
|
+
based on this and so this has the issues listed above. Instead you should make sure to update in_out whenever the device is read e.g.
|
|
142
|
+
|
|
143
|
+
.. code-block:: python
|
|
144
|
+
|
|
145
|
+
class InOut(Enum):
|
|
146
|
+
IN = 0
|
|
147
|
+
OUT = 0
|
|
148
|
+
|
|
149
|
+
class MyDevice(Device):
|
|
150
|
+
def __init__(self):
|
|
151
|
+
self.underlying_motor = Motor("MOTOR")
|
|
152
|
+
with self.add_children_as_readables():
|
|
153
|
+
self.in_out = create_hardware_backed_soft_signal(InOut, self._get_in_out_from_hardware)
|
|
154
|
+
|
|
155
|
+
async def _get_in_out_from_hardware(self):
|
|
156
|
+
current_position = await self.underlying_motor.get_value()
|
|
157
|
+
if isclose(current_position, 0):
|
|
158
|
+
return InOut.IN
|
|
159
|
+
elif isclose(current_position, 100):
|
|
160
|
+
return InOut.OUT
|
|
161
|
+
else:
|
|
162
|
+
raise ValueError()
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
@AsyncStatus.wrap
|
|
166
|
+
async def set(self, value: InOut):
|
|
167
|
+
if value == InOut.IN:
|
|
168
|
+
await self.underlying_motor.set(100)
|
|
169
|
+
else:
|
|
170
|
+
await self.underlying_motor.set(0)
|
|
171
|
+
|
|
172
|
+
This will be simplified by https://github.com/bluesky/ophyd-async/issues/525
|
|
100
173
|
|
|
101
174
|
.. _flowchart: https://blueskyproject.io/ophyd-async/main/how-to/choose-interfaces-for-devices.html
|
|
@@ -29,7 +29,7 @@ Supported Python Versions
|
|
|
29
29
|
As a standard for the python versions to support, we should be matching the deprecation policy at
|
|
30
30
|
https://numpy.org/neps/nep-0029-deprecation_policy.html.
|
|
31
31
|
|
|
32
|
-
Currently supported versions are: 3.10, 3.11.
|
|
32
|
+
Currently supported versions are: 3.10, 3.11, 3.12. (As of the last edit of this document.)
|
|
33
33
|
|
|
34
34
|
.. _documentation_standards:
|
|
35
35
|
|
|
@@ -6,6 +6,6 @@ Fixes #ISSUE
|
|
|
6
6
|
|
|
7
7
|
### Checks for reviewer
|
|
8
8
|
- [ ] Would the PR title make sense to a scientist on a set of release notes
|
|
9
|
-
- [ ] If a new device has been added does it follow the [standards](https://github.
|
|
9
|
+
- [ ] If a new device has been added does it follow the [standards](https://diamondlightsource.github.io/dodal/main/reference/device-standards.html)
|
|
10
10
|
- [ ] If changing the API for a pre-existing device, ensure that any beamlines using this device have updated their Bluesky plans accordingly
|
|
11
11
|
- [ ] Have the connection tests for the relevant beamline(s) been run via `dodal connect ${BEAMLINE}`
|
|
@@ -15,7 +15,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
|
|
|
15
15
|
dependencies = [
|
|
16
16
|
"click",
|
|
17
17
|
"ophyd",
|
|
18
|
-
"ophyd-async>=0.
|
|
18
|
+
"ophyd-async>=0.7.0a1,<0.8",
|
|
19
19
|
"bluesky",
|
|
20
20
|
"pyepics",
|
|
21
21
|
"dataclasses-json",
|
|
@@ -24,10 +24,10 @@ dependencies = [
|
|
|
24
24
|
"requests",
|
|
25
25
|
"graypy",
|
|
26
26
|
"pydantic>=2.0",
|
|
27
|
-
"opencv-python-headless",
|
|
28
|
-
"aioca",
|
|
29
|
-
"p4p",
|
|
30
|
-
"numpy<2.0",
|
|
27
|
+
"opencv-python-headless", # For pin-tip detection.
|
|
28
|
+
"aioca", # Required for CA support with ophyd-async.
|
|
29
|
+
"p4p", # Required for PVA support with ophyd-async.
|
|
30
|
+
"numpy<2.0", # Unpin when https://github.com/bluesky/ophyd-async/issues/387 resolved
|
|
31
31
|
"aiofiles",
|
|
32
32
|
"aiohttp",
|
|
33
33
|
"redis",
|
|
@@ -91,6 +91,7 @@ dodal = ["*.txt"]
|
|
|
91
91
|
version_file = "src/dodal/_version.py"
|
|
92
92
|
|
|
93
93
|
[tool.pyright]
|
|
94
|
+
typeCheckingMode = "standard"
|
|
94
95
|
reportMissingImports = false # Ignore missing stubs in imported modules
|
|
95
96
|
|
|
96
97
|
[tool.pytest.ini_options]
|
|
@@ -115,7 +116,7 @@ filterwarnings = [
|
|
|
115
116
|
"ignore::DeprecationWarning:wheel",
|
|
116
117
|
]
|
|
117
118
|
# Doctest python code in docs, python code in src docstrings, test functions in tests
|
|
118
|
-
testpaths = "docs src tests"
|
|
119
|
+
testpaths = "docs src tests system_tests"
|
|
119
120
|
|
|
120
121
|
[tool.coverage.report]
|
|
121
122
|
exclude_also = [
|
|
@@ -176,3 +177,4 @@ lint.select = [
|
|
|
176
177
|
# See https://github.com/DiamondLightSource/python-copier-template/issues/154
|
|
177
178
|
# Remove this line to forbid private member access in tests
|
|
178
179
|
"tests/**/*" = ["SLF001"]
|
|
180
|
+
"system_tests/**/*" = ["SLF001"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.34.1
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async<0.
|
|
219
|
+
Requires-Dist: ophyd-async<0.8,>=0.7.0a1
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -263,7 +263,7 @@ Requires-Dist: types-aiofiles; extra == "dev"
|
|
|
263
263
|
[](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
|
|
264
264
|
[](https://codecov.io/gh/DiamondLightSource/dodal)
|
|
265
265
|
[](https://pypi.org/project/dls-dodal)
|
|
266
|
-
[](https://
|
|
266
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
267
267
|
|
|
268
268
|
# dodal
|
|
269
269
|
|