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.
Files changed (622) hide show
  1. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/PKG-INFO +3 -3
  2. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/create-a-release.rst +2 -2
  3. mx_bluesky-1.5.15/docs/developer/general/how-to/deploy-a-release.rst +37 -0
  4. mx_bluesky-1.5.15/docs/developer/general/how-to/setup-blueapi-for-mx.md +40 -0
  5. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/index.rst +3 -0
  6. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/index.rst +0 -1
  7. mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations.puml +131 -0
  8. mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations_rotation.puml +77 -0
  9. mx_bluesky-1.5.15/docs/user/hyperion/advanced/concurrent_operations_set_energy.puml +38 -0
  10. mx_bluesky-1.5.15/docs/user/hyperion/advanced/index.rst +9 -0
  11. mx_bluesky-1.5.15/docs/user/hyperion/advanced/install.rst +57 -0
  12. mx_bluesky-1.5.15/docs/user/hyperion/advanced/operations.rst +46 -0
  13. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/configuration.rst +1 -0
  14. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/index.rst +6 -8
  15. mx_bluesky-1.5.15/docs/user/hyperion/logging.rst +43 -0
  16. mx_bluesky-1.5.15/docs/user/hyperion/troubleshooting.rst +53 -0
  17. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/pyproject.toml +2 -2
  18. mx_bluesky-1.5.15/src/mx_bluesky/Getting started.ipynb +170 -0
  19. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/_version.py +3 -3
  20. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/robot_load.py +4 -10
  21. {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
  22. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +5 -5
  23. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py +21 -0
  24. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +1 -0
  25. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +1 -0
  26. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +1 -0
  27. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +3 -0
  28. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +4 -2
  29. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/constants.py +2 -0
  30. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +4 -5
  31. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py +23 -11
  32. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +48 -21
  33. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/device_composites.py +2 -0
  34. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/plan_runner.py +31 -0
  35. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/plan_runner_api.py +14 -1
  36. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/utils/context.py +2 -2
  37. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/jupyter_example.ipynb +9 -1
  38. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/PKG-INFO +3 -3
  39. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/SOURCES.txt +12 -3
  40. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/requires.txt +2 -2
  41. mx_bluesky-1.5.15/start_jupyter.sh +2 -0
  42. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/conftest.py +47 -42
  43. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/conftest.py +1 -1
  44. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +36 -9
  45. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/conftest.py +1 -1
  46. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +4 -4
  47. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/test_oav_plans.py +18 -0
  48. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +4 -4
  49. {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
  50. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +2 -2
  51. {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
  52. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +6 -4
  53. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/conftest.py +6 -3
  54. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
  55. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +4 -4
  56. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +5 -0
  57. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py +25 -12
  58. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +2 -0
  59. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +49 -16
  60. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_baton_handler.py +9 -8
  61. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_main_system.py +3 -3
  62. mx_bluesky-1.5.15/tests/unit_tests/hyperion/test_plan_runner.py +98 -0
  63. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_plan_runner_api.py +7 -0
  64. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/test_context.py +4 -4
  65. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/t01.py +5 -3
  66. mx_bluesky-1.5.12/docs/developer/general/how-to/deploy-a-release.rst +0 -69
  67. mx_bluesky-1.5.12/docs/developer/hyperion/deploying-hyperion.rst +0 -130
  68. mx_bluesky-1.5.12/docs/user/hyperion/troubleshooting.rst +0 -143
  69. mx_bluesky-1.5.12/start_jupyter.sh +0 -2
  70. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.copier-answers.yml +0 -0
  71. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.coveragerc +0 -0
  72. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.devcontainer/Dockerfile +0 -0
  73. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.devcontainer/devcontainer.json +0 -0
  74. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.dockerignore +0 -0
  75. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/CODEOWNERS +0 -0
  76. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/CONTRIBUTING.md +0 -0
  77. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  78. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  79. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/install_requirements/action.yml +0 -0
  80. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/Dockerfile +0 -0
  81. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/action.yml +0 -0
  82. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  83. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/dependabot.yml +0 -0
  84. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/pages/index.html +0 -0
  85. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/pages/make_switcher.py +0 -0
  86. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/release.yml +0 -0
  87. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_container.yml +0 -0
  88. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_debug_container.yml +0 -0
  89. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_dist.yml +0 -0
  90. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_docs.yml +0 -0
  91. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_helm.yml +0 -0
  92. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_label.yml +0 -0
  93. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_pypi.yml +0 -0
  94. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_release.yml +0 -0
  95. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_test.yml +0 -0
  96. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/_tox.yml +0 -0
  97. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/ci.yml +0 -0
  98. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.github/workflows/periodic.yml +0 -0
  99. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.gitignore +0 -0
  100. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.pre-commit-config.yaml +0 -0
  101. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/extensions.json +0 -0
  102. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/launch.json +0 -0
  103. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mx-bluesky-dev-container.code-workspace +0 -0
  104. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mx-bluesky.code-workspace +0 -0
  105. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  106. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/settings.json +0 -0
  107. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/.vscode/tasks.json +0 -0
  108. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile +0 -0
  109. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile.blueapi +0 -0
  110. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/Dockerfile.hyperion +0 -0
  111. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/LICENSE +0 -0
  112. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/README.rst +0 -0
  113. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/catalog-info.yaml +0 -0
  114. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/codecov.yml +0 -0
  115. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/conftest.py +0 -0
  116. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/_api.rst +0 -0
  117. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/_templates/custom-module-template.rst +0 -0
  118. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/conf.py +0 -0
  119. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  120. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
  121. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/code-map/index.rst +0 -0
  122. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  123. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
  124. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  125. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  126. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  127. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/explanations/decisions.rst +0 -0
  128. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/contribute.rst +0 -0
  129. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  130. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  131. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  132. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  133. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  134. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/how-to/get-started.md +0 -0
  135. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/reference/standards.rst +0 -0
  136. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  137. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  138. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/baton.rst +0 -0
  139. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  140. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  141. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/gda-baton.puml +0 -0
  142. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  143. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  144. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/reference/readme.md +0 -0
  145. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/hyperion/system-tests.rst +0 -0
  146. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/index.rst +0 -0
  147. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/explanations/DrawioImages.rst +0 -0
  148. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  149. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
  150. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/murko-integration/index.rst +0 -0
  151. {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
  152. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  153. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  154. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  155. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  156. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  157. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  158. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  159. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  160. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/417717258-afbd813c-8941-445c-9fdf-255c167453cf.png +0 -0
  161. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/dls-favicon.ico +0 -0
  162. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/dls-logo.svg +0 -0
  163. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor coordinate systems.odg +0 -0
  164. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor-coords-omega-0.svg +0 -0
  165. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/images/motor-coords-omega-alpha.svg +0 -0
  166. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/index.rst +0 -0
  167. {mx_bluesky-1.5.12/docs/user/hyperion → mx_bluesky-1.5.15/docs/user/hyperion/advanced}/alerts.rst +0 -0
  168. {mx_bluesky-1.5.12/docs/user/hyperion → mx_bluesky-1.5.15/docs/user/hyperion/advanced}/pvs.rst +0 -0
  169. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/docs/user/hyperion/running.rst +0 -0
  170. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/Chart.yaml +0 -0
  171. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/deployment.yaml +0 -0
  172. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/ingress.yaml +0 -0
  173. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/service.yaml +0 -0
  174. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/templates/zocalo-config.yaml +0 -0
  175. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/hyperion/values.yaml +0 -0
  176. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
  177. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -0
  178. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/mx-bluesky-blueapi/values.yaml +0 -0
  179. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/Chart.yaml +0 -0
  180. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/templates/deployment.yaml +0 -0
  181. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/helm/redis-to-murko/values.yaml +0 -0
  182. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/pull_request_template.md +0 -0
  183. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/run_hyperion.sh +0 -0
  184. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/run_hyperion_in_podman.sh +0 -0
  185. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/setup.cfg +0 -0
  186. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/__init__.py +0 -0
  187. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/__main__.py +0 -0
  188. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/__init__.py +0 -0
  189. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  190. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  191. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  192. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/__init__.py +0 -0
  193. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/robot_load_plan.py +0 -0
  194. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  195. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/__init__.py +0 -0
  196. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/constants.py +0 -0
  197. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/robot_load_parameters.py +0 -0
  198. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/aithre_lasershaping/pin_tip_centring.py +0 -0
  199. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i02_1/parameters/__init__.py +0 -0
  200. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i02_1/parameters/gridscan.py +0 -0
  201. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  202. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/callbacks/__init__.py +0 -0
  203. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  204. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/experiment_plans/__init__.py +0 -0
  205. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/external_interaction/__init__.py +0 -0
  206. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/external_interaction/config_server.py +0 -0
  207. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/oav_centering_plans/__init__.py +0 -0
  208. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +0 -0
  209. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/parameters/__init__.py +0 -0
  210. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/parameters/constants.py +0 -0
  211. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  212. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  213. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  214. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  215. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  216. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/__init__.py +0 -0
  217. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py +0 -0
  218. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
  219. {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
  220. {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
  221. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py +0 -0
  222. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  223. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  224. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
  225. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  226. {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
  227. {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
  228. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  229. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py +0 -0
  230. {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
  231. {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
  232. {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
  233. {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
  234. {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
  235. {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
  236. {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
  237. {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
  238. {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
  239. {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
  240. {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
  241. {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
  242. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  243. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  244. {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
  245. {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
  246. {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
  247. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  248. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  249. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  250. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  251. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  252. {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
  253. {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
  254. {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
  255. {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
  256. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  257. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  258. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  259. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  260. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  261. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  262. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  263. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  264. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  265. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  266. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -0
  267. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  268. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  269. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  270. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
  271. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  272. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/__init__.py +0 -0
  273. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/__init__.py +0 -0
  274. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/gonio.py +0 -0
  275. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +0 -0
  276. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  277. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +0 -0
  278. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  279. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  280. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/setup_zebra_and_shutter.py +0 -0
  281. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
  282. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  283. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
  284. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/beamstop_check.py +0 -0
  285. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  286. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +0 -0
  287. {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
  288. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/__init__.py +0 -0
  289. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +0 -0
  290. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
  291. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
  292. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
  293. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py +0 -0
  294. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
  295. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
  296. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
  297. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
  298. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
  299. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  300. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  301. {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
  302. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  303. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  304. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  305. {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
  306. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  307. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
  308. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  309. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  310. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  311. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
  312. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
  313. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  314. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
  315. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  316. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  317. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/__init__.py +0 -0
  318. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/components.py +0 -0
  319. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/device_composites.py +0 -0
  320. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  321. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/preprocessors/__init__.py +0 -0
  322. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  323. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/protocols/__init__.py +0 -0
  324. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  325. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/__init__.py +0 -0
  326. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/context.py +0 -0
  327. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  328. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/log.py +0 -0
  329. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/tracing.py +0 -0
  330. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/utils/utils.py +0 -0
  331. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/common/xrc_result.py +0 -0
  332. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/definitions.py +0 -0
  333. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/__init__.py +0 -0
  334. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/__main__.py +0 -0
  335. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/baton_handler.py +0 -0
  336. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/__init__.py +0 -0
  337. {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
  338. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  339. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  340. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  341. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  342. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
  343. {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
  344. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
  345. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  346. {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
  347. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
  348. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
  349. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +0 -0
  350. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
  351. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  352. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +0 -0
  353. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/alerting/__init__.py +0 -0
  354. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
  355. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  356. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +0 -0
  357. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/__init__.py +0 -0
  358. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
  359. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  360. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
  361. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  362. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  363. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  364. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
  365. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  366. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  367. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  368. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/constants.py +0 -0
  369. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  370. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  371. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  372. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
  373. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  374. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/runner.py +0 -0
  375. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  376. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
  377. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky/phase1_zebra/device_setup_plans/__init__.py +0 -0
  378. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  379. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  380. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  381. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/__init__.py +0 -0
  382. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/expeye_helpers.py +0 -0
  383. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/__init__.py +0 -0
  384. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/common/device_setup_plans/__init__.py +0 -0
  385. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  386. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/__init__.py +0 -0
  387. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/__init__.py +0 -0
  388. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/alerting/__init__.py +0 -0
  389. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
  390. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  391. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  392. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +0 -0
  393. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  394. {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
  395. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
  396. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
  397. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/system_tests/hyperion/test_main_udc.py +0 -0
  398. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  399. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_native.json +0 -0
  400. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/agamemnon/example_wait.json +0 -0
  401. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  402. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/README.md +0 -0
  403. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  404. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  405. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  406. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  407. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  408. {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
  409. {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
  410. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  411. {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
  412. {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
  413. {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
  414. {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
  415. {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
  416. {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
  417. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  418. {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
  419. {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
  420. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  421. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  422. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  423. {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
  424. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  425. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  426. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  427. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/scratch/README +0 -0
  428. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_OAVCentring.json +0 -0
  429. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  430. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  431. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_parameters.txt +0 -0
  432. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  433. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_config.cfg +0 -0
  434. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  435. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  436. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  437. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  438. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  439. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  440. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  441. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_det_dist_converter.txt +0 -0
  442. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_display.configuration +0 -0
  443. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties +0 -0
  444. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties_with_no_gpu +0 -0
  445. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_domain_properties_with_panda +0 -0
  446. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  447. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  448. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  449. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  450. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  451. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  452. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  453. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  454. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  455. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  456. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  457. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_lookup_table.txt +0 -0
  458. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/test_mirror_focus.json +0 -0
  459. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  460. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/__init__.py +0 -0
  461. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/__init__.py +0 -0
  462. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/__init__.py +0 -0
  463. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_aithre_pin_tip_centre.py +0 -0
  464. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
  465. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  466. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
  467. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/aithre_lasershaping/test_robot_load.py +0 -0
  468. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/__init__.py +0 -0
  469. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/callbacks/__init__.py +0 -0
  470. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  471. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/conftest.py +0 -0
  472. {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
  473. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_oav_imaging.py +0 -0
  474. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  475. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
  476. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i23/__init__.py +0 -0
  477. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  478. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/__init__.py +0 -0
  479. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/__init__.py +0 -0
  480. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans/__init__.py +0 -0
  481. {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
  482. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
  483. {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
  484. {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
  485. {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
  486. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/__init__.py +0 -0
  487. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
  488. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/extruder/__init__.py +0 -0
  489. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
  490. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  491. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  492. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
  493. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  494. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
  495. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  496. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/__init__.py +0 -0
  497. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  498. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  499. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  500. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  501. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
  502. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  503. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  504. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
  505. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  506. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  507. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  508. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/__init__.py +0 -0
  509. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
  510. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/__init__.py +0 -0
  511. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/__init__.py +0 -0
  512. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  513. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  514. {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
  515. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
  516. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/__init__.py +0 -0
  517. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/__init__.py +0 -0
  518. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +0 -0
  519. {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
  520. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_beamstop_check.py +0 -0
  521. {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
  522. {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
  523. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
  524. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/experiment_plans/test_pin_tip_centring.py +0 -0
  525. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/__init__.py +0 -0
  526. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/__init__.py +0 -0
  527. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/alerting/__init__.py +0 -0
  528. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
  529. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/__init__.py +0 -0
  530. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/__init__.py +0 -0
  531. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  532. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -0
  533. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/__init__.py +0 -0
  534. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  535. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  536. {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
  537. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  538. {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
  539. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  540. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  541. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  542. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/nexus/__init__.py +0 -0
  543. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  544. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
  545. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  546. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  547. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  548. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  549. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  550. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/__init__.py +0 -0
  551. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/test_components.py +0 -0
  552. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/parameters/test_constants.py +0 -0
  553. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/preprocessors/__init__.py +0 -0
  554. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  555. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/__init__.py +0 -0
  556. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/test_log.py +0 -0
  557. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/common/utils/test_utils.py +0 -0
  558. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/__init__.py +0 -0
  559. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/conftest.py +0 -0
  560. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
  561. {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
  562. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
  563. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  564. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  565. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  566. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
  567. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/common/__init__.py +0 -0
  568. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  569. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/conftest.py +0 -0
  570. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  571. {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
  572. {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
  573. {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
  574. {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
  575. {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
  576. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
  577. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  578. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  579. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  580. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  581. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/__init__.py +0 -0
  582. {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
  583. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  584. {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
  585. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
  586. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  587. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  588. {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
  589. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  590. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  591. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  592. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  593. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  594. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
  595. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  596. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
  597. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  598. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_runner.py +0 -0
  599. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/test_utils.py +0 -0
  600. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  601. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  602. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/tests/unit_tests/test_cli.py +0 -0
  603. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/build_docker_image.sh +0 -0
  604. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/build_imginfo.sh +0 -0
  605. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/create_venv.py +0 -0
  606. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  607. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  608. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
  609. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/deploy/test_deploy.py +0 -0
  610. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/dev_jaeger_container.sh +0 -0
  611. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/dls_dev_env.sh +0 -0
  612. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/entrypoint.sh +0 -0
  613. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/healthcheck.sh +0 -0
  614. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/docker/i03-compose.yml +0 -0
  615. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/generate_plantuml.py +0 -0
  616. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/graylog/Dockerfile +0 -0
  617. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/graylog/tcp_input.json +0 -0
  618. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/procserv_ioc_start.sh +0 -0
  619. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/request_baton.sh +0 -0
  620. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/run_imginfo.sh +0 -0
  621. {mx_bluesky-1.5.12 → mx_bluesky-1.5.15}/utility_scripts/setup_graylog.sh +0 -0
  622. {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.12
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.6.3
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.66.0
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/developer/how-to/make-release.html>`_).
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 :ref:`instructions <deploying-to-i04-blueapi>` on how to deploy to I04 BlueAPI.
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
@@ -16,7 +16,6 @@ Documentation specific for the Hyperion module within MX-Bluesky
16
16
  reference/baton
17
17
  reference/param-hierarchy
18
18
  reference/coordinate-systems
19
- deploying-hyperion
20
19
  system-tests
21
20
 
22
21
  +++
@@ -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,9 @@
1
+ Advanced Topics
2
+ ===============
3
+
4
+ .. toctree::
5
+ :maxdepth: 1
6
+ :glob:
7
+
8
+
9
+ *
@@ -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. For installation instructions, see
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 `configuration`_ for other properties that control Hyperions behavior.
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 breakdown of the operation, it may be helpful to browse the `Code Map`_
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.