mx-bluesky 1.5.12__tar.gz → 1.5.15__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.5.12 → mx_bluesky-1.5.15}/PKG-INFO +3 -3
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/create-a-release.rst +2 -2
- mx_bluesky-1.5.15/docs/developer/general/how-to/deploy-a-release.rst +37 -0
- mx_bluesky-1.5.15/docs/developer/general/how-to/setup-blueapi-for-mx.md +40 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/index.rst +3 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/index.rst +0 -1
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations.puml +131 -0
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations_rotation.puml +77 -0
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations_set_energy.puml +38 -0
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/index.rst +9 -0
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/install.rst +57 -0
- mx_bluesky-1.5.15/docs/user/hyperion/advanced/operations.rst +46 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/configuration.rst +1 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/index.rst +6 -8
- mx_bluesky-1.5.15/docs/user/hyperion/logging.rst +43 -0
- mx_bluesky-1.5.15/docs/user/hyperion/troubleshooting.rst +53 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/pyproject.toml +2 -2
- mx_bluesky-1.5.15/src/mx_bluesky/Getting started.ipynb +170 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/_version.py +3 -3
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/robot_load.py +4 -10
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +4 -5
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +5 -5
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py +21 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +1 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +1 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +1 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +3 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +4 -2
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/constants.py +2 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +4 -5
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py +23 -11
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +48 -21
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/device_composites.py +2 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/plan_runner.py +31 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/plan_runner_api.py +14 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/utils/context.py +2 -2
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/jupyter_example.ipynb +9 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/PKG-INFO +3 -3
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/SOURCES.txt +12 -3
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/requires.txt +2 -2
- mx_bluesky-1.5.15/start_jupyter.sh +2 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/conftest.py +47 -42
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/conftest.py +1 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +36 -9
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/conftest.py +1 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +4 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/test_oav_plans.py +18 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +4 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +1 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +2 -2
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +4 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +6 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/conftest.py +6 -3
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +4 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +5 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py +25 -12
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +2 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +49 -16
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_baton_handler.py +9 -8
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_main_system.py +3 -3
- mx_bluesky-1.5.15/tests/unit_tests/hyperion/test_plan_runner.py +98 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_plan_runner_api.py +7 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/test_context.py +4 -4
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/t01.py +5 -3
- mx_bluesky-1.5.12/docs/developer/general/how-to/deploy-a-release.rst +0 -69
- mx_bluesky-1.5.12/docs/developer/hyperion/deploying-hyperion.rst +0 -130
- mx_bluesky-1.5.12/docs/user/hyperion/troubleshooting.rst +0 -143
- mx_bluesky-1.5.12/start_jupyter.sh +0 -2
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.copier-answers.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.coveragerc +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.devcontainer/Dockerfile +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.devcontainer/devcontainer.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.dockerignore +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/CODEOWNERS +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/CONTRIBUTING.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/install_requirements/action.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/Dockerfile +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/action.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/entrypoint.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/dependabot.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/pages/index.html +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/pages/make_switcher.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/release.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_container.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_debug_container.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_dist.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_docs.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_helm.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_label.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_pypi.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_release.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_test.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_tox.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/ci.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/periodic.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.gitignore +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.pre-commit-config.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/extensions.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/launch.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mx-bluesky-dev-container.code-workspace +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mx-bluesky.code-workspace +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/settings.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/tasks.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile.blueapi +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile.hyperion +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/LICENSE +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/README.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/catalog-info.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/codecov.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/_api.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/_templates/custom-module-template.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/conf.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/index.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/contribute.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/get-started.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/reference/standards.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/tutorials/profile-tests.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/baton.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/gda-baton.puml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/gridscan.puml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/readme.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/system-tests.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/index.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/explanations/DrawioImages.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/index.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/417717258-afbd813c-8941-445c-9fdf-255c167453cf.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/dls-favicon.ico +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/dls-logo.svg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor coordinate systems.odg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor-coords-omega-0.svg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor-coords-omega-alpha.svg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/index.rst +0 -0
- {mx_bluesky-1.5.12/docs/user/hyperion → mx_bluesky-1.5.15/docs/user/hyperion/advanced}/alerts.rst +0 -0
- {mx_bluesky-1.5.12/docs/user/hyperion → mx_bluesky-1.5.15/docs/user/hyperion/advanced}/pvs.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/running.rst +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/Chart.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/deployment.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/ingress.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/service.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/zocalo-config.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/values.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/values.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/Chart.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/templates/deployment.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/values.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/pull_request_template.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/run_hyperion.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/run_hyperion_in_podman.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/setup.cfg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/__main__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/robot_load_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/robot_load_parameters.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/pin_tip_centring.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i02_1/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i02_1/parameters/gridscan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/oav_centering_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/parameters/constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_internal_acquisition.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_startup_py3v1.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/gonio.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_zebra_and_shutter.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/beamstop_check.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/components.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/device_composites.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/preprocessors/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/protocols/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/protocols/protocols.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/context.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/exceptions.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/log.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/tracing.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/xrc_result.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/definitions.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/__main__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/baton_handler.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/runner.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/phase1_zebra/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/top_level.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/expeye_helpers.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/common/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/test_main_udc.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_native.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_wait.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/ispyb-test-credentials.cfg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/README.md +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/fake_data.h5 +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/scratch/README +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_OAVCentring.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_parameters.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_config.cfg +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/display.configuration +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_display.configuration +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties_with_no_gpu +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties_with_panda +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_0.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_90.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_0.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_90.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_lookup_table.txt +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_mirror_focus.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/zocalo-test-configuration.yaml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_aithre_pin_tip_centre.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_robot_load.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_oav_imaging.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i23/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans/test_do_darks.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_external_acquisition.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_internal_acquisition.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_plan_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_setup_zebra_and_shutter.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/test_write_sample_status.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_beamstop_check.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_pin_tip_centring.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/test_components.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/test_constants.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/preprocessors/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/test_log.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/test_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/common/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/test_alert_on_container_change.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_runner.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_utils.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/test_cli.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/build_docker_image.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/build_imginfo.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/create_venv.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/test_deploy.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/dev_jaeger_container.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/dls_dev_env.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/entrypoint.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/healthcheck.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/i03-compose.yml +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/generate_plantuml.py +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/graylog/Dockerfile +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/graylog/tcp_input.json +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/procserv_ioc_start.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/request_baton.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/run_imginfo.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/setup_graylog.sh +0 -0
- {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/strip_metafile.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mx-bluesky
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.15
|
|
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
|
|
@@ -237,11 +237,11 @@ Requires-Dist: deepdiff
|
|
|
237
237
|
Requires-Dist: matplotlib
|
|
238
238
|
Requires-Dist: cachetools
|
|
239
239
|
Requires-Dist: daq-config-server>=v1.0.0-rc.2
|
|
240
|
-
Requires-Dist: blueapi>=1.
|
|
240
|
+
Requires-Dist: blueapi>=1.8.0
|
|
241
241
|
Requires-Dist: ophyd>=1.10.5
|
|
242
242
|
Requires-Dist: ophyd-async>=0.14.0
|
|
243
243
|
Requires-Dist: bluesky>=1.14.6
|
|
244
|
-
Requires-Dist: dls-dodal==1.
|
|
244
|
+
Requires-Dist: dls-dodal==1.68.0
|
|
245
245
|
Provides-Extra: dev
|
|
246
246
|
Requires-Dist: black; extra == "dev"
|
|
247
247
|
Requires-Dist: build; extra == "dev"
|
|
@@ -3,7 +3,7 @@ Create a New Release
|
|
|
3
3
|
===========
|
|
4
4
|
Pre-release
|
|
5
5
|
===========
|
|
6
|
-
Make sure that dodal has an up-to-date release. If not, create one (see `dodal release instructions <https://diamondlightsource.github.io/dodal/main/
|
|
6
|
+
Make sure that dodal has an up-to-date release. If not, create one (see `dodal release instructions <https://diamondlightsource.github.io/dodal/main/how-to/make-release.html>`_).
|
|
7
7
|
|
|
8
8
|
=======
|
|
9
9
|
Release
|
|
@@ -19,7 +19,7 @@ Release
|
|
|
19
19
|
8. Publish the release
|
|
20
20
|
|
|
21
21
|
NOTE FOR USING THE MX-BLUESKY-BLUEAPI IMAGE: If using this image with BlueAPI's helmchart for deployment, the version of dodal which is installed will be the version which is pinned in the BlueAPI, rather than what's in mx-bluesky's pyproject.toml. Before releasing, you should pin BlueAPI to a version which uses a dodal version which is compatible with itself AND mx-bluesky. The deployment will fail if BlueAPI has no version which works with the desired dodal version
|
|
22
|
-
Follow these
|
|
22
|
+
Follow `these instructions <setup-blueapi-for-mx.html>`_ on using the mx-bluesky-blueapi image.
|
|
23
23
|
|
|
24
24
|
------------------------
|
|
25
25
|
Deciding release numbers
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Deploy a New Release
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
.. warning::
|
|
5
|
+
|
|
6
|
+
This guide is for pre-containerised deployments. To see how deployments work using BlueAPI with kubernetes, please see `the updated guide <setup-blueapi-for-mx.html>`_.
|
|
7
|
+
|
|
8
|
+
**Remember to discuss any new deployments with the appropriate beamline scientist.**
|
|
9
|
+
|
|
10
|
+
The ``utility_scripts/deploy/deploy_mx_bluesky.py`` script will deploy the latest mx-bluesky version to a specified beamline. Deployments live in ``/dls_sw/ixx/software/bluesky/mx-bluesky_X.X.X``. To do a new deployment you should run the deploy script from your mx-bluesky dev environment with e.g.
|
|
11
|
+
If you have just created a new release, you may need to run git fetch --tags to get the newest release.
|
|
12
|
+
|
|
13
|
+
.. code:: console
|
|
14
|
+
|
|
15
|
+
python ./utility_scripts/deploy/deploy_mx_bluesky.py i24
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
If you want to test the script for a specific beamline you can run:
|
|
19
|
+
|
|
20
|
+
.. code:: console
|
|
21
|
+
|
|
22
|
+
python ./deploy/deploy_mx_bluesky.py i03 --dev
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
which will create the beamline deployment of the new release in ``/scratch/30day_tmp/mx-bluesky_release_test``.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
.. note::
|
|
29
|
+
|
|
30
|
+
When deploying on I24, the edm screens for serial crystallography will be deployed automatically along with the mx-bluesky release.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
The script has a few additional optional arguments, which can be viewed with:
|
|
34
|
+
|
|
35
|
+
.. code:: console
|
|
36
|
+
|
|
37
|
+
python ./deploy/deploy_mx_bluesky.py -h
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Setting up BlueAPI for an MX beamline
|
|
2
|
+
|
|
3
|
+
## Background
|
|
4
|
+
|
|
5
|
+
The Athena DAQ platform is intended to run in microservices using kubernetes. A beamline ixx has a gitlab repository `ixx-services`, which contains that beamline's available services and their helm configurations, as well as `ixx-deployments` which says which available services should be deployed. Services managed in this way will be deployed into the `ixx-beamline` namespace. ArgoCD provides a useful dashboard for the deployed services and their kubernetes objects. See [here](https://dev-guide.diamond.ac.uk/athena/how-tos/migration/) for more information. This guide will explain how to setup BlueAPI using mx-bluesky within this framework.
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
1. The beamline has a kubernetes cluster with gitlab deployment and services repos. See [here](https://dev-guide.diamond.ac.uk/epics-containers/how-tos/intro/) for a guide on this. DAQ members should be codeowners of these repos.
|
|
10
|
+
2. Confirm the beamline cluster has a Blueapi ingress and DNS entry for `ixx-blueapi.diamond.ac.uk` - create a scicomp ticket if it doesn't.
|
|
11
|
+
|
|
12
|
+
## Guide to run BlueAPI with mx-bluesky through kubernetes
|
|
13
|
+
|
|
14
|
+
The best way to add BlueAPI to the services and deployments repo with the correct configuration is to copy from an existing setup and change the relevant values. i04 will be used as an example for this guide - [see their blueapi configuration](https://gitlab.diamond.ac.uk/controls/containers/beamline/i04-services/-/tree/main/services/i04-blueapi?ref_type=heads). The `chart.yaml` tells us which helmcharts are being used. The BlueAPI helmchart gives us the bulk of the configuration. See [here](https://github.com/DiamondLightSource/blueapi/tree/main/helm/blueapi) for a table of its settings. In MX we use an additional `mx-bluesky-blueapi` helmchart - right now this is purely for configuring Zocalo, but anything else which is generic to MX should be added.
|
|
15
|
+
|
|
16
|
+
`values.yaml` lets us configure the helmcharts that we had listed in dependencies. This file should look the same for each MX beamline, other than the actual beamline name. Unfortunately, there's no way to get a templated file here which automatically fills in the beamline name. Some notes:
|
|
17
|
+
|
|
18
|
+
- The BlueAPI image should be set to `ghcr.io/diamondlightsource/mx-bluesky-blueapi` and you should specify a version tag. See all releases of this image [here](https://github.com/DiamondLightSource/mx-bluesky/pkgs/container/mx-bluesky-blueapi). This image will install any MX-specific dependencies on top of the BlueAPI image.
|
|
19
|
+
- We are currently mounting `/dls/ixx` and `/dls_sw/ixx` to BlueAPI, but the long-term goal is to not mount the file system. Nexgen currently requires `/dls/ixx` to be mounted. Once Nexgen is migrated into a separate service, we can unmount `/dls/ixx` from Blueapi and mount it in Nexgen only. Unmounting `/dls_sw/ixx`requires us to be using the config server for all settings - this is currently being worked on.
|
|
20
|
+
- Until the above is done, BlueAPI needs to run as the detector user so that it has permission to write files. Type `id ixxdetector` into a terminal to find the user id. This then needs to be added in the `runAsUser: [number]` part of the values.
|
|
21
|
+
|
|
22
|
+
MX Bluesky plans require some secrets to be added to the beamline cluster. The configuration from the above requires these secrets, so will not work without this. At the time of writing this guide, there are 3 that we need: ispyb (expeye) credentials, rabbitMQ credentials for zocalo, and config for rabbitMQ api reader for zocalo. These should be added as sealed secrets and committed to the services repo. Here's how this works:
|
|
23
|
+
|
|
24
|
+
1. Open a terminal and enter your beamline cluster with `module load k8s-ixx`
|
|
25
|
+
2. Set the default namespace to ixx-beamline with `kubectl config set-context --current --namespace=ixx-beamline`
|
|
26
|
+
3. Create a regular secret and save to a yaml file with `kubectl create secret generic [secret-name] --from-file=/path/to/sensitive/file --save-config --dry-run=client -o yaml > [secret-file-name.yaml]`
|
|
27
|
+
4. Seal the secret with `kubeseal --controller-namespace kube-system --controller-name sealed-secrets-controller --format yaml < [secret-file-name.yaml] > [sealed-secret-file-name.yaml]`. This will encrypt your secret - the beamline cluster comes installed with the private key to decrypt information sealed with this command.
|
|
28
|
+
5. Commit the sealed secret into `ixx-services/services/ixx-blueapi/templates`. Importantly, do not commit the unsealed secret!
|
|
29
|
+
6. Once this is pushed to the main branch, you can check the k8s dashboard to see if the secret has successfully been added.
|
|
30
|
+
|
|
31
|
+
<div style="border: 2px solid #f39c12; background-color: #fef2e4; padding: 10px; margin: 15px 0; border-radius: 5px;">
|
|
32
|
+
<strong>Warning:</strong> The mx-bluesky-blueapi image is responsible for your blueapi version and your python environment. It is independent from the mx-bluesky and dodal repos in the scratch folder. Currently, the versions of these repos must be manually managed. This will be addressed <a href="https://github.com/DiamondLightSource/blueapi/issues/933" target="_blank" style="color: #e67e22; text-decoration: underline;">here</a>.
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
Paths to required credentials:
|
|
36
|
+
|
|
37
|
+
- Zocalo api reader: `/dls_sw/apps/zocalo/secrets/rabbitmq-api-reader.yml`
|
|
38
|
+
- Zocalo RMQ credentials: `/dls_sw/apps/zocalo/secrets/rabbitmq-credentials.yml`
|
|
39
|
+
- ispyb (expeye) credentials: `/dls_sw/dasc/mariadb/credentials/ispyb-mx-bluesky-ixx.cfg`
|
|
40
|
+
See [here](https://gitlab.diamond.ac.uk/controls/containers/beamline/i24-services/-/tree/main/services/i24-blueapi/templates?ref_type=heads) For what the templates folder should look like once the above steps have been done.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
:: _dev-guide:
|
|
2
|
+
|
|
1
3
|
General MX-Bluesky Developer Guide
|
|
2
4
|
==================================
|
|
3
5
|
|
|
@@ -25,6 +27,7 @@ Documentation is split into four categories, and each is also accessible from li
|
|
|
25
27
|
:maxdepth: 1
|
|
26
28
|
|
|
27
29
|
how-to/get-started
|
|
30
|
+
how-to/setup-blueapi-for-mx
|
|
28
31
|
how-to/contribute
|
|
29
32
|
how-to/create-a-release
|
|
30
33
|
how-to/deploy-a-release
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
@startuml
|
|
2
|
+
!pragma teoz true
|
|
3
|
+
participant "BlueSky RunEngine" as RE
|
|
4
|
+
box "Opyhd Async Devices"
|
|
5
|
+
participant "Aperture\nScatterguard" as ap_sg
|
|
6
|
+
participant "Smargon" as smargon
|
|
7
|
+
participant "Robot" as robot
|
|
8
|
+
participant "Backlight" as backlight
|
|
9
|
+
participant "OAV" as oav
|
|
10
|
+
participant "Panda" as panda
|
|
11
|
+
participant "Zebra" as zebra
|
|
12
|
+
participant "Zocalo\nResults" as zocalo
|
|
13
|
+
participant "Eiger" as eiger
|
|
14
|
+
end box
|
|
15
|
+
box "Callbacks"
|
|
16
|
+
participant "Robot Load\nISPyB" as RobotLoadISPyB
|
|
17
|
+
participant "Gridscan\nISPyB" as GridscanISPyB
|
|
18
|
+
participant "Grid\nDetection" as GridDetection
|
|
19
|
+
participant "GridScan\nNexus" as GridScanNexus
|
|
20
|
+
participant "Zocalo\nTrigger" as ZocaloCallback
|
|
21
|
+
participant "XRC\nResults" as XRayCentreEventHandler
|
|
22
|
+
participant "Snapshot\nBeam Centre\nAnnotation" as BeamDrawingCallback
|
|
23
|
+
end box
|
|
24
|
+
|
|
25
|
+
RE -> RE:robot_load_then_xray_centre
|
|
26
|
+
activate RE #ffeeee
|
|
27
|
+
opt pin not already loaded
|
|
28
|
+
RE -> RE: robot_load_and_change_energy_plan
|
|
29
|
+
activate RE #ffdddd
|
|
30
|
+
RE -> RE: prepare_for_robot_load
|
|
31
|
+
activate RE #ffcccc
|
|
32
|
+
RE -> ap_sg: Move Aperture Scatterguard out of beam
|
|
33
|
+
activate ap_sg
|
|
34
|
+
RE -> smargon: Home smargon
|
|
35
|
+
activate smargon
|
|
36
|
+
deactivate ap_sg
|
|
37
|
+
deactivate RE /' prepare_for_robot_load '/
|
|
38
|
+
RE -> RE: robot_load_and_snapshots
|
|
39
|
+
activate RE #ffcccc
|
|
40
|
+
activate RobotLoadISPyB
|
|
41
|
+
RE -> RobotLoadISPyB: send parameters to robot load callback
|
|
42
|
+
RE -> backlight: move backlight in
|
|
43
|
+
RE -> RE: do_robot_load
|
|
44
|
+
activate RE #ffbbbb
|
|
45
|
+
RE -> robot: trigger robot load
|
|
46
|
+
activate robot
|
|
47
|
+
RE -> RE: set_energy_plan
|
|
48
|
+
note right of RE: (see below)
|
|
49
|
+
deactivate robot
|
|
50
|
+
deactivate RE /' do_robot_load '/
|
|
51
|
+
RE -> smargon: Restore motor positions
|
|
52
|
+
deactivate smargon
|
|
53
|
+
RE -> oav: trigger snapshots
|
|
54
|
+
RE -> RobotLoadISPyB: read hardware
|
|
55
|
+
RE -> RobotLoadISPyB: record snapshots
|
|
56
|
+
deactivate RE /'robot_load_and_snapshots'/
|
|
57
|
+
return /'robot_load_and_change_energy_plan'/
|
|
58
|
+
deactivate RobotLoadISPyB
|
|
59
|
+
end /'pin not already loaded'/
|
|
60
|
+
alt pin is loaded
|
|
61
|
+
RE -> RE: set_energy_plan
|
|
62
|
+
end /'pin is loaded'/
|
|
63
|
+
RE -> RE++ : start_preparing_data_collection_then_do_plan
|
|
64
|
+
RE -> eiger ++ : arm the eiger
|
|
65
|
+
RE -> GridscanISPyB ++ : send parameters to grdscan callback
|
|
66
|
+
RE -> RE ++ #ffdddd : pin_centre_then_flyscan_plan
|
|
67
|
+
RE -> RE: setup_beamline_for_oav
|
|
68
|
+
RE -> RE: pin_tip_centre_plan
|
|
69
|
+
...do pin tip centring...
|
|
70
|
+
RE -> RE ++ #ffcccc: detect_grid_and_do_gridscan
|
|
71
|
+
RE -> RE: setup_beamline_for_oav
|
|
72
|
+
RE -> ap_sg ++: prepare aperture scatterguard\nfor gridscan in background
|
|
73
|
+
activate GridDetection
|
|
74
|
+
RE -> RE ++ #ffbbbb: grid_detection_plan
|
|
75
|
+
loop xy and xz grids
|
|
76
|
+
RE -> smargon: rotate omega
|
|
77
|
+
RE -> oav: trigger OAV snapshot
|
|
78
|
+
RE -> GridscanISPyB: snapshot event with oav + smargon state
|
|
79
|
+
& RE -> BeamDrawingCallback ++
|
|
80
|
+
BeamDrawingCallback -> BeamDrawingCallback : save snapshot details\n\
|
|
81
|
+
to generate rotation\n\
|
|
82
|
+
snapshots later
|
|
83
|
+
end
|
|
84
|
+
deactivate RE /'grid_detection_plan'/
|
|
85
|
+
deactivate GridDetection
|
|
86
|
+
RE -> RE ++
|
|
87
|
+
...grid detection...
|
|
88
|
+
return
|
|
89
|
+
RE -> backlight: move backlight out
|
|
90
|
+
ap_sg -> RE --: aperture scatterguard completes
|
|
91
|
+
RE -> RE ++ #ffaaaa : common_flycan_xray_centre
|
|
92
|
+
RE -> eiger : setup detector parameters
|
|
93
|
+
RE -> GridScanNexus++: send gridscan parameters
|
|
94
|
+
RE -> panda : configure panda
|
|
95
|
+
RE -> zebra : configure zebra for panda
|
|
96
|
+
RE -> panda ++ : arm panda
|
|
97
|
+
RE -> zocalo ++ : stage zocalo device
|
|
98
|
+
RE -> RE ++ #ff9999 : run_gridscan
|
|
99
|
+
RE -> GridscanISPyB : read hardware before
|
|
100
|
+
& RE -> GridScanNexus
|
|
101
|
+
RE <-> eiger : stage eiger (ensures arming complete if not already)
|
|
102
|
+
RE -> ZocaloCallback ++ : send params to Zocalo callback
|
|
103
|
+
zocalo -> RE : zocalo stage completes
|
|
104
|
+
RE -> ZocaloCallback : trigger zocalo with detector filename
|
|
105
|
+
RE -> panda ++ : kickoff gridscan
|
|
106
|
+
RE -> GridscanISPyB : read hardware during
|
|
107
|
+
& RE -> GridScanNexus
|
|
108
|
+
deactivate GridScanNexus
|
|
109
|
+
...perform gridscan...
|
|
110
|
+
panda -> RE --
|
|
111
|
+
eiger -> RE -- : unstage eiger
|
|
112
|
+
RE -> ZocaloCallback : notify Zocalo of completion
|
|
113
|
+
deactivate ZocaloCallback
|
|
114
|
+
deactivate RE /' run_gridscan '/
|
|
115
|
+
RE -> zocalo ++: fetch results from zocalo
|
|
116
|
+
...wait for Zocalo processing...
|
|
117
|
+
zocalo -> RE -- : detected xtal centres
|
|
118
|
+
RE -> XRayCentreEventHandler ++ : post detected centres to callback
|
|
119
|
+
zocalo -> RE -- : unstage zocalo
|
|
120
|
+
panda -> RE -- : unstage panda
|
|
121
|
+
RE -> zebra : tidy zebra
|
|
122
|
+
deactivate RE /'common_flyscan_xray_centre'/
|
|
123
|
+
deactivate RE /' detect_grid_and_do_gridscan'/
|
|
124
|
+
return /' pin_centre_then_flyscan_plan'/
|
|
125
|
+
deactivate GridscanISPyB
|
|
126
|
+
deactivate RE /' start_preparing_data_collection_then_do_plan '/
|
|
127
|
+
deactivate RE /'robot_load_then_xray_centre'/
|
|
128
|
+
note over XRayCentreEventHandler
|
|
129
|
+
Results collected later by rotation
|
|
130
|
+
end note
|
|
131
|
+
@enduml
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@startuml
|
|
2
|
+
!pragma teoz true
|
|
3
|
+
participant "BlueSky RunEngine" as RE
|
|
4
|
+
box "Opyhd Async Devices"
|
|
5
|
+
participant "Aperture\nScatterguard" as ap_sg
|
|
6
|
+
participant "Smargon" as smargon
|
|
7
|
+
participant "Robot" as robot
|
|
8
|
+
participant "Backlight" as backlight
|
|
9
|
+
participant "OAV" as oav
|
|
10
|
+
participant "Zebra" as zebra
|
|
11
|
+
participant "Eiger" as eiger
|
|
12
|
+
participant "Synchrotron" as synchrotron
|
|
13
|
+
end box
|
|
14
|
+
box "Callbacks"
|
|
15
|
+
participant "Rotation\nISPyB" as RotationISPyB
|
|
16
|
+
participant "Rotation\nNexus" as RotationScanNexus
|
|
17
|
+
participant "XRC\nResults" as XRayCentreEventHandler
|
|
18
|
+
participant "Snapshot\nBeam Centre\nAnnotation" as BeamDrawingCallback
|
|
19
|
+
end box
|
|
20
|
+
|
|
21
|
+
activate XRayCentreEventHandler
|
|
22
|
+
activate BeamDrawingCallback
|
|
23
|
+
XRayCentreEventHandler -> RE : results from gridscan
|
|
24
|
+
deactivate XRayCentreEventHandler
|
|
25
|
+
|
|
26
|
+
RE -> eiger : configure eiger parameters
|
|
27
|
+
|
|
28
|
+
RE -> RE ++ : start_preparing_data_collection_then_do_plan
|
|
29
|
+
RE -> eiger ++ : start arming the eiger
|
|
30
|
+
RE -> RotationScanNexus ++ : send rotation parameters
|
|
31
|
+
loop for each rotation
|
|
32
|
+
RE -> RotationISPyB ++: send rotation parameters (ROTATION_OUTER)
|
|
33
|
+
& RotationISPyB -> RotationScanNexus
|
|
34
|
+
RE -> smargon : move to xtal centre
|
|
35
|
+
RE -> RE : setup_beamline_for_oav
|
|
36
|
+
note right of RE : (if snapshots not derived from gridscan snapshots)
|
|
37
|
+
RE -> ap_sg ++ : prepare aperture
|
|
38
|
+
RE -> RE ++ #ffdddd : oav_snapshot_plan
|
|
39
|
+
loop for each snapshot
|
|
40
|
+
RE -> smargon : rotate
|
|
41
|
+
RE -> oav : configure + trigger snapshot (if taking real snapshots)
|
|
42
|
+
oav -> oav : save snapshots
|
|
43
|
+
RE -> RotationISPyB : generate snapshot event
|
|
44
|
+
& RE -> BeamDrawingCallback
|
|
45
|
+
BeamDrawingCallback -> BeamDrawingCallback : annotate snapshots
|
|
46
|
+
end
|
|
47
|
+
deactivate BeamDrawingCallback
|
|
48
|
+
deactivate RE /' oav_snapshot_plan '/
|
|
49
|
+
RE -> RE ++ #ffdddd : rotation_scan_plan
|
|
50
|
+
RE -> RotationISPyB ++ : send scan points (ROTATION_SCAN_MAIN)
|
|
51
|
+
RE -> zebra ++ : configure zebra for rotation
|
|
52
|
+
RE -> RE ++ #ffcccc : setup_sample_environment
|
|
53
|
+
RE -> backlight : move backlight out
|
|
54
|
+
ap_sg -> RE -- : select aperture completed
|
|
55
|
+
deactivate RE /' setup_sample_environment '/
|
|
56
|
+
RE -> smargon : set velocity
|
|
57
|
+
RE -> zebra : arm zebra PC
|
|
58
|
+
opt wait for topup
|
|
59
|
+
RE -> synchrotron ++ : check synchrotron status vs desired exposure
|
|
60
|
+
...wait until topup is complete if necessary...
|
|
61
|
+
return
|
|
62
|
+
end
|
|
63
|
+
RE -> smargon : trigger scan
|
|
64
|
+
RE -> RotationISPyB : read hardware during scan
|
|
65
|
+
& -> RotationScanNexus
|
|
66
|
+
deactivate RE /' rotation_scan_plan '/
|
|
67
|
+
RE -> RotationISPyB : record subplan exit status
|
|
68
|
+
deactivate RotationISPyB
|
|
69
|
+
end /' loop for each rotation '/
|
|
70
|
+
deactivate RotationISPyB
|
|
71
|
+
eiger -> RE -- : unstage eiger
|
|
72
|
+
RE -> zebra : tidy zebra
|
|
73
|
+
deactivate zebra
|
|
74
|
+
deactivate RotationScanNexus
|
|
75
|
+
deactivate RE /' start_preparing_data_collection_then_do_plan '/
|
|
76
|
+
|
|
77
|
+
@enduml
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@startuml
|
|
2
|
+
!pragma teoz true
|
|
3
|
+
participant "BlueSky RunEngine" as RE
|
|
4
|
+
box "Opyhd Async Devices"
|
|
5
|
+
participant "Undulator" as undulator
|
|
6
|
+
participant "DCM" as dcm
|
|
7
|
+
participant "Transmission\nand Feedback" as feedback
|
|
8
|
+
participant "Mirrors" as mirrors
|
|
9
|
+
participant "Mirror\nVoltages" as voltages
|
|
10
|
+
end box
|
|
11
|
+
|
|
12
|
+
group set_energy_plan
|
|
13
|
+
RE -> RE: set_energy_plan
|
|
14
|
+
activate RE
|
|
15
|
+
RE -> feedback: feedback off
|
|
16
|
+
activate feedback
|
|
17
|
+
RE -> undulator: set undulator gap for requested energy
|
|
18
|
+
activate undulator
|
|
19
|
+
RE -> dcm: Adjust DCM pitch and roll for energy
|
|
20
|
+
activate dcm
|
|
21
|
+
opt mirror stripe needs changing
|
|
22
|
+
RE -> mirrors: Adjust mirror stripe
|
|
23
|
+
activate mirrors
|
|
24
|
+
RE -> mirrors: Adjust yaw, lat
|
|
25
|
+
{start_voltages} RE -> voltages: Adjust mirror voltages
|
|
26
|
+
activate voltages
|
|
27
|
+
...Wait for all voltages to settle...
|
|
28
|
+
{end_voltages} voltages -> RE
|
|
29
|
+
deactivate voltages
|
|
30
|
+
deactivate mirrors
|
|
31
|
+
end
|
|
32
|
+
undulator -> RE
|
|
33
|
+
deactivate undulator
|
|
34
|
+
deactivate dcm
|
|
35
|
+
deactivate feedback
|
|
36
|
+
deactivate RE /' set energy plan '/
|
|
37
|
+
end
|
|
38
|
+
@enduml
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
Server Install
|
|
2
|
+
--------------
|
|
3
|
+
|
|
4
|
+
Install Location
|
|
5
|
+
~~~~~~~~~~~~~~~~
|
|
6
|
+
|
|
7
|
+
Hyperion is generally installed in the beamline software directory:
|
|
8
|
+
|
|
9
|
+
``/dls_sw/<beamline>/software/bluesky``
|
|
10
|
+
|
|
11
|
+
This directory contains versioned installation folders ``mx-bluesky_vx.y.z`` for each installed version. Within the
|
|
12
|
+
directory there is a symlink ``hyperion`` to the currently active version. This is generally a symlink to either
|
|
13
|
+
``hyperion_stable`` or ``hyperion_latest`` symlinks which then point to the latest stable and development releases
|
|
14
|
+
respectively.
|
|
15
|
+
|
|
16
|
+
Switching Versions
|
|
17
|
+
~~~~~~~~~~~~~~~~~~
|
|
18
|
+
|
|
19
|
+
For example to switch from the development to the stable release simply:
|
|
20
|
+
|
|
21
|
+
::
|
|
22
|
+
|
|
23
|
+
rm hyperion
|
|
24
|
+
ln -s hyperion_latest hyperion
|
|
25
|
+
|
|
26
|
+
After this you will need to run ``hyperion_restart()`` in the GDA jython console to restart hyperion
|
|
27
|
+
|
|
28
|
+
Verifying that Hyperion is running
|
|
29
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
30
|
+
|
|
31
|
+
To verify that the correct version of Hyperion is running, you should be able to view the process on the control
|
|
32
|
+
server, ssh into the control server, the output of ``ps ax`` should be something like the following, showing which
|
|
33
|
+
deployment is currently running. You should see two processes, the main process and also the external callback process.
|
|
34
|
+
|
|
35
|
+
::
|
|
36
|
+
|
|
37
|
+
$ ps ax | grep hyperion
|
|
38
|
+
1181420 ? Sl 2:36 /dls_sw/i03/software/bluesky/mx-bluesky_v1.5.0/mx-bluesky/.venv/bin/python /dls_sw/i03/software/bluesky/mx-bluesky_v1.5.0/mx-bluesky/.venv/bin/hyperion
|
|
39
|
+
1181422 ? Sl 1:54 /dls_sw/i03/software/bluesky/mx-bluesky_v1.5.0/mx-bluesky/.venv/bin/python /dls_sw/i03/software/bluesky/mx-bluesky_v1.5.0/mx-bluesky/.venv/bin/hyperion-callbacks
|
|
40
|
+
|
|
41
|
+
Kubernetes Install
|
|
42
|
+
------------------
|
|
43
|
+
|
|
44
|
+
If Hyperion is deployed on Kubernetes (currently experimental) then it can be managed from the beamline kubernetes
|
|
45
|
+
dashboard, e.g.
|
|
46
|
+
https://k8s-i03-dashboard.diamond.ac.uk
|
|
47
|
+
|
|
48
|
+
In the beamline namespace there will be a deployment ``hyperion-deployment``, a ``hyperion-svc`` service and associated
|
|
49
|
+
pods, ingress etc. through which the current state may be observed / managed.
|
|
50
|
+
|
|
51
|
+
Logging
|
|
52
|
+
~~~~~~~
|
|
53
|
+
|
|
54
|
+
On kubernetes deployments, the initial startup is sent to standard IO and is captured as part of the standard
|
|
55
|
+
kubernetes logging facility.
|
|
56
|
+
|
|
57
|
+
The configured logging locations are defined in the ``values.yaml`` for the specific deployment Helm chart.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Overview of the Data Collection Plan
|
|
2
|
+
====================================
|
|
3
|
+
|
|
4
|
+
This page shows a high level overview of the overall data collection plan, called ``load_centre_collect``.
|
|
5
|
+
|
|
6
|
+
The intention of this is to show the sequencing of operations, including those operations that happen concurrently.
|
|
7
|
+
|
|
8
|
+
This has been broken down into three main diagrams
|
|
9
|
+
|
|
10
|
+
- robot load and centring
|
|
11
|
+
- rotations
|
|
12
|
+
- changing energy
|
|
13
|
+
|
|
14
|
+
At a high level ``load_centre_collect`` performs all three operations, however depending on the requested collection
|
|
15
|
+
parameters and whether the correct pin is already loaded, it may skip some of these steps.
|
|
16
|
+
|
|
17
|
+
Note that not all of the operations are shown, in order to reduce the complexity of the diagrams, and some of the
|
|
18
|
+
steps have been slightly simplified.
|
|
19
|
+
|
|
20
|
+
In conjunction with the `Code Map`_ this should provide a good overview of operations that may assist in interpreting
|
|
21
|
+
logging output should any issues occur.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
.. _`Code Map`: ../../../developer/code-map/index.rst
|
|
25
|
+
|
|
26
|
+
Robot Load and X-ray Centring
|
|
27
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
28
|
+
|
|
29
|
+
This shows
|
|
30
|
+
|
|
31
|
+
- Robot Load
|
|
32
|
+
- Pin Tip Detection
|
|
33
|
+
- Grid Detection
|
|
34
|
+
- X-ray Centring
|
|
35
|
+
|
|
36
|
+
.. uml:: concurrent_operations.puml
|
|
37
|
+
|
|
38
|
+
Rotations
|
|
39
|
+
~~~~~~~~~
|
|
40
|
+
|
|
41
|
+
.. uml:: concurrent_operations_rotation.puml
|
|
42
|
+
|
|
43
|
+
Set energy
|
|
44
|
+
~~~~~~~~~~
|
|
45
|
+
|
|
46
|
+
.. uml:: concurrent_operations_set_energy.puml
|
|
@@ -13,6 +13,7 @@ Configuration of several properties that control Hyperion execution are availabl
|
|
|
13
13
|
|
|
14
14
|
Note that making a change to these properties generally requires a restart of the GDA server.
|
|
15
15
|
|
|
16
|
+
Also note that some of these configuration properties will be removed in a future release of Hyperion.
|
|
16
17
|
|
|
17
18
|
.. csv-table:: Configuration properties
|
|
18
19
|
:widths: auto
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
Hyperion User Guide
|
|
2
2
|
===================
|
|
3
3
|
|
|
4
|
-
The Hyperion User Guide describes how to run, configure and troubleshoot Hyperion.
|
|
5
|
-
the `Developer Guide`_.
|
|
4
|
+
The Hyperion User Guide describes how to run, configure and troubleshoot Hyperion. See the `getting started <../../developer/general/how-to/get-started.html>`_ guide for installation instructions.
|
|
6
5
|
|
|
7
6
|
What is Hyperion?
|
|
8
7
|
-----------------
|
|
@@ -17,7 +16,7 @@ The software supports two modes of operation:
|
|
|
17
16
|
instructions). GDA mode will be removed in a future release.
|
|
18
17
|
|
|
19
18
|
The mode of operation is determined by configuration using the ``gda.mx.udc.hyperion.enable`` parameter inside
|
|
20
|
-
GDA properties. See
|
|
19
|
+
GDA properties. See :doc:`configuration<./configuration>` for other properties that control Hyperions behavior.
|
|
21
20
|
|
|
22
21
|
Once Hyperion has received a request, either from GDA or directly from Agamemnon, it will do the following tasks:
|
|
23
22
|
|
|
@@ -43,15 +42,14 @@ to a user is:
|
|
|
43
42
|
- If an xray centre cannot be done on a pin (because it is too long/short or bent), or if no diffraction is found in the
|
|
44
43
|
xray centring data, the sample will be immediately unloaded without a rotation scan being done and the next sample loaded.
|
|
45
44
|
|
|
46
|
-
For a more detailed
|
|
47
|
-
|
|
48
|
-
.. _Code Map: ../../developer/code-map
|
|
49
|
-
.. _Developer Guide: ../../developer/hyperion/deploying-hyperion
|
|
50
|
-
.. _configuration: ./configuration
|
|
45
|
+
For a more detailed overview of operations, it may be helpful to view the
|
|
46
|
+
:doc:`Data Collection Plan Diagrams<./advanced/operations>`
|
|
51
47
|
|
|
52
48
|
.. toctree::
|
|
53
49
|
:caption: Topics
|
|
54
50
|
:maxdepth: 1
|
|
55
51
|
:glob:
|
|
52
|
+
|
|
56
53
|
|
|
57
54
|
*
|
|
55
|
+
advanced/index
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Logging
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
Hyperion logs to a number of different locations. The sections below describe the locations that are configured via
|
|
5
|
+
environment variables for a standard server install.
|
|
6
|
+
|
|
7
|
+
Graylog
|
|
8
|
+
~~~~~~~
|
|
9
|
+
|
|
10
|
+
Graylog is the recommended way to view logs. It is used for more centralised logging which is also more easily
|
|
11
|
+
searched and archived. Log messages are sent to the `Hyperion graylog stream <https://graylog.diamond.ac.uk/streams/66264f5519ccca6d1c9e4e03/search>`_.
|
|
12
|
+
|
|
13
|
+
To find different severity of message you can search for ``level: X``. Where X is:
|
|
14
|
+
|
|
15
|
+
* ``3``: Errors messages - usually causing Hyperion to have stopped. Note that no diffraction is currently logged as an error but this doesn't stop Hyperion, only skip the sample. This will be improved by https://github.com/DiamondLightSource/mx-bluesky/issues/427.
|
|
16
|
+
* ``4``: Warnings - usually not a major problem
|
|
17
|
+
* ``6``: Info - Just telling you what Hyperion is doing
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Startup Log
|
|
21
|
+
~~~~~~~~~~~
|
|
22
|
+
|
|
23
|
+
When ``hyperion_restart()`` is called by GDA, it will log the initial console output to a log file. This log file
|
|
24
|
+
location is
|
|
25
|
+
controlled by the ``gda.logs.dir`` property and is typically ``/dls_sw/<beamline>/logs/bluesky``.
|
|
26
|
+
|
|
27
|
+
Log files
|
|
28
|
+
~~~~~~~~~
|
|
29
|
+
|
|
30
|
+
By default, Hyperion logs to the filesystem.
|
|
31
|
+
|
|
32
|
+
The log file location is controlled by the ``LOG_DIR`` environment value. Typically this can be found in
|
|
33
|
+
``/dls_sw/<beamline>/logs/bluesky``
|
|
34
|
+
|
|
35
|
+
Debug Log
|
|
36
|
+
~~~~~~~~~
|
|
37
|
+
|
|
38
|
+
The standard logs files do not record all messages, only those at INFO level or higher, in order to keep storage
|
|
39
|
+
requirements to a minimum.
|
|
40
|
+
In the event of an error occurring, then trace-level logging for the most recent events (by default 5000) is flushed
|
|
41
|
+
to a separate set of log files. Due to the size of these files, they are stored separately from the main log files
|
|
42
|
+
. These logs are located in ``/dls/tmp/<beamline>/logs/bluesky`` by default, or
|
|
43
|
+
otherwise as specified by the ``DEBUG_LOG_DIR`` environment variable.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Troubleshooting
|
|
2
|
+
===============
|
|
3
|
+
|
|
4
|
+
.. contents::
|
|
5
|
+
|
|
6
|
+
Known Issues
|
|
7
|
+
------------
|
|
8
|
+
|
|
9
|
+
Odin Errors when there are filesystem issues
|
|
10
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
11
|
+
|
|
12
|
+
https://github.com/DiamondLightSource/mx-bluesky/issues/1199
|
|
13
|
+
|
|
14
|
+
On occasions where there are issues with the filesystem you may see errors similar to
|
|
15
|
+
|
|
16
|
+
::
|
|
17
|
+
|
|
18
|
+
ophyd.utils.errors.UnknownStatusFailure: The status (Status(obj=EpicsSignalWithRBV
|
|
19
|
+
(read_pv='BL03I-EA-EIGER-01:OD:Capture_RBV', name='eiger_odin_file_writer_capture', parent='eiger_odin_file_writer',
|
|
20
|
+
value=0, timestamp=1754488753.208739, auto_monitor=False, string=False, write_pv='BL03I-EA-EIGER-01:OD:Capture',
|
|
21
|
+
limits=False, put_complete=False), done=True, success=False) & SubscriptionStatus(device=eiger_odin_meta_ready,
|
|
22
|
+
done=False, success=False)) has failed. To obtain more specific, helpful errors in the future, update the Device
|
|
23
|
+
to use set_exception(...) instead of _finished(success=False).
|
|
24
|
+
|
|
25
|
+
hyperion_restart() sometimes times out
|
|
26
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
27
|
+
|
|
28
|
+
Sometimes hyperion_restart() will time out waiting for Hyperion to start, in the Jython console you may see the
|
|
29
|
+
following
|
|
30
|
+
|
|
31
|
+
::
|
|
32
|
+
|
|
33
|
+
InteractiveConsole exception: hyperion_utils.exceptions.HyperionFailedException: Hyperion failed to start, see /dls_sw/i03/logs/bluesky/start_log.log for log
|
|
34
|
+
org.python.core.PyException: hyperion_utils.exceptions.HyperionFailedException: Hyperion failed to start, see /dls_sw/i03/logs/bluesky/start_log.log for log
|
|
35
|
+
at org.python.core.PyException.doRaise(PyException.java:239)
|
|
36
|
+
at org.python.core.Py.makeException(Py.java:1654)
|
|
37
|
+
at org.python.core.Py.makeException(Py.java:1658)
|
|
38
|
+
at org.python.core.Py.makeException(Py.java:1662)
|
|
39
|
+
|
|
40
|
+
However on inspection the start log will not show any errors. Hyperion running can be verified as above `Verifying
|
|
41
|
+
that Hyperion is running`_
|
|
42
|
+
|
|
43
|
+
.. _`Verifying that Hyperion is running`: advanced/install.rst
|
|
44
|
+
|
|
45
|
+
Smargon Motion
|
|
46
|
+
~~~~~~~~~~~~~~
|
|
47
|
+
|
|
48
|
+
There are potential race conditions surrounding smargon moves. This may manifest as a CancelledError or TimeoutError
|
|
49
|
+
on one of the smargon axes. The workaround if this occurs is to run a collection in GDA to confirm correct operation
|
|
50
|
+
and then return control to Hyperion.
|
|
51
|
+
|
|
52
|
+
We believe this is fixed with https://github.com/DiamondLightSource/mx-bluesky/issues/1049 however it is possible
|
|
53
|
+
that this may recur.
|