dls-dodal 1.33.0__tar.gz → 1.35.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.33.0 → dls_dodal-1.35.0}/.copier-answers.yml +3 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/CONTRIBUTING.md +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/pages/make_switcher.py +8 -6
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_pypi.yml +2 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_release.yml +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/ci.yml +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.gitignore +1 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/Dockerfile +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/PKG-INFO +3 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/README.md +1 -1
- {dls_dodal-1.33.0/tests → dls_dodal-1.35.0}/conftest.py +52 -28
- dls_dodal-1.35.0/docs/_api.rst +16 -0
- dls_dodal-1.35.0/docs/_templates/custom-module-template.rst +37 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/conf.py +13 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/create-beamline.rst +1 -1
- dls_dodal-1.35.0/docs/how-to/write-tests.md +8 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference/standards.rst +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference.md +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/pyproject.toml +5 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/PKG-INFO +3 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/SOURCES.txt +48 -21
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/requires.txt +1 -1
- dls_dodal-1.35.0/src/dodal/__init__.py +11 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/_version.py +2 -2
- dls_dodal-1.35.0/src/dodal/beamline_specific_utils/i03.py +17 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/__init__.py +2 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i03.py +41 -9
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i04.py +26 -4
- dls_dodal-1.35.0/src/dodal/beamlines/i10.py +257 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i22.py +25 -13
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i24.py +11 -11
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p38.py +24 -13
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/beamline_utils.py +1 -2
- dls_dodal-1.35.0/src/dodal/common/crystal_metadata.py +61 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/signal_utils.py +10 -14
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/types.py +2 -7
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/CTAB.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/aperture.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/aperturescatterguard.py +20 -8
- dls_dodal-1.35.0/src/dodal/devices/apple2_undulator.py +603 -0
- dls_dodal-1.35.0/src/dodal/devices/areadetector/plugins/CAM.py +29 -0
- dls_dodal-1.35.0/src/dodal/devices/areadetector/plugins/MJPG.py +83 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/attenuator.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/backlight.py +11 -11
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/cryostream.py +3 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/dcm.py +26 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/detector_motion.py +3 -5
- dls_dodal-1.35.0/src/dodal/devices/diamond_filter.py +46 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/eiger.py +6 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/eiger_odin.py +48 -39
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/fast_grid_scan.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/fluorescence_detector_motion.py +5 -7
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/focusing_mirror.py +26 -19
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/hutch_shutter.py +4 -5
- dls_dodal-1.35.0/src/dodal/devices/i10/i10_apple2.py +399 -0
- dls_dodal-1.35.0/src/dodal/devices/i10/i10_setting_data.py +7 -0
- dls_dodal-1.35.0/src/dodal/devices/i22/dcm.py +124 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i22/fswitch.py +5 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/aperture.py +3 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/beamstop.py +3 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/dcm.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/dual_backlight.py +9 -11
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/pmac.py +35 -46
- dls_dodal-1.35.0/src/dodal/devices/i24/vgonio.py +16 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/ipin.py +5 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/linkam3.py +7 -7
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/oav_calculations.py +22 -0
- dls_dodal-1.35.0/src/dodal/devices/oav/oav_detector.py +127 -0
- dls_dodal-1.35.0/src/dodal/devices/oav/oav_parameters.py +160 -0
- dls_dodal-1.35.0/src/dodal/devices/oav/oav_to_redis_forwarder.py +171 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +9 -7
- {dls_dodal-1.33.0/src/dodal/devices/oav → dls_dodal-1.35.0/src/dodal/devices/oav/snapshots}/grid_overlay.py +16 -59
- dls_dodal-1.35.0/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +64 -0
- dls_dodal-1.35.0/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +57 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/utils.py +28 -27
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p99/sample_stage.py +3 -5
- dls_dodal-1.35.0/src/dodal/devices/pgm.py +40 -0
- dls_dodal-1.35.0/src/dodal/devices/qbpm.py +18 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/robot.py +5 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/smargon.py +3 -3
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/synchrotron.py +9 -4
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/tetramm.py +9 -9
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/thawer.py +13 -7
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/undulator.py +7 -6
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/adjuster_plans.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/epics_util.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/lookup_tables.py +4 -5
- dls_dodal-1.35.0/src/dodal/devices/watsonmarlow323_pump.py +45 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/webcam.py +9 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xbpm_feedback.py +3 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xspress3/xspress3.py +8 -9
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/xspress3/xspress3_channel.py +3 -5
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zebra.py +12 -8
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zebra_controlled_shutter.py +5 -6
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/__init__.py +2 -2
- dls_dodal-1.35.0/src/dodal/devices/zocalo/zocalo_constants.py +3 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/zocalo_interaction.py +2 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/zocalo/zocalo_results.py +105 -89
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/data_session_metadata.py +2 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/motor_util_plans.py +11 -9
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/utils.py +11 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_aperturescatterguard_system.py +2 -2
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_eiger_system.py +1 -1
- dls_dodal-1.35.0/system_tests/test_oav_system.py +55 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_oav_to_redis_system.py +11 -6
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_zocalo_results.py +36 -15
- dls_dodal-1.35.0/tests/beamlines/unit_tests/test_i24.py +27 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/beamlines/unit_tests/test_mapping.py +2 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_beamline_utils.py +1 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_device_instantiation.py +3 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_coordination.py +1 -1
- dls_dodal-1.35.0/tests/common/test_crystal_metadata.py +37 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +53 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +29 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- dls_dodal-1.35.0/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- dls_dodal-1.35.0/tests/devices/i10/test_i10Apple2.py +495 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_dcm.py +16 -39
- dls_dodal-1.35.0/tests/devices/test_diamond_filter.py +57 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/test_pmac.py +4 -4
- dls_dodal-1.35.0/tests/devices/unit_tests/i24/test_vgonio.py +25 -0
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/conftest.py +25 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +3 -3
- {dls_dodal-1.33.0/tests/devices/unit_tests → dls_dodal-1.35.0/tests/devices/unit_tests/oav}/test_grid_overlay.py +3 -3
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav.py +129 -0
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_parameters.py +78 -0
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +202 -0
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_oav_utils.py +113 -0
- dls_dodal-1.35.0/tests/devices/unit_tests/oav/test_snapshots.py +192 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +4 -6
- dls_dodal-1.35.0/tests/devices/unit_tests/test_apple2_undulator.py +357 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_backlight.py +4 -4
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_dcm.py +10 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_eiger.py +25 -20
- dls_dodal-1.35.0/tests/devices/unit_tests/test_focusing_mirror.py +259 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_gridscan.py +2 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_hutch_shutter.py +1 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_linkam3.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_odin.py +87 -18
- dls_dodal-1.35.0/tests/devices/unit_tests/test_qbpm.py +29 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_tetramm.py +27 -15
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_thawer.py +5 -7
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_undulator_dcm.py +1 -2
- dls_dodal-1.35.0/tests/devices/unit_tests/test_watsonmarlow323_pump.py +47 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_xspress3.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zebra.py +6 -6
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zocalo_interaction.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_zocalo_results.py +58 -46
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +3 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_lookup_tables.py +4 -4
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_save_panda.py +1 -1
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/__main__.py +33 -12
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +12 -2
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/plans/test_motor_util_plans.py +6 -6
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/preprocessors/test_filesystem_metadata.py +2 -1
- dls_dodal-1.33.0/docs/reference/api.md +0 -26
- dls_dodal-1.33.0/src/dodal/__init__.py +0 -3
- dls_dodal-1.33.0/src/dodal/beamline_specific_utils/i03.py +0 -13
- dls_dodal-1.33.0/src/dodal/beamlines/i04_1.py +0 -140
- dls_dodal-1.33.0/src/dodal/devices/areadetector/plugins/MJPG.py +0 -138
- dls_dodal-1.33.0/src/dodal/devices/i22/dcm.py +0 -157
- dls_dodal-1.33.0/src/dodal/devices/i24/i24_vgonio.py +0 -17
- dls_dodal-1.33.0/src/dodal/devices/oav/oav_detector.py +0 -92
- dls_dodal-1.33.0/src/dodal/devices/oav/oav_errors.py +0 -35
- dls_dodal-1.33.0/src/dodal/devices/oav/oav_parameters.py +0 -214
- dls_dodal-1.33.0/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -129
- dls_dodal-1.33.0/tests/beamlines/unit_tests/test_i24.py +0 -11
- dls_dodal-1.33.0/tests/devices/system_tests/test_oav_system.py +0 -46
- dls_dodal-1.33.0/tests/devices/unit_tests/areadetector/plugins/test_MJPG.py +0 -45
- dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav.py +0 -133
- dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -48
- dls_dodal-1.33.0/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -140
- dls_dodal-1.33.0/tests/devices/unit_tests/test_focusing_mirror.py +0 -270
- dls_dodal-1.33.0/tests/devices/unit_tests/test_oav.py +0 -262
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/LICENSE +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/explanations.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/genindex.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/how-to.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/index.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/pull_request_template.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/setup.cfg +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/adsim.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adaravis.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adsim.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/areadetector/adutils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/undulator_dcm.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/save_panda.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/src/dodal/plans/check_topup.py +0 -0
- {dls_dodal-1.33.0/tests → dls_dodal-1.35.0/system_tests}/__init__.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.33.0/tests/beamlines → dls_dodal-1.35.0/tests}/__init__.py +0 -0
- {dls_dodal-1.33.0/tests/beamlines/unit_tests → dls_dodal-1.35.0/tests/beamlines}/__init__.py +0 -0
- {dls_dodal-1.33.0/tests/common → dls_dodal-1.35.0/tests/beamlines/unit_tests}/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.33.0/tests/common/beamlines → dls_dodal-1.35.0/tests/common}/__init__.py +0 -0
- {dls_dodal-1.33.0/tests/devices → dls_dodal-1.35.0/tests/common/beamlines}/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.33.0/tests/devices/i04 → dls_dodal-1.35.0/tests/devices}/__init__.py +0 -0
- {dls_dodal-1.33.0/tests/devices/system_tests → dls_dodal-1.35.0/tests/devices/i04}/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_shutter.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/plans/test_topup_plan.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_cli.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/test_utils.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.33.0 → dls_dodal-1.35.0}/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.35.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -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
|
|
219
|
+
Requires-Dist: ophyd-async==0.8.0a4
|
|
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
|
|
|
@@ -7,6 +7,7 @@ import time
|
|
|
7
7
|
from collections.abc import Mapping
|
|
8
8
|
from os import environ, getenv
|
|
9
9
|
from pathlib import Path
|
|
10
|
+
from typing import Any
|
|
10
11
|
from unittest.mock import MagicMock, patch
|
|
11
12
|
|
|
12
13
|
import pytest
|
|
@@ -17,8 +18,7 @@ from ophyd_async.core import (
|
|
|
17
18
|
PathProvider,
|
|
18
19
|
)
|
|
19
20
|
|
|
20
|
-
from dodal.beamlines import
|
|
21
|
-
from dodal.common.beamlines import beamline_utils
|
|
21
|
+
from dodal.common.beamlines import beamline_parameters, beamline_utils
|
|
22
22
|
from dodal.common.visit import (
|
|
23
23
|
DirectoryServiceClient,
|
|
24
24
|
LocalDirectoryServiceClient,
|
|
@@ -32,30 +32,62 @@ mock_paths = [
|
|
|
32
32
|
("DAQ_CONFIGURATION_PATH", MOCK_DAQ_CONFIG_PATH),
|
|
33
33
|
("ZOOM_PARAMS_FILE", "tests/devices/unit_tests/test_jCameraManZoomLevels.xml"),
|
|
34
34
|
("DISPLAY_CONFIG", "tests/devices/unit_tests/test_display.configuration"),
|
|
35
|
+
("LOOK_UPTABLE_DIR", "tests/devices/i10/lookupTables/"),
|
|
35
36
|
]
|
|
36
37
|
mock_attributes_table = {
|
|
37
38
|
"i03": mock_paths,
|
|
39
|
+
"i10": mock_paths,
|
|
38
40
|
"s03": mock_paths,
|
|
39
41
|
"i04": mock_paths,
|
|
40
42
|
"s04": mock_paths,
|
|
43
|
+
"i24": mock_paths,
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
BANNED_PATHS = [Path("/dls"), Path("/dls_sw")]
|
|
47
|
+
environ["DODAL_TEST_MODE"] = "true"
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@pytest.fixture(autouse=True)
|
|
51
|
+
def patch_open_to_prevent_dls_reads_in_tests():
|
|
52
|
+
unpatched_open = open
|
|
53
|
+
|
|
54
|
+
def patched_open(*args, **kwargs):
|
|
55
|
+
requested_path = Path(args[0])
|
|
56
|
+
if requested_path.is_absolute():
|
|
57
|
+
for p in BANNED_PATHS:
|
|
58
|
+
assert not requested_path.is_relative_to(
|
|
59
|
+
p
|
|
60
|
+
), f"Attempt to open {requested_path} from inside a unit test"
|
|
61
|
+
return unpatched_open(*args, **kwargs)
|
|
62
|
+
|
|
63
|
+
with patch("builtins.open", side_effect=patched_open):
|
|
64
|
+
yield []
|
|
65
|
+
|
|
66
|
+
|
|
43
67
|
# Prevent pytest from catching exceptions when debugging in vscode so that break on
|
|
44
68
|
# exception works correctly (see: https://github.com/pytest-dev/pytest/issues/7409)
|
|
45
69
|
if os.getenv("PYTEST_RAISE", "0") == "1":
|
|
46
70
|
|
|
47
71
|
@pytest.hookimpl(tryfirst=True)
|
|
48
|
-
def pytest_exception_interact(call):
|
|
49
|
-
|
|
72
|
+
def pytest_exception_interact(call: pytest.CallInfo[Any]):
|
|
73
|
+
if call.excinfo is not None:
|
|
74
|
+
raise call.excinfo.value
|
|
75
|
+
else:
|
|
76
|
+
raise RuntimeError(
|
|
77
|
+
f"{call} has no exception data, an unknown error has occurred"
|
|
78
|
+
)
|
|
50
79
|
|
|
51
80
|
@pytest.hookimpl(tryfirst=True)
|
|
52
|
-
def pytest_internalerror(excinfo):
|
|
81
|
+
def pytest_internalerror(excinfo: pytest.ExceptionInfo[Any]):
|
|
53
82
|
raise excinfo.value
|
|
54
83
|
|
|
55
84
|
|
|
56
85
|
def mock_beamline_module_filepaths(bl_name, bl_module):
|
|
57
86
|
if mock_attributes := mock_attributes_table.get(bl_name):
|
|
58
87
|
[bl_module.__setattr__(attr[0], attr[1]) for attr in mock_attributes]
|
|
88
|
+
beamline_parameters.BEAMLINE_PARAMETER_PATHS[bl_name] = (
|
|
89
|
+
"tests/test_data/i04_beamlineParameters"
|
|
90
|
+
)
|
|
59
91
|
|
|
60
92
|
|
|
61
93
|
@pytest.fixture(scope="function")
|
|
@@ -65,12 +97,12 @@ def module_and_devices_for_beamline(request):
|
|
|
65
97
|
bl_mod = importlib.import_module("dodal.beamlines." + beamline)
|
|
66
98
|
importlib.reload(bl_mod)
|
|
67
99
|
mock_beamline_module_filepaths(beamline, bl_mod)
|
|
68
|
-
devices,
|
|
100
|
+
devices, exceptions = make_all_devices(
|
|
69
101
|
bl_mod,
|
|
70
102
|
include_skipped=True,
|
|
71
103
|
fake_with_ophyd_sim=True,
|
|
72
104
|
)
|
|
73
|
-
yield (bl_mod, devices)
|
|
105
|
+
yield (bl_mod, devices, exceptions)
|
|
74
106
|
beamline_utils.clear_devices()
|
|
75
107
|
del bl_mod
|
|
76
108
|
|
|
@@ -92,14 +124,6 @@ def pytest_runtest_teardown():
|
|
|
92
124
|
sys.modules["dodal.beamlines.beamline_utils"].clear_devices()
|
|
93
125
|
|
|
94
126
|
|
|
95
|
-
@pytest.fixture
|
|
96
|
-
def vfm_mirror_voltages(RE: RunEngine):
|
|
97
|
-
voltages = i03.vfm_mirror_voltages(fake_with_ophyd_sim=True)
|
|
98
|
-
voltages.voltage_lookup_table_path = "tests/test_data/test_mirror_focus.json"
|
|
99
|
-
yield voltages
|
|
100
|
-
beamline_utils.clear_devices()
|
|
101
|
-
|
|
102
|
-
|
|
103
127
|
s03_epics_server_port = getenv("S03_EPICS_CA_SERVER_PORT")
|
|
104
128
|
s03_epics_repeater_port = getenv("S03_EPICS_CA_REPEATER_PORT")
|
|
105
129
|
|
|
@@ -132,19 +156,6 @@ async def static_path_provider(
|
|
|
132
156
|
return svpp
|
|
133
157
|
|
|
134
158
|
|
|
135
|
-
@pytest.fixture
|
|
136
|
-
async def RE():
|
|
137
|
-
RE = RunEngine()
|
|
138
|
-
# make sure the event loop is thoroughly up and running before we try to create
|
|
139
|
-
# any ophyd_async devices which might need it
|
|
140
|
-
timeout = time.monotonic() + 1
|
|
141
|
-
while not RE.loop.is_running():
|
|
142
|
-
await asyncio.sleep(0)
|
|
143
|
-
if time.monotonic() > timeout:
|
|
144
|
-
raise TimeoutError("This really shouldn't happen but just in case...")
|
|
145
|
-
yield RE
|
|
146
|
-
|
|
147
|
-
|
|
148
159
|
@pytest.fixture
|
|
149
160
|
def run_engine_documents(RE: RunEngine) -> Mapping[str, list[dict]]:
|
|
150
161
|
docs: dict[str, list[dict]] = {}
|
|
@@ -162,3 +173,16 @@ def failed_status(failure: Exception) -> Status:
|
|
|
162
173
|
status = Status()
|
|
163
174
|
status.set_exception(failure)
|
|
164
175
|
return status
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@pytest.fixture
|
|
179
|
+
async def RE():
|
|
180
|
+
RE = RunEngine()
|
|
181
|
+
# make sure the event loop is thoroughly up and running before we try to create
|
|
182
|
+
# any ophyd_async devices which might need it
|
|
183
|
+
timeout = time.monotonic() + 1
|
|
184
|
+
while not RE.loop.is_running():
|
|
185
|
+
await asyncio.sleep(0)
|
|
186
|
+
if time.monotonic() > timeout:
|
|
187
|
+
raise TimeoutError("This really shouldn't happen but just in case...")
|
|
188
|
+
yield RE
|
|
@@ -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.
|
|
@@ -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
|
|
|
@@ -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
|
|
18
|
+
"ophyd-async==0.8.0a4",
|
|
19
19
|
"bluesky",
|
|
20
20
|
"pyepics",
|
|
21
21
|
"dataclasses-json",
|
|
@@ -91,7 +91,8 @@ dodal = ["*.txt"]
|
|
|
91
91
|
version_file = "src/dodal/_version.py"
|
|
92
92
|
|
|
93
93
|
[tool.pyright]
|
|
94
|
-
|
|
94
|
+
typeCheckingMode = "standard"
|
|
95
|
+
reportMissingImports = false # Ignore missing stubs in imported modules
|
|
95
96
|
|
|
96
97
|
[tool.pytest.ini_options]
|
|
97
98
|
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
|
|
@@ -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.35.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -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
|
|
219
|
+
Requires-Dist: ophyd-async==0.8.0a4
|
|
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
|
|