mx-bluesky 1.5.1__tar.gz → 1.5.2__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 (540) hide show
  1. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_container.yml +33 -8
  2. mx_bluesky-1.5.2/.github/workflows/_helm.yml +23 -0
  3. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/ci.yml +8 -0
  4. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.pre-commit-config.yaml +1 -1
  5. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/Dockerfile.blueapi +4 -2
  6. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/PKG-INFO +3 -3
  7. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/deploying-hyperion.rst +10 -0
  8. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/templates/deployment.yaml +8 -41
  9. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/values.yaml +1 -1
  10. mx_bluesky-1.5.2/helm/mx-bluesky-blueapi/Chart.yaml +16 -0
  11. mx_bluesky-1.5.2/helm/mx-bluesky-blueapi/templates/ispyb-config.yaml +18 -0
  12. mx_bluesky-1.5.2/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +38 -0
  13. mx_bluesky-1.5.2/helm/mx-bluesky-blueapi/values.yaml +19 -0
  14. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/pyproject.toml +14 -4
  15. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/_version.py +2 -2
  16. mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i04/__init__.py +6 -0
  17. mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +110 -0
  18. mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +259 -0
  19. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +3 -1
  20. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +5 -1
  21. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +26 -3
  22. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +1 -0
  23. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +3 -1
  24. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +11 -6
  25. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/parameters/constants.py +1 -0
  26. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/parameters/device_composites.py +1 -1
  27. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/parameters/gridscan.py +1 -0
  28. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/__main__.py +1 -1
  29. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/baton_handler.py +36 -4
  30. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +4 -93
  31. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +19 -37
  32. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +5 -5
  33. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/constants.py +1 -2
  34. mx_bluesky-1.5.2/src/mx_bluesky/hyperion/utils/context.py +33 -0
  35. mx_bluesky-1.5.2/src/mx_bluesky/phase1_zebra/__init__.py +1 -0
  36. mx_bluesky-1.5.2/src/mx_bluesky/phase1_zebra/device_setup_plans/setup_zebra.py +112 -0
  37. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/PKG-INFO +3 -3
  38. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/SOURCES.txt +28 -14
  39. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/requires.txt +2 -2
  40. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/conftest.py +32 -6
  41. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/conftest.py +4 -4
  42. mx_bluesky-1.5.2/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +113 -0
  43. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +29 -0
  44. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +7 -4
  45. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +1 -1
  46. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +3 -1
  47. mx_bluesky-1.5.2/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +207 -0
  48. mx_bluesky-1.5.2/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +363 -0
  49. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i04/test_thawing.py +1 -0
  50. {mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.2/tests/unit_tests/common/experiment_plans/inner_plans}/test_read_hardware.py +1 -1
  51. {mx_bluesky-1.5.1/tests/unit_tests/common → mx_bluesky-1.5.2/tests/unit_tests/common/experiment_plans/inner_plans}/test_write_sample_status.py +1 -1
  52. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +1 -18
  53. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +0 -18
  54. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +29 -0
  55. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +3 -1
  56. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/conftest.py +11 -35
  57. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/conftest.py +0 -5
  58. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +6 -6
  59. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +13 -3
  60. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/conftest.py +21 -2
  61. mx_bluesky-1.5.2/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  62. mx_bluesky-1.5.2/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  63. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +1 -1
  64. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +1 -1
  65. mx_bluesky-1.5.2/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  66. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/test_baton_handler.py +114 -26
  67. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/test_main_system.py +32 -11
  68. mx_bluesky-1.5.2/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  69. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +13 -1
  70. mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i04/__init__.py +0 -3
  71. mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -55
  72. mx_bluesky-1.5.1/src/mx_bluesky/hyperion/utils/context.py +0 -19
  73. mx_bluesky-1.5.1/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -107
  74. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.copier-answers.yml +0 -0
  75. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.coveragerc +0 -0
  76. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.devcontainer/Dockerfile +0 -0
  77. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.devcontainer/devcontainer.json +0 -0
  78. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.dockerignore +0 -0
  79. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/CODEOWNERS +0 -0
  80. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/CONTRIBUTING.md +0 -0
  81. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  82. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  83. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/actions/install_requirements/action.yml +0 -0
  84. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/actions/verify-nexus/Dockerfile +0 -0
  85. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/actions/verify-nexus/action.yml +0 -0
  86. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  87. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/dependabot.yml +0 -0
  88. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/pages/index.html +0 -0
  89. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/pages/make_switcher.py +0 -0
  90. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_check.yml +0 -0
  91. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_dist.yml +0 -0
  92. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_docs.yml +0 -0
  93. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_pypi.yml +0 -0
  94. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_release.yml +0 -0
  95. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_test.yml +0 -0
  96. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/_tox.yml +0 -0
  97. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.github/workflows/periodic.yml +0 -0
  98. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.gitignore +0 -0
  99. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/extensions.json +0 -0
  100. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/launch.json +0 -0
  101. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/mx-bluesky.code-workspace +0 -0
  102. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  103. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/settings.json +0 -0
  104. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/.vscode/tasks.json +0 -0
  105. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/Dockerfile +0 -0
  106. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/Dockerfile.hyperion +0 -0
  107. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/LICENSE +0 -0
  108. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/README.rst +0 -0
  109. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/catalog-info.yaml +0 -0
  110. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/codecov.yml +0 -0
  111. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/conftest.py +0 -0
  112. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/_api.rst +0 -0
  113. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/_templates/custom-module-template.rst +0 -0
  114. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/conf.py +0 -0
  115. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  116. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
  117. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/code-map/index.rst +0 -0
  118. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  119. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
  120. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  121. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  122. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  123. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/explanations/decisions.rst +0 -0
  124. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/contribute.rst +0 -0
  125. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/create-a-release.rst +0 -0
  126. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  127. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  128. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  129. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  130. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  131. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  132. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/how-to/get-started.rst +0 -0
  133. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/index.rst +0 -0
  134. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/reference/standards.rst +0 -0
  135. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  136. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  137. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/index.rst +0 -0
  138. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  139. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  140. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  141. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  142. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/reference/readme.md +0 -0
  143. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/hyperion/system-tests.rst +0 -0
  144. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/index.rst +0 -0
  145. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  146. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  147. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/murko-integration/index.rst +0 -0
  148. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  149. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  150. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  151. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  152. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  153. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  154. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  155. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  156. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  157. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/dls-favicon.ico +0 -0
  158. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/dls-logo.svg +0 -0
  159. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/motor coordinate systems.odg +0 -0
  160. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/motor-coords-omega-0.svg +0 -0
  161. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/images/motor-coords-omega-alpha.svg +0 -0
  162. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/docs/index.rst +0 -0
  163. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/Chart.yaml +0 -0
  164. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/templates/ingress.yaml +0 -0
  165. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/templates/service.yaml +0 -0
  166. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/hyperion/templates/zocalo-config.yaml +0 -0
  167. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/redis-to-murko/Chart.yaml +0 -0
  168. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/redis-to-murko/templates/deployment.yaml +0 -0
  169. {mx_bluesky-1.5.1/helmcharts → mx_bluesky-1.5.2/helm}/redis-to-murko/values.yaml +0 -0
  170. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  171. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  172. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  173. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  174. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/linkcheck.yml +0 -0
  175. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  176. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  177. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/pin_versions.py +0 -0
  178. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  179. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  180. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  181. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  182. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  183. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  184. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/hyperion_other/workflows/test_pin_versions.py +0 -0
  185. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/pull_request_template.md +0 -0
  186. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/run_hyperion.sh +0 -0
  187. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/run_hyperion_in_podman.sh +0 -0
  188. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/setup.cfg +0 -0
  189. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/__init__.py +0 -0
  190. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/__main__.py +0 -0
  191. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/__init__.py +0 -0
  192. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  193. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  194. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  195. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  196. {mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i24 → mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i04/experiment_plans}/__init__.py +0 -0
  197. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  198. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  199. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  200. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  201. {mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i24/serial/extruder → mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i24}/__init__.py +0 -0
  202. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  203. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  204. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
  205. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  206. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  207. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  208. {mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i24/serial/extruder}/__init__.py +0 -0
  209. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +0 -0
  210. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  211. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  212. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  213. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  214. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  215. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  216. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  217. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  218. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  219. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  220. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  221. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  222. {mx_bluesky-1.5.1/src/mx_bluesky/beamlines/i24/serial/web_gui_plans → mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  223. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  224. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +0 -0
  225. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  226. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  227. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  228. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  229. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  230. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  231. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  232. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  233. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  234. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  235. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  236. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  237. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  238. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  239. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  240. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  241. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  242. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  243. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  244. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  245. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -0
  246. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  247. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  248. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  249. {mx_bluesky-1.5.1/src/mx_bluesky/common → mx_bluesky-1.5.2/src/mx_bluesky/beamlines/i24/serial/web_gui_plans}/__init__.py +0 -0
  250. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +0 -0
  251. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  252. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction → mx_bluesky-1.5.2/src/mx_bluesky/common}/__init__.py +0 -0
  253. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +0 -0
  254. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  255. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +0 -0
  256. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  257. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  258. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
  259. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  260. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
  261. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/inner_plans/__init__ .py +0 -0
  262. {mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans → mx_bluesky-1.5.2/src/mx_bluesky/common/experiment_plans/inner_plans}/read_hardware.py +0 -0
  263. {mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans → mx_bluesky-1.5.2/src/mx_bluesky/common/experiment_plans/inner_plans}/write_sample_status.py +0 -0
  264. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
  265. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
  266. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction/callbacks/common → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  267. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction/callbacks/common}/__init__.py +0 -0
  268. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  269. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  270. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
  271. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
  272. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  273. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  274. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  275. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  276. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  277. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  278. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  279. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
  280. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  281. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  282. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  283. {mx_bluesky-1.5.1/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  284. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
  285. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
  286. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  287. {mx_bluesky-1.5.1/src/mx_bluesky/common/preprocessors → mx_bluesky-1.5.2/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  288. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  289. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  290. {mx_bluesky-1.5.1/src/mx_bluesky/common/protocols → mx_bluesky-1.5.2/src/mx_bluesky/common/parameters}/__init__.py +0 -0
  291. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/parameters/components.py +0 -0
  292. {mx_bluesky-1.5.1/src/mx_bluesky/common/utils → mx_bluesky-1.5.2/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
  293. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  294. {mx_bluesky-1.5.1/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.5.2/src/mx_bluesky/common/protocols}/__init__.py +0 -0
  295. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  296. {mx_bluesky-1.5.1/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.2/src/mx_bluesky/common/utils}/__init__.py +0 -0
  297. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/utils/context.py +0 -0
  298. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  299. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/utils/log.py +0 -0
  300. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/utils/tracing.py +0 -0
  301. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/utils/utils.py +0 -0
  302. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/common/xrc_result.py +0 -0
  303. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/definitions.py +0 -0
  304. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/__init__.py +0 -0
  305. {mx_bluesky-1.5.1/tests → mx_bluesky-1.5.2/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  306. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  307. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  308. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
  309. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  310. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  311. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
  312. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  313. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
  314. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  315. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
  316. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
  317. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
  318. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
  319. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
  320. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  321. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +0 -0
  322. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  323. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +0 -0
  324. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
  325. {mx_bluesky-1.5.1/tests/system_tests → mx_bluesky-1.5.2/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  326. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
  327. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  328. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  329. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  330. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
  331. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  332. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  333. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  334. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/device_composites.py +0 -0
  335. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  336. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  337. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  338. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
  339. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  340. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  341. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  342. {mx_bluesky-1.5.1/tests/system_tests/hyperion → mx_bluesky-1.5.2/src/mx_bluesky/phase1_zebra/device_setup_plans}/__init__.py +0 -0
  343. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  344. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  345. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  346. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/start_jupyter.sh +0 -0
  347. {mx_bluesky-1.5.1/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.5.2/tests}/__init__.py +0 -0
  348. {mx_bluesky-1.5.1/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.2/tests/system_tests}/__init__.py +0 -0
  349. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  350. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/conftest.py +0 -0
  351. {mx_bluesky-1.5.1/tests/unit_tests → mx_bluesky-1.5.2/tests/system_tests/hyperion}/__init__.py +0 -0
  352. {mx_bluesky-1.5.1/tests/unit_tests/beamlines → mx_bluesky-1.5.2/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  353. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24 → mx_bluesky-1.5.2/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  354. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  355. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  356. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  357. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  358. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  359. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/agamemnon/example_native.json +0 -0
  360. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  361. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/README.md +0 -0
  362. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  363. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  364. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  365. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  366. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  367. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  368. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  369. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  370. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  371. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  372. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  373. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  374. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
  375. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
  376. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  377. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  378. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  379. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  380. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  381. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  382. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  383. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  384. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  385. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  386. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/scratch/README +0 -0
  387. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_OAVCentring.json +0 -0
  388. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  389. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  390. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_beamline_parameters.txt +0 -0
  391. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  392. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_config.cfg +0 -0
  393. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  394. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  395. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  396. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  397. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  398. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  399. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  400. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_det_dist_converter.txt +0 -0
  401. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_display.configuration +0 -0
  402. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  403. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  404. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  405. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  406. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  407. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  408. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  409. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  410. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  411. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  412. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  413. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_lookup_table.txt +0 -0
  414. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/test_mirror_focus.json +0 -0
  415. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  416. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.5.2/tests/unit_tests}/__init__.py +0 -0
  417. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.5.2/tests/unit_tests/beamlines}/__init__.py +0 -0
  418. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
  419. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  420. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
  421. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  422. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  423. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  424. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  425. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
  426. {mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  427. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
  428. {mx_bluesky-1.5.1/tests/unit_tests/common → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  429. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  430. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
  431. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  432. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
  433. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  434. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  435. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  436. {mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  437. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  438. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
  439. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  440. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  441. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
  442. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  443. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  444. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  445. {mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction → mx_bluesky-1.5.2/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  446. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
  447. {mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.5.2/tests/unit_tests/common}/__init__.py +0 -0
  448. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  449. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  450. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
  451. {mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.5.2/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
  452. {mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.5.2/tests/unit_tests/common/experiment_plans/inner_plans}/__init__.py +0 -0
  453. {mx_bluesky-1.5.1/tests/unit_tests/common → mx_bluesky-1.5.2/tests/unit_tests/common/experiment_plans/inner_plans}/test_do_fgs.py +0 -0
  454. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
  455. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +0 -0
  456. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
  457. {mx_bluesky-1.5.1/tests/unit_tests/common/parameters → mx_bluesky-1.5.2/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  458. {mx_bluesky-1.5.1/tests/unit_tests/common/preprocessors → mx_bluesky-1.5.2/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  459. {mx_bluesky-1.5.1/tests/unit_tests/common/utils → mx_bluesky-1.5.2/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  460. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  461. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -0
  462. {mx_bluesky-1.5.1/tests/unit_tests/hyperion → mx_bluesky-1.5.2/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  463. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  464. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  465. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
  466. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  467. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  468. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  469. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  470. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
  471. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  472. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  473. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  474. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  475. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  476. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.5.2/tests/unit_tests/common/parameters}/__init__.py +0 -0
  477. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/parameters/test_components.py +0 -0
  478. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.5.2/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
  479. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  480. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.5.2/tests/unit_tests/common/utils}/__init__.py +0 -0
  481. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/common/utils/test_log.py +0 -0
  482. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.2/tests/unit_tests/hyperion}/__init__.py +0 -0
  483. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.2/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  484. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  485. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
  486. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  487. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  488. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.5.2/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  489. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  490. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  491. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +0 -0
  492. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  493. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -0
  494. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  495. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
  496. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
  497. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
  498. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +0 -0
  499. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
  500. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  501. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.5.2/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  502. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/parameters → mx_bluesky-1.5.2/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  503. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  504. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
  505. {mx_bluesky-1.5.1/tests/unit_tests/hyperion/utils → mx_bluesky-1.5.2/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  506. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
  507. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  508. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  509. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
  510. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  511. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  512. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  513. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  514. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  515. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  516. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
  517. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  518. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/test_utils.py +0 -0
  519. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  520. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  521. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/tests/unit_tests/test_cli.py +0 -0
  522. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/beam_off_trickery.sh +0 -0
  523. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/build_docker_image.sh +0 -0
  524. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/build_imginfo.sh +0 -0
  525. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/deploy/create_venv.py +0 -0
  526. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  527. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  528. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/deploy/test_deploy.py +0 -0
  529. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/dev_jaeger_container.sh +0 -0
  530. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/dls_dev_env.sh +0 -0
  531. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/docker/entrypoint.sh +0 -0
  532. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/docker/healthcheck.sh +0 -0
  533. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/docker/i03-compose.yml +0 -0
  534. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/generate_plantuml.py +0 -0
  535. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/graylog/Dockerfile +0 -0
  536. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/graylog/tcp_input.json +0 -0
  537. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/procserv_ioc_start.sh +0 -0
  538. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/run_imginfo.sh +0 -0
  539. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/setup_graylog.sh +0 -0
  540. {mx_bluesky-1.5.1 → mx_bluesky-1.5.2}/utility_scripts/strip_metafile.py +0 -0
@@ -42,18 +42,39 @@ jobs:
42
42
  file: Dockerfile.blueapi
43
43
  load: true
44
44
 
45
- - name: Create tags for publishing image
46
- id: meta
45
+ - name: Create tags for publishing Hyperion image
46
+ id: meta-hyperion
47
47
  uses: docker/metadata-action@v5
48
48
  with:
49
49
  images: |
50
50
  ghcr.io/${{ github.repository }}
51
+ labels: |
52
+ org.opencontainers.image.title=mx-bluesky
53
+ org.opencontainers.image.description=Hyperion service for MX Unattended Data Collection
54
+ annotations: |
55
+ org.opencontainers.image.title=mx-bluesky
56
+ org.opencontainers.image.description=Hyperion service for MX Unattended Data Collection
57
+ tags: |
58
+ type=ref,event=tag
59
+ type=raw,value=latest
60
+
61
+ - name: Create tags for publishing BlueAPI image
62
+ id: meta-blueapi
63
+ uses: docker/metadata-action@v5
64
+ with:
65
+ images: |
51
66
  ghcr.io/${{ github.repository }}-blueapi
67
+ labels: |
68
+ org.opencontainers.image.title=mx-bluesky-blueapi
69
+ org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
70
+ annotations: |
71
+ org.opencontainers.image.title=mx-bluesky-blueapi
72
+ org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
52
73
  tags: |
53
74
  type=ref,event=tag
54
75
  type=raw,value=latest
55
76
 
56
- - name: Push cached image to container registry
77
+ - name: Push cached Hyperion image to container registry
57
78
  if: github.ref_type == 'tag'
58
79
  uses: docker/build-push-action@v6
59
80
  env:
@@ -64,10 +85,12 @@ jobs:
64
85
  context: .
65
86
  file: Dockerfile.hyperion
66
87
  push: true
67
- tags: ${{ steps.meta.outputs.tags }}
68
- labels: ${{ steps.meta.outputs.labels }}
88
+ tags: ${{ steps.meta-hyperion.outputs.tags }}
89
+ labels: ${{ steps.meta-hyperion.outputs.labels }}
90
+ # Set the annotations to make the description appear in the GH repo page
91
+ annotations: ${{ steps.meta-hyperion.outputs.annotations }}
69
92
 
70
- - name: Push Dockerfile.blueapi image to container registry
93
+ - name: Push cached BlueAPI image to container registry
71
94
  if: github.ref_type == 'tag'
72
95
  uses: docker/build-push-action@v6
73
96
  env:
@@ -76,5 +99,7 @@ jobs:
76
99
  context: .
77
100
  file: Dockerfile.blueapi
78
101
  push: true
79
- tags: ${{ steps.meta.outputs.tags }}
80
- labels: ${{ steps.meta.outputs.labels }}
102
+ tags: ${{ steps.meta-blueapi.outputs.tags }}
103
+ labels: ${{ steps.meta-blueapi.outputs.labels }}
104
+ # Set the annotations to make the description appear in the GH repo page
105
+ annotations: ${{ steps.meta-blueapi.outputs.annotations }}
@@ -0,0 +1,23 @@
1
+ on:
2
+ workflow_call:
3
+
4
+ jobs:
5
+ build:
6
+ runs-on: ubuntu-latest
7
+
8
+ steps:
9
+ - name: Install Helm
10
+ uses: Azure/setup-helm@v4.3.0
11
+ id: install
12
+
13
+ - name: Helm login to GHCR
14
+ if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
15
+ run: |
16
+ echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io/${{ github.repository }} --username ${{ github.repository_owner }} --password-stdin
17
+
18
+ - name: Package and push chart
19
+ if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
20
+ run: |
21
+ helm dependencies update helm/mx-bluesky-blueapi
22
+ helm package helm/mx-bluesky-blueapi --version ${{ steps.meta.outputs.version }} --app-version ${{ steps.meta.outputs.version }} -d /tmp/
23
+ helm push /tmp/mx-bluesky-blueapi-${{ steps.meta.outputs.version }}.tgz oci://ghcr.io/diamondlightsource/charts
@@ -38,6 +38,14 @@ jobs:
38
38
  contents: read
39
39
  packages: write
40
40
 
41
+ helm:
42
+ needs: container
43
+ if: needs.check.outputs.branch-pr == ''
44
+ uses: ./.github/workflows/_helm.yml
45
+ permissions:
46
+ contents: read
47
+ packages: write
48
+
41
49
  docs:
42
50
  needs: check
43
51
  if: needs.check.outputs.branch-pr == ''
@@ -6,7 +6,7 @@ repos:
6
6
  args: ["--maxkb=500"]
7
7
  - id: check-yaml
8
8
  args: ["--allow-multiple-documents"]
9
- exclude: ^helmcharts/
9
+ exclude: ^helm/
10
10
  - id: check-merge-conflict
11
11
  - id: end-of-file-fixer
12
12
 
@@ -1,5 +1,7 @@
1
- # See https://github.com/DiamondLightSource/mx-bluesky/issues/1004
2
- FROM ghcr.io/diamondlightsource/blueapi:0.10.1
1
+ # Before changing this BlueAPI version number, you should check that
2
+ # the BlueAPI pin in pyproject.toml is compatible, else the version will
3
+ # be overridden
4
+ FROM ghcr.io/diamondlightsource/blueapi:1.0.0-rc.2
3
5
 
4
6
  ARG DEBIAN_FRONTEND=noninteractive
5
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.1
3
+ Version: 1.5.2
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
@@ -235,12 +235,12 @@ Requires-Dist: scipy
235
235
  Requires-Dist: semver
236
236
  Requires-Dist: deepdiff
237
237
  Requires-Dist: matplotlib
238
- Requires-Dist: blueapi>=0.11.1
238
+ Requires-Dist: blueapi>=0.15.0
239
239
  Requires-Dist: daq-config-server==0.1.1
240
240
  Requires-Dist: ophyd>=1.10.5
241
241
  Requires-Dist: ophyd-async>=0.10.0a2
242
242
  Requires-Dist: bluesky>=1.13.1
243
- Requires-Dist: dls-dodal==1.51.0
243
+ Requires-Dist: dls-dodal==1.52.0
244
244
  Provides-Extra: dev
245
245
  Requires-Dist: black; extra == "dev"
246
246
  Requires-Dist: build; extra == "dev"
@@ -80,6 +80,16 @@ are not already present:
80
80
  * ``rmq-creds``
81
81
  * ``rmq-api-reader``
82
82
 
83
+ In addition, an ispyb credentials secret must be created with the following name:
84
+ * ``ispyb-hyperion-cfg``
85
+
86
+
87
+ For creating the secrets, use ``kubectl create secret``:
88
+
89
+ ::
90
+
91
+ kubectl create secret -n i03-beamline generic ispyb-hyperion-cfg --from-file=ispyb.cfg=<path-to-ispyb-hyperion-ixx.cfg>
92
+
83
93
  Production deployment
84
94
  ~~~~~~~~~~~~~~~~~~~~~
85
95
 
@@ -68,48 +68,13 @@ spec:
68
68
  name: {{ .secretName }}
69
69
  {{- end -}} {{/* range */}}
70
70
  {{- end -}} {{/* if */}}
71
+ - name: ispyb-secrets
72
+ secret:
73
+ type: secret
74
+ secretName: ispyb-hyperion-cfg
71
75
  containers:
72
76
  - name: hyperion
73
- image: {{ .Values.application.imageRepository}}/mx-bluesky:{{ .Values.application.appVersion }}
74
- securityContext:
75
- capabilities:
76
- # Required for hostNetwork
77
- drop:
78
- - AUDIT_WRITE
79
- - CHOWN
80
- - DAC_OVERRIDE
81
- - FOWNER
82
- - FSETID
83
- - KILL
84
- - MKNOD
85
- - NET_BIND_SERVICE
86
- - NET_RAW
87
- - SETFCAP
88
- - SETGID
89
- - SETPCAP
90
- - SETUID
91
- - SYS_CHROOT
92
- - AUDIT_CONTROL
93
- - BLOCK_SUSPEND
94
- - DAC_READ_SEARCH
95
- - IPC_LOCK
96
- - IPC_OWNER
97
- - LEASE
98
- - LINUX_IMMUTABLE
99
- - MAC_ADMIN
100
- - MAC_OVERRIDE
101
- - SYS_ADMIN
102
- - SYS_BOOT
103
- - SYS_MODULE
104
- - SYS_NICE
105
- - SYS_PACCT
106
- - SYS_MODULE
107
- - SYS_PTRACE
108
- - SYS_RESOURCE
109
- - SYS_TIME
110
- - SYS_TTY_CONFIG
111
- - SYSLOG
112
- - WAKE_ALARM
77
+ image: {{ .Values.application.imageRepository}}/mx-bluesky:{{ .Values.application.appVersion }}
113
78
  resources:
114
79
  limits:
115
80
  cpu: "1"
@@ -133,7 +98,7 @@ spec:
133
98
  - name: ZOCALO_CONFIG
134
99
  value: "/zocalo/config/configuration.yaml"
135
100
  - name: ISPYB_CONFIG_PATH
136
- value: "/dls_sw/dasc/mariadb/credentials/ispyb-hyperion-{{ .Values.application.beamline }}.cfg"
101
+ value: "/ispyb/secrets/ispyb.cfg"
137
102
  {{- end }}
138
103
  readinessProbe:
139
104
  exec:
@@ -166,4 +131,6 @@ spec:
166
131
  name: zocalo-config
167
132
  - mountPath: "/zocalo/secrets"
168
133
  name: zocalo-secrets
134
+ - mountPath: "/ispyb/secrets"
135
+ name: ispyb-secrets
169
136
  hostNetwork: true
@@ -9,7 +9,7 @@ application:
9
9
  beamline: i03
10
10
  dev: false
11
11
  logDir: "/dls_sw/i03/logs/bluesky/hyperion-k8s"
12
- debugLogDir: "/dls/tmp/i03/logs/bluesky"
12
+ debugLogDir: "/dls/tmp/i03/logs/bluesky-k8s"
13
13
  dataDir: "/dls/i03/data"
14
14
  # These should be overridden at install time
15
15
  projectDir: SET_ON_INSTALL
@@ -0,0 +1,16 @@
1
+ apiVersion: v2
2
+ name: mx-bluesky-blueapi
3
+ description: A helm chart deploying a worker pod that runs Bluesky plans
4
+
5
+ # This chart provides extra configuration to a BlueAPI application which is generic to all MX beamlines,
6
+ # and does not startup an application by itself. A BlueAPI service in ixx-services should add this chart
7
+ # as a dependency. It currently mounts zocalo and ispyb credentials as config maps, with the assumption
8
+ # that the beamline cluster have these secrets available. In the future, this helmchart may change to a
9
+ # library type
10
+ type: application
11
+
12
+ # This is the chart version. This version number should be incremented each time you make changes
13
+ # to the chart and its templates, including the app version.
14
+ # Versions are expected to follow Semantic Versioning (https://semver.org/)
15
+ # This is updated automatically by CI, the appVersion is automatically inserted by CI
16
+ version: 0.1.1
@@ -0,0 +1,18 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: "{{ .Release.Name }}-ispyb-config"
5
+ namespace: "{{ .Release.Namespace }}"
6
+ labels:
7
+ app.kubernetes.io/name: ispyb-config
8
+ app.kubernetes.io/instance: "{{ .Release.Name }}-ispyb-config"
9
+ app.kubernetes.io/version: "{{ .Chart.Version }}"
10
+ app.kubernetes.io/part-of: mx-bluesky-blueapi
11
+ data:
12
+ configuration.yaml: |-
13
+ version: 1
14
+ {{- if .Values.ispyb.secrets }}
15
+ {{- range .Values.ispyb.secrets }}
16
+ {{ .name }}: "/ispyb/secrets/{{ .fileName }}"
17
+ {{- end -}} {{/* range */}}
18
+ {{- end -}} {{/* if */}}
@@ -0,0 +1,38 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: "zocalo-config"
5
+ namespace: "{{ .Release.Namespace }}"
6
+ labels:
7
+ app.kubernetes.io/name: zocalo-config
8
+ app.kubernetes.io/instance: "{{ .Release.Name }}-zocalo-config"
9
+ app.kubernetes.io/version: "{{ .Chart.Version }}"
10
+ app.kubernetes.io/part-of: mx-bluesky-blueapi
11
+ data:
12
+ configuration.yaml: |-
13
+ version: 1
14
+ graylog:
15
+ plugin: graylog
16
+ {{- .Values.zocalo.graylog | toYaml | nindent 6 }}
17
+ {{- if .Values.zocalo.secrets }}
18
+ {{- range .Values.zocalo.secrets }}
19
+ {{ .name }}: "/zocalo/secrets/{{ .fileName }}"
20
+ {{- end -}} {{/* range */}}
21
+ {{- end -}} {{/* if */}}
22
+
23
+
24
+ default-transport:
25
+ plugin: transport
26
+ default: {{ .Values.zocalo.defaultTransport }}
27
+
28
+ environments:
29
+
30
+ bluesky:
31
+ logging: graylog
32
+ plugins:
33
+ - default-transport
34
+ {{- if .Values.zocalo.secrets }}
35
+ {{- range .Values.zocalo.secrets }}
36
+ - {{ .name }}
37
+ {{- end -}} {{/* range */}}
38
+ {{- end -}} {{/* if */}}
@@ -0,0 +1,19 @@
1
+ zocalo:
2
+ defaultTransport: "PikaTransport"
3
+ graylog:
4
+ host: graylog-log-target.diamond.ac.uk
5
+ port: 12208
6
+ protocol: UDP
7
+ secrets:
8
+ - name: rabbitmq
9
+ secretName: rmq-creds
10
+ fileName: rabbitmq-credentials.yml
11
+ - name: rabbitmq-api-reader
12
+ secretName: rmq-api-reader
13
+ fileName: rabbitmq-api-reader.yml
14
+
15
+ ispyb:
16
+ secrets:
17
+ - name: ispyb-creds
18
+ secretName: ispyb-creds
19
+ fileName: ispyb-credentials.yml
@@ -42,12 +42,12 @@ dependencies = [
42
42
  # These dependencies may be issued as pre-release versions and should have a pin constraint
43
43
  # as by default pip-install will not upgrade to a pre-release.
44
44
  #
45
- "blueapi >= 0.11.1",
45
+ "blueapi >= 0.15.0",
46
46
  "daq-config-server == 0.1.1",
47
47
  "ophyd >= 1.10.5",
48
48
  "ophyd-async >= 0.10.0a2",
49
49
  "bluesky >= 1.13.1",
50
- "dls-dodal == 1.51.0",
50
+ "dls-dodal == 1.52.0",
51
51
  ]
52
52
 
53
53
 
@@ -248,5 +248,15 @@ modules = "mx_bluesky.beamlines.*"
248
248
  [[tool.importlinter.contracts]]
249
249
  name = "Beamlines do not import from hyperion"
250
250
  type = "forbidden"
251
- source_modules = "mx_bluesky.beamlines.*"
252
- forbidden_modules = "mx_bluesky.hyperion"
251
+ source_modules = "mx_bluesky.beamlines.**"
252
+ forbidden_modules = "mx_bluesky.hyperion.**"
253
+
254
+ [[tool.importlinter.contracts]]
255
+ name = "Only Hyperion and i04 can import from phase1_zebra"
256
+ type = "forbidden"
257
+ source_modules = ["mx_bluesky.beamlines.**", "mx_bluesky.common.**"]
258
+ forbidden_modules = ["mx_bluesky.phase1_zebra.**"]
259
+ ignore_imports = [
260
+ "mx_bluesky.beamlines.i04.** -> mx_bluesky.phase1_zebra.**",
261
+ "mx_bluesky.hyperion.** -> mx_bluesky.phase1_zebra.**",
262
+ ]
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.5.1'
21
- __version_tuple__ = version_tuple = (1, 5, 1)
20
+ __version__ = version = '1.5.2'
21
+ __version_tuple__ = version_tuple = (1, 5, 2)
@@ -0,0 +1,6 @@
1
+ from mx_bluesky.beamlines.i04.experiment_plans import (
2
+ i04_grid_detect_then_xray_centre_plan,
3
+ )
4
+ from mx_bluesky.beamlines.i04.thawing_plan import thaw, thaw_and_stream_to_redis
5
+
6
+ __all__ = ["thaw", "thaw_and_stream_to_redis", "i04_grid_detect_then_xray_centre_plan"]
@@ -0,0 +1,110 @@
1
+ import copy
2
+ import json
3
+ from datetime import timedelta
4
+ from typing import TypedDict
5
+
6
+ from bluesky.callbacks import CallbackBase
7
+ from dodal.log import LOGGER
8
+ from event_model.documents import Event, RunStart, RunStop
9
+ from redis import StrictRedis
10
+
11
+
12
+ class OmegaReading(TypedDict):
13
+ value: float
14
+ timestamp: float
15
+
16
+
17
+ def extrapolate_omega(
18
+ latest_omega: OmegaReading, previous_omega: OmegaReading, image_timestamp: float
19
+ ) -> float:
20
+ """Extrapolate an image omega from previous omegas.
21
+
22
+ There are a number of assumptions in this calculation:
23
+ * The speed of the smargon is fixed
24
+ * The timestamps from the two different devices are synchronised and match the data
25
+ exactly
26
+
27
+ These are accepted to be reasonable based on larger errors likely coming from murko
28
+ itself and that the results ultimately will be averaged out.
29
+ """
30
+ omega_per_sec = (latest_omega["value"] - previous_omega["value"]) / (
31
+ latest_omega["timestamp"] - previous_omega["timestamp"]
32
+ )
33
+ time_elapsed = image_timestamp - latest_omega["timestamp"]
34
+ return latest_omega["value"] + time_elapsed * omega_per_sec
35
+
36
+
37
+ class MurkoCallback(CallbackBase):
38
+ """A callback that triggers murko processing of images.
39
+
40
+ It combines metadata readings from e.g the goniometer rotation with the uuid's given
41
+ to us by an `OAVToRedisForwarder` (which describe the location of images in redis).
42
+ And writes these as a package to redis. A separate service then forwards this to murko.
43
+
44
+ The metadata and image data arrive independently, it is expected that the image data
45
+ is arriving at a faster rate than gonio metadata and so the value of omega for when
46
+ the image arrives is extrapolated based on previous omega readings.
47
+ """
48
+
49
+ DATA_EXPIRY_DAYS = 7
50
+
51
+ def __init__(self, redis_host: str, redis_password: str, redis_db: int = 0):
52
+ self.redis_client = StrictRedis(
53
+ host=redis_host, password=redis_password, db=redis_db
54
+ )
55
+ self.last_uuid = None
56
+ self.previous_omegas: list[OmegaReading] = []
57
+
58
+ def start(self, doc: RunStart) -> RunStart | None:
59
+ self.sample_id = doc.get("sample_id")
60
+ self.murko_metadata = {
61
+ "zoom_percentage": doc.get("zoom_percentage"),
62
+ "microns_per_x_pixel": doc.get("microns_per_x_pixel"),
63
+ "microns_per_y_pixel": doc.get("microns_per_y_pixel"),
64
+ "beam_centre_i": doc.get("beam_centre_i"),
65
+ "beam_centre_j": doc.get("beam_centre_j"),
66
+ "sample_id": self.sample_id,
67
+ }
68
+ self.last_uuid = None
69
+ self.previous_omegas = []
70
+ LOGGER.info(f"Starting to stream metadata to murko under {self.sample_id}")
71
+ return doc
72
+
73
+ def event(self, doc: Event) -> Event:
74
+ if latest_omega := doc["data"].get("smargon-omega"):
75
+ if len(self.previous_omegas) <= 2 and self.last_uuid:
76
+ # For the first few images there's not enough data to extrapolate so we
77
+ # match them one to one
78
+ self.call_murko(self.last_uuid, latest_omega)
79
+ self.previous_omegas.append(
80
+ OmegaReading(
81
+ value=latest_omega,
82
+ timestamp=doc["timestamps"]["smargon-omega"],
83
+ )
84
+ )
85
+ elif (uuid := doc["data"].get("oav_to_redis_forwarder-uuid")) is not None:
86
+ if len(self.previous_omegas) >= 2:
87
+ omega = extrapolate_omega(
88
+ self.previous_omegas[-1],
89
+ self.previous_omegas[-2],
90
+ doc["timestamps"]["oav_to_redis_forwarder-uuid"],
91
+ )
92
+ LOGGER.info(f"Using extrapolated omega of {omega}")
93
+ self.call_murko(uuid, omega)
94
+ self.last_uuid = uuid
95
+ return doc
96
+
97
+ def call_murko(self, uuid: str, omega: float):
98
+ metadata = copy.deepcopy(self.murko_metadata)
99
+ metadata["omega_angle"] = omega
100
+ metadata["uuid"] = uuid
101
+
102
+ # Send metadata to REDIS and trigger murko
103
+ redis_key = f"murko:{metadata['sample_id']}:metadata"
104
+ self.redis_client.hset(redis_key, uuid, json.dumps(metadata))
105
+ self.redis_client.expire(redis_key, timedelta(days=self.DATA_EXPIRY_DAYS))
106
+ self.redis_client.publish("murko", json.dumps(metadata))
107
+
108
+ def stop(self, doc: RunStop) -> RunStop | None:
109
+ LOGGER.info(f"Finished streaming {self.sample_id} to murko")
110
+ return doc