mx-bluesky 1.5.8__tar.gz → 1.5.9__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 (582) hide show
  1. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_helm.yml +6 -1
  2. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/PKG-INFO +2 -2
  3. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/pyproject.toml +5 -11
  4. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/_version.py +3 -3
  5. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +33 -10
  6. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +2 -2
  7. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +8 -4
  8. mx_bluesky-1.5.9/src/mx_bluesky/common/device_setup_plans/setup_zebra_and_shutter.py +245 -0
  9. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +9 -21
  10. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +4 -2
  11. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +4 -3
  12. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +34 -25
  13. mx_bluesky-1.5.9/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +51 -0
  14. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +7 -5
  15. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +4 -2
  16. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +14 -5
  17. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/PKG-INFO +2 -2
  18. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/SOURCES.txt +19 -2
  19. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/requires.txt +1 -1
  20. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/conftest.py +23 -10
  21. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +29 -38
  22. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +60 -5
  23. mx_bluesky-1.5.8/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py → mx_bluesky-1.5.9/tests/unit_tests/common/device_setup_plans/test_setup_zebra_and_shutter.py +52 -45
  24. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +16 -38
  25. mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  26. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +3 -3
  27. mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/nexus/__init__.py +0 -0
  28. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +36 -13
  29. mx_bluesky-1.5.9/tests/unit_tests/common/parameters/__init__.py +0 -0
  30. mx_bluesky-1.5.9/tests/unit_tests/common/preprocessors/__init__.py +0 -0
  31. mx_bluesky-1.5.9/tests/unit_tests/common/utils/__init__.py +0 -0
  32. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/conftest.py +4 -1
  33. mx_bluesky-1.5.9/tests/unit_tests/hyperion/__init__.py +0 -0
  34. mx_bluesky-1.5.9/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
  35. mx_bluesky-1.5.9/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +44 -0
  36. mx_bluesky-1.5.9/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
  37. mx_bluesky-1.5.9/tests/unit_tests/hyperion/experiment_plans/common/__init__.py +0 -0
  38. mx_bluesky-1.5.9/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  39. mx_bluesky-1.5.9/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  40. mx_bluesky-1.5.9/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/__init__.py +0 -0
  41. mx_bluesky-1.5.9/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  42. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/test_alert_on_container_change.py +36 -26
  43. mx_bluesky-1.5.9/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  44. mx_bluesky-1.5.9/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  45. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_main_system.py +6 -0
  46. mx_bluesky-1.5.9/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  47. mx_bluesky-1.5.8/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -149
  48. mx_bluesky-1.5.8/src/mx_bluesky/phase1_zebra/device_setup_plans/setup_zebra.py +0 -112
  49. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.copier-answers.yml +0 -0
  50. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.coveragerc +0 -0
  51. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.devcontainer/Dockerfile +0 -0
  52. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.devcontainer/devcontainer.json +0 -0
  53. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.dockerignore +0 -0
  54. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/CODEOWNERS +0 -0
  55. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/CONTRIBUTING.md +0 -0
  56. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  57. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  58. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/actions/install_requirements/action.yml +0 -0
  59. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/actions/verify-nexus/Dockerfile +0 -0
  60. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/actions/verify-nexus/action.yml +0 -0
  61. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  62. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/dependabot.yml +0 -0
  63. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/pages/index.html +0 -0
  64. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/pages/make_switcher.py +0 -0
  65. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_check.yml +0 -0
  66. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_container.yml +0 -0
  67. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_dist.yml +0 -0
  68. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_docs.yml +0 -0
  69. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_pypi.yml +0 -0
  70. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_release.yml +0 -0
  71. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_test.yml +0 -0
  72. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/_tox.yml +0 -0
  73. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/ci.yml +0 -0
  74. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.github/workflows/periodic.yml +0 -0
  75. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.gitignore +0 -0
  76. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.pre-commit-config.yaml +0 -0
  77. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/extensions.json +0 -0
  78. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/launch.json +0 -0
  79. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/mx-bluesky-dev-container.code-workspace +0 -0
  80. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/mx-bluesky.code-workspace +0 -0
  81. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  82. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/settings.json +0 -0
  83. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/.vscode/tasks.json +0 -0
  84. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/Dockerfile +0 -0
  85. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/Dockerfile.blueapi +0 -0
  86. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/Dockerfile.hyperion +0 -0
  87. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/LICENSE +0 -0
  88. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/README.rst +0 -0
  89. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/catalog-info.yaml +0 -0
  90. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/codecov.yml +0 -0
  91. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/conftest.py +0 -0
  92. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/_api.rst +0 -0
  93. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/_templates/custom-module-template.rst +0 -0
  94. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/conf.py +0 -0
  95. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  96. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
  97. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/code-map/index.rst +0 -0
  98. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  99. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
  100. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  101. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  102. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  103. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/explanations/decisions.rst +0 -0
  104. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/contribute.rst +0 -0
  105. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/create-a-release.rst +0 -0
  106. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  107. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  108. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  109. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  110. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  111. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  112. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/how-to/get-started.md +0 -0
  113. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/index.rst +0 -0
  114. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/reference/standards.rst +0 -0
  115. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  116. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  117. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  118. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/index.rst +0 -0
  119. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/baton.rst +0 -0
  120. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  121. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  122. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/gda-baton.puml +0 -0
  123. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  124. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  125. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/reference/readme.md +0 -0
  126. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/hyperion/system-tests.rst +0 -0
  127. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/index.rst +0 -0
  128. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/murko-integration/explanations/DrawioImages.rst +0 -0
  129. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  130. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
  131. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/murko-integration/index.rst +0 -0
  132. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  133. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  134. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  135. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  136. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  137. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  138. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  139. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  140. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  141. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/417717258-afbd813c-8941-445c-9fdf-255c167453cf.png +0 -0
  142. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/dls-favicon.ico +0 -0
  143. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/dls-logo.svg +0 -0
  144. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/motor coordinate systems.odg +0 -0
  145. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/motor-coords-omega-0.svg +0 -0
  146. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/images/motor-coords-omega-alpha.svg +0 -0
  147. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/index.rst +0 -0
  148. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/alerts.rst +0 -0
  149. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/configuration.rst +0 -0
  150. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/index.rst +0 -0
  151. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/pvs.rst +0 -0
  152. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/running.rst +0 -0
  153. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/docs/user/hyperion/troubleshooting.rst +0 -0
  154. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/Chart.yaml +0 -0
  155. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/templates/deployment.yaml +0 -0
  156. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/templates/ingress.yaml +0 -0
  157. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/templates/service.yaml +0 -0
  158. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/templates/zocalo-config.yaml +0 -0
  159. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/hyperion/values.yaml +0 -0
  160. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
  161. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -0
  162. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/mx-bluesky-blueapi/values.yaml +0 -0
  163. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/redis-to-murko/Chart.yaml +0 -0
  164. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/redis-to-murko/templates/deployment.yaml +0 -0
  165. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/helm/redis-to-murko/values.yaml +0 -0
  166. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/pull_request_template.md +0 -0
  167. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/run_hyperion.sh +0 -0
  168. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/run_hyperion_in_podman.sh +0 -0
  169. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/setup.cfg +0 -0
  170. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/__init__.py +0 -0
  171. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/__main__.py +0 -0
  172. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/__init__.py +0 -0
  173. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  174. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  175. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  176. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  177. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i02_1/parameters/__init__.py +0 -0
  178. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i02_1/parameters/gridscan.py +0 -0
  179. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  180. {mx_bluesky-1.5.8/src/mx_bluesky/beamlines/i04/experiment_plans → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i04/callbacks}/__init__.py +0 -0
  181. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  182. {mx_bluesky-1.5.8/src/mx_bluesky/beamlines/i24 → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i04/experiment_plans}/__init__.py +0 -0
  183. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  184. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  185. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  186. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  187. {mx_bluesky-1.5.8/src/mx_bluesky/beamlines/i24/serial/extruder → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i24}/__init__.py +0 -0
  188. {mx_bluesky-1.5.8/src/mx_bluesky/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i24/jungfrau_commissioning}/__init__.py +0 -0
  189. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/do_external_acquisition.py +0 -0
  190. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/do_internal_acquisition.py +0 -0
  191. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_utils.py +0 -0
  192. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  193. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  194. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
  195. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  196. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  197. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  198. {mx_bluesky-1.5.8/src/mx_bluesky/beamlines/i24/serial/web_gui_plans → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i24/serial/extruder}/__init__.py +0 -0
  199. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +0 -0
  200. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  201. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  202. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  203. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  204. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  205. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  206. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  207. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  208. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  209. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  210. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  211. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  212. {mx_bluesky-1.5.8/src/mx_bluesky/common → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  213. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  214. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +0 -0
  215. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +0 -0
  216. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  217. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  218. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  219. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  220. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  221. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  222. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  223. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  224. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  225. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  226. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  227. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  228. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  229. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  230. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  231. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  232. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  233. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  234. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  235. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  236. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -0
  237. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  238. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  239. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  240. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction → mx_bluesky-1.5.9/src/mx_bluesky/beamlines/i24/serial/web_gui_plans}/__init__.py +0 -0
  241. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +0 -0
  242. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  243. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction/callbacks → mx_bluesky-1.5.9/src/mx_bluesky}/common/__init__.py +0 -0
  244. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.5.9/src/mx_bluesky/common/device_setup_plans}/__init__.py +0 -0
  245. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  246. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  247. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  248. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
  249. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  250. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
  251. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  252. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +0 -0
  253. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.5.9/src/mx_bluesky/common/experiment_plans/inner_plans}/__init__.py +0 -0
  254. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +0 -0
  255. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/inner_plans/udc_default_state.py +0 -0
  256. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
  257. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
  258. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
  259. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  260. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
  261. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
  262. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
  263. {mx_bluesky-1.5.8/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction/callbacks/common}/__init__.py +0 -0
  264. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  265. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  266. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
  267. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  268. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  269. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  270. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  271. {mx_bluesky-1.5.8/src/mx_bluesky/common/parameters → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  272. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  273. {mx_bluesky-1.5.8/src/mx_bluesky/common/preprocessors → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  274. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  275. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  276. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  277. {mx_bluesky-1.5.8/src/mx_bluesky/common/protocols → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  278. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
  279. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
  280. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
  281. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  282. {mx_bluesky-1.5.8/src/mx_bluesky/common/utils → mx_bluesky-1.5.9/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  283. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  284. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  285. {mx_bluesky-1.5.8/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.5.9/src/mx_bluesky/common/parameters}/__init__.py +0 -0
  286. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/parameters/components.py +0 -0
  287. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/parameters/constants.py +0 -0
  288. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/parameters/device_composites.py +0 -0
  289. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  290. {mx_bluesky-1.5.8/src/mx_bluesky/hyperion/external_interaction/alerting → mx_bluesky-1.5.9/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
  291. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  292. {mx_bluesky-1.5.8/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.9/src/mx_bluesky/common/protocols}/__init__.py +0 -0
  293. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  294. {mx_bluesky-1.5.8/src/mx_bluesky/phase1_zebra/device_setup_plans → mx_bluesky-1.5.9/src/mx_bluesky/common/utils}/__init__.py +0 -0
  295. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/utils/context.py +0 -0
  296. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  297. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/utils/log.py +0 -0
  298. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/utils/tracing.py +0 -0
  299. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/utils/utils.py +0 -0
  300. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/common/xrc_result.py +0 -0
  301. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/definitions.py +0 -0
  302. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/__init__.py +0 -0
  303. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/__main__.py +0 -0
  304. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/baton_handler.py +0 -0
  305. {mx_bluesky-1.5.8/tests → mx_bluesky-1.5.9/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  306. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  307. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  308. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
  309. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  310. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  311. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
  312. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  313. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
  314. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  315. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
  316. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
  317. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +0 -0
  318. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
  319. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
  320. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  321. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +0 -0
  322. {mx_bluesky-1.5.8/tests/system_tests → mx_bluesky-1.5.9/src/mx_bluesky/hyperion/external_interaction/alerting}/__init__.py +0 -0
  323. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
  324. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  325. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +0 -0
  326. {mx_bluesky-1.5.8/tests/system_tests/hyperion → mx_bluesky-1.5.9/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions}/__init__.py +0 -0
  327. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
  328. {mx_bluesky-1.5.8/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.5.9/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  329. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
  330. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  331. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  332. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  333. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
  334. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  335. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  336. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  337. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/constants.py +0 -0
  338. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/device_composites.py +0 -0
  339. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  340. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  341. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  342. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
  343. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/plan_runner.py +0 -0
  344. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/plan_runner_api.py +0 -0
  345. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  346. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/runner.py +0 -0
  347. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  348. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  349. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  350. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
  351. {mx_bluesky-1.5.8/tests/system_tests/hyperion/external_interaction/alerting → mx_bluesky-1.5.9/src/mx_bluesky/phase1_zebra/device_setup_plans}/__init__.py +0 -0
  352. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  353. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  354. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  355. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/start_jupyter.sh +0 -0
  356. {mx_bluesky-1.5.8/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.9/tests}/__init__.py +0 -0
  357. {mx_bluesky-1.5.8/tests/unit_tests → mx_bluesky-1.5.9/tests/system_tests}/__init__.py +0 -0
  358. {mx_bluesky-1.5.8/tests/unit_tests/beamlines → mx_bluesky-1.5.9/tests/system_tests/common/device_setup_plans}/__init__.py +0 -0
  359. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  360. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/conftest.py +0 -0
  361. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24 → mx_bluesky-1.5.9/tests/system_tests/hyperion}/__init__.py +0 -0
  362. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.5.9/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  363. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.5.9/tests/system_tests/hyperion/external_interaction/alerting}/__init__.py +0 -0
  364. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
  365. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.9/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  366. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  367. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/conftest.py +0 -0
  368. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  369. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +0 -0
  370. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  371. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +0 -0
  372. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
  373. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
  374. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/system_tests/hyperion/test_main_udc.py +0 -0
  375. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  376. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/agamemnon/example_native.json +0 -0
  377. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/agamemnon/example_wait.json +0 -0
  378. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  379. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/README.md +0 -0
  380. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  381. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  382. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  383. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  384. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  385. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  386. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  387. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  388. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  389. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  390. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  391. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  392. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
  393. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
  394. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  395. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  396. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  397. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  398. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  399. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  400. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  401. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  402. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  403. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  404. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/scratch/README +0 -0
  405. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_OAVCentring.json +0 -0
  406. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  407. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  408. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_beamline_parameters.txt +0 -0
  409. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  410. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_config.cfg +0 -0
  411. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  412. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  413. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  414. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  415. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  416. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  417. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  418. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_det_dist_converter.txt +0 -0
  419. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_display.configuration +0 -0
  420. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_domain_properties +0 -0
  421. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_domain_properties_with_no_gpu +0 -0
  422. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_domain_properties_with_panda +0 -0
  423. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  424. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  425. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  426. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  427. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  428. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  429. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  430. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  431. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  432. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  433. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  434. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_lookup_table.txt +0 -0
  435. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/test_mirror_focus.json +0 -0
  436. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  437. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.5.9/tests/unit_tests}/__init__.py +0 -0
  438. {mx_bluesky-1.5.8/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.5.9/tests/unit_tests/beamlines}/__init__.py +0 -0
  439. {mx_bluesky-1.5.8/tests/unit_tests/common → mx_bluesky-1.5.9/tests/unit_tests/beamlines/aithre_lasershaping}/__init__.py +0 -0
  440. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
  441. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  442. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
  443. {mx_bluesky-1.5.8/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i04}/__init__.py +0 -0
  444. {mx_bluesky-1.5.8/tests/unit_tests/common/experiment_plans/inner_plans → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i04/callbacks}/__init__.py +0 -0
  445. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  446. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  447. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
  448. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i23}/__init__.py +0 -0
  449. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  450. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction/alerting → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  451. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction/alerting/alerting → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/jungfrau_commissioning}/__init__.py +0 -0
  452. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_do_external_acquisition.py +0 -0
  453. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_do_internal_acquisition.py +0 -0
  454. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_plan_utils.py +0 -0
  455. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  456. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
  457. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  458. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
  459. {mx_bluesky-1.5.8/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  460. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  461. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
  462. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  463. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
  464. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  465. {mx_bluesky-1.5.8/tests/unit_tests/common → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial}/parameters/__init__.py +0 -0
  466. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  467. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  468. {mx_bluesky-1.5.8/tests/unit_tests/common/preprocessors → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  469. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  470. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
  471. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  472. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  473. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
  474. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  475. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  476. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  477. {mx_bluesky-1.5.8/tests/unit_tests/common/utils → mx_bluesky-1.5.9/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  478. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
  479. {mx_bluesky-1.5.8/tests/unit_tests/hyperion → mx_bluesky-1.5.9/tests/unit_tests/common}/__init__.py +0 -0
  480. {mx_bluesky-1.5.8/tests/unit_tests/hyperion → mx_bluesky-1.5.9/tests/unit_tests/common}/device_setup_plans/__init__.py +0 -0
  481. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  482. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  483. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +1 -1
  484. {mx_bluesky-1.5.8/tests/unit_tests/hyperion → mx_bluesky-1.5.9/tests/unit_tests/common}/experiment_plans/__init__.py +0 -0
  485. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.5.9/tests/unit_tests/common/experiment_plans/inner_plans}/__init__.py +0 -0
  486. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +0 -0
  487. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +0 -0
  488. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/inner_plans/test_udc_default_state.py +0 -0
  489. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/inner_plans/test_write_sample_status.py +0 -0
  490. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
  491. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +0 -0
  492. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +0 -0
  493. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
  494. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  495. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/alerting}/__init__.py +0 -0
  496. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/alerting/alerting}/__init__.py +0 -0
  497. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
  498. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/parameters → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  499. {mx_bluesky-1.5.8/tests/unit_tests/hyperion/utils → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  500. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  501. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -0
  502. mx_bluesky-1.5.8/src/mx_bluesky/common/experiment_plans/inner_plans/__init__ .py → mx_bluesky-1.5.9/tests/unit_tests/common/external_interaction/callbacks/ispyb/__init__.py +0 -0
  503. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  504. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  505. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  506. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
  507. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  508. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  509. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  510. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  511. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
  512. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  513. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  514. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  515. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  516. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  517. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/parameters/test_components.py +0 -0
  518. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/parameters/test_constants.py +0 -0
  519. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  520. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/common/utils/test_log.py +0 -0
  521. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/conftest.py +0 -0
  522. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  523. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
  524. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  525. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  526. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
  527. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +5 -5
  528. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/conftest.py +0 -0
  529. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  530. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +0 -0
  531. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  532. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -0
  533. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  534. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
  535. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
  536. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
  537. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +0 -0
  538. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
  539. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  540. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  541. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
  542. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
  543. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  544. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
  545. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  546. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  547. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  548. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  549. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  550. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  551. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  552. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
  553. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
  554. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_baton_handler.py +0 -0
  555. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  556. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_plan_runner_api.py +0 -0
  557. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_runner.py +0 -0
  558. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/test_utils.py +0 -0
  559. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  560. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  561. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/t01.py +0 -0
  562. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/tests/unit_tests/test_cli.py +0 -0
  563. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/build_docker_image.sh +0 -0
  564. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/build_imginfo.sh +0 -0
  565. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/deploy/create_venv.py +0 -0
  566. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  567. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  568. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
  569. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/deploy/test_deploy.py +0 -0
  570. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/dev_jaeger_container.sh +0 -0
  571. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/dls_dev_env.sh +0 -0
  572. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/docker/entrypoint.sh +0 -0
  573. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/docker/healthcheck.sh +0 -0
  574. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/docker/i03-compose.yml +0 -0
  575. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/generate_plantuml.py +0 -0
  576. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/graylog/Dockerfile +0 -0
  577. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/graylog/tcp_input.json +0 -0
  578. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/procserv_ioc_start.sh +0 -0
  579. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/request_baton.sh +0 -0
  580. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/run_imginfo.sh +0 -0
  581. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/setup_graylog.sh +0 -0
  582. {mx_bluesky-1.5.8 → mx_bluesky-1.5.9}/utility_scripts/strip_metafile.py +0 -0
@@ -6,7 +6,6 @@ jobs:
6
6
  runs-on: ubuntu-latest
7
7
 
8
8
  steps:
9
-
10
9
  - name: checkout repo
11
10
  uses: actions/checkout@v4
12
11
  with:
@@ -22,6 +21,12 @@ jobs:
22
21
  run: |
23
22
  echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io/${{ github.repository }} --username ${{ github.repository_owner }} --password-stdin
24
23
 
24
+ - name: Get version from Git tag
25
+ id: meta
26
+ run: |
27
+ TAG=${GITHUB_REF#refs/tags/}
28
+ echo "version=$TAG" >> $GITHUB_OUTPUT
29
+
25
30
  - name: Package and push chart
26
31
  if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
27
32
  run: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.8
3
+ Version: 1.5.9
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -241,7 +241,7 @@ Requires-Dist: blueapi>=0.15.0
241
241
  Requires-Dist: ophyd>=1.10.5
242
242
  Requires-Dist: ophyd-async>=0.10.0a2
243
243
  Requires-Dist: bluesky>=1.13.1
244
- Requires-Dist: dls-dodal==1.61.0
244
+ Requires-Dist: dls-dodal==1.62.0
245
245
  Provides-Extra: dev
246
246
  Requires-Dist: black; extra == "dev"
247
247
  Requires-Dist: build; extra == "dev"
@@ -48,7 +48,7 @@ dependencies = [
48
48
  "ophyd >= 1.10.5",
49
49
  "ophyd-async >= 0.10.0a2",
50
50
  "bluesky >= 1.13.1",
51
- "dls-dodal == 1.61.0",
51
+ "dls-dodal == 1.62.0",
52
52
  ]
53
53
 
54
54
 
@@ -218,6 +218,7 @@ lint.select = [
218
218
  "PT012", # flake8-pytest-style rules - https://docs.astral.sh/ruff/rules/pytest-raises-with-multiple-statements/#pytest-raises-with-multiple-statements-pt012
219
219
  "RUF018", # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
220
220
  "TID251", # banned api - https://docs.astral.sh/ruff/rules/banned-api/
221
+ "INP001", # missing __init__.py - https://docs.astral.sh/ruff/rules/implicit-namespace-package/
221
222
  ]
222
223
  lint.extend-ignore = [
223
224
  "E501", # Line too long
@@ -228,6 +229,9 @@ lint.extend-ignore = [
228
229
  # See https://github.com/DiamondLightSource/python-copier-template/issues/154
229
230
  # Remove this line to forbid private member access, walrys operators in asserts, banned api in tests
230
231
  "tests/**/*" = ["SLF001", "B023", "RUF018", "TID251"]
232
+ ".github/**/*" = ["INP001"]
233
+ "docs/**/*" = ["INP001"]
234
+ "utility_scripts/**/*" = ["INP001"]
231
235
 
232
236
  [tool.ruff.lint.flake8-tidy-imports.banned-api]
233
237
  "time.sleep".msg = "Use bps.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
@@ -254,13 +258,3 @@ name = "Beamlines do not import from hyperion"
254
258
  type = "forbidden"
255
259
  source_modules = "mx_bluesky.beamlines.**"
256
260
  forbidden_modules = "mx_bluesky.hyperion.**"
257
-
258
- [[tool.importlinter.contracts]]
259
- name = "Only Hyperion and i04 can import from phase1_zebra"
260
- type = "forbidden"
261
- source_modules = ["mx_bluesky.beamlines.**", "mx_bluesky.common.**"]
262
- forbidden_modules = ["mx_bluesky.phase1_zebra.**"]
263
- ignore_imports = [
264
- "mx_bluesky.beamlines.i04.** -> mx_bluesky.phase1_zebra.**",
265
- "mx_bluesky.hyperion.** -> mx_bluesky.phase1_zebra.**",
266
- ]
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.5.8'
32
- __version_tuple__ = version_tuple = (1, 5, 8)
31
+ __version__ = version = '1.5.9'
32
+ __version_tuple__ = version_tuple = (1, 5, 9)
33
33
 
34
- __commit_id__ = commit_id = 'gc6d1815ac'
34
+ __commit_id__ = commit_id = 'g65ec4a831'
@@ -6,7 +6,7 @@ import bluesky.plan_stubs as bps
6
6
  import bluesky.preprocessors as bpp
7
7
  from bluesky.utils import MsgGenerator
8
8
  from dodal.common import inject
9
- from dodal.devices.aperturescatterguard import ApertureScatterguard
9
+ from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue
10
10
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
11
11
  from dodal.devices.backlight import Backlight
12
12
  from dodal.devices.common_dcm import BaseDCM
@@ -17,6 +17,7 @@ from dodal.devices.fast_grid_scan import (
17
17
  set_fast_grid_scan_params,
18
18
  )
19
19
  from dodal.devices.flux import Flux
20
+ from dodal.devices.i04.transfocator import Transfocator
20
21
  from dodal.devices.mx_phase1.beamstop import Beamstop
21
22
  from dodal.devices.oav.oav_detector import OAV
22
23
  from dodal.devices.oav.pin_image_recognition import PinTipDetection
@@ -33,6 +34,10 @@ from dodal.plans.preprocessors.verify_undulator_gap import (
33
34
  verify_undulator_gap_before_run_decorator,
34
35
  )
35
36
 
37
+ from mx_bluesky.common.device_setup_plans.setup_zebra_and_shutter import (
38
+ setup_zebra_for_gridscan,
39
+ tidy_up_zebra_after_gridscan,
40
+ )
36
41
  from mx_bluesky.common.experiment_plans.common_flyscan_xray_centre_plan import (
37
42
  BeamlineSpecificFGSFeatures,
38
43
  construct_beamline_specific_FGS_features,
@@ -67,10 +72,22 @@ from mx_bluesky.common.preprocessors.preprocessors import (
67
72
  transmission_and_xbpm_feedback_for_collection_decorator,
68
73
  )
69
74
  from mx_bluesky.common.utils.log import LOGGER
70
- from mx_bluesky.phase1_zebra.device_setup_plans.setup_zebra import (
71
- setup_zebra_for_gridscan,
72
- tidy_up_zebra_after_gridscan,
73
- )
75
+
76
+ DEFAULT_BEAMSIZE_MICRONS = 20
77
+
78
+
79
+ def _change_beamsize(
80
+ transfocator: Transfocator, beamsize: float, parameters: GridCommon
81
+ ):
82
+ """i04 always uses the large aperture and changes beamsize with the transfocator.
83
+
84
+ An aperture is needed to reduce scatter but the transfocator is best used for beamsize
85
+ changes as it gives more flux compared to a bigger beam with a small aperture.
86
+ """
87
+ parameters.selected_aperture = ApertureValue.LARGE
88
+ yield from bps.abs_set(
89
+ transfocator, beamsize, group=PlanGroupCheckpointConstants.GRID_READY_FOR_DC
90
+ )
74
91
 
75
92
 
76
93
  # See https://github.com/DiamondLightSource/blueapi/issues/506 for using device composites
@@ -96,6 +113,7 @@ def i04_grid_detect_then_xray_centre(
96
113
  zocalo: ZocaloResults = inject("zocalo"),
97
114
  smargon: Smargon = inject("smargon"),
98
115
  detector_motion: DetectorMotion = inject("detector_motion"),
116
+ transfocator: Transfocator = inject("transfocator"),
99
117
  oav_config: str = OavConstants.OAV_CONFIG_JSON,
100
118
  udc: bool = False,
101
119
  ) -> MsgGenerator:
@@ -108,7 +126,7 @@ def i04_grid_detect_then_xray_centre(
108
126
 
109
127
 
110
128
  i04's implementation of this plan is very similar to Hyperion. However, since i04
111
- isn't running in a continious Bluesky UDC loop, we take additional steps in beamline
129
+ isn't running in a continuous Bluesky UDC loop, we take additional steps in beamline
112
130
  tidy-up.
113
131
  """
114
132
 
@@ -134,8 +152,9 @@ def i04_grid_detect_then_xray_centre(
134
152
  robot,
135
153
  sample_shutter,
136
154
  )
155
+ initial_beamsize = yield from bps.rd(transfocator.beamsize_set_microns)
137
156
 
138
- def tidy_beamline_if_not_udc():
157
+ def tidy_beamline():
139
158
  if not udc:
140
159
  yield from get_ready_for_oav_and_close_shutter(
141
160
  composite.smargon,
@@ -143,8 +162,9 @@ def i04_grid_detect_then_xray_centre(
143
162
  composite.aperture_scatterguard,
144
163
  composite.detector_motion,
145
164
  )
165
+ yield from bps.mv(transfocator, initial_beamsize)
146
166
 
147
- @bpp.finalize_decorator(tidy_beamline_if_not_udc)
167
+ @bpp.finalize_decorator(tidy_beamline)
148
168
  def _inner_grid_detect_then_xrc():
149
169
  # These callbacks let us talk to ISPyB and Nexgen. They aren't included in the common plan because
150
170
  # Hyperion handles its callbacks differently to BlueAPI-managed plans, see
@@ -167,6 +187,7 @@ def i04_grid_detect_then_xray_centre(
167
187
 
168
188
  yield from grid_detect_then_xray_centre_with_callbacks()
169
189
 
190
+ yield from _change_beamsize(transfocator, DEFAULT_BEAMSIZE_MICRONS, parameters)
170
191
  yield from _inner_grid_detect_then_xrc()
171
192
 
172
193
 
@@ -178,7 +199,7 @@ def get_ready_for_oav_and_close_shutter(
178
199
  ):
179
200
  yield from bps.wait(PlanGroupCheckpointConstants.GRID_READY_FOR_DC)
180
201
  group = "get_ready_for_oav_and_close_shutter"
181
- LOGGER.info("Non-udc tidy: Seting up beamline for OAV")
202
+ LOGGER.info("Non-udc tidy: Setting up beamline for OAV")
182
203
  yield from setup_beamline_for_OAV(
183
204
  smargon, backlight, aperture_scatterguard, group=group
184
205
  )
@@ -247,7 +268,9 @@ def construct_i04_specific_features(
247
268
  )
248
269
  fgs_motors = xrc_composite.zebra_fast_grid_scan
249
270
  return construct_beamline_specific_FGS_features(
250
- setup_zebra_for_gridscan,
271
+ partial(
272
+ setup_zebra_for_gridscan,
273
+ ),
251
274
  tidy_plan,
252
275
  set_flyscan_params_plan,
253
276
  fgs_motors,
@@ -9,8 +9,8 @@ from dodal.devices.backlight import Backlight, InOut
9
9
  from dodal.devices.detector.detector_motion import DetectorMotion
10
10
  from dodal.devices.smargon import CombinedMove, Smargon
11
11
 
12
+ from mx_bluesky.common.parameters.constants import PlanGroupCheckpointConstants
12
13
  from mx_bluesky.common.utils.log import LOGGER
13
- from mx_bluesky.hyperion.parameters.constants import CONST
14
14
 
15
15
  LOWER_DETECTOR_SHUTTER_AFTER_SCAN = True
16
16
 
@@ -48,7 +48,7 @@ def move_aperture_if_required(
48
48
 
49
49
  else:
50
50
  LOGGER.info(f"Setting aperture position to {aperture_value}")
51
- yield from bps.wait(CONST.WAIT.PREPARE_APERTURE)
51
+ yield from bps.wait(PlanGroupCheckpointConstants.PREPARE_APERTURE)
52
52
  yield from bps.abs_set(
53
53
  aperture_scatterguard.selected_aperture,
54
54
  aperture_value,
@@ -9,8 +9,12 @@ from dodal.devices.robot import BartRobot
9
9
  from dodal.devices.smargon import CombinedMove, Smargon, StubPosition
10
10
  from dodal.plan_stubs.motor_utils import MoveTooLarge, home_and_reset_wrapper
11
11
 
12
+ from mx_bluesky.common.parameters.constants import (
13
+ DocDescriptorNames,
14
+ HardwareConstants,
15
+ PlanNameConstants,
16
+ )
12
17
  from mx_bluesky.common.utils.log import LOGGER
13
- from mx_bluesky.hyperion.parameters.constants import CONST
14
18
 
15
19
  SLEEP_PER_CHECK = 0.1
16
20
 
@@ -60,7 +64,7 @@ def do_plan_while_lower_gonio_at_home(plan: MsgGenerator, lower_gonio: XYZStage)
60
64
  plan,
61
65
  lower_gonio,
62
66
  BartRobot.LOAD_TOLERANCE_MM,
63
- CONST.HARDWARE.CRYOJET_MARGIN_MM,
67
+ HardwareConstants.CRYOJET_MARGIN_MM,
64
68
  "lower_gonio",
65
69
  wait_for_all=False,
66
70
  ),
@@ -100,7 +104,7 @@ def robot_unload(
100
104
 
101
105
  @bpp.run_decorator(
102
106
  md={
103
- "subplan_name": CONST.PLAN.ROBOT_UNLOAD,
107
+ "subplan_name": PlanNameConstants.ROBOT_UNLOAD,
104
108
  "metadata": {"visit": visit, "sample_id": sample_id},
105
109
  "activate_callbacks": [
106
110
  "RobotLoadISPyBCallback",
@@ -108,7 +112,7 @@ def robot_unload(
108
112
  },
109
113
  )
110
114
  def do_robot_unload_and_send_to_ispyb():
111
- yield from bps.create(name=CONST.DESCRIPTORS.ROBOT_UPDATE)
115
+ yield from bps.create(name=DocDescriptorNames.ROBOT_UPDATE)
112
116
  yield from bps.read(robot)
113
117
  yield from bps.save()
114
118
 
@@ -0,0 +1,245 @@
1
+ from typing import Protocol, runtime_checkable
2
+
3
+ import bluesky.plan_stubs as bps
4
+ from bluesky.utils import MsgGenerator
5
+ from dodal.devices.zebra.zebra import (
6
+ ArmDemand,
7
+ EncEnum,
8
+ I03Axes,
9
+ RotationDirection,
10
+ Zebra,
11
+ )
12
+ from dodal.devices.zebra.zebra_controlled_shutter import (
13
+ ZebraShutter,
14
+ ZebraShutterControl,
15
+ )
16
+
17
+ from mx_bluesky.common.parameters.constants import ZEBRA_STATUS_TIMEOUT
18
+ from mx_bluesky.common.utils.log import LOGGER
19
+
20
+ """Plans in this file will work as intended if the zebra has the following configuration:
21
+ - A fast shutter is connected through TTL inputs from the Zebra.
22
+ - When the zebra shutter is set to auto mode, the IOC sets the Zebra's SOFT_IN1 signal high.
23
+ - When the zebra shutter is set to manual mode, the IOC sets the Zebra's SOFT_IN1 signal low.
24
+ """
25
+
26
+
27
+ @runtime_checkable
28
+ class GridscanSetupDevices(Protocol):
29
+ zebra: Zebra
30
+ sample_shutter: ZebraShutter
31
+
32
+
33
+ def setup_zebra_for_gridscan(
34
+ composite: GridscanSetupDevices, # XRC gridscan's generic trigger setup expects a composite rather than individual devices
35
+ group="setup_zebra_for_gridscan",
36
+ wait=True,
37
+ ttl_input_for_detector_to_use: None | int = None,
38
+ ) -> MsgGenerator:
39
+ """
40
+ Configure the zebra for an MX XRC gridscan by allowing the zebra to trigger the fast shutter and detector via signals
41
+ sent from the motion controller.
42
+
43
+ Args:
44
+ composite: Composite device containing a zebra and zebra shutter
45
+ group: Bluesky group to use when waiting on completion
46
+ wait: If true, block until completion
47
+ ttl_input_for_detector_to_use: If the zebra isn't using the TTL_DETECTOR zebra input, manually
48
+ specify which TTL input is being used for the desired detector
49
+
50
+ This plan assumes that the motion controller, as part of its gridscan PLC, will send triggers as required to the zebra's
51
+ IN4_TTL and IN3_TTL to control the fast_shutter and detector respectively
52
+
53
+ """
54
+ zebra = composite.zebra
55
+ ttl_detector = ttl_input_for_detector_to_use or zebra.mapping.outputs.TTL_DETECTOR
56
+ # Set shutter to automatic and to trigger via motion controller GPIO signal (IN4_TTL)
57
+ yield from configure_zebra_and_shutter_for_auto_shutter(
58
+ zebra, composite.sample_shutter, zebra.mapping.sources.IN4_TTL, group=group
59
+ )
60
+
61
+ yield from bps.abs_set(
62
+ zebra.output.out_pvs[ttl_detector],
63
+ zebra.mapping.sources.IN3_TTL,
64
+ group=group,
65
+ )
66
+
67
+ if wait:
68
+ yield from bps.wait(group, timeout=ZEBRA_STATUS_TIMEOUT)
69
+
70
+
71
+ def set_shutter_auto_input(zebra: Zebra, input: int, group="set_shutter_trigger"):
72
+ """Set the signal that controls the shutter. We use the second input to the
73
+ Zebra's AND_GATE_FOR_AUTO_SHUTTER for this input. ZebraShutter control mode must be in auto for this input to take control
74
+
75
+ For more details see the ZebraShutter device."""
76
+ auto_gate = zebra.mapping.AND_GATE_FOR_AUTO_SHUTTER
77
+ auto_shutter_control = zebra.logic_gates.and_gates[auto_gate]
78
+ yield from bps.abs_set(auto_shutter_control.sources[2], input, group)
79
+
80
+
81
+ def configure_zebra_and_shutter_for_auto_shutter(
82
+ zebra: Zebra, zebra_shutter: ZebraShutter, input: int, group="use_automatic_shutter"
83
+ ):
84
+ """Set the shutter to auto mode, and configure the zebra to trigger the shutter on
85
+ an input source. For the input, use one of the source constants in zebra.py
86
+
87
+ When the shutter is in auto/manual, logic in EPICS sets the Zebra's
88
+ SOFT_IN1 to low/high respectively. The Zebra's AND_GATE_FOR_AUTO_SHUTTER should be used to control the shutter while in auto mode.
89
+ To do this, we need (AND_GATE_FOR_AUTO_SHUTTER = SOFT_IN1 AND input), where input is the zebra signal we want to control the shutter when in auto mode.
90
+ """
91
+
92
+ # Set shutter to auto mode
93
+ yield from bps.abs_set(
94
+ zebra_shutter.control_mode, ZebraShutterControl.AUTO, group=group
95
+ )
96
+
97
+ auto_gate = zebra.mapping.AND_GATE_FOR_AUTO_SHUTTER
98
+
99
+ # Set first input of AND_GATE_FOR_AUTO_SHUTTER to SOFT_IN1, which is high when shutter is in auto mode
100
+ # Note the Zebra should ALWAYS be setup this way. See https://github.com/DiamondLightSource/mx-bluesky/issues/551
101
+ yield from bps.abs_set(
102
+ zebra.logic_gates.and_gates[auto_gate].sources[1],
103
+ zebra.mapping.sources.SOFT_IN1,
104
+ group=group,
105
+ )
106
+
107
+ # Set the second input of AND_GATE_FOR_AUTO_SHUTTER to the requested zebra input source
108
+ yield from set_shutter_auto_input(zebra, input, group=group)
109
+
110
+
111
+ def tidy_up_zebra_after_gridscan(
112
+ zebra: Zebra,
113
+ zebra_shutter: ZebraShutter,
114
+ group="tidy_up_zebra_after_gridscan",
115
+ wait=True,
116
+ ttl_input_for_detector_to_use: int | None = None,
117
+ ) -> MsgGenerator:
118
+ """
119
+ Set the zebra back to a state which is expected by GDA.
120
+
121
+ Args:
122
+ zebra: Zebra device.
123
+ zebra_shutter: Zebra shutter device.
124
+ group: Bluesky group to use when waiting on completion.
125
+ wait: If true, block until completion.
126
+ ttl_input_for_detector_to_use: If the zebra isn't using the TTL_DETECTOR zebra input, manually
127
+ specify which TTL input is being used for the desired detector.
128
+ """
129
+
130
+ LOGGER.info("Tidying up Zebra")
131
+
132
+ ttl_detector = ttl_input_for_detector_to_use or zebra.mapping.outputs.TTL_DETECTOR
133
+
134
+ yield from bps.abs_set(
135
+ zebra.output.out_pvs[ttl_detector],
136
+ zebra.mapping.sources.PC_PULSE,
137
+ group=group,
138
+ )
139
+ yield from bps.abs_set(
140
+ zebra_shutter.control_mode, ZebraShutterControl.MANUAL, group=group
141
+ )
142
+ yield from set_shutter_auto_input(zebra, zebra.mapping.sources.PC_GATE, group=group)
143
+
144
+ if wait:
145
+ yield from bps.wait(group, timeout=ZEBRA_STATUS_TIMEOUT)
146
+
147
+
148
+ def setup_zebra_for_rotation(
149
+ zebra: Zebra,
150
+ zebra_shutter: ZebraShutter,
151
+ axis: EncEnum = I03Axes.OMEGA,
152
+ start_angle: float = 0,
153
+ scan_width: float = 360,
154
+ shutter_opening_deg: float = 2.5,
155
+ shutter_opening_s: float = 0.04,
156
+ direction: RotationDirection = RotationDirection.POSITIVE,
157
+ group: str = "setup_zebra_for_rotation",
158
+ wait: bool = True,
159
+ ttl_input_for_detector_to_use: int | None = None,
160
+ ):
161
+ """Set up the Zebra to collect a rotation dataset. Any plan using this is
162
+ responsible for setting the smargon velocity appropriately so that the desired
163
+ image width is achieved with the exposure time given here.
164
+
165
+ Parameters:
166
+ zebra: The zebra device to use
167
+ axis: Encoder enum representing which axis to use for position
168
+ compare. Currently always omega.
169
+ start_angle: Position at which the scan should begin, in degrees.
170
+ scan_width: Total angle through which to collect, in degrees.
171
+ shutter_opening_deg:How many degrees of rotation it takes for the fast shutter
172
+ to open. Increases the gate width.
173
+ shutter_opening_s: How many seconds it takes for the fast shutter to open. The
174
+ detector pulse is delayed after the shutter signal by this
175
+ amount.
176
+ direction: RotationDirection enum for positive or negative.
177
+ Defaults to Positive.
178
+ group: A name for the group of statuses generated
179
+ wait: Block until all the settings have completed
180
+ ttl_input_for_detector_to_use: If the zebra isn't using the TTL_DETECTOR zebra input,
181
+ manually specify which TTL input is being used for the desired detector
182
+ """
183
+
184
+ ttl_detector = ttl_input_for_detector_to_use or zebra.mapping.outputs.TTL_DETECTOR
185
+
186
+ if not isinstance(direction, RotationDirection):
187
+ raise ValueError(
188
+ "Disallowed rotation direction provided to Zebra setup plan. "
189
+ "Use RotationDirection.POSITIVE or RotationDirection.NEGATIVE."
190
+ )
191
+ yield from bps.abs_set(zebra.pc.dir, direction.value, group=group)
192
+ LOGGER.info("ZEBRA SETUP: START")
193
+ # Set gate start, adjust for shutter opening time if necessary
194
+ LOGGER.info(f"ZEBRA SETUP: degrees to adjust for shutter = {shutter_opening_deg}")
195
+ LOGGER.info(f"ZEBRA SETUP: start angle start: {start_angle}")
196
+ LOGGER.info(f"ZEBRA SETUP: start angle adjusted, gate start set to: {start_angle}")
197
+ yield from bps.abs_set(zebra.pc.gate_start, start_angle, group=group)
198
+ # set gate width to total width
199
+ yield from bps.abs_set(
200
+ zebra.pc.gate_width, scan_width + shutter_opening_deg, group=group
201
+ )
202
+ LOGGER.info(
203
+ f"Pulse start set to shutter open time, set to: {abs(shutter_opening_s)}"
204
+ )
205
+ yield from bps.abs_set(zebra.pc.pulse_start, abs(shutter_opening_s), group=group)
206
+ # Set gate position to be angle of interest
207
+ yield from bps.abs_set(zebra.pc.gate_trigger, axis.value, group=group)
208
+ # Set shutter to automatic and to trigger via PC_GATE
209
+ yield from configure_zebra_and_shutter_for_auto_shutter(
210
+ zebra, zebra_shutter, zebra.mapping.sources.PC_GATE, group=group
211
+ )
212
+ # Trigger the detector with a pulse
213
+ yield from bps.abs_set(
214
+ zebra.output.out_pvs[ttl_detector],
215
+ zebra.mapping.sources.PC_PULSE,
216
+ group=group,
217
+ )
218
+
219
+ LOGGER.info(f"ZEBRA SETUP: END - {'' if wait else 'not'} waiting for completion")
220
+ if wait:
221
+ yield from bps.wait(group, timeout=ZEBRA_STATUS_TIMEOUT)
222
+
223
+
224
+ def tidy_up_zebra_after_rotation_scan(
225
+ zebra: Zebra,
226
+ zebra_shutter: ZebraShutter,
227
+ group="tidy_up_zebra_after_rotation",
228
+ wait=True,
229
+ ):
230
+ """
231
+ Set the zebra back to a state which is expected by GDA.
232
+
233
+ Args:
234
+ zebra: Zebra device.
235
+ zebra_shutter: Zebra shutter device.
236
+ group: Bluesky group to use when waiting on completion.
237
+ wait: If true, block until completion.
238
+ """
239
+
240
+ yield from bps.abs_set(zebra.pc.arm, ArmDemand.DISARM, group=group)
241
+ yield from bps.abs_set(
242
+ zebra_shutter.control_mode, ZebraShutterControl.MANUAL, group=group
243
+ )
244
+ if wait:
245
+ yield from bps.wait(group, timeout=ZEBRA_STATUS_TIMEOUT)
@@ -8,11 +8,12 @@ import bluesky.plan_stubs as bps
8
8
  import bluesky.preprocessors as bpp
9
9
  import numpy as np
10
10
  from bluesky.protocols import Readable
11
- from bluesky.utils import MsgGenerator
11
+ from bluesky.utils import FailedStatus, MsgGenerator
12
12
  from dodal.common.beamlines.commissioning_mode import read_commissioning_mode
13
13
  from dodal.devices.fast_grid_scan import (
14
14
  FastGridScanCommon,
15
15
  FastGridScanThreeD,
16
+ GridScanInvalidException,
16
17
  )
17
18
  from dodal.devices.zocalo import ZocaloResults
18
19
  from dodal.devices.zocalo.zocalo_results import (
@@ -270,10 +271,14 @@ def run_gridscan(
270
271
  yield from beamline_specific.read_pre_flyscan_plan()
271
272
 
272
273
  LOGGER.info("Setting fgs params")
273
- yield from beamline_specific.set_flyscan_params_plan()
274
274
 
275
- LOGGER.info("Waiting for gridscan validity check")
276
- yield from wait_for_gridscan_valid(beamline_specific.fgs_motors)
275
+ try:
276
+ yield from beamline_specific.set_flyscan_params_plan()
277
+ except FailedStatus as e:
278
+ if isinstance(e.__cause__, GridScanInvalidException):
279
+ raise SampleException(
280
+ "Scan invalid - gridscan not valid for detected pin position"
281
+ ) from e
277
282
 
278
283
  LOGGER.info("Waiting for arming to finish")
279
284
  yield from bps.wait(PlanGroupCheckpointConstants.GRID_READY_FOR_DC)
@@ -293,23 +298,6 @@ def run_gridscan(
293
298
  yield from bps.abs_set(beamline_specific.fgs_motors.z_steps, 0, wait=False)
294
299
 
295
300
 
296
- def wait_for_gridscan_valid(fgs_motors: FastGridScanCommon, timeout=0.5):
297
- LOGGER.info("Waiting for valid fgs_params")
298
- SLEEP_PER_CHECK = 0.1
299
- times_to_check = int(timeout / SLEEP_PER_CHECK)
300
- for _ in range(times_to_check):
301
- scan_invalid = yield from bps.rd(fgs_motors.scan_invalid)
302
- pos_counter = yield from bps.rd(fgs_motors.position_counter)
303
- LOGGER.debug(
304
- f"Scan invalid: {scan_invalid} and position counter: {pos_counter}"
305
- )
306
- if not scan_invalid and pos_counter == 0:
307
- LOGGER.info("Gridscan scan valid and position counter reset")
308
- return
309
- yield from bps.sleep(SLEEP_PER_CHECK)
310
- raise SampleException("Scan invalid - pin too long/short/bent and out of range")
311
-
312
-
313
301
  def _xrc_result_in_boxes_to_result_in_mm(
314
302
  xrc_result: XrcResult, parameters: SpecifiedThreeDGridScan
315
303
  ) -> XRayCentreResult:
@@ -94,8 +94,10 @@ def kickoff_and_complete_gridscan(
94
94
  md={
95
95
  "subplan_name": plan_name,
96
96
  "omega_to_scan_spec": {
97
- GridscanPlane.OMEGA_XY: scan_points[0],
98
- GridscanPlane.OMEGA_XZ: scan_points[1],
97
+ # These have to be cast to strings due to a bug in orsjon. See
98
+ # https://github.com/ijl/orjson/issues/414
99
+ str(GridscanPlane.OMEGA_XY): scan_points[0],
100
+ str(GridscanPlane.OMEGA_XZ): scan_points[1],
99
101
  },
100
102
  }
101
103
  )
@@ -50,9 +50,10 @@ def populate_remaining_data_collection_info(
50
50
  data_collection_info.xbeam = beam_position[0]
51
51
  data_collection_info.ybeam = beam_position[1]
52
52
  data_collection_info.start_time = get_current_time_string()
53
- # temporary file template until nxs filewriting is integrated and we can use
54
- # that file name
55
- data_collection_info.file_template = f"{params.detector_params.prefix}_{data_collection_info.data_collection_number}_master.h5"
53
+ if data_collection_info.data_collection_number is not None:
54
+ # Do not write the file template if we don't have sufficient information - for gridscans we may not
55
+ # know the data collection number until later
56
+ data_collection_info.file_template = f"{params.detector_params.prefix}_{data_collection_info.data_collection_number}_master.h5"
56
57
  return data_collection_info
57
58
 
58
59