mx-bluesky 1.4.6__tar.gz → 1.4.7__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.
- mx_bluesky-1.4.7/.github/CODEOWNERS +1 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/CONTRIBUTING.md +17 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.gitignore +1 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/PKG-INFO +7 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/README.rst +1 -1
- mx_bluesky-1.4.7/docs/developer/general/explanations/callback_and_run_logic.rst +27 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/get-started.rst +2 -2
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/index.rst +1 -0
- mx_bluesky-1.4.7/docs/developer/hyperion/how-to/update-panda-ioc.rst +44 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/index.rst +12 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/pull_request_template.md +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/pyproject.toml +23 -15
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/_version.py +2 -2
- mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +13 -0
- mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +29 -0
- mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +18 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +31 -25
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/thawing_plan.py +10 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +12 -12
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +30 -29
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +10 -11
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +8 -10
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +10 -3
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/log.py +1 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +16 -16
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +47 -48
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +9 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +3 -2
- mx_bluesky-1.4.7/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +45 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +2 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +18 -15
- {mx_bluesky-1.4.6/src/mx_bluesky/hyperion → mx_bluesky-1.4.7/src/mx_bluesky/common}/external_interaction/callbacks/sample_handling/sample_handling_callback.py +16 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +41 -5
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +2 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +1 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +14 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/constants.py +2 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/gridscan.py +1 -1
- mx_bluesky-1.4.7/src/mx_bluesky/common/plans/write_sample_status.py +46 -0
- mx_bluesky-1.4.7/src/mx_bluesky/common/preprocessors/preprocessors.py +105 -0
- mx_bluesky-1.4.7/src/mx_bluesky/common/protocols/protocols.py +10 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/__main__.py +3 -9
- mx_bluesky-1.4.7/src/mx_bluesky/hyperion/baton_handler.py +84 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +5 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +10 -25
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +11 -10
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +5 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +2 -2
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +5 -3
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -26
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +23 -18
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +25 -6
- mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +242 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +12 -6
- mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +107 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/gridscan.py +2 -2
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/rotation.py +1 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/PKG-INFO +7 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/SOURCES.txt +29 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/requires.txt +3 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/conftest.py +23 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/conftest.py +19 -3
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +7 -6
- mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +59 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +4 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +85 -11
- mx_bluesky-1.4.7/tests/test_data/agamemnon/example_collect.json +83 -0
- mx_bluesky-1.4.7/tests/test_data/agamemnon/example_collect_multipin.json +83 -0
- mx_bluesky-1.4.7/tests/test_data/test_images/generate_snapshot_input.png +0 -0
- mx_bluesky-1.4.7/tests/test_data/test_images/generate_snapshot_output.png +0 -0
- mx_bluesky-1.4.7/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +31 -0
- mx_bluesky-1.4.7/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +39 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +34 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/test_thawing.py +8 -6
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +12 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +3 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +17 -3
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +7 -7
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +21 -19
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +9 -9
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +14 -3
- mx_bluesky-1.4.7/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +132 -0
- mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +83 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -10
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +50 -32
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/conftest.py +12 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +56 -4
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +5 -2
- mx_bluesky-1.4.7/tests/unit_tests/common/preprocessors/test_preprocessors.py +192 -0
- mx_bluesky-1.4.7/tests/unit_tests/common/test_write_sample_status.py +65 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/conftest.py +12 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/conftest.py +30 -12
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +116 -6
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +2 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +233 -5
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +6 -6
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +58 -1
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +20 -102
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +58 -2
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +13 -8
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -79
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +374 -0
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/test_baton_handler.py +162 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_main_system.py +0 -5
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/utils/__init__.py +0 -0
- mx_bluesky-1.4.6/src/mx_bluesky/common/external_interaction/callbacks/common/aperture_change_callback.py +0 -22
- mx_bluesky-1.4.6/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +0 -103
- mx_bluesky-1.4.6/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +0 -104
- mx_bluesky-1.4.6/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -12
- mx_bluesky-1.4.6/tests/system_tests/hyperion/test_aperturescatterguard_system.py +0 -53
- mx_bluesky-1.4.6/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +0 -135
- mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -186
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.copier-answers.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.coveragerc +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.devcontainer/Dockerfile +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.devcontainer/devcontainer.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.dockerignore +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/actions/install_requirements/action.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/Dockerfile +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/action.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/entrypoint.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/dependabot.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/pages/index.html +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/pages/make_switcher.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_check.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_container.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_dist.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_docs.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_pypi.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_release.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_test.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/_tox.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/ci.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.github/workflows/periodic.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.pre-commit-config.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/extensions.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/launch.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/mx-bluesky.code-workspace +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/settings.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/.vscode/tasks.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/Dockerfile +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/Dockerfile.release +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/LICENSE +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/catalog-info.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/codecov.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/_api.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/_templates/custom-module-template.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/conf.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/contribute.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/create-a-release.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/reference/standards.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/general/tutorials/profile-tests.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/gridscan.puml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/readme.md +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/hyperion/system-tests.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/index.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/murko-integration/index.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/images/dls-favicon.ico +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/images/dls-logo.svg +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/docs/index.rst +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/hyperion/Chart.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/hyperion/templates/deployment.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/hyperion/templates/ingress.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/hyperion/templates/service.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/hyperion/values.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/redis-to-murko/Chart.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/redis-to-murko/templates/deployment.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/helmcharts/redis-to-murko/values.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/code.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/container_tests.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/linkcheck.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/pin_versions.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_pin_versions.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/run_hyperion.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/run_hyperion_in_podman.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/setup.cfg +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/__main__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/test_config_server.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/components.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/plans/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/plans/do_fgs.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/plans/read_hardware.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.7/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
- {mx_bluesky-1.4.6/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.7/src/mx_bluesky/common/protocols}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/context.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/exceptions.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/log.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/tracing.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/common/xrc_result.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/definitions.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests → mx_bluesky-1.4.7/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/check_beamstop.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +0 -0
- {mx_bluesky-1.4.6/tests/system_tests → mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/constants.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/device_composites.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/utils/context.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/utils/validation.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/jupyter_example.ipynb +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/top_level.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/start_jupyter.sh +0 -0
- {mx_bluesky-1.4.6/tests/system_tests/hyperion → mx_bluesky-1.4.7/tests}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.7/tests/system_tests}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.7/tests/system_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.7/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests → mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines → mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/README.md +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/fake_data.h5 +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/scratch/README +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_OAVCentring.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_parameters.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_config.cfg +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_display.configuration +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_lookup_table.txt +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/test_data/test_mirror_focus.json +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24 → mx_bluesky-1.4.7/tests/unit_tests}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.7/tests/unit_tests/beamlines}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/external_interaction → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.4.7/tests/unit_tests/common}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/plans → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/utils → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion → mx_bluesky-1.4.7/tests/unit_tests/common/plans}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/plans/test_read_hardware.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.7/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/common/plan_stubs → mx_bluesky-1.4.7/tests/unit_tests/common}/test_do_fgs.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.7/tests/unit_tests/common/utils}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/common/utils/test_log.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/conftest.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.7/tests/unit_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.7/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_check_beamstop.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.7/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
- {mx_bluesky-1.4.6/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_utils.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/tests/unit_tests/test_cli.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/beam_off_trickery.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/build_docker_image.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/build_imginfo.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/deploy/create_venv.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/deploy/test_deploy.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/dev_jaeger_container.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/dls_dev_env.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/docker/entrypoint.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/docker/healthcheck.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/docker/i03-compose.yml +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/generate_plantuml.py +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/graylog/Dockerfile +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/graylog/tcp_input.json +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/procserv_ioc_start.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/run_imginfo.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/setup_graylog.sh +0 -0
- {mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/utility_scripts/strip_metafile.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @DiamondLightSource/developers-mx-daq
|
|
@@ -17,6 +17,23 @@ Contributions and issues are most welcome! All issues and pull requests are hand
|
|
|
17
17
|
|
|
18
18
|
**Work should not be done without an associated ticket describing what the work is**
|
|
19
19
|
|
|
20
|
+
## Developing mx-bluesky and dodal
|
|
21
|
+
|
|
22
|
+
Some issues will span the mx-bluesky repo and the dodal repo. When working on both at the same time, follow these instructions:
|
|
23
|
+
1. An issue is created for the work, inside mx-bluesky. This issue should describe in as much detail as possible the work that needs to be done. Anyone is free to make a ticket and/or comment on one.
|
|
24
|
+
2. If a developer is going to do the work they assign themselves to the issue.
|
|
25
|
+
3. The developer makes a new branch in mx-bluesky with the format `issue_short_description` e.g. `122_create_a_contributing_file`. The developer also creates a new branch in dodal, with the format `mx_bluesky_issue_short_description` - the same as the mx-bluesky branch name but with `mx_bluesky_` in front. (External developers are also welcome to make forks)
|
|
26
|
+
4. The developer does the work on these branches, adding their work in small commits. Commit messages should be informative and prefixed with the issue number e.g. `(#122) Added contributing file`.
|
|
27
|
+
5. Once the developer has done the final commit in both repos, they find the latest commit SHA in the dodal repo using `git log`. In `mx-bluesky/pyproject.toml`, the developer changes `dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@{dodal_commmit_SHA}` using the SHA they just found.
|
|
28
|
+
6. The developer commits and pushes this final change on mx-bluesky.
|
|
29
|
+
7. The developer submits a dodal PR for the work they have done in the dodal repo. The pull request should start with `Fixes #issue_num` e.g. `Fixes #122`, and should link to the issue created in mx-bluesky. The developer should also add some background on how the reviewer might test the change.
|
|
30
|
+
8. The developer submits a mx-bluesky PR for the work they have done in the mx-bluesky repo. The pull request should start with `Fixes #issue_num` e.g. `Fixes #122`. This PR should link to the dodal PR just created with something like "Also needs #456". Again, the developer should add some background on how the reviewer might test the change.
|
|
31
|
+
9. If the developer has a particular person in mind to review the work they should assign that person to the PRs as a reviewer.
|
|
32
|
+
10. The reviewer and developer go back and forth on the code until the reviewer approves it. (See "Reviewing Work" below)
|
|
33
|
+
11. Once the work is approved on both PRs, the original developer merges them. The PRs should be merged at the same time.
|
|
34
|
+
|
|
35
|
+
**Work should not be done without an associated ticket describing what the work is**
|
|
36
|
+
|
|
20
37
|
## Reviewing Work
|
|
21
38
|
|
|
22
39
|
**Work must be reviewed by another developer before it can be merged**. Remember that work is reviewed for a number of reasons:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mx-bluesky
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.7
|
|
4
4
|
Summary: Bluesky tools for MX Beamlines at DLS
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,6 @@ Description-Content-Type: text/x-rst
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: annotated_types
|
|
217
217
|
Requires-Dist: caproto
|
|
218
|
-
Requires-Dist: confluent-kafka==2.8.0
|
|
219
218
|
Requires-Dist: fastapi[all]
|
|
220
219
|
Requires-Dist: flask-restful
|
|
221
220
|
Requires-Dist: ispyb
|
|
@@ -239,8 +238,8 @@ Requires-Dist: blueapi>=0.5.0
|
|
|
239
238
|
Requires-Dist: daq-config-server>=0.1.1
|
|
240
239
|
Requires-Dist: ophyd==1.9.0
|
|
241
240
|
Requires-Dist: ophyd-async>=0.9.0a2
|
|
242
|
-
Requires-Dist: bluesky>=1.13
|
|
243
|
-
Requires-Dist: dls-dodal==1.
|
|
241
|
+
Requires-Dist: bluesky>=1.13.1
|
|
242
|
+
Requires-Dist: dls-dodal==1.44.0
|
|
244
243
|
Provides-Extra: dev
|
|
245
244
|
Requires-Dist: black; extra == "dev"
|
|
246
245
|
Requires-Dist: build; extra == "dev"
|
|
@@ -254,7 +253,7 @@ Requires-Dist: pipdeptree; extra == "dev"
|
|
|
254
253
|
Requires-Dist: plantweb; extra == "dev"
|
|
255
254
|
Requires-Dist: pre-commit; extra == "dev"
|
|
256
255
|
Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
|
|
257
|
-
Requires-Dist: pyright
|
|
256
|
+
Requires-Dist: pyright; extra == "dev"
|
|
258
257
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
259
258
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
260
259
|
Requires-Dist: pytest-random-order; extra == "dev"
|
|
@@ -267,6 +266,7 @@ Requires-Dist: tox-direct; extra == "dev"
|
|
|
267
266
|
Requires-Dist: tox; extra == "dev"
|
|
268
267
|
Requires-Dist: types-mock; extra == "dev"
|
|
269
268
|
Requires-Dist: types-requests; extra == "dev"
|
|
269
|
+
Dynamic: license-file
|
|
270
270
|
|
|
271
271
|
mx-bluesky
|
|
272
272
|
===========================
|
|
@@ -285,7 +285,7 @@ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
|
|
|
285
285
|
Getting Started
|
|
286
286
|
===============
|
|
287
287
|
|
|
288
|
-
To get started with developing this repo at DLS run
|
|
288
|
+
To get started with developing this repo at DLS run ``./utility_scripts/dls_dev_env.sh``.
|
|
289
289
|
|
|
290
290
|
If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
|
|
291
291
|
|
|
@@ -15,7 +15,7 @@ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
|
|
|
15
15
|
Getting Started
|
|
16
16
|
===============
|
|
17
17
|
|
|
18
|
-
To get started with developing this repo at DLS run
|
|
18
|
+
To get started with developing this repo at DLS run ``./utility_scripts/dls_dev_env.sh``.
|
|
19
19
|
|
|
20
20
|
If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
|
|
21
21
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Callbacks and Run Logic
|
|
2
|
+
========================
|
|
3
|
+
|
|
4
|
+
Callbacks are used to trigger external services:
|
|
5
|
+
|
|
6
|
+
- Ispyb deposition
|
|
7
|
+
- Nexus writing
|
|
8
|
+
- Zocalo triggering
|
|
9
|
+
|
|
10
|
+
These are linked in that to trigger zocalo you need to have made an ispyb deposition, written a nexus file and have finished writing raw data to disk. Nexus files and ispyb depositions can be made at anytime, we do not need to have necessarily finished writing raw data.
|
|
11
|
+
|
|
12
|
+
Currently, the requirement of needing to have written to ispyb is explicit as the ispyb callback will emit to the zocalo callback. The nexus file is written when the hardware is read during a collection and so its ordering is implied. When instantiated the zocalo callback is told on which plan to trigger and it is up to the plan developer to make sure this plan finishes after data is written to the detector.
|
|
13
|
+
|
|
14
|
+
In general, the ordering flow of when callbacks are triggered is controlled by emitting documents with the expected plan name and data.
|
|
15
|
+
|
|
16
|
+
Rotation Scans
|
|
17
|
+
---------------------
|
|
18
|
+
|
|
19
|
+
There are currently two ways of doing rotation scans. A single scan creates one hdf file, one ispyb deposition and then triggers zocalo once. Multi rotation scans create one hdf file for all rotations but then N nexus files, N ispyb depositions and triggers zocalo N times.
|
|
20
|
+
|
|
21
|
+
Single scans will be removed in https://github.com/DiamondLightSource/mx-bluesky/issues/847
|
|
22
|
+
|
|
23
|
+
For multi rotations this is does by starting 1+2*N different runs:
|
|
24
|
+
|
|
25
|
+
1. ``CONST.PLAN.ROTATION_MULTI``: This is emitted once for the whole multiple rotation. It is used by the nexus callback to get the full number of images and meta_data_run_number so that it knows which hdf file to use. When this is finished zocalo end is triggered.
|
|
26
|
+
2. ``CONST.PLAN.ROTATION_OUTER``: Emitted N times, inside a ``CONST.PLAN.ROTATION_MULTI`` run. This is used to create the initial ispyb deposition and create the nexus writer (but not actually write the file)
|
|
27
|
+
3. ``CONST.PLAN.ROTATION_MAIN``: Emitted N times, inside ``CONST.PLAN.ROTATION_OUTER`` run. Used to finish writing to ispyb (i.e. write success/failure) and to send collection information to zocalo.
|
|
@@ -4,8 +4,8 @@ Get Started with mx-bluesky
|
|
|
4
4
|
Development Environment
|
|
5
5
|
=======================
|
|
6
6
|
|
|
7
|
-
- Clone this repo: ``git@github.com:DiamondLightSource/mx-bluesky.git``
|
|
8
|
-
- To install a ``dev`` environment run ``./
|
|
7
|
+
- Clone this repo using SSH: ``git clone git@github.com:DiamondLightSource/mx-bluesky.git``
|
|
8
|
+
- To install a ``dev`` environment, from the top level ``mx-bluesky`` directory, run ``./utility_scripts/dls_dev_env.sh``. Note that this will also clone and install a local version of ``dodal``, as the ``mx-bluesky`` package makes use of the devices instantiated there.
|
|
9
9
|
|
|
10
10
|
The recommended IDE is vscode, and a workspace which includes dodal has been set up in the repo. This can be used on a DLS machine as follows:
|
|
11
11
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Update the PandA IOC
|
|
2
|
+
=====================
|
|
3
|
+
|
|
4
|
+
The IOC for the PandA can sometimes get out of sync with the production version of Ophyd-Async. Here is how to update it
|
|
5
|
+
|
|
6
|
+
Check if the IOC needs updating
|
|
7
|
+
""""""""""""""""""""""""""""""""
|
|
8
|
+
|
|
9
|
+
- Check the minimum panda IOC version required in the version of ophyd-async used in Hyperion's release version. This can be found in the ``MINIMUM_PANDA_IOC`` constant in `_hdf_panda.py <https://github.com/bluesky/ophyd-async/blob/main/src/ophyd_async/fastcs/panda/_hdf_panda.py>`_
|
|
10
|
+
|
|
11
|
+
- In a terminal:
|
|
12
|
+
|
|
13
|
+
.. code-block:: bash
|
|
14
|
+
|
|
15
|
+
cd /dls_sw/work/R3.14.12.7/ioc/BL03I/BL03I-PY-IOC-02
|
|
16
|
+
source venv/bin/activate
|
|
17
|
+
pip freeze | grep pandablocks-ioc
|
|
18
|
+
|
|
19
|
+
Note that the IOC location will soon be moving to ``prod`` instead of ``work``.
|
|
20
|
+
|
|
21
|
+
- Compare the version from step one
|
|
22
|
+
|
|
23
|
+
Updating the IOC
|
|
24
|
+
""""""""""""""""""""""""""
|
|
25
|
+
|
|
26
|
+
- Update the Python IOC repo in the venv:
|
|
27
|
+
|
|
28
|
+
.. code-block:: bash
|
|
29
|
+
|
|
30
|
+
cd /dls_sw/work/R3.14.12.7/ioc/BL03I/BL03I-PY-IOC-02
|
|
31
|
+
source venv/bin/activate
|
|
32
|
+
pip install --upgrade pandablocks-ioc=={desired version}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
- After making sure the beamline isn't in use, restart the IOC:
|
|
36
|
+
|
|
37
|
+
.. code-block:: bash
|
|
38
|
+
|
|
39
|
+
module load controls-tools
|
|
40
|
+
|
|
41
|
+
console BL03I-PY-IOC-02
|
|
42
|
+
|
|
43
|
+
- Press ``ctrl+x``
|
|
44
|
+
- Disconnect by pressing ``ctrl+e``, then press ``c``, then press ``.``
|
|
@@ -20,3 +20,15 @@ Documentation specific for the Hyperion module within MX-Bluesky
|
|
|
20
20
|
+++
|
|
21
21
|
|
|
22
22
|
Technical reference material on standards in use.
|
|
23
|
+
|
|
24
|
+
.. grid-item-card:: :material-regular:`task;3em`
|
|
25
|
+
|
|
26
|
+
.. toctree::
|
|
27
|
+
:caption: How-to Guides
|
|
28
|
+
:maxdepth: 1
|
|
29
|
+
|
|
30
|
+
how-to/update-panda-ioc
|
|
31
|
+
|
|
32
|
+
+++
|
|
33
|
+
|
|
34
|
+
Practical step-by-step guides for day-to-day dev tasks.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Fixes #ISSUE
|
|
2
2
|
|
|
3
3
|
Link to dodal PR (if required): #XXX
|
|
4
|
-
(remember to update `
|
|
4
|
+
(remember to update `pyproject.toml` with the dodal commit tag if you need it for tests to pass!)
|
|
5
5
|
|
|
6
6
|
### Instructions to reviewer on how to test:
|
|
7
7
|
|
|
@@ -18,7 +18,6 @@ dependencies = [
|
|
|
18
18
|
#
|
|
19
19
|
"annotated_types",
|
|
20
20
|
"caproto",
|
|
21
|
-
"confluent-kafka==2.8.0",
|
|
22
21
|
"fastapi[all]",
|
|
23
22
|
"flask-restful",
|
|
24
23
|
"ispyb",
|
|
@@ -46,8 +45,8 @@ dependencies = [
|
|
|
46
45
|
"daq-config-server >= 0.1.1",
|
|
47
46
|
"ophyd == 1.9.0",
|
|
48
47
|
"ophyd-async >= 0.9.0a2",
|
|
49
|
-
"bluesky >= 1.13",
|
|
50
|
-
"dls-dodal == 1.
|
|
48
|
+
"bluesky >= 1.13.1",
|
|
49
|
+
"dls-dodal == 1.44.0",
|
|
51
50
|
]
|
|
52
51
|
|
|
53
52
|
|
|
@@ -72,7 +71,7 @@ dev = [
|
|
|
72
71
|
"plantweb",
|
|
73
72
|
"pre-commit",
|
|
74
73
|
"pydata-sphinx-theme>=0.12",
|
|
75
|
-
"pyright
|
|
74
|
+
"pyright",
|
|
76
75
|
"pytest-asyncio",
|
|
77
76
|
"pytest-cov",
|
|
78
77
|
"pytest-random-order",
|
|
@@ -131,6 +130,8 @@ filterwarnings = [
|
|
|
131
130
|
"error",
|
|
132
131
|
# Ignore deprecation warning from sqlalchemy
|
|
133
132
|
"ignore::sqlalchemy.exc.MovedIn20Warning",
|
|
133
|
+
# Remove when there's a fix for https://github.com/DiamondLightSource/ispyb-api/issues/233
|
|
134
|
+
"ignore::sqlalchemy.exc.SADeprecationWarning",
|
|
134
135
|
# Ignore deprecation warning from setuptools_dso (remove when https://github.com/epics-base/setuptools_dso/issues/36 is released)
|
|
135
136
|
"ignore::DeprecationWarning:wheel",
|
|
136
137
|
# Ophyd status objects in tests
|
|
@@ -153,6 +154,8 @@ filterwarnings = [
|
|
|
153
154
|
# Ignore warning about deprecations in python-workflows encountered during system tests
|
|
154
155
|
# https://github.com/DiamondLightSource/python-workflows/issues/188
|
|
155
156
|
"ignore:.*`Field` should not be instantiated.*:marshmallow.warnings.ChangedInMarshmallow4Warning",
|
|
157
|
+
# https://github.com/bluesky/ophyd-async/issues/838 and https://github.com/seperman/deepdiff/issues/536
|
|
158
|
+
"ignore:Accessing this attribute on the instance is deprecated",
|
|
156
159
|
]
|
|
157
160
|
# Doctest python code in docs, python code in src docstrings, test functions in tests
|
|
158
161
|
testpaths = "docs src tests/unit_tests"
|
|
@@ -198,15 +201,17 @@ commands_pre =
|
|
|
198
201
|
src = ["src", "tests"]
|
|
199
202
|
line-length = 88
|
|
200
203
|
lint.select = [
|
|
201
|
-
"B",
|
|
202
|
-
"C4",
|
|
203
|
-
"E",
|
|
204
|
-
"F",
|
|
205
|
-
"W",
|
|
206
|
-
"I",
|
|
207
|
-
"UP",
|
|
208
|
-
"SLF",
|
|
209
|
-
"PT012",
|
|
204
|
+
"B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
|
|
205
|
+
"C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
|
|
206
|
+
"E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
|
|
207
|
+
"F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
|
|
208
|
+
"W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
|
|
209
|
+
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
|
|
210
|
+
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
|
|
211
|
+
"SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
|
|
212
|
+
"PT012", # flake8-pytest-style rules - https://docs.astral.sh/ruff/rules/pytest-raises-with-multiple-statements/#pytest-raises-with-multiple-statements-pt012
|
|
213
|
+
"RUF018", # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
|
|
214
|
+
"TID251", # banned api - https://docs.astral.sh/ruff/rules/banned-api/
|
|
210
215
|
]
|
|
211
216
|
lint.extend-ignore = [
|
|
212
217
|
"E501", # Line too long
|
|
@@ -215,8 +220,11 @@ lint.extend-ignore = [
|
|
|
215
220
|
[tool.ruff.lint.per-file-ignores]
|
|
216
221
|
# By default, private member access is allowed in tests
|
|
217
222
|
# See https://github.com/DiamondLightSource/python-copier-template/issues/154
|
|
218
|
-
# Remove this line to forbid private member access in tests
|
|
219
|
-
"tests/**/*" = ["SLF001", "B023"]
|
|
223
|
+
# Remove this line to forbid private member access, walrys operators in asserts, banned api in tests
|
|
224
|
+
"tests/**/*" = ["SLF001", "B023", "RUF018", "TID251"]
|
|
225
|
+
|
|
226
|
+
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
227
|
+
"time.sleep".msg = "Use bps.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
|
|
220
228
|
|
|
221
229
|
[tool.mypy]
|
|
222
230
|
plugins = ["pydantic.mypy"]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from mx_bluesky.beamlines.aithre_lasershaping.check_goniometer_performance import (
|
|
2
|
+
check_omega_performance,
|
|
3
|
+
)
|
|
4
|
+
from mx_bluesky.beamlines.aithre_lasershaping.goniometer_controls import (
|
|
5
|
+
change_goniometer_turn_speed,
|
|
6
|
+
rotate_goniometer_relative,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"check_omega_performance",
|
|
11
|
+
"change_goniometer_turn_speed",
|
|
12
|
+
"rotate_goniometer_relative",
|
|
13
|
+
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import bluesky.plan_stubs as bps
|
|
2
|
+
from bluesky.utils import MsgGenerator
|
|
3
|
+
from dodal.devices.aithre_lasershaping.goniometer import Goniometer
|
|
4
|
+
|
|
5
|
+
DEFAULT_VELOCITIES = [5.0, 10.0, 20.0, 40.0, 80.0, 90.0]
|
|
6
|
+
DEFAULT_POSITIONS = [
|
|
7
|
+
300.0,
|
|
8
|
+
-300.0,
|
|
9
|
+
600.0,
|
|
10
|
+
-600.0,
|
|
11
|
+
1200.0,
|
|
12
|
+
-1200.0,
|
|
13
|
+
2400.0,
|
|
14
|
+
-2400.0,
|
|
15
|
+
3600.0,
|
|
16
|
+
-3600.0,
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def check_omega_performance(
|
|
21
|
+
goniometer: Goniometer,
|
|
22
|
+
velocities: list[float] = DEFAULT_VELOCITIES,
|
|
23
|
+
values: list[float] = DEFAULT_POSITIONS,
|
|
24
|
+
) -> MsgGenerator:
|
|
25
|
+
"""Move the goniometer from positive to negative to check omega performance"""
|
|
26
|
+
for omega_velocity in velocities:
|
|
27
|
+
yield from bps.abs_set(goniometer.omega.velocity, omega_velocity, wait=True)
|
|
28
|
+
for omega_value in values:
|
|
29
|
+
yield from bps.abs_set(goniometer.omega, omega_value, wait=True)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import bluesky.plan_stubs as bps
|
|
2
|
+
from bluesky.utils import MsgGenerator
|
|
3
|
+
from dodal.common import inject
|
|
4
|
+
from dodal.devices.aithre_lasershaping.goniometer import Goniometer
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def rotate_goniometer_relative(
|
|
8
|
+
value: float, goniometer: Goniometer = inject("goniometer")
|
|
9
|
+
) -> MsgGenerator:
|
|
10
|
+
"""Adjust the goniometer position incrementally"""
|
|
11
|
+
yield from bps.rel_set(goniometer.omega, value, wait=True)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def change_goniometer_turn_speed(
|
|
15
|
+
velocity: float, goniometer: Goniometer = inject("goniometer")
|
|
16
|
+
) -> MsgGenerator:
|
|
17
|
+
"""Set the velocity of the goniometer"""
|
|
18
|
+
yield from bps.mv(goniometer.omega.velocity, velocity)
|
{mx_bluesky-1.4.6 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import io
|
|
2
2
|
import json
|
|
3
3
|
import pickle
|
|
4
|
+
from datetime import timedelta
|
|
4
5
|
from typing import TypedDict
|
|
5
6
|
|
|
6
7
|
import numpy as np
|
|
@@ -14,13 +15,20 @@ from mx_bluesky.common.utils.log import LOGGER
|
|
|
14
15
|
|
|
15
16
|
MURKO_ADDRESS = "tcp://i04-murko-prod.diamond.ac.uk:8008"
|
|
16
17
|
|
|
18
|
+
MurkoResult = dict
|
|
19
|
+
FullMurkoResults = dict[str, list[MurkoResult]]
|
|
20
|
+
|
|
17
21
|
|
|
18
22
|
class MurkoRequest(TypedDict):
|
|
23
|
+
"""See https://github.com/MartinSavko/murko#usage for more information."""
|
|
24
|
+
|
|
19
25
|
to_predict: NDArray
|
|
20
26
|
model_img_size: tuple[int, int]
|
|
21
27
|
save: bool
|
|
22
28
|
min_size: int
|
|
23
29
|
description: list
|
|
30
|
+
|
|
31
|
+
# The identifier for each image
|
|
24
32
|
prefix: list[str]
|
|
25
33
|
|
|
26
34
|
|
|
@@ -29,32 +37,26 @@ def get_image_size(image: NDArray) -> tuple[int, int]:
|
|
|
29
37
|
return image.shape[1], image.shape[0]
|
|
30
38
|
|
|
31
39
|
|
|
32
|
-
def send_to_murko_and_get_results(request: MurkoRequest) ->
|
|
40
|
+
def send_to_murko_and_get_results(request: MurkoRequest) -> FullMurkoResults:
|
|
33
41
|
LOGGER.info(f"Sending {request['prefix']} to murko")
|
|
34
42
|
context = zmq.Context()
|
|
35
43
|
socket = context.socket(zmq.REQ)
|
|
36
44
|
socket.connect(MURKO_ADDRESS)
|
|
37
45
|
socket.send(pickle.dumps(request))
|
|
38
46
|
raw_results = socket.recv()
|
|
47
|
+
assert isinstance(raw_results, bytes)
|
|
39
48
|
results = pickle.loads(raw_results)
|
|
40
49
|
LOGGER.info(f"Got {len(results['descriptions'])} results")
|
|
41
50
|
return results
|
|
42
51
|
|
|
43
52
|
|
|
44
|
-
def
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
coords = prediction["most_likely_click"]
|
|
52
|
-
y_coord = coords[0] * height
|
|
53
|
-
x_coord = coords[1] * width
|
|
54
|
-
results.append(
|
|
55
|
-
{"uuid": uuid, "x_pixel_coord": x_coord, "y_pixel_coord": y_coord}
|
|
56
|
-
)
|
|
57
|
-
return results
|
|
53
|
+
def _correlate_results_to_uuids(
|
|
54
|
+
request: MurkoRequest, murko_results: FullMurkoResults
|
|
55
|
+
) -> list[tuple[str, MurkoResult]]:
|
|
56
|
+
"""We send a batch of images to murko, with each having a 'prefix' of the uuid that
|
|
57
|
+
we're using to keep track of the image. Murko sends back an ordered list of these,
|
|
58
|
+
which we match to the supplied prefix here."""
|
|
59
|
+
return list(zip(request["prefix"], murko_results["descriptions"], strict=False))
|
|
58
60
|
|
|
59
61
|
|
|
60
62
|
class BatchMurkoForwarder:
|
|
@@ -94,16 +96,20 @@ class BatchMurkoForwarder:
|
|
|
94
96
|
],
|
|
95
97
|
"prefix": uuids,
|
|
96
98
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
self._send_murko_results_to_redis(sample_id,
|
|
100
|
-
|
|
101
|
-
def _send_murko_results_to_redis(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
results = send_to_murko_and_get_results(request_arguments)
|
|
100
|
+
results_with_uuids = _correlate_results_to_uuids(request_arguments, results)
|
|
101
|
+
self._send_murko_results_to_redis(sample_id, results_with_uuids)
|
|
102
|
+
|
|
103
|
+
def _send_murko_results_to_redis(
|
|
104
|
+
self, sample_id: str, results: list[tuple[str, MurkoResult]]
|
|
105
|
+
):
|
|
106
|
+
"""Stores the results into a redis hash (for longer term storage) and publishes
|
|
107
|
+
them as well so that downstream clients can get notified."""
|
|
108
|
+
for uuid, result in results:
|
|
109
|
+
redis_key = f"murko:{sample_id}:results"
|
|
110
|
+
self.redis_client.hset(redis_key, uuid, str(pickle.dumps(result)))
|
|
111
|
+
self.redis_client.expire(redis_key, timedelta(days=7))
|
|
112
|
+
self.redis_client.publish("murko-results", pickle.dumps(results))
|
|
107
113
|
|
|
108
114
|
def add(self, sample_id: str, uuid: str, image: NDArray):
|
|
109
115
|
"""Add an image to the batch to send to murko."""
|
|
@@ -64,7 +64,7 @@ def thaw_and_stream_to_redis(
|
|
|
64
64
|
yield from bps.kickoff(oav_to_redis_forwarder, wait=True)
|
|
65
65
|
yield from bps.monitor(smargon.omega.user_readback, name="smargon")
|
|
66
66
|
yield from bps.monitor(oav_to_redis_forwarder.uuid, name="oav")
|
|
67
|
-
yield from
|
|
67
|
+
yield from _thaw(
|
|
68
68
|
time_to_thaw, rotation, thawer, smargon, switch_forwarder_to_ROI
|
|
69
69
|
)
|
|
70
70
|
yield from bps.complete(oav_to_redis_forwarder)
|
|
@@ -83,6 +83,15 @@ def thaw(
|
|
|
83
83
|
rotation: float = 360,
|
|
84
84
|
thawer: Thawer = inject("thawer"),
|
|
85
85
|
smargon: Smargon = inject("smargon"),
|
|
86
|
+
) -> MsgGenerator:
|
|
87
|
+
yield from _thaw(time_to_thaw, rotation, thawer, smargon)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _thaw(
|
|
91
|
+
time_to_thaw: float,
|
|
92
|
+
rotation: float = 360,
|
|
93
|
+
thawer: Thawer = inject("thawer"),
|
|
94
|
+
smargon: Smargon = inject("smargon"),
|
|
86
95
|
plan_between_rotations: Callable[[], MsgGenerator] | None = None,
|
|
87
96
|
) -> MsgGenerator:
|
|
88
97
|
"""Rotates the sample and thaws it at the same time.
|
|
@@ -34,8 +34,8 @@ h 308
|
|
|
34
34
|
lineColor index 26
|
|
35
35
|
fill
|
|
36
36
|
fillColor index 25
|
|
37
|
-
alarmPv "BL24I-
|
|
38
|
-
visPv "BL24I-
|
|
37
|
+
alarmPv "BL24I-MO-IOC-13:GP6"
|
|
38
|
+
visPv "BL24I-MO-IOC-13:GP6"
|
|
39
39
|
visMin "1"
|
|
40
40
|
visMax "10"
|
|
41
41
|
endObjectProperties
|
|
@@ -65,7 +65,7 @@ x 145
|
|
|
65
65
|
y 328
|
|
66
66
|
w 97
|
|
67
67
|
h 30
|
|
68
|
-
controlPv "BL24I-
|
|
68
|
+
controlPv "BL24I-MO-IOC-13:GP9"
|
|
69
69
|
fgColor index 25
|
|
70
70
|
fgAlarm
|
|
71
71
|
bgColor index 3
|
|
@@ -83,7 +83,7 @@ x 145
|
|
|
83
83
|
y 366
|
|
84
84
|
w 97
|
|
85
85
|
h 30
|
|
86
|
-
controlPv "BL24I-
|
|
86
|
+
controlPv "BL24I-MO-IOC-13:GP10"
|
|
87
87
|
fgColor index 25
|
|
88
88
|
fgAlarm
|
|
89
89
|
bgColor index 3
|
|
@@ -192,7 +192,7 @@ x 394
|
|
|
192
192
|
y 124
|
|
193
193
|
w 273
|
|
194
194
|
h 30
|
|
195
|
-
controlPv "BL24I-
|
|
195
|
+
controlPv "BL24I-MO-IOC-13:GP2"
|
|
196
196
|
fgColor index 25
|
|
197
197
|
fgAlarm
|
|
198
198
|
bgColor index 3
|
|
@@ -210,7 +210,7 @@ x 394
|
|
|
210
210
|
y 163
|
|
211
211
|
w 273
|
|
212
212
|
h 30
|
|
213
|
-
controlPv "BL24I-
|
|
213
|
+
controlPv "BL24I-MO-IOC-13:GP3"
|
|
214
214
|
fgColor index 25
|
|
215
215
|
fgAlarm
|
|
216
216
|
bgColor index 3
|
|
@@ -268,7 +268,7 @@ x 449
|
|
|
268
268
|
y 200
|
|
269
269
|
w 125
|
|
270
270
|
h 30
|
|
271
|
-
controlPv "BL24I-
|
|
271
|
+
controlPv "BL24I-MO-IOC-13:GP4"
|
|
272
272
|
fgColor index 25
|
|
273
273
|
fgAlarm
|
|
274
274
|
bgColor index 3
|
|
@@ -286,7 +286,7 @@ x 448
|
|
|
286
286
|
y 237
|
|
287
287
|
w 125
|
|
288
288
|
h 30
|
|
289
|
-
controlPv "BL24I-
|
|
289
|
+
controlPv "BL24I-MO-IOC-13:GP5"
|
|
290
290
|
fgColor index 25
|
|
291
291
|
fgAlarm
|
|
292
292
|
bgColor index 3
|
|
@@ -636,7 +636,7 @@ x 448
|
|
|
636
636
|
y 315
|
|
637
637
|
w 125
|
|
638
638
|
h 30
|
|
639
|
-
controlPv "BL24I-
|
|
639
|
+
controlPv "BL24I-MO-IOC-13:GP7"
|
|
640
640
|
fgColor index 25
|
|
641
641
|
fgAlarm
|
|
642
642
|
bgColor index 3
|
|
@@ -1374,7 +1374,7 @@ x 393
|
|
|
1374
1374
|
y 99
|
|
1375
1375
|
w 253
|
|
1376
1376
|
h 18
|
|
1377
|
-
controlPv "BL24I-
|
|
1377
|
+
controlPv "BL24I-MO-IOC-13:GP1"
|
|
1378
1378
|
format "decimal"
|
|
1379
1379
|
font "arial-medium-r-16.0"
|
|
1380
1380
|
fgColor index 25
|
|
@@ -1896,7 +1896,7 @@ x 430
|
|
|
1896
1896
|
y 662
|
|
1897
1897
|
w 86
|
|
1898
1898
|
h 18
|
|
1899
|
-
controlPv "BL24I-
|
|
1899
|
+
controlPv "BL24I-MO-IOC-13:GP15"
|
|
1900
1900
|
format "decimal"
|
|
1901
1901
|
font "arial-medium-r-16.0"
|
|
1902
1902
|
fgColor index 16
|
|
@@ -1963,7 +1963,7 @@ fgColor index 14
|
|
|
1963
1963
|
bgColor index 3
|
|
1964
1964
|
topShadowColor index 1
|
|
1965
1965
|
botShadowColor index 8
|
|
1966
|
-
controlPv "BL24I-
|
|
1966
|
+
controlPv "BL24I-MO-IOC-13:GP6"
|
|
1967
1967
|
font "arial-medium-r-18.0"
|
|
1968
1968
|
numItems 2
|
|
1969
1969
|
symbolTag {
|