mx-bluesky 1.4.4__tar.gz → 1.4.5__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 (453) hide show
  1. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/Dockerfile.release +6 -0
  2. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/PKG-INFO +3 -3
  3. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/helmchart/templates/deployment.yaml +0 -1
  4. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/pyproject.toml +3 -3
  5. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/run_hyperion.sh +3 -11
  6. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/_version.py +2 -2
  7. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +2 -2
  8. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +2 -2
  9. mx_bluesky-1.4.5/src/mx_bluesky/common/device_setup_plans/setup_panda.py +9 -0
  10. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +9 -1
  11. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/parameters/constants.py +16 -0
  12. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/utils/exceptions.py +2 -1
  13. mx_bluesky-1.4.5/src/mx_bluesky/definitions.py +4 -0
  14. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/__main__.py +8 -43
  15. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +9 -8
  16. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +10 -0
  17. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -15
  18. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +11 -8
  19. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +8 -0
  20. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +23 -16
  21. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +1 -5
  22. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +1 -8
  23. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +12 -1
  24. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +2 -0
  25. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +19 -2
  26. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/config_server.py +13 -2
  27. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/cli.py +1 -9
  28. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/constants.py +6 -1
  29. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/gridscan.py +4 -2
  30. mx_bluesky-1.4.5/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +1006 -0
  31. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/utils/validation.py +20 -17
  32. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/PKG-INFO +3 -3
  33. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/SOURCES.txt +4 -2
  34. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/requires.txt +2 -2
  35. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/conftest.py +72 -45
  36. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/conftest.py +1 -1
  37. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +18 -13
  38. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +6 -9
  39. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +1 -1
  40. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/test_aperturescatterguard_system.py +2 -2
  41. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i04/test_thawing.py +5 -5
  42. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/conftest.py +22 -11
  43. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +1 -1
  44. mx_bluesky-1.4.5/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +42 -0
  45. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +1 -1
  46. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +17 -0
  47. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/plan_stubs/test_do_fgs.py +3 -3
  48. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/conftest.py +17 -0
  49. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/conftest.py +7 -1
  50. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +1 -1
  51. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +25 -23
  52. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
  53. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +50 -5
  54. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/conftest.py +2 -2
  55. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +37 -17
  56. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +2 -2
  57. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +52 -16
  58. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +32 -1
  59. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +3 -6
  60. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +1 -1
  61. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +1 -38
  62. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +11 -10
  63. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +1 -2
  64. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +1 -1
  65. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +42 -3
  66. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/test_main_system.py +10 -122
  67. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/build_docker_image.sh +7 -0
  68. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/deploy/deploy_hyperion_to_k8s.sh +0 -2
  69. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -1
  70. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/docker/entrypoint.sh +3 -10
  71. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/docker/i03-compose.yml +0 -1
  72. mx_bluesky-1.4.4/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +0 -95
  73. mx_bluesky-1.4.4/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -964
  74. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.copier-answers.yml +0 -0
  75. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.coveragerc +0 -0
  76. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.devcontainer/Dockerfile +0 -0
  77. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.devcontainer/devcontainer.json +0 -0
  78. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.dockerignore +0 -0
  79. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/CONTRIBUTING.md +0 -0
  80. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  81. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  82. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  83. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/actions/install_requirements/action.yml +0 -0
  84. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/actions/verify-nexus/Dockerfile +0 -0
  85. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/actions/verify-nexus/action.yml +0 -0
  86. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  87. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/dependabot.yml +0 -0
  88. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/pages/index.html +0 -0
  89. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/pages/make_switcher.py +0 -0
  90. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_check.yml +0 -0
  91. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_container.yml +0 -0
  92. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_dist.yml +0 -0
  93. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_docs.yml +0 -0
  94. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_pypi.yml +0 -0
  95. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_release.yml +0 -0
  96. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_test.yml +0 -0
  97. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/_tox.yml +0 -0
  98. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/ci.yml +0 -0
  99. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.github/workflows/periodic.yml +0 -0
  100. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.gitignore +0 -0
  101. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.pre-commit-config.yaml +0 -0
  102. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/extensions.json +0 -0
  103. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/launch.json +0 -0
  104. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/mx-bluesky.code-workspace +0 -0
  105. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  106. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/settings.json +0 -0
  107. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/.vscode/tasks.json +0 -0
  108. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/Dockerfile +0 -0
  109. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/LICENSE +0 -0
  110. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/README.rst +0 -0
  111. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/catalog-info.yaml +0 -0
  112. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/codecov.yml +0 -0
  113. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/conftest.py +0 -0
  114. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/_api.rst +0 -0
  115. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/_templates/custom-module-template.rst +0 -0
  116. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/conf.py +0 -0
  117. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  118. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  119. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  120. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/explanations/decisions.rst +0 -0
  121. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/contribute.rst +0 -0
  122. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/create-a-release.rst +0 -0
  123. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  124. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  125. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  126. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  127. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  128. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  129. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/how-to/get-started.rst +0 -0
  130. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/index.rst +0 -0
  131. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/reference/standards.rst +0 -0
  132. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  133. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  134. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/hyperion/index.rst +0 -0
  135. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  136. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  137. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/hyperion/reference/readme.md +0 -0
  138. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/index.rst +0 -0
  139. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  140. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  141. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/murko-integration/index.rst +0 -0
  142. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  143. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  144. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  145. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  146. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
  147. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  148. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  149. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/images/dls-favicon.ico +0 -0
  150. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/images/dls-logo.svg +0 -0
  151. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/docs/index.rst +0 -0
  152. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/helmchart/Chart.yaml +0 -0
  153. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/helmchart/templates/ingress.yaml +0 -0
  154. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/helmchart/templates/service.yaml +0 -0
  155. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/helmchart/values.yaml +0 -0
  156. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  157. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  158. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/code.yml +0 -0
  159. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/container_tests.sh +0 -0
  160. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  161. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  162. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/linkcheck.yml +0 -0
  163. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  164. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  165. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/pin_versions.py +0 -0
  166. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  167. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  168. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  169. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  170. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  171. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  172. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/hyperion_other/workflows/test_pin_versions.py +0 -0
  173. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/run_hyperion_in_podman.sh +0 -0
  174. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/setup.cfg +0 -0
  175. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/__init__.py +0 -0
  176. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/__main__.py +0 -0
  177. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/__init__.py +0 -0
  178. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  179. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  180. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  181. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  182. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  183. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  184. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  185. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
  186. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  187. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  188. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  189. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  190. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +0 -0
  191. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  192. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  193. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  194. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  195. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  196. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  197. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  198. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  199. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  200. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  201. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  202. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  203. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  204. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  205. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +0 -0
  206. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +0 -0
  207. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  208. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  209. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  210. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  211. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  212. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  213. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  214. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  215. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  216. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  217. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  218. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  219. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  220. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  221. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  222. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  223. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  224. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  225. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  226. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  227. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  228. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  229. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  230. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/__init__.py +0 -0
  231. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +0 -0
  232. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
  233. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
  234. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  235. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/aperture_change_callback.py +0 -0
  236. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  237. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
  238. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
  239. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  240. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  241. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  242. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  243. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  244. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  245. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  246. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  247. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
  248. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
  249. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
  250. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
  251. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  252. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
  253. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  254. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  255. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/external_interaction/test_config_server.py +0 -0
  256. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/parameters/components.py +0 -0
  257. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  258. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/plans/__init__.py +0 -0
  259. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/plans/do_fgs.py +0 -0
  260. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/utils/log.py +0 -0
  261. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/utils/tracing.py +0 -0
  262. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/common/utils/utils.py +0 -0
  263. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/__init__.py +0 -0
  264. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/__init__.py +0 -0
  265. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/check_beamstop.py +0 -0
  266. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  267. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
  268. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
  269. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +0 -0
  270. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +0 -0
  271. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  272. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
  273. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  274. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  275. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +0 -0
  276. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/common/xrc_result.py +0 -0
  277. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +0 -0
  278. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  279. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +0 -0
  280. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
  281. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +0 -0
  282. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  283. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  284. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +0 -0
  285. {mx_bluesky-1.4.4/src/mx_bluesky/hyperion/external_interaction/callbacks/common → mx_bluesky-1.4.5/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  286. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
  287. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  288. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  289. {mx_bluesky-1.4.4/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.5/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  290. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  291. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  292. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  293. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  294. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  295. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
  296. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  297. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  298. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  299. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  300. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  301. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/start_jupyter.sh +0 -0
  302. {mx_bluesky-1.4.4/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.5/tests}/__init__.py +0 -0
  303. {mx_bluesky-1.4.4/tests → mx_bluesky-1.4.5/tests/system_tests}/__init__.py +0 -0
  304. {mx_bluesky-1.4.4/tests/system_tests → mx_bluesky-1.4.5/tests/system_tests/hyperion}/__init__.py +0 -0
  305. {mx_bluesky-1.4.4/tests/system_tests/hyperion → mx_bluesky-1.4.5/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
  306. {mx_bluesky-1.4.4/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.5/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  307. {mx_bluesky-1.4.4/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.5/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  308. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  309. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/conftest.py +0 -0
  310. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  311. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  312. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +0 -0
  313. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +0 -0
  314. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
  315. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
  316. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/README.md +0 -0
  317. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  318. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  319. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  320. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  321. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  322. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  323. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  324. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  325. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  326. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  327. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  328. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  329. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  330. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  331. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  332. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  333. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  334. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -0
  335. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  336. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  337. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  338. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  339. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/scratch/README +0 -0
  340. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_OAVCentring.json +0 -0
  341. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  342. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  343. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_beamline_parameters.txt +0 -0
  344. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  345. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_config.cfg +0 -0
  346. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  347. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  348. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  349. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  350. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  351. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_det_dist_converter.txt +0 -0
  352. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_display.configuration +0 -0
  353. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  354. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_lookup_table.txt +0 -0
  355. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/test_data/test_mirror_focus.json +0 -0
  356. {mx_bluesky-1.4.4/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.5/tests/unit_tests}/__init__.py +0 -0
  357. {mx_bluesky-1.4.4/tests/unit_tests → mx_bluesky-1.4.5/tests/unit_tests/beamlines}/__init__.py +0 -0
  358. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  359. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  360. {mx_bluesky-1.4.4/tests/unit_tests/beamlines → mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  361. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/__init__.py +0 -0
  362. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/extruder/__init__.py +0 -0
  363. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
  364. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  365. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  366. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +0 -0
  367. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  368. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +0 -0
  369. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  370. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  371. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  372. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  373. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  374. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
  375. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  376. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  377. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
  378. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  379. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  380. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  381. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/__init__.py +0 -0
  382. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/__init__.py +0 -0
  383. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/__init__.py +0 -0
  384. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/common/__init__.py +0 -0
  385. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  386. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/ispyb/__init__.py +0 -0
  387. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  388. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  389. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  390. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
  391. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  392. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  393. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  394. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  395. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  396. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  397. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  398. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  399. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/utils/__init__.py +0 -0
  400. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/common/utils/test_log.py +0 -0
  401. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/__init__.py +0 -0
  402. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
  403. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_check_beamstop.py +0 -0
  404. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  405. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  406. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  407. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
  408. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  409. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
  410. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  411. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +0 -0
  412. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +0 -0
  413. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
  414. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  415. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  416. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  417. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  418. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
  419. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  420. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
  421. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  422. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  423. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  424. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  425. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  426. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  427. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  428. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  429. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  430. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  431. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
  432. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  433. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  434. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/test_utils.py +0 -0
  435. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  436. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  437. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  438. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/tests/unit_tests/test_cli.py +0 -0
  439. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/beam_off_trickery.sh +0 -0
  440. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/build_imginfo.sh +0 -0
  441. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/deploy/create_venv.py +0 -0
  442. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  443. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/deploy/test_deploy.py +0 -0
  444. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/dev_jaeger_container.sh +0 -0
  445. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/dls_dev_env.sh +0 -0
  446. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/docker/healthcheck.sh +0 -0
  447. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/generate_plantuml.py +0 -0
  448. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/graylog/Dockerfile +0 -0
  449. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/graylog/tcp_input.json +0 -0
  450. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/procserv_ioc_start.sh +0 -0
  451. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/run_imginfo.sh +0 -0
  452. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/setup_graylog.sh +0 -0
  453. {mx_bluesky-1.4.4 → mx_bluesky-1.4.5}/utility_scripts/strip_metafile.py +0 -0
@@ -1,5 +1,11 @@
1
1
  FROM python:3.11 AS build
2
2
 
3
+ ARG DEBIAN_FRONTEND=noninteractive
4
+
5
+ RUN apt update -y && apt upgrade -y
6
+ # Needed for python cv2 dependency
7
+ RUN apt install -y libgl1 libglib2.0-0
8
+
3
9
  RUN pip install setuptools_scm
4
10
 
5
11
  # Copy the pyproject.toml and install dependencies for better caching when developing
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mx-bluesky
3
- Version: 1.4.4
3
+ Version: 1.4.5
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -237,9 +237,9 @@ Requires-Dist: matplotlib
237
237
  Requires-Dist: blueapi>=0.5.0
238
238
  Requires-Dist: daq-config-server>=0.1.1
239
239
  Requires-Dist: ophyd==1.9.0
240
- Requires-Dist: ophyd-async>=0.8a5
240
+ Requires-Dist: ophyd-async>=0.9.0a2
241
241
  Requires-Dist: bluesky>=1.13
242
- Requires-Dist: dls-dodal==1.39.0
242
+ Requires-Dist: dls-dodal==1.40.0
243
243
  Provides-Extra: dev
244
244
  Requires-Dist: black; extra == "dev"
245
245
  Requires-Dist: build; extra == "dev"
@@ -119,7 +119,6 @@ spec:
119
119
  value: "/dls_sw/apps/zocalo/live/configuration.yaml"
120
120
  - name: ISPYB_CONFIG_PATH
121
121
  value: "/dls_sw/dasc/mariadb/credentials/ispyb-hyperion-{{ .Values.hyperion.beamline }}.cfg"
122
- args: [ "--external-callbacks" ]
123
122
  {{- end }}
124
123
  readinessProbe:
125
124
  exec:
@@ -44,9 +44,9 @@ dependencies = [
44
44
  "blueapi >= 0.5.0",
45
45
  "daq-config-server >= 0.1.1",
46
46
  "ophyd == 1.9.0",
47
- "ophyd-async >= 0.8a5",
47
+ "ophyd-async >= 0.9.0a2",
48
48
  "bluesky >= 1.13",
49
- "dls-dodal == 1.39.0",
49
+ "dls-dodal == 1.40.0",
50
50
  ]
51
51
 
52
52
 
@@ -121,7 +121,7 @@ markers = [
121
121
  "skip_in_pycharm: marks test as not working in pycharm testrunner",
122
122
  ]
123
123
  addopts = """
124
- --tb=native -vv --doctest-modules --doctest-glob="*.rst"
124
+ --tb=native -vv --doctest-modules --doctest-glob="*.rst" --durations=10
125
125
  """
126
126
  # https://iscinumpy.gitlab.io/post/bound-version-constraints/#watch-for-warnings
127
127
  filterwarnings = [
@@ -5,7 +5,6 @@ START=1
5
5
  SKIP_STARTUP_CONNECTION=false
6
6
  VERBOSE_EVENT_LOGGING=false
7
7
  IN_DEV=false
8
- EXTERNAL_CALLBACK_SERVICE=false
9
8
 
10
9
  for option in "$@"; do
11
10
  case $option in
@@ -28,9 +27,6 @@ for option in "$@"; do
28
27
  --verbose-event-logging)
29
28
  VERBOSE_EVENT_LOGGING=true
30
29
  ;;
31
- --external-callbacks)
32
- EXTERNAL_CALLBACK_SERVICE=true
33
- ;;
34
30
 
35
31
  --help|--info|--h)
36
32
 
@@ -119,11 +115,9 @@ if [[ $START == 1 ]]; then
119
115
 
120
116
  #Add future arguments here
121
117
  declare -A h_only_args=( ["SKIP_STARTUP_CONNECTION"]="$SKIP_STARTUP_CONNECTION"
122
- ["VERBOSE_EVENT_LOGGING"]="$VERBOSE_EVENT_LOGGING"
123
- ["EXTERNAL_CALLBACK_SERVICE"]="$EXTERNAL_CALLBACK_SERVICE" )
118
+ ["VERBOSE_EVENT_LOGGING"]="$VERBOSE_EVENT_LOGGING" )
124
119
  declare -A h_only_arg_strings=( ["SKIP_STARTUP_CONNECTION"]="--skip-startup-connection"
125
- ["VERBOSE_EVENT_LOGGING"]="--verbose-event-logging"
126
- ["EXTERNAL_CALLBACK_SERVICE"]="--external-callbacks")
120
+ ["VERBOSE_EVENT_LOGGING"]="--verbose-event-logging" )
127
121
 
128
122
  declare -A h_and_cb_args=( ["IN_DEV"]="$IN_DEV" )
129
123
  declare -A h_and_cb_arg_strings=( ["IN_DEV"]="--dev" )
@@ -146,9 +140,7 @@ if [[ $START == 1 ]]; then
146
140
 
147
141
  unset PYEPICS_LIBCA
148
142
  hyperion `echo $h_commands;`>$start_log_path 2>&1 &
149
- if [ $EXTERNAL_CALLBACK_SERVICE == true ]; then
150
- hyperion-callbacks `echo $cb_commands;`>$callback_start_log_path 2>&1 &
151
- fi
143
+ hyperion-callbacks `echo $cb_commands;`>$callback_start_log_path 2>&1 &
152
144
  echo "$(date) Waiting for Hyperion to start"
153
145
 
154
146
  for i in {1..30}
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.4.4'
16
- __version_tuple__ = version_tuple = (1, 4, 4)
15
+ __version__ = version = '1.4.5'
16
+ __version_tuple__ = version_tuple = (1, 4, 5)
@@ -215,6 +215,6 @@ def start_viewer(oav: OAV, pmac: PMAC, RE: RunEngine, oav1: str = OAV1_CAM):
215
215
  if __name__ == "__main__":
216
216
  RE = RunEngine(call_returns_result=True)
217
217
  # Get devices out of dodal
218
- oav: OAV = i24.oav()
219
- pmac: PMAC = i24.pmac()
218
+ oav: OAV = i24.oav(connect_immediately=True)
219
+ pmac: PMAC = i24.pmac(connect_immediately=True)
220
220
  start_viewer(oav, pmac, RE)
@@ -21,9 +21,9 @@ from mx_bluesky.beamlines.i24.serial.setup_beamline.ca import caget, caput
21
21
 
22
22
  def get_beam_center_device(detector_in_use: str) -> DetectorBeamCenter:
23
23
  if detector_in_use == "eiger":
24
- return i24.eiger_beam_center()
24
+ return i24.eiger_beam_center(connect_immediately=True)
25
25
  else:
26
- return i24.pilatus_beam_center()
26
+ return i24.pilatus_beam_center(connect_immediately=True)
27
27
 
28
28
 
29
29
  def compute_beam_center_position_from_lut(
@@ -0,0 +1,9 @@
1
+ from ophyd_async.core import YamlSettingsProvider
2
+ from ophyd_async.fastcs.panda import HDFPanda
3
+ from ophyd_async.plan_stubs import apply_panda_settings, retrieve_settings
4
+
5
+
6
+ def load_panda_from_yaml(yaml_directory: str, yaml_file_name: str, panda: HDFPanda):
7
+ provider = YamlSettingsProvider(yaml_directory)
8
+ settings = yield from retrieve_settings(provider, yaml_file_name, panda)
9
+ yield from apply_panda_settings(settings)
@@ -43,7 +43,10 @@ from mx_bluesky.common.parameters.constants import DocDescriptorNames, PlanNameC
43
43
  from mx_bluesky.common.parameters.gridscan import (
44
44
  GridCommon,
45
45
  )
46
- from mx_bluesky.common.utils.exceptions import ISPyBDepositionNotMade
46
+ from mx_bluesky.common.utils.exceptions import (
47
+ ISPyBDepositionNotMade,
48
+ SampleException,
49
+ )
47
50
  from mx_bluesky.common.utils.log import ISPYB_ZOCALO_CALLBACK_LOGGER, set_dcgid_tag
48
51
 
49
52
  if TYPE_CHECKING:
@@ -281,5 +284,10 @@ class GridscanISPyBCallback(BaseISPyBCallback):
281
284
  )
282
285
  if self.ispyb_ids == IspybIds():
283
286
  raise ISPyBDepositionNotMade("ispyb was not initialised at run start")
287
+ exception_type, message = SampleException.type_and_message_from_reason(
288
+ doc.get("reason", "")
289
+ )
290
+ if exception_type:
291
+ doc["reason"] = message
284
292
  return super().activity_gated_stop(doc)
285
293
  return self._tag_doc(doc)
@@ -1,3 +1,4 @@
1
+ import os
1
2
  from enum import Enum
2
3
 
3
4
  from dodal.devices.aperturescatterguard import ApertureValue
@@ -6,6 +7,8 @@ from dodal.devices.zocalo.zocalo_constants import ZOCALO_ENV as ZOCALO_ENV_FROM_
6
7
  from dodal.utils import get_beamline_name
7
8
  from pydantic.dataclasses import dataclass
8
9
 
10
+ from mx_bluesky.definitions import ROOT_DIR
11
+
9
12
  BEAMLINE = get_beamline_name("test")
10
13
  TEST_MODE = BEAMLINE == "test"
11
14
 
@@ -75,6 +78,10 @@ class HardwareConstants:
75
78
  THAWING_TIME = 20
76
79
  TIP_OFFSET_UM = 0
77
80
 
81
+ # Value quoted in https://www.dectris.com/en/detectors/x-ray-detectors/eiger2/eiger2-for-synchrotrons/eiger2-x/,
82
+ # causes dropped frames, so increase value for safety
83
+ PANDA_FGS_EIGER_DEADTIME_S = 5e-5
84
+
78
85
 
79
86
  @dataclass(frozen=True)
80
87
  class GridscanParamConstants:
@@ -118,6 +125,15 @@ class PlanGroupCheckpointConstants:
118
125
  READY_FOR_OAV = "ready_for_oav"
119
126
 
120
127
 
128
+ # Eventually replace below with https://github.com/DiamondLightSource/mx-bluesky/issues/798
129
+ @dataclass(frozen=True)
130
+ class DeviceSettingsConstants:
131
+ PANDA_FLYSCAN_SETTINGS_FILENAME = "panda-gridscan"
132
+ PANDA_FLYSCAN_SETTINGS_DIR = os.path.abspath(
133
+ f"{ROOT_DIR}/hyperion/resources/panda/{PANDA_FLYSCAN_SETTINGS_FILENAME}"
134
+ )
135
+
136
+
121
137
  @dataclass(frozen=True)
122
138
  class SimConstants:
123
139
  BEAMLINE = "BL03S"
@@ -39,7 +39,8 @@ T = TypeVar("T")
39
39
  class CrystalNotFoundException(SampleException):
40
40
  """Raised if grid detection completed normally but no crystal was found."""
41
41
 
42
- pass
42
+ def __init__(self, *args):
43
+ super().__init__("Diffraction not found, skipping sample.")
43
44
 
44
45
 
45
46
  def catch_exception_and_warn(
@@ -0,0 +1,4 @@
1
+ import os
2
+
3
+ # Change once Python<3.12 is dropped - see https://github.com/DiamondLightSource/mx-bluesky/issues/798
4
+ ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -4,6 +4,7 @@ import threading
4
4
  from collections.abc import Callable
5
5
  from dataclasses import asdict
6
6
  from queue import Queue
7
+ from sys import argv
7
8
  from traceback import format_exception
8
9
  from typing import Any
9
10
 
@@ -37,12 +38,6 @@ from mx_bluesky.hyperion.experiment_plans.experiment_registry import (
37
38
  PLAN_REGISTRY,
38
39
  PlanNotFound,
39
40
  )
40
- from mx_bluesky.hyperion.external_interaction.callbacks.__main__ import (
41
- setup_logging as setup_callback_logging,
42
- )
43
- from mx_bluesky.hyperion.external_interaction.callbacks.common.callback_util import (
44
- CallbacksFactory,
45
- )
46
41
  from mx_bluesky.hyperion.parameters.cli import parse_cli_args
47
42
  from mx_bluesky.hyperion.parameters.constants import CONST
48
43
  from mx_bluesky.hyperion.utils.context import setup_context
@@ -56,7 +51,6 @@ class Command:
56
51
  devices: Any | None = None
57
52
  experiment: Callable[[Any, Any], MsgGenerator] | None = None
58
53
  parameters: MxBlueskyParameters | None = None
59
- callbacks: CallbacksFactory | None = None
60
54
 
61
55
 
62
56
  @dataclass
@@ -88,7 +82,6 @@ class BlueskyRunner:
88
82
  RE: RunEngine,
89
83
  context: BlueskyContext,
90
84
  skip_startup_connection=False,
91
- use_external_callbacks: bool = False,
92
85
  ) -> None:
93
86
  self.command_queue: Queue[Command] = Queue()
94
87
  self.current_status: StatusAndMessage = StatusAndMessage(Status.IDLE)
@@ -99,15 +92,12 @@ class BlueskyRunner:
99
92
 
100
93
  self.RE = RE
101
94
  self.context = context
102
- self.subscribed_per_plan_callbacks: list[int] = []
103
95
  RE.subscribe(self.aperture_change_callback)
104
96
  RE.subscribe(self.logging_uid_tag_callback)
105
97
 
106
- self.use_external_callbacks = use_external_callbacks
107
- if self.use_external_callbacks:
108
- LOGGER.info("Connecting to external callback ZMQ proxy...")
109
- self.publisher = Publisher(f"localhost:{CONST.CALLBACK_0MQ_PROXY_PORTS[0]}")
110
- RE.subscribe(self.publisher)
98
+ LOGGER.info("Connecting to external callback ZMQ proxy...")
99
+ self.publisher = Publisher(f"localhost:{CONST.CALLBACK_0MQ_PROXY_PORTS[0]}")
100
+ RE.subscribe(self.publisher)
111
101
 
112
102
  if VERBOSE_EVENT_LOGGING:
113
103
  RE.subscribe(VerbosePlanExecutionLoggingCallback())
@@ -123,7 +113,6 @@ class BlueskyRunner:
123
113
  experiment: Callable,
124
114
  parameters: MxBlueskyParameters,
125
115
  plan_name: str,
126
- callbacks: CallbacksFactory | None,
127
116
  ) -> StatusAndMessage:
128
117
  LOGGER.info(f"Started with parameters: {parameters.model_dump_json(indent=2)}")
129
118
 
@@ -142,7 +131,6 @@ class BlueskyRunner:
142
131
  devices=devices,
143
132
  experiment=experiment,
144
133
  parameters=parameters,
145
- callbacks=callbacks,
146
134
  )
147
135
  )
148
136
  return StatusAndMessage(Status.SUCCESS)
@@ -181,17 +169,6 @@ class BlueskyRunner:
181
169
  if command.experiment is None:
182
170
  raise ValueError("No experiment provided for START")
183
171
  try:
184
- if (
185
- not self.use_external_callbacks
186
- and command.callbacks
187
- and (cbs := command.callbacks())
188
- ):
189
- LOGGER.info(
190
- f"Using callbacks for this plan: {not self.use_external_callbacks} - {cbs}"
191
- )
192
- self.subscribed_per_plan_callbacks += [
193
- self.RE.subscribe(cb) for cb in cbs
194
- ]
195
172
  with TRACER.start_span("do_run"):
196
173
  self.RE(command.experiment(command.devices, command.parameters))
197
174
 
@@ -212,11 +189,6 @@ class BlueskyRunner:
212
189
  self.last_run_aborted = False
213
190
  else:
214
191
  self.current_status = make_error_status_and_message(exception)
215
- finally:
216
- [
217
- self.RE.unsubscribe(cb)
218
- for cb in self.subscribed_per_plan_callbacks
219
- ]
220
192
 
221
193
 
222
194
  def compose_start_args(context: BlueskyContext, plan_name: str, action: Actions):
@@ -225,7 +197,6 @@ def compose_start_args(context: BlueskyContext, plan_name: str, action: Actions)
225
197
  raise PlanNotFound(f"Experiment plan '{plan_name}' not found in registry.")
226
198
 
227
199
  experiment_internal_param_type = experiment_registry_entry.get("param_type")
228
- callback_type = experiment_registry_entry.get("callback_collection_type")
229
200
  plan = context.plan_functions.get(plan_name)
230
201
  if experiment_internal_param_type is None:
231
202
  raise PlanNotFound(
@@ -243,7 +214,7 @@ def compose_start_args(context: BlueskyContext, plan_name: str, action: Actions)
243
214
  raise ValueError(
244
215
  f"Supplied parameters don't match the plan for this endpoint {request.data}, for plan {plan_name}"
245
216
  ) from e
246
- return plan, parameters, plan_name, callback_type
217
+ return plan, parameters, plan_name
247
218
 
248
219
 
249
220
  class RunExperiment(Resource):
@@ -256,12 +227,10 @@ class RunExperiment(Resource):
256
227
  status_and_message = StatusAndMessage(Status.FAILED, f"{action} not understood")
257
228
  if action == Actions.START.value:
258
229
  try:
259
- plan, params, plan_name, callback_type = compose_start_args(
230
+ plan, params, plan_name = compose_start_args(
260
231
  self.context, plan_name, action
261
232
  )
262
- status_and_message = self.runner.start(
263
- plan, params, plan_name, callback_type
264
- )
233
+ status_and_message = self.runner.start(plan, params, plan_name)
265
234
  except Exception as e:
266
235
  status_and_message = make_error_status_and_message(e)
267
236
  LOGGER.error(format_exception(e))
@@ -312,7 +281,6 @@ def create_app(
312
281
  test_config=None,
313
282
  RE: RunEngine = RunEngine({}),
314
283
  skip_startup_connection: bool = False,
315
- use_external_callbacks: bool = False,
316
284
  ) -> tuple[Flask, BlueskyRunner]:
317
285
  context = setup_context(
318
286
  wait_for_connection=not skip_startup_connection,
@@ -320,7 +288,6 @@ def create_app(
320
288
  runner = BlueskyRunner(
321
289
  RE,
322
290
  context=context,
323
- use_external_callbacks=use_external_callbacks,
324
291
  skip_startup_connection=skip_startup_connection,
325
292
  )
326
293
  app = Flask(__name__)
@@ -350,11 +317,9 @@ def create_targets():
350
317
  do_default_logging_setup(
351
318
  CONST.LOG_FILE_NAME, CONST.GRAYLOG_PORT, dev_mode=args.dev_mode
352
319
  )
353
- if not args.use_external_callbacks:
354
- setup_callback_logging(args.dev_mode)
320
+ LOGGER.info(f"Hyperion launched with args:{argv}")
355
321
  app, runner = create_app(
356
322
  skip_startup_connection=args.skip_startup_connection,
357
- use_external_callbacks=args.use_external_callbacks,
358
323
  )
359
324
  return app, runner, hyperion_port, args.dev_mode
360
325
 
@@ -1,6 +1,5 @@
1
1
  from datetime import datetime
2
2
  from enum import Enum
3
- from importlib import resources
4
3
  from pathlib import Path
5
4
 
6
5
  import bluesky.plan_stubs as bps
@@ -8,15 +7,15 @@ from bluesky.utils import MsgGenerator
8
7
  from dodal.common.beamlines.beamline_utils import get_path_provider
9
8
  from dodal.devices.fast_grid_scan import PandAGridScanParams
10
9
  from dodal.devices.smargon import Smargon
11
- from ophyd_async.core import load_device
12
10
  from ophyd_async.fastcs.panda import (
13
11
  HDFPanda,
14
12
  SeqTable,
15
13
  SeqTrigger,
16
14
  )
17
15
 
18
- import mx_bluesky.hyperion.resources.panda as panda_resource
16
+ from mx_bluesky.common.device_setup_plans.setup_panda import load_panda_from_yaml
19
17
  from mx_bluesky.common.utils.log import LOGGER
18
+ from mx_bluesky.hyperion.parameters.constants import DeviceSettingsConstants
20
19
 
21
20
  MM_TO_ENCODER_COUNTS = 200000
22
21
  GENERAL_TIMEOUT = 60
@@ -76,7 +75,8 @@ def _get_seq_table(
76
75
 
77
76
  num_pulses = parameters.x_steps
78
77
 
79
- delay_between_pulses = time_between_steps_ms * TICKS_PER_MS
78
+ # Integer precision here is 1e-6s, so casting is safe
79
+ delay_between_pulses = int(time_between_steps_ms * TICKS_PER_MS)
80
80
 
81
81
  assert delay_between_pulses > PULSE_WIDTH_US
82
82
 
@@ -145,10 +145,11 @@ def setup_panda_for_flyscan(
145
145
 
146
146
  yield from bps.stage(panda, group="panda-config")
147
147
 
148
- with resources.as_file(
149
- resources.files(panda_resource) / "panda-gridscan.yaml"
150
- ) as config_yaml_path:
151
- yield from load_device(panda, str(config_yaml_path))
148
+ yield from load_panda_from_yaml(
149
+ DeviceSettingsConstants.PANDA_FLYSCAN_SETTINGS_DIR,
150
+ DeviceSettingsConstants.PANDA_FLYSCAN_SETTINGS_FILENAME,
151
+ panda,
152
+ )
152
153
 
153
154
  initial_x = yield from bps.rd(smargon.x.user_readback)
154
155
  initial_y = yield from bps.rd(smargon.y.user_readback)
@@ -2,6 +2,8 @@ from bluesky import plan_stubs as bps
2
2
  from bluesky.preprocessors import finalize_wrapper
3
3
  from bluesky.utils import make_decorator
4
4
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
5
+ from dodal.devices.dcm import DCM
6
+ from dodal.devices.undulator import Undulator
5
7
  from dodal.devices.xbpm_feedback import Pause, XBPMFeedback
6
8
 
7
9
  from mx_bluesky.common.utils.log import LOGGER
@@ -49,8 +51,10 @@ def _unpause_xbpm_feedback_and_set_transmission_to_1(
49
51
 
50
52
  def transmission_and_xbpm_feedback_for_collection_wrapper(
51
53
  plan,
54
+ undulator: Undulator,
52
55
  xbpm_feedback: XBPMFeedback,
53
56
  attenuator: BinaryFilterAttenuator,
57
+ dcm: DCM,
54
58
  desired_transmission_fraction: float,
55
59
  ):
56
60
  """Sets the transmission for the data collection, ensuring the xbpm feedback is valid
@@ -66,6 +70,9 @@ def transmission_and_xbpm_feedback_for_collection_wrapper(
66
70
  mostly accounts for slow thermal drift so it is safe to assume that the beam is
67
71
  stable during a collection.
68
72
 
73
+ In the case of a beam dump, undulator gap may not return. Therefore, we check here
74
+ that the undulator gap is correct after XBPM is stable, and before collection.
75
+
69
76
  Args:
70
77
  plan: The plan performing the data collection
71
78
  xbpm_feedback (XBPMFeedback): The XBPM device that is responsible for keeping
@@ -78,6 +85,9 @@ def transmission_and_xbpm_feedback_for_collection_wrapper(
78
85
  yield from _check_and_pause_feedback(
79
86
  xbpm_feedback, attenuator, desired_transmission_fraction
80
87
  )
88
+ # Verify Undulator gap is correct, as may not be after a beam dump
89
+ energy_in_kev = yield from bps.rd(dcm.energy_in_kev.user_readback)
90
+ yield from bps.abs_set(undulator, energy_in_kev, wait=True)
81
91
  return (yield from plan)
82
92
 
83
93
  return (
@@ -11,13 +11,6 @@ from mx_bluesky.hyperion.experiment_plans import (
11
11
  pin_centre_then_xray_centre_plan,
12
12
  robot_load_then_centre_plan,
13
13
  )
14
- from mx_bluesky.hyperion.external_interaction.callbacks.common.callback_util import (
15
- CallbacksFactory,
16
- create_gridscan_callbacks,
17
- create_load_centre_collect_callbacks,
18
- create_robot_load_and_centre_callbacks,
19
- create_rotation_callbacks,
20
- )
21
14
  from mx_bluesky.hyperion.parameters.gridscan import (
22
15
  GridScanWithEdgeDetect,
23
16
  HyperionSpecifiedThreeDGridScan,
@@ -47,44 +40,36 @@ class ExperimentRegistryEntry(TypedDict):
47
40
  | LoadCentreCollect
48
41
  | RobotLoadThenCentre
49
42
  ]
50
- callbacks_factory: CallbacksFactory
51
43
 
52
44
 
53
45
  PLAN_REGISTRY: dict[str, ExperimentRegistryEntry] = {
54
46
  "flyscan_xray_centre": {
55
47
  "setup": flyscan_xray_centre_plan.create_devices,
56
48
  "param_type": HyperionSpecifiedThreeDGridScan,
57
- "callbacks_factory": create_gridscan_callbacks,
58
49
  },
59
50
  "grid_detect_then_xray_centre": {
60
51
  "setup": grid_detect_then_xray_centre_plan.create_devices,
61
52
  "param_type": GridScanWithEdgeDetect,
62
- "callbacks_factory": create_gridscan_callbacks,
63
53
  },
64
54
  "rotation_scan": {
65
55
  "setup": rotation_scan_plan.create_devices,
66
56
  "param_type": RotationScan,
67
- "callbacks_factory": create_rotation_callbacks,
68
57
  },
69
58
  "pin_tip_centre_then_xray_centre": {
70
59
  "setup": pin_centre_then_xray_centre_plan.create_devices,
71
60
  "param_type": PinTipCentreThenXrayCentre,
72
- "callbacks_factory": create_gridscan_callbacks,
73
61
  },
74
62
  "robot_load_then_centre": {
75
63
  "setup": robot_load_then_centre_plan.create_devices,
76
64
  "param_type": RobotLoadThenCentre,
77
- "callbacks_factory": create_robot_load_and_centre_callbacks,
78
65
  },
79
66
  "multi_rotation_scan": {
80
67
  "setup": rotation_scan_plan.create_devices,
81
68
  "param_type": MultiRotationScan,
82
- "callbacks_factory": create_rotation_callbacks,
83
69
  },
84
70
  "load_centre_collect_full": {
85
71
  "setup": load_centre_collect_full_plan.create_devices,
86
72
  "param_type": LoadCentreCollect,
87
- "callbacks_factory": create_load_centre_collect_callbacks,
88
73
  },
89
74
  }
90
75
 
@@ -50,6 +50,7 @@ from ophyd_async.fastcs.panda import HDFPanda
50
50
  from mx_bluesky.common.external_interaction.callbacks.xray_centre.ispyb_callback import (
51
51
  ispyb_activation_wrapper,
52
52
  )
53
+ from mx_bluesky.common.parameters.constants import HardwareConstants
53
54
  from mx_bluesky.common.plans.do_fgs import kickoff_and_complete_gridscan
54
55
  from mx_bluesky.common.utils.exceptions import (
55
56
  CrystalNotFoundException,
@@ -119,10 +120,10 @@ class XRayCentreEventHandler(CallbackBase):
119
120
  self.xray_centre_results: Sequence[XRayCentreResult] | None = None
120
121
 
121
122
  def start(self, doc: RunStart) -> RunStart | None:
122
- if "xray_centre_results" in doc:
123
+ if CONST.PLAN.FLYSCAN_RESULTS in doc:
123
124
  self.xray_centre_results = [
124
125
  XRayCentreResult(**result_dict)
125
- for result_dict in doc["xray_centre_results"] # type: ignore
126
+ for result_dict in doc[CONST.PLAN.FLYSCAN_RESULTS] # type: ignore
126
127
  ]
127
128
  return doc
128
129
 
@@ -140,6 +141,7 @@ def flyscan_xray_centre_no_move(
140
141
  composite.eiger.set_detector_parameters(parameters.detector_params)
141
142
  composite.zocalo.zocalo_environment = CONST.ZOCALO_ENV
142
143
  composite.zocalo.use_cpu_and_gpu = parameters.features.compare_cpu_and_gpu_zocalo
144
+ composite.zocalo.use_gpu = parameters.features.use_gpu_results
143
145
 
144
146
  feature_controlled = _get_feature_controlled(composite, parameters)
145
147
 
@@ -155,8 +157,10 @@ def flyscan_xray_centre_no_move(
155
157
  )
156
158
  @bpp.finalize_decorator(lambda: feature_controlled.tidy_plan(composite))
157
159
  @transmission_and_xbpm_feedback_for_collection_decorator(
160
+ composite.undulator,
158
161
  composite.xbpm_feedback,
159
162
  composite.attenuator,
163
+ composite.dcm,
160
164
  parameters.transmission_frac,
161
165
  )
162
166
  def run_gridscan_and_fetch_and_tidy(
@@ -303,7 +307,7 @@ def _fire_xray_centre_result_event(results: Sequence[XRayCentreResult]):
303
307
 
304
308
  yield from bpp.run_wrapper(
305
309
  empty_plan(),
306
- md={"xray_centre_results": [dataclasses.asdict(r) for r in results]},
310
+ md={CONST.PLAN.FLYSCAN_RESULTS: [dataclasses.asdict(r) for r in results]},
307
311
  )
308
312
 
309
313
 
@@ -468,10 +472,9 @@ def _panda_triggering_setup(
468
472
  fgs_composite.panda_fast_grid_scan.run_up_distance_mm
469
473
  )
470
474
 
471
- # Set the time between x steps pv
472
- DEADTIME_S = 1e-6 # according to https://www.dectris.com/en/detectors/x-ray-detectors/eiger2/eiger2-for-synchrotrons/eiger2-x/
473
-
474
- time_between_x_steps_ms = (DEADTIME_S + parameters.exposure_time_s) * 1e3
475
+ time_between_x_steps_ms = (
476
+ HardwareConstants.PANDA_FGS_EIGER_DEADTIME_S + parameters.exposure_time_s
477
+ ) * 1e3
475
478
 
476
479
  smargon_speed_limit_mm_per_s = yield from bps.rd(
477
480
  fgs_composite.smargon.x.max_velocity
@@ -490,7 +493,7 @@ def _panda_triggering_setup(
490
493
  )
491
494
  else:
492
495
  LOGGER.info(
493
- f"Panda grid scan: Smargon speed set to {smargon_speed_limit_mm_per_s} mm/s"
496
+ f"Panda grid scan: Smargon speed set to {sample_velocity_mm_per_s} mm/s"
494
497
  f" and using a run-up distance of {run_up_distance_mm}"
495
498
  )
496
499
 
@@ -142,6 +142,14 @@ def detect_grid_and_do_gridscan(
142
142
  parameters.box_size_um,
143
143
  )
144
144
 
145
+ if parameters.selected_aperture:
146
+ # Start moving the aperture/scatterguard into position without moving it in
147
+ yield from bps.prepare(
148
+ composite.aperture_scatterguard,
149
+ parameters.selected_aperture,
150
+ group=CONST.WAIT.GRID_READY_FOR_DC,
151
+ )
152
+
145
153
  yield from run_grid_detection_plan(
146
154
  oav_params,
147
155
  snapshot_template,