mx-bluesky 1.5.5__tar.gz → 1.5.6__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.5 → mx_bluesky-1.5.6}/PKG-INFO +2 -2
- mx_bluesky-1.5.6/docs/developer/murko-integration/explanations/DrawioImages.rst +13 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/murko-integration/explanations/architecture.rst +1 -1
- mx_bluesky-1.5.6/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/murko-integration/index.rst +1 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/user/hyperion/configuration.rst +29 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/user/hyperion/index.rst +17 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/user/hyperion/pvs.rst +9 -0
- mx_bluesky-1.5.6/docs/user/hyperion/troubleshooting.rst +137 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/pyproject.toml +1 -1
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/_version.py +3 -3
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +25 -2
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/parameters/components.py +1 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/__main__.py +16 -3
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/baton_handler.py +39 -9
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +19 -8
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +6 -2
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/constants.py +1 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/plan_runner.py +2 -4
- mx_bluesky-1.5.6/src/mx_bluesky/hyperion/plan_runner_api.py +43 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/PKG-INFO +2 -2
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/SOURCES.txt +6 -3
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/requires.txt +1 -1
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/conftest.py +21 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +4 -4
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +1 -1
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +2 -0
- mx_bluesky-1.5.6/tests/system_tests/hyperion/test_main_udc.py +60 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +35 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/conftest.py +5 -1
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/conftest.py +41 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +36 -7
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/test_baton_handler.py +287 -106
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/test_main_system.py +56 -7
- mx_bluesky-1.5.6/tests/unit_tests/hyperion/test_plan_runner_api.py +35 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/test_runner.py +12 -6
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/t01.py +12 -0
- mx_bluesky-1.5.5/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
- mx_bluesky-1.5.5/docs/user/hyperion/logging.rst +0 -41
- mx_bluesky-1.5.5/utility_scripts/beam_off_trickery.sh +0 -11
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.copier-answers.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.coveragerc +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.devcontainer/Dockerfile +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.devcontainer/devcontainer.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.dockerignore +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/CODEOWNERS +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/CONTRIBUTING.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/actions/install_requirements/action.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/actions/verify-nexus/Dockerfile +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/actions/verify-nexus/action.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/actions/verify-nexus/entrypoint.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/dependabot.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/pages/index.html +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/pages/make_switcher.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_check.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_container.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_dist.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_docs.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_helm.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_pypi.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_release.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_test.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/_tox.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/ci.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.github/workflows/periodic.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.gitignore +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.pre-commit-config.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/extensions.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/launch.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/mx-bluesky.code-workspace +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/settings.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/.vscode/tasks.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/Dockerfile +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/Dockerfile.blueapi +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/Dockerfile.hyperion +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/LICENSE +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/README.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/catalog-info.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/codecov.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/_api.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/_templates/custom-module-template.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/conf.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/code-map/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/explanations/decisions.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/contribute.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/create-a-release.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/how-to/get-started.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/reference/standards.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/general/tutorials/profile-tests.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/reference/gridscan.puml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/reference/readme.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/hyperion/system-tests.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/dls-favicon.ico +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/dls-logo.svg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/motor coordinate systems.odg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/motor-coords-omega-0.svg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/images/motor-coords-omega-alpha.svg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/index.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/user/hyperion/alerts.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/user/hyperion/running.rst +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/Chart.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/templates/deployment.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/templates/ingress.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/templates/service.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/templates/zocalo-config.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/hyperion/values.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/mx-bluesky-blueapi/values.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/redis-to-murko/Chart.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/redis-to-murko/templates/deployment.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/helm/redis-to-murko/values.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/pull_request_template.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/run_hyperion.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/run_hyperion_in_podman.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/setup.cfg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/__main__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/inner_plans/__init__ .py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/inner_plans/udc_default_state.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/parameters/constants.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/parameters/device_composites.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/preprocessors/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/protocols/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/protocols/protocols.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/context.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/exceptions.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/log.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/tracing.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/utils/utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/common/xrc_result.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/definitions.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/device_composites.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/runner.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/utils/context.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/jupyter_example.ipynb +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/phase1_zebra/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/phase1_zebra/device_setup_plans/setup_zebra.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky.egg-info/top_level.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/start_jupyter.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/agamemnon/example_native.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/agamemnon/example_wait.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/ispyb-test-credentials.cfg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/README.md +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/fake_data.h5 +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/scratch/README +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_OAVCentring.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_beamline_parameters.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_config.cfg +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/display.configuration +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_display.configuration +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_domain_properties +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_domain_properties_with_no_gpu +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_domain_properties_with_panda +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/ins_15_33_0.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/ins_15_33_90.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/thau_1_91_0.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/thau_1_91_90.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_lookup_table.txt +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/test_mirror_focus.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/test_data/zocalo-test-configuration.yaml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/web_gui/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/inner_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/inner_plans/test_udc_default_state.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/inner_plans/test_write_sample_status.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/alerting/alerting/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/ispyb/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/parameters/test_components.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/parameters/test_constants.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/preprocessors/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/utils/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/common/utils/test_log.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/test_alert_on_container_change.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/test_utils.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/tests/unit_tests/test_cli.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/build_docker_image.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/build_imginfo.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/deploy/create_venv.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/deploy/test_deploy.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/dev_jaeger_container.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/dls_dev_env.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/docker/entrypoint.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/docker/healthcheck.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/docker/i03-compose.yml +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/generate_plantuml.py +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/graylog/Dockerfile +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/graylog/tcp_input.json +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/procserv_ioc_start.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/request_baton.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/run_imginfo.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/utility_scripts/setup_graylog.sh +0 -0
- {mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/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.6
|
|
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
|
|
@@ -241,7 +241,7 @@ Requires-Dist: blueapi>=0.15.0
|
|
|
241
241
|
Requires-Dist: ophyd>=1.10.5
|
|
242
242
|
Requires-Dist: ophyd-async>=0.10.0a2
|
|
243
243
|
Requires-Dist: bluesky>=1.13.1
|
|
244
|
-
Requires-Dist: dls-dodal==1.
|
|
244
|
+
Requires-Dist: dls-dodal==1.58.0
|
|
245
245
|
Provides-Extra: dev
|
|
246
246
|
Requires-Dist: black; extra == "dev"
|
|
247
247
|
Requires-Dist: build; extra == "dev"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Draw.io Images
|
|
2
|
+
--------------
|
|
3
|
+
|
|
4
|
+
When working with diagrams created using Draw.io, it's important to ensure that the images retain their embedded metadata. This metadata allows the diagrams to be re-uploaded to Draw.io later for editing.
|
|
5
|
+
|
|
6
|
+
To preserve this metadata:
|
|
7
|
+
|
|
8
|
+
- When exporting from Draw.io, use the "File > Export As > PNG (with embedded XML)" or SVG (with embedded content) option.
|
|
9
|
+
- Make sure the "Include a copy of my diagram" or similar checkbox is selected during export.
|
|
10
|
+
|
|
11
|
+
This ensures that the image isn't just a flat graphic—it includes the necessary data for Draw.io to reconstruct and edit the diagram later.
|
|
12
|
+
|
|
13
|
+
Tip: There is a chance of losing the metadata though if not handled properly. Sharing the image through Slack for example will delete the metadata associated with the image. Instead, use something like e-mail.
|
{mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/docs/developer/murko-integration/explanations/architecture.rst
RENAMED
|
@@ -3,7 +3,7 @@ Murko Architecture
|
|
|
3
3
|
|
|
4
4
|
The architecture of how Murko is integrated is still in flux but as of 07/08 the following has been tried on the beamline.
|
|
5
5
|
|
|
6
|
-
.. image:: ../images/
|
|
6
|
+
.. image:: ../images/Murko.drawio.png
|
|
7
7
|
|
|
8
8
|
The mx-bluesky code is deployed into the `beamline kubernetes cluster <https://k8s-i04.diamond.ac.uk/>`_ behind a `blueAPI <https://github.com/DiamondLightSource/blueapi>`_ REST interface. Alongside this an instance of murko is also deployed to the k8s cluster.
|
|
9
9
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
Configuration
|
|
2
2
|
-------------
|
|
3
3
|
|
|
4
|
+
Hyperion main configuration
|
|
5
|
+
===========================
|
|
6
|
+
|
|
4
7
|
Configuration of several properties that control Hyperion execution are available. These can be edited in the
|
|
5
8
|
``domain.properties`` file typically found in
|
|
6
9
|
|
|
@@ -8,6 +11,8 @@ Configuration of several properties that control Hyperion execution are availabl
|
|
|
8
11
|
|
|
9
12
|
/dls_sw/<beamline>/software/daq_configuration/domain.properties
|
|
10
13
|
|
|
14
|
+
Note that making a change to these properties generally requires a restart of the GDA server.
|
|
15
|
+
|
|
11
16
|
|
|
12
17
|
.. csv-table:: Configuration properties
|
|
13
18
|
:widths: auto
|
|
@@ -23,3 +28,27 @@ Configuration of several properties that control Hyperion execution are availabl
|
|
|
23
28
|
"gda.mx.hyperion.xrc.use_gpu_results", "boolean", "If true, then zocalo gridscan processing uses the GPU results"
|
|
24
29
|
"gda.mx.hyperion.xrc.use_roi_mode", "boolean", "If true then ROI mode is used."
|
|
25
30
|
"gda.mx.udc.hyperion.enable", "boolean", "Enables Hyperion UDC mode."
|
|
31
|
+
|
|
32
|
+
Beamline configuration/calibration files
|
|
33
|
+
========================================
|
|
34
|
+
|
|
35
|
+
Hyperion makes use of other beamline configuration and calibration files which are also currently stored in
|
|
36
|
+
|
|
37
|
+
::
|
|
38
|
+
|
|
39
|
+
/dls_sw/<beamline>/software/daq_configuration
|
|
40
|
+
|
|
41
|
+
These are currently shared with GDA, so changes to these files will affect both applications.
|
|
42
|
+
|
|
43
|
+
Config Server
|
|
44
|
+
=============
|
|
45
|
+
|
|
46
|
+
If the `Config Server`_ is deployed and running, Hyperion is configured to use it in preference to reading the
|
|
47
|
+
``domain.properties`` file directly. However in the event of the config server being unavailable Hyperion will fall
|
|
48
|
+
back to reading it from the filesystem.
|
|
49
|
+
|
|
50
|
+
Note that currently the rest of the configuration files are not read from the config server, but the intention is that
|
|
51
|
+
ultimately it will be the source of all configuration and the remainder of the files in ``daq_configuration`` will be
|
|
52
|
+
moved over to it.
|
|
53
|
+
|
|
54
|
+
.. _Config Server: https://github.com/DiamondLightSource/daq-config-server/
|
|
@@ -18,6 +18,23 @@ The software supports two modes of operation:
|
|
|
18
18
|
|
|
19
19
|
The mode of operation is determined by configuration using the ``gda.mx.udc.hyperion.enable`` parameter
|
|
20
20
|
|
|
21
|
+
Once Hyperion has received a request, either from GDA or directly from Agamemnon, it will do the following tasks:
|
|
22
|
+
|
|
23
|
+
- Robot Load (if necessary)
|
|
24
|
+
- Pin tip detection using the OAV
|
|
25
|
+
- Xray Centring
|
|
26
|
+
- A number of data collections, depending on the number of centres returned from Zocalo and the applied selection criteria
|
|
27
|
+
|
|
28
|
+
During this it will generate the following outputs:
|
|
29
|
+
|
|
30
|
+
- Snapshots on robot load, XRC and rotations
|
|
31
|
+
- Data collections in ISPyB for the gridscans and rotations as well as entries for robot load/unload
|
|
32
|
+
- Nexus files for each data collection
|
|
33
|
+
- Alert notifications on loading a new container and on beamline error conditions when intervention is required.
|
|
34
|
+
|
|
35
|
+
For a more detailed breakdown of the operation, it may be helpful to browse the `Code Map`_
|
|
36
|
+
|
|
37
|
+
.. _Code Map: ../../developer/code-map
|
|
21
38
|
|
|
22
39
|
.. toctree::
|
|
23
40
|
:caption: Topics
|
|
@@ -10,3 +10,12 @@ CURRENT_USER.
|
|
|
10
10
|
Hyperion will only start operating once REQUESTED_USER has been set to Hyperion, at which point it will set
|
|
11
11
|
CURRENT_USER. To request the baton from Hyperion, set REQUESTED_USER to some other value, when Hyperion completes the
|
|
12
12
|
current action, it will relinquish CURRENT_USER.
|
|
13
|
+
|
|
14
|
+
Commissioning Mode
|
|
15
|
+
~~~~~~~~~~~~~~~~~~
|
|
16
|
+
|
|
17
|
+
The baton device also has a COMMISSIONING PV, which when the PV is set to 1, indicates that commissioning mode is
|
|
18
|
+
enabled.
|
|
19
|
+
|
|
20
|
+
Commissioning mode enables testing of Hyperion when there is no beam. Beamline scientists should ensure that the
|
|
21
|
+
COMMISSIONING PV is set to 0 before running Hyperion in production.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
Troubleshooting
|
|
2
|
+
===============
|
|
3
|
+
|
|
4
|
+
.. contents::
|
|
5
|
+
|
|
6
|
+
Logging
|
|
7
|
+
-------
|
|
8
|
+
|
|
9
|
+
Hyperion logs to a number of different locations. The sections below describe the locations that are configured via
|
|
10
|
+
environment variables for a standard server install.
|
|
11
|
+
|
|
12
|
+
Graylog
|
|
13
|
+
~~~~~~~
|
|
14
|
+
|
|
15
|
+
Graylog is the recommended way to view logs. It is used for more centralised logging which is also more easily
|
|
16
|
+
searched and archived. Log messages are sent to the `Hyperion graylog stream <https://graylog.diamond.ac.uk/streams/66264f5519ccca6d1c9e4e03/search>`_.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Startup Log
|
|
20
|
+
~~~~~~~~~~~
|
|
21
|
+
|
|
22
|
+
When ``hyperion_restart()`` is called by GDA, it will log the initial console output to a log file. This log file
|
|
23
|
+
location is
|
|
24
|
+
controlled by the ``gda.logs.dir`` property and is typically ``/dls_sw/<beamline>/logs/bluesky``.
|
|
25
|
+
|
|
26
|
+
Log files
|
|
27
|
+
~~~~~~~~~
|
|
28
|
+
|
|
29
|
+
By default, Hyperion logs to the filesystem.
|
|
30
|
+
|
|
31
|
+
The log file location is controlled by the ``LOG_DIR`` environment value. Typically this can be found in
|
|
32
|
+
``/dls_sw/<beamline>/logs/bluesky``
|
|
33
|
+
|
|
34
|
+
Debug Log
|
|
35
|
+
~~~~~~~~~
|
|
36
|
+
|
|
37
|
+
The standard logs files do not record all messages, only those at INFO level or higher, in order to keep storage
|
|
38
|
+
requirements to a minimum.
|
|
39
|
+
In the event of an error occurring, then trace-level logging for the most recent events (by default 5000) is flushed
|
|
40
|
+
to a separate set of log files. Due to the size of these files, they are stored separately from the main log files
|
|
41
|
+
. These logs are located in ``/dls/tmp/<beamline>/logs/bluesky`` by default, or
|
|
42
|
+
otherwise as specified by the ``DEBUG_LOG_DIR`` environment variable.
|
|
43
|
+
|
|
44
|
+
Server Install
|
|
45
|
+
--------------
|
|
46
|
+
|
|
47
|
+
Install Location
|
|
48
|
+
~~~~~~~~~~~~~~~~
|
|
49
|
+
|
|
50
|
+
Hyperion is generally installed in the beamline software directory:
|
|
51
|
+
|
|
52
|
+
``/dls_sw/<beamline>/software/bluesky``
|
|
53
|
+
|
|
54
|
+
This directory contains versioned installation folders ``mx-bluesky_vx.y.z`` for each installed version. Within the
|
|
55
|
+
directory there is a symlink ``hyperion`` to the currently active version. This is generally a symlink to either
|
|
56
|
+
``hyperion_stable`` or ``hyperion_latest`` symlinks which then point to the latest stable and development releases
|
|
57
|
+
respectively.
|
|
58
|
+
|
|
59
|
+
Switching Versions
|
|
60
|
+
~~~~~~~~~~~~~~~~~~
|
|
61
|
+
|
|
62
|
+
For example to switch from the development to the stable release simply:
|
|
63
|
+
|
|
64
|
+
::
|
|
65
|
+
|
|
66
|
+
rm hyperion
|
|
67
|
+
ln -s hyperion_latest hyperion
|
|
68
|
+
|
|
69
|
+
After this you will need to run ``hyperion_restart()`` in the GDA jython console to restart hyperion
|
|
70
|
+
|
|
71
|
+
Verifying that Hyperion is running
|
|
72
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
73
|
+
|
|
74
|
+
To verify that the correct version of Hyperion is running, you should be able to view the process on the control
|
|
75
|
+
server, ssh into the control server, the output of ``ps ax`` should be something like the following, showing which
|
|
76
|
+
deployment is currently running. You should see two processes, the main process and also the external callback process.
|
|
77
|
+
|
|
78
|
+
::
|
|
79
|
+
|
|
80
|
+
$ ps ax | grep hyperion
|
|
81
|
+
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
|
|
82
|
+
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
|
|
83
|
+
|
|
84
|
+
Kubernetes Install
|
|
85
|
+
------------------
|
|
86
|
+
|
|
87
|
+
If Hyperion is deployed on Kubernetes (currently experimental) then it can be managed from the beamline kubernetes
|
|
88
|
+
dashboard, e.g.
|
|
89
|
+
https://k8s-i03-dashboard.diamond.ac.uk
|
|
90
|
+
|
|
91
|
+
In the beamline namespace there will be a deployment ``hyperion-deployment``, a ``hyperion-svc`` service and associated
|
|
92
|
+
pods, ingress etc. through which the current state may be observed / managed.
|
|
93
|
+
|
|
94
|
+
Logging
|
|
95
|
+
~~~~~~~
|
|
96
|
+
|
|
97
|
+
On kubernetes deployments, the initial startup is sent to standard IO and is captured as part of the standard
|
|
98
|
+
kubernetes logging facility.
|
|
99
|
+
|
|
100
|
+
The configured logging locations are defined in the ``values.yaml`` for the specific deployment Helm chart.
|
|
101
|
+
|
|
102
|
+
Known Issues
|
|
103
|
+
------------
|
|
104
|
+
|
|
105
|
+
Odin Errors when there are filesystem issues
|
|
106
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
107
|
+
|
|
108
|
+
https://github.com/DiamondLightSource/mx-bluesky/issues/1199
|
|
109
|
+
|
|
110
|
+
On occasions where there are issues with the filesystem you may see errors similar to
|
|
111
|
+
|
|
112
|
+
::
|
|
113
|
+
|
|
114
|
+
ophyd.utils.errors.UnknownStatusFailure: The status (Status(obj=EpicsSignalWithRBV
|
|
115
|
+
(read_pv='BL03I-EA-EIGER-01:OD:Capture_RBV', name='eiger_odin_file_writer_capture', parent='eiger_odin_file_writer',
|
|
116
|
+
value=0, timestamp=1754488753.208739, auto_monitor=False, string=False, write_pv='BL03I-EA-EIGER-01:OD:Capture',
|
|
117
|
+
limits=False, put_complete=False), done=True, success=False) & SubscriptionStatus(device=eiger_odin_meta_ready,
|
|
118
|
+
done=False, success=False)) has failed. To obtain more specific, helpful errors in the future, update the Device
|
|
119
|
+
to use set_exception(...) instead of _finished(success=False).
|
|
120
|
+
|
|
121
|
+
hyperion_restart() sometimes times out
|
|
122
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
123
|
+
|
|
124
|
+
Sometimes hyperion_restart() will time out waiting for Hyperion to start, in the Jython console you may see the
|
|
125
|
+
following
|
|
126
|
+
|
|
127
|
+
::
|
|
128
|
+
|
|
129
|
+
InteractiveConsole exception: hyperion_utils.exceptions.HyperionFailedException: Hyperion failed to start, see /dls_sw/i03/logs/bluesky/start_log.log for log
|
|
130
|
+
org.python.core.PyException: hyperion_utils.exceptions.HyperionFailedException: Hyperion failed to start, see /dls_sw/i03/logs/bluesky/start_log.log for log
|
|
131
|
+
at org.python.core.PyException.doRaise(PyException.java:239)
|
|
132
|
+
at org.python.core.Py.makeException(Py.java:1654)
|
|
133
|
+
at org.python.core.Py.makeException(Py.java:1658)
|
|
134
|
+
at org.python.core.Py.makeException(Py.java:1662)
|
|
135
|
+
|
|
136
|
+
However on inspection the start log will not show any errors. Hyperion running can be verified as above `Verifying
|
|
137
|
+
that Hyperion is running`_
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.5.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 5,
|
|
31
|
+
__version__ = version = '1.5.6'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 5, 6)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g6a9297fcb'
|
|
@@ -9,6 +9,7 @@ import bluesky.preprocessors as bpp
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
from bluesky.protocols import Readable
|
|
11
11
|
from bluesky.utils import MsgGenerator
|
|
12
|
+
from dodal.common.beamlines.commissioning_mode import read_commissioning_mode
|
|
12
13
|
from dodal.devices.fast_grid_scan import (
|
|
13
14
|
FastGridScanCommon,
|
|
14
15
|
)
|
|
@@ -226,11 +227,33 @@ def _fetch_xrc_results_from_zocalo(
|
|
|
226
227
|
for xr in filtered_results
|
|
227
228
|
]
|
|
228
229
|
else:
|
|
229
|
-
|
|
230
|
-
|
|
230
|
+
commissioning_mode = yield from read_commissioning_mode()
|
|
231
|
+
if commissioning_mode:
|
|
232
|
+
LOGGER.info("Commissioning mode enabled, returning dummy result")
|
|
233
|
+
flyscan_results = [_generate_dummy_xrc_result(parameters)]
|
|
234
|
+
else:
|
|
235
|
+
LOGGER.warning("No X-ray centre received")
|
|
236
|
+
raise CrystalNotFoundException()
|
|
231
237
|
yield from _fire_xray_centre_result_event(flyscan_results)
|
|
232
238
|
|
|
233
239
|
|
|
240
|
+
def _generate_dummy_xrc_result(params: SpecifiedThreeDGridScan) -> XRayCentreResult:
|
|
241
|
+
com = [params.x_steps / 2, params.y_steps / 2, params.z_steps / 2]
|
|
242
|
+
max_voxel = [round(p) for p in com]
|
|
243
|
+
return _xrc_result_in_boxes_to_result_in_mm(
|
|
244
|
+
XrcResult(
|
|
245
|
+
centre_of_mass=com,
|
|
246
|
+
max_voxel=max_voxel,
|
|
247
|
+
bounding_box=[max_voxel, [p + 1 for p in max_voxel]],
|
|
248
|
+
n_voxels=1,
|
|
249
|
+
max_count=10000,
|
|
250
|
+
total_count=100000,
|
|
251
|
+
sample_id=params.sample_id,
|
|
252
|
+
),
|
|
253
|
+
params,
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
|
|
234
257
|
@bpp.set_run_key_decorator(PlanNameConstants.GRIDSCAN_MAIN)
|
|
235
258
|
@bpp.run_decorator(md={"subplan_name": PlanNameConstants.GRIDSCAN_MAIN})
|
|
236
259
|
def run_gridscan(
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import signal
|
|
2
3
|
import threading
|
|
3
4
|
from dataclasses import asdict
|
|
4
5
|
from sys import argv
|
|
@@ -32,9 +33,10 @@ from mx_bluesky.hyperion.parameters.cli import (
|
|
|
32
33
|
HyperionMode,
|
|
33
34
|
parse_cli_args,
|
|
34
35
|
)
|
|
35
|
-
from mx_bluesky.hyperion.parameters.constants import CONST
|
|
36
|
+
from mx_bluesky.hyperion.parameters.constants import CONST, HyperionConstants
|
|
36
37
|
from mx_bluesky.hyperion.parameters.load_centre_collect import LoadCentreCollect
|
|
37
38
|
from mx_bluesky.hyperion.plan_runner import PlanRunner
|
|
39
|
+
from mx_bluesky.hyperion.plan_runner_api import create_server_for_udc
|
|
38
40
|
from mx_bluesky.hyperion.runner import (
|
|
39
41
|
GDARunner,
|
|
40
42
|
StatusAndMessage,
|
|
@@ -170,7 +172,7 @@ def main():
|
|
|
170
172
|
"""Main application entry point."""
|
|
171
173
|
args = parse_cli_args()
|
|
172
174
|
initialise_globals(args)
|
|
173
|
-
hyperion_port =
|
|
175
|
+
hyperion_port = HyperionConstants.HYPERION_PORT
|
|
174
176
|
context = setup_context(dev_mode=args.dev_mode)
|
|
175
177
|
|
|
176
178
|
if args.mode == HyperionMode.GDA:
|
|
@@ -188,7 +190,18 @@ def main():
|
|
|
188
190
|
)
|
|
189
191
|
runner.wait_on_queue()
|
|
190
192
|
else:
|
|
191
|
-
|
|
193
|
+
plan_runner = PlanRunner(context, args.dev_mode)
|
|
194
|
+
create_server_for_udc(plan_runner)
|
|
195
|
+
_register_sigterm_handler(plan_runner)
|
|
196
|
+
run_forever(plan_runner)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def _register_sigterm_handler(runner: PlanRunner):
|
|
200
|
+
def shutdown_on_sigterm(sig_num, frame):
|
|
201
|
+
LOGGER.info("Received SIGTERM, shutting down...")
|
|
202
|
+
runner.shutdown()
|
|
203
|
+
|
|
204
|
+
signal.signal(signal.SIGTERM, shutdown_on_sigterm)
|
|
192
205
|
|
|
193
206
|
|
|
194
207
|
if __name__ == "__main__":
|
|
@@ -6,8 +6,14 @@ from blueapi.core.context import BlueskyContext
|
|
|
6
6
|
from bluesky import plan_stubs as bps
|
|
7
7
|
from bluesky import preprocessors as bpp
|
|
8
8
|
from bluesky.utils import MsgGenerator, RunEngineInterrupted
|
|
9
|
+
from dodal.common.beamlines.commissioning_mode import set_commissioning_signal
|
|
10
|
+
from dodal.devices.aperturescatterguard import ApertureScatterguard
|
|
9
11
|
from dodal.devices.baton import Baton
|
|
12
|
+
from dodal.devices.motors import XYZStage
|
|
13
|
+
from dodal.devices.robot import BartRobot
|
|
14
|
+
from dodal.devices.smargon import Smargon
|
|
10
15
|
|
|
16
|
+
from mx_bluesky.common.device_setup_plans.robot_load_unload import robot_unload
|
|
11
17
|
from mx_bluesky.common.experiment_plans.inner_plans.udc_default_state import (
|
|
12
18
|
UDCDefaultDevices,
|
|
13
19
|
move_to_udc_default_state,
|
|
@@ -77,6 +83,7 @@ def run_udc_when_requested(context: BlueskyContext, runner: PlanRunner):
|
|
|
77
83
|
|
|
78
84
|
def acquire_baton() -> MsgGenerator:
|
|
79
85
|
yield from _wait_for_hyperion_requested(baton)
|
|
86
|
+
LOGGER.debug("Hyperion is now current baton holder.")
|
|
80
87
|
yield from bps.abs_set(baton.current_user, HYPERION_USER)
|
|
81
88
|
|
|
82
89
|
def collect() -> MsgGenerator:
|
|
@@ -96,14 +103,20 @@ def run_udc_when_requested(context: BlueskyContext, runner: PlanRunner):
|
|
|
96
103
|
|
|
97
104
|
# re-fetch the baton because the device has been reinstantiated
|
|
98
105
|
baton = _get_baton(context)
|
|
106
|
+
current_visit: str | None = None
|
|
99
107
|
while (yield from _is_requesting_baton(baton)):
|
|
100
|
-
yield from _fetch_and_process_agamemnon_instruction(
|
|
108
|
+
current_visit = yield from _fetch_and_process_agamemnon_instruction(
|
|
109
|
+
baton, runner, current_visit
|
|
110
|
+
)
|
|
111
|
+
if current_visit:
|
|
112
|
+
yield from _perform_robot_unload(runner.context, current_visit)
|
|
101
113
|
|
|
102
114
|
def release_baton() -> MsgGenerator:
|
|
103
115
|
# If hyperion has given up the baton itself we need to also release requested
|
|
104
116
|
# user so that hyperion doesn't think we're requested again
|
|
105
117
|
baton = _get_baton(context)
|
|
106
|
-
previous_requested_user = yield from
|
|
118
|
+
previous_requested_user = yield from _unrequest_baton(baton)
|
|
119
|
+
LOGGER.debug("Hyperion no longer current baton holder.")
|
|
107
120
|
yield from bps.abs_set(baton.current_user, NO_USER, wait=True)
|
|
108
121
|
_raise_baton_released_alert(get_alerting_service(), previous_requested_user)
|
|
109
122
|
|
|
@@ -111,11 +124,11 @@ def run_udc_when_requested(context: BlueskyContext, runner: PlanRunner):
|
|
|
111
124
|
yield from bpp.contingency_wrapper(collect(), final_plan=release_baton)
|
|
112
125
|
|
|
113
126
|
context.run_engine(acquire_baton())
|
|
114
|
-
_initialise_udc(context)
|
|
127
|
+
_initialise_udc(context, runner.is_dev_mode)
|
|
115
128
|
context.run_engine(collect_then_release())
|
|
116
129
|
|
|
117
130
|
|
|
118
|
-
def _initialise_udc(context: BlueskyContext):
|
|
131
|
+
def _initialise_udc(context: BlueskyContext, dev_mode: bool):
|
|
119
132
|
"""
|
|
120
133
|
Perform all initialisation that happens at the start of UDC just after the
|
|
121
134
|
baton is acquired, but before we execute any plans or move hardware.
|
|
@@ -125,21 +138,25 @@ def _initialise_udc(context: BlueskyContext):
|
|
|
125
138
|
"""
|
|
126
139
|
LOGGER.info("Initialising mx-bluesky for UDC start...")
|
|
127
140
|
clear_all_device_caches(context)
|
|
128
|
-
|
|
141
|
+
LOGGER.debug("Reinitialising beamline devices")
|
|
142
|
+
setup_devices(context, dev_mode)
|
|
143
|
+
set_commissioning_signal(_get_baton(context).commissioning)
|
|
129
144
|
|
|
130
145
|
|
|
131
146
|
def _wait_for_hyperion_requested(baton: Baton):
|
|
147
|
+
LOGGER.debug("Hyperion waiting for baton...")
|
|
132
148
|
SLEEP_PER_CHECK = 0.1
|
|
133
149
|
while True:
|
|
134
150
|
requested_user = yield from bps.rd(baton.requested_user)
|
|
135
151
|
if requested_user == HYPERION_USER:
|
|
152
|
+
LOGGER.debug("Baton requested for Hyperion")
|
|
136
153
|
break
|
|
137
154
|
yield from bps.sleep(SLEEP_PER_CHECK)
|
|
138
155
|
|
|
139
156
|
|
|
140
157
|
def _fetch_and_process_agamemnon_instruction(
|
|
141
|
-
baton: Baton, runner: PlanRunner
|
|
142
|
-
) -> MsgGenerator:
|
|
158
|
+
baton: Baton, runner: PlanRunner, current_visit: str | None
|
|
159
|
+
) -> MsgGenerator[str | None]:
|
|
143
160
|
parameter_list: Sequence[MxBlueskyParameters] = create_parameters_from_agamemnon()
|
|
144
161
|
if parameter_list:
|
|
145
162
|
for parameters in parameter_list:
|
|
@@ -148,6 +165,7 @@ def _fetch_and_process_agamemnon_instruction(
|
|
|
148
165
|
)
|
|
149
166
|
match parameters:
|
|
150
167
|
case LoadCentreCollect():
|
|
168
|
+
current_visit = parameters.visit
|
|
151
169
|
devices: Any = create_devices(runner.context)
|
|
152
170
|
yield from runner.execute_plan(
|
|
153
171
|
partial(load_centre_collect_full, devices, parameters)
|
|
@@ -161,7 +179,8 @@ def _fetch_and_process_agamemnon_instruction(
|
|
|
161
179
|
else:
|
|
162
180
|
_raise_udc_completed_alert(get_alerting_service())
|
|
163
181
|
# Release the baton for orderly exit from the instruction loop
|
|
164
|
-
yield from
|
|
182
|
+
yield from _unrequest_baton(baton)
|
|
183
|
+
return current_visit
|
|
165
184
|
|
|
166
185
|
|
|
167
186
|
def _raise_udc_start_alert(alert_service: AlertService):
|
|
@@ -205,7 +224,7 @@ def _get_baton(context: BlueskyContext) -> Baton:
|
|
|
205
224
|
return find_device_in_context(context, "baton", Baton)
|
|
206
225
|
|
|
207
226
|
|
|
208
|
-
def
|
|
227
|
+
def _unrequest_baton(baton: Baton) -> MsgGenerator[str]:
|
|
209
228
|
"""Relinquish the requested user of the baton if it is not already requested
|
|
210
229
|
by another user.
|
|
211
230
|
|
|
@@ -214,6 +233,17 @@ def _safely_release_baton(baton: Baton) -> MsgGenerator[str]:
|
|
|
214
233
|
"""
|
|
215
234
|
requested_user = yield from bps.rd(baton.requested_user)
|
|
216
235
|
if requested_user == HYPERION_USER:
|
|
236
|
+
LOGGER.debug("Hyperion no longer requesting baton")
|
|
217
237
|
yield from bps.abs_set(baton.requested_user, NO_USER)
|
|
218
238
|
return NO_USER
|
|
219
239
|
return requested_user
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def _perform_robot_unload(context: BlueskyContext, visit: str) -> MsgGenerator:
|
|
243
|
+
robot = find_device_in_context(context, "robot", BartRobot)
|
|
244
|
+
smargon = find_device_in_context(context, "smargon", Smargon)
|
|
245
|
+
aperture_scatterguard = find_device_in_context(
|
|
246
|
+
context, "aperture_scatterguard", ApertureScatterguard
|
|
247
|
+
)
|
|
248
|
+
lower_gonio = find_device_in_context(context, "lower_gonio", XYZStage)
|
|
249
|
+
yield from robot_unload(robot, smargon, aperture_scatterguard, lower_gonio, visit)
|
|
@@ -8,11 +8,13 @@ import pydantic
|
|
|
8
8
|
from blueapi.core import BlueskyContext
|
|
9
9
|
from bluesky.preprocessors import run_decorator, set_run_key_decorator, subs_wrapper
|
|
10
10
|
from bluesky.utils import MsgGenerator
|
|
11
|
+
from dodal.devices.baton import Baton
|
|
11
12
|
from dodal.devices.oav.oav_parameters import OAVParameters
|
|
12
13
|
|
|
13
14
|
import mx_bluesky.common.xrc_result as flyscan_result
|
|
14
15
|
from mx_bluesky.common.parameters.components import WithSnapshot
|
|
15
16
|
from mx_bluesky.common.utils.context import device_composite_from_context
|
|
17
|
+
from mx_bluesky.common.utils.exceptions import CrystalNotFoundException
|
|
16
18
|
from mx_bluesky.common.utils.log import LOGGER
|
|
17
19
|
from mx_bluesky.common.xrc_result import XRayCentreEventHandler
|
|
18
20
|
from mx_bluesky.hyperion.experiment_plans.robot_load_then_centre_plan import (
|
|
@@ -36,6 +38,8 @@ from mx_bluesky.hyperion.parameters.rotation import RotationScanPerSweep
|
|
|
36
38
|
class LoadCentreCollectComposite(RobotLoadThenCentreComposite, RotationScanComposite):
|
|
37
39
|
"""Composite that provides access to the required devices."""
|
|
38
40
|
|
|
41
|
+
baton: Baton
|
|
42
|
+
|
|
39
43
|
|
|
40
44
|
def create_devices(context: BlueskyContext) -> LoadCentreCollectComposite:
|
|
41
45
|
"""Create the necessary devices for the plan."""
|
|
@@ -51,8 +55,9 @@ def load_centre_collect_full(
|
|
|
51
55
|
* Load the sample if necessary
|
|
52
56
|
* Move to the specified goniometer start angles
|
|
53
57
|
* Perform optical centring, then X-ray centring
|
|
54
|
-
* If X-ray centring finds
|
|
55
|
-
|
|
58
|
+
* If X-ray centring finds one or more diffracting centres then for each centre
|
|
59
|
+
that satisfies the chosen selection function,
|
|
60
|
+
move to that centre and do a collection with the specified parameters.
|
|
56
61
|
"""
|
|
57
62
|
|
|
58
63
|
get_hyperion_config_client().refresh_cache()
|
|
@@ -81,12 +86,18 @@ def load_centre_collect_full(
|
|
|
81
86
|
)
|
|
82
87
|
def plan_with_callback_subs():
|
|
83
88
|
flyscan_event_handler = XRayCentreEventHandler()
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
try:
|
|
90
|
+
yield from subs_wrapper(
|
|
91
|
+
robot_load_then_xray_centre(
|
|
92
|
+
composite, parameters.robot_load_then_centre, oav_config_file
|
|
93
|
+
),
|
|
94
|
+
flyscan_event_handler,
|
|
95
|
+
)
|
|
96
|
+
except CrystalNotFoundException:
|
|
97
|
+
if parameters.select_centres.ignore_xtal_not_found:
|
|
98
|
+
LOGGER.info("Ignoring crystal not found due to parameter settings.")
|
|
99
|
+
else:
|
|
100
|
+
raise
|
|
90
101
|
|
|
91
102
|
locations_to_collect_um: list[np.ndarray]
|
|
92
103
|
samples_to_collect: list[int]
|
{mx_bluesky-1.5.5 → mx_bluesky-1.5.6}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import dataclasses
|
|
2
2
|
import json
|
|
3
|
+
import os
|
|
3
4
|
import re
|
|
4
5
|
import traceback
|
|
5
6
|
from collections.abc import Sequence
|
|
@@ -27,7 +28,6 @@ from mx_bluesky.hyperion.parameters.components import Wait
|
|
|
27
28
|
from mx_bluesky.hyperion.parameters.load_centre_collect import LoadCentreCollect
|
|
28
29
|
|
|
29
30
|
T = TypeVar("T", bound=WithVisit)
|
|
30
|
-
AGAMEMNON_URL = "http://agamemnon.diamond.ac.uk/"
|
|
31
31
|
MULTIPIN_PREFIX = "multipin"
|
|
32
32
|
MULTIPIN_FORMAT_DESC = "Expected multipin format is multipin_{number_of_wells}x{well_size}+{distance_between_tip_and_first_well}"
|
|
33
33
|
MULTIPIN_REGEX = rf"^{MULTIPIN_PREFIX}_(\d+)x(\d+(?:\.\d+)?)\+(\d+(?:\.\d+)?)$"
|
|
@@ -191,7 +191,11 @@ def _get_pin_type_from_agamemnon_collect_parameters(
|
|
|
191
191
|
|
|
192
192
|
|
|
193
193
|
def _get_next_instruction(beamline: str) -> dict:
|
|
194
|
-
return _get_parameters_from_url(
|
|
194
|
+
return _get_parameters_from_url(get_agamemnon_url() + f"getnextcollect/{beamline}")
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def get_agamemnon_url() -> str:
|
|
198
|
+
return os.environ.get("AGAMEMNON_URL", "http://agamemnon.diamond.ac.uk/")
|
|
195
199
|
|
|
196
200
|
|
|
197
201
|
def _get_withvisit_parameters_from_agamemnon(parameters: dict) -> tuple:
|
|
@@ -56,6 +56,7 @@ class HyperionConstants:
|
|
|
56
56
|
PARAM = ExperimentParamConstants()
|
|
57
57
|
PLAN = PlanNameConstants()
|
|
58
58
|
WAIT = PlanGroupCheckpointConstants()
|
|
59
|
+
HYPERION_PORT = 5005
|
|
59
60
|
CALLBACK_0MQ_PROXY_PORTS = (5577, 5578)
|
|
60
61
|
DESCRIPTORS = DocDescriptorNames()
|
|
61
62
|
CONFIG_SERVER_URL = (
|
|
@@ -19,12 +19,10 @@ class PlanException(Exception):
|
|
|
19
19
|
class PlanRunner(BaseRunner):
|
|
20
20
|
"""Runner that executes experiments from inside a running Bluesky plan"""
|
|
21
21
|
|
|
22
|
-
def __init__(
|
|
23
|
-
self,
|
|
24
|
-
context: BlueskyContext,
|
|
25
|
-
) -> None:
|
|
22
|
+
def __init__(self, context: BlueskyContext, dev_mode: bool) -> None:
|
|
26
23
|
super().__init__(context)
|
|
27
24
|
self.current_status: Status = Status.IDLE
|
|
25
|
+
self.is_dev_mode = dev_mode
|
|
28
26
|
|
|
29
27
|
def execute_plan(
|
|
30
28
|
self,
|