mx-bluesky 1.4.9__tar.gz → 1.5.1__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 (527) hide show
  1. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_container.yml +26 -3
  2. mx_bluesky-1.5.1/Dockerfile.blueapi +14 -0
  3. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/PKG-INFO +5 -4
  4. mx_bluesky-1.5.1/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  5. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/code-map/grid_detect_xrc.rst +12 -11
  6. mx_bluesky-1.5.1/docs/developer/general/explanations/containerised_mx_bluesky.rst +14 -0
  7. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/create-a-release.rst +9 -6
  8. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/index.rst +1 -0
  9. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/pyproject.toml +4 -3
  10. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/_version.py +2 -2
  11. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/__init__.py +4 -2
  12. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +4 -0
  13. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +8 -8
  14. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +36 -4
  15. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +6 -5
  16. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +2 -2
  17. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +5 -5
  18. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +79 -10
  19. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +4 -1
  20. mx_bluesky-1.5.1/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +123 -0
  21. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion → mx_bluesky-1.5.1/src/mx_bluesky/common}/device_setup_plans/utils.py +0 -11
  22. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/common_flyscan_xray_centre_plan.py +12 -19
  23. mx_bluesky-1.4.9/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +108 -136
  24. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/inner_plans/do_fgs.py +1 -1
  25. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +5 -13
  26. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion → mx_bluesky-1.5.1/src/mx_bluesky/common}/experiment_plans/oav_snapshot_plan.py +5 -2
  27. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +26 -24
  28. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -1
  29. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +2 -2
  30. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/parameters/components.py +8 -3
  31. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/parameters/constants.py +4 -3
  32. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion → mx_bluesky-1.5.1/src/mx_bluesky/common}/parameters/device_composites.py +12 -31
  33. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/xrc_result.py +25 -2
  34. mx_bluesky-1.5.1/src/mx_bluesky/hyperion/device_setup_plans/utils.py +12 -0
  35. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +3 -3
  36. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +3 -3
  37. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +46 -41
  38. mx_bluesky-1.5.1/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +60 -0
  39. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +26 -8
  40. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +26 -15
  41. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +21 -75
  42. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +10 -8
  43. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +20 -15
  44. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +4 -4
  45. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +1 -1
  46. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load → mx_bluesky-1.5.1/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions}/ispyb_callback.py +28 -19
  47. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +1 -1
  48. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +3 -0
  49. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -11
  50. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/constants.py +1 -6
  51. mx_bluesky-1.5.1/src/mx_bluesky/hyperion/parameters/device_composites.py +62 -0
  52. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/gridscan.py +2 -6
  53. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +15 -0
  54. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/rotation.py +7 -3
  55. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/PKG-INFO +5 -4
  56. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/SOURCES.txt +24 -16
  57. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/requires.txt +4 -3
  58. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/conftest.py +373 -242
  59. mx_bluesky-1.5.1/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +59 -0
  60. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +3 -3
  61. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/conftest.py +11 -11
  62. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +9 -11
  63. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +10 -5
  64. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +29 -17
  65. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +332 -41
  66. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +4 -3
  67. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +1 -1
  68. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +2 -2
  69. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +21 -12
  70. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +2 -2
  71. mx_bluesky-1.5.1/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +55 -0
  72. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +3 -3
  73. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +3 -3
  74. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_parameters.json +1 -1
  75. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +1 -1
  76. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +1 -1
  77. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +2 -2
  78. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +1 -1
  79. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +3 -3
  80. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +3 -2
  81. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +2 -2
  82. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +4 -4
  83. mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +213 -0
  84. mx_bluesky-1.5.1/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +230 -0
  85. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +1 -0
  86. {mx_bluesky-1.4.9/tests/unit_tests/common/plans → mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans}/test_common_flyscan_xray_centre_plan.py +39 -38
  87. mx_bluesky-1.4.9/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py → mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +93 -54
  88. {mx_bluesky-1.4.9/tests/unit_tests/hyperion → mx_bluesky-1.5.1/tests/unit_tests/common}/experiment_plans/test_oav_snapshot_plan.py +7 -6
  89. {mx_bluesky-1.4.9/tests/unit_tests/common/plans → mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans}/test_read_hardware.py +3 -3
  90. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +3 -3
  91. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +4 -2
  92. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +58 -23
  93. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +15 -15
  94. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +36 -29
  95. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +47 -33
  96. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +4 -2
  97. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +17 -14
  98. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/parameters/test_components.py +8 -0
  99. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/test_do_fgs.py +11 -5
  100. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/test_write_sample_status.py +2 -2
  101. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/conftest.py +106 -7
  102. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/conftest.py +14 -24
  103. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
  104. mx_bluesky-1.5.1/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +55 -0
  105. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/conftest.py +13 -67
  106. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +44 -149
  107. mx_bluesky-1.5.1/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +228 -0
  108. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +176 -40
  109. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +33 -26
  110. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +30 -46
  111. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +7 -6
  112. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +112 -31
  113. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +42 -25
  114. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +37 -30
  115. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +15 -17
  116. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/conftest.py +5 -4
  117. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +108 -4
  118. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -3
  119. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +6 -5
  120. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +16 -67
  121. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/test_main_system.py +47 -42
  122. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/build_docker_image.sh +2 -2
  123. mx_bluesky-1.4.9/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  124. mx_bluesky-1.4.9/src/mx_bluesky/hyperion/utils/validation.py +0 -196
  125. mx_bluesky-1.4.9/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -49
  126. mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -95
  127. mx_bluesky-1.4.9/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -26
  128. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.copier-answers.yml +0 -0
  129. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.coveragerc +0 -0
  130. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.devcontainer/Dockerfile +0 -0
  131. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.devcontainer/devcontainer.json +0 -0
  132. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.dockerignore +0 -0
  133. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/CODEOWNERS +0 -0
  134. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/CONTRIBUTING.md +0 -0
  135. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  136. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  137. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/actions/install_requirements/action.yml +0 -0
  138. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/actions/verify-nexus/Dockerfile +0 -0
  139. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/actions/verify-nexus/action.yml +0 -0
  140. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  141. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/dependabot.yml +0 -0
  142. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/pages/index.html +0 -0
  143. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/pages/make_switcher.py +0 -0
  144. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_check.yml +0 -0
  145. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_dist.yml +0 -0
  146. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_docs.yml +0 -0
  147. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_pypi.yml +0 -0
  148. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_release.yml +0 -0
  149. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_test.yml +0 -0
  150. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/_tox.yml +0 -0
  151. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/ci.yml +0 -0
  152. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.github/workflows/periodic.yml +0 -0
  153. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.gitignore +0 -0
  154. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.pre-commit-config.yaml +0 -0
  155. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/extensions.json +0 -0
  156. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/launch.json +0 -0
  157. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/mx-bluesky.code-workspace +0 -0
  158. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  159. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/settings.json +0 -0
  160. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/.vscode/tasks.json +0 -0
  161. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/Dockerfile +0 -0
  162. /mx_bluesky-1.4.9/Dockerfile.release → /mx_bluesky-1.5.1/Dockerfile.hyperion +0 -0
  163. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/LICENSE +0 -0
  164. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/README.rst +0 -0
  165. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/catalog-info.yaml +0 -0
  166. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/codecov.yml +0 -0
  167. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/conftest.py +0 -0
  168. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/_api.rst +0 -0
  169. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/_templates/custom-module-template.rst +0 -0
  170. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/conf.py +0 -0
  171. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/code-map/index.rst +0 -0
  172. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  173. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  174. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  175. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  176. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/explanations/decisions.rst +0 -0
  177. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/contribute.rst +0 -0
  178. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  179. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  180. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  181. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  182. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  183. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  184. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/how-to/get-started.rst +0 -0
  185. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/reference/standards.rst +0 -0
  186. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  187. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  188. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  189. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/index.rst +0 -0
  190. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  191. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  192. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  193. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  194. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/reference/readme.md +0 -0
  195. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/hyperion/system-tests.rst +0 -0
  196. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/index.rst +0 -0
  197. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  198. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  199. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/murko-integration/index.rst +0 -0
  200. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  201. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  202. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  203. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  204. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  205. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  206. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  207. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  208. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  209. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/dls-favicon.ico +0 -0
  210. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/dls-logo.svg +0 -0
  211. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/motor coordinate systems.odg +0 -0
  212. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/motor-coords-omega-0.svg +0 -0
  213. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/images/motor-coords-omega-alpha.svg +0 -0
  214. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/docs/index.rst +0 -0
  215. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/Chart.yaml +0 -0
  216. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/templates/deployment.yaml +0 -0
  217. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/templates/ingress.yaml +0 -0
  218. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/templates/service.yaml +0 -0
  219. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/templates/zocalo-config.yaml +0 -0
  220. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/hyperion/values.yaml +0 -0
  221. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/redis-to-murko/Chart.yaml +0 -0
  222. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/redis-to-murko/templates/deployment.yaml +0 -0
  223. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/helmcharts/redis-to-murko/values.yaml +0 -0
  224. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  225. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  226. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  227. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  228. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/linkcheck.yml +0 -0
  229. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  230. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  231. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/pin_versions.py +0 -0
  232. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  233. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  234. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  235. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  236. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  237. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  238. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/hyperion_other/workflows/test_pin_versions.py +0 -0
  239. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/pull_request_template.md +0 -0
  240. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/run_hyperion.sh +0 -0
  241. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/run_hyperion_in_podman.sh +0 -0
  242. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/setup.cfg +0 -0
  243. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/__init__.py +0 -0
  244. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/__main__.py +0 -0
  245. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/__init__.py +0 -0
  246. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  247. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  248. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  249. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  250. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  251. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  252. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  253. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  254. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  255. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  256. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  257. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
  258. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  259. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  260. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  261. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  262. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  263. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  264. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  265. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  266. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  267. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  268. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  269. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  270. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  271. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  272. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  273. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  274. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  275. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  276. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  277. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  278. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  279. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  280. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  281. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  282. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  283. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  284. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  285. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  286. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  287. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  288. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  289. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  290. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  291. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  292. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  293. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  294. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  295. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  296. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  297. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  298. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
  299. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  300. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/__init__.py +0 -0
  301. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  302. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  303. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  304. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  305. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/__init__.py +0 -0
  306. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  307. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/inner_plans/__init__ .py +0 -0
  308. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/read_hardware.py +0 -0
  309. {mx_bluesky-1.4.9/src/mx_bluesky/common/plans → mx_bluesky-1.5.1/src/mx_bluesky/common/experiment_plans}/write_sample_status.py +0 -0
  310. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
  311. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
  312. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  313. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  314. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
  315. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
  316. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  317. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  318. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  319. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  320. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  321. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  322. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  323. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
  324. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  325. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  326. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  327. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
  328. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
  329. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  330. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
  331. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  332. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  333. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/preprocessors/__init__.py +0 -0
  334. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  335. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/protocols/__init__.py +0 -0
  336. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  337. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.5.1/src/mx_bluesky/common/utils}/__init__.py +0 -0
  338. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/utils/context.py +0 -0
  339. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  340. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/utils/log.py +0 -0
  341. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/utils/tracing.py +0 -0
  342. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/common/utils/utils.py +0 -0
  343. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/definitions.py +0 -0
  344. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/__init__.py +0 -0
  345. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/__main__.py +0 -0
  346. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/baton_handler.py +0 -0
  347. {mx_bluesky-1.4.9/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.1/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  348. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  349. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  350. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  351. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
  352. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  353. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
  354. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
  355. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  356. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  357. {mx_bluesky-1.4.9/tests → mx_bluesky-1.5.1/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  358. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  359. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  360. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  361. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  362. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  363. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  364. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  365. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  366. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  367. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  368. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  369. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  370. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  371. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/start_jupyter.sh +0 -0
  372. {mx_bluesky-1.4.9/tests/system_tests → mx_bluesky-1.5.1/tests}/__init__.py +0 -0
  373. {mx_bluesky-1.4.9/tests/system_tests/hyperion → mx_bluesky-1.5.1/tests/system_tests}/__init__.py +0 -0
  374. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/conftest.py +0 -0
  375. {mx_bluesky-1.4.9/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.5.1/tests/system_tests/hyperion}/__init__.py +0 -0
  376. {mx_bluesky-1.4.9/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.1/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  377. {mx_bluesky-1.4.9/tests/unit_tests → mx_bluesky-1.5.1/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  378. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  379. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  380. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/agamemnon/example_native.json +0 -0
  381. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  382. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/README.md +0 -0
  383. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  384. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  385. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  386. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  387. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  388. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  389. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  390. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  391. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  392. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  393. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  394. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  395. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  396. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/scratch/README +0 -0
  397. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_OAVCentring.json +0 -0
  398. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  399. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  400. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_beamline_parameters.txt +0 -0
  401. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  402. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_config.cfg +0 -0
  403. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  404. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  405. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  406. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  407. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  408. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  409. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  410. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_det_dist_converter.txt +0 -0
  411. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_display.configuration +0 -0
  412. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  413. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  414. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  415. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  416. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  417. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  418. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  419. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  420. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  421. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  422. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  423. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_lookup_table.txt +0 -0
  424. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/test_mirror_focus.json +0 -0
  425. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  426. {mx_bluesky-1.4.9/tests/unit_tests/beamlines → mx_bluesky-1.5.1/tests/unit_tests}/__init__.py +0 -0
  427. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24 → mx_bluesky-1.5.1/tests/unit_tests/beamlines}/__init__.py +0 -0
  428. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
  429. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  430. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
  431. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  432. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  433. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
  434. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  435. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  436. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  437. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
  438. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  439. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +0 -0
  440. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  441. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  442. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  443. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  444. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  445. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  446. {mx_bluesky-1.4.9/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  447. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  448. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  449. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
  450. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  451. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  452. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  453. {mx_bluesky-1.4.9/tests/unit_tests/common → mx_bluesky-1.5.1/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  454. {mx_bluesky-1.4.9/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.1/tests/unit_tests/common}/__init__.py +0 -0
  455. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  456. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
  457. {mx_bluesky-1.4.9/tests/unit_tests/common/external_interaction → mx_bluesky-1.5.1/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
  458. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +0 -0
  459. {mx_bluesky-1.4.9/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  460. {mx_bluesky-1.4.9/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  461. {mx_bluesky-1.4.9/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  462. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  463. {mx_bluesky-1.4.9/tests/unit_tests/common/parameters → mx_bluesky-1.5.1/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  464. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  465. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
  466. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  467. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  468. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  469. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
  470. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  471. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  472. {mx_bluesky-1.4.9/tests/unit_tests/common/plans → mx_bluesky-1.5.1/tests/unit_tests/common/parameters}/__init__.py +0 -0
  473. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/preprocessors/__init__.py +0 -0
  474. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  475. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/utils/__init__.py +0 -0
  476. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/common/utils/test_log.py +0 -0
  477. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/__init__.py +0 -0
  478. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
  479. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  480. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
  481. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  482. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  483. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  484. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
  485. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  486. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  487. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
  488. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  489. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  490. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  491. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  492. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  493. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  494. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  495. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  496. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  497. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  498. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  499. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  500. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  501. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  502. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/test_baton_handler.py +0 -0
  503. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  504. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/test_utils.py +0 -0
  505. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  506. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  507. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  508. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/tests/unit_tests/test_cli.py +0 -0
  509. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/beam_off_trickery.sh +0 -0
  510. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/build_imginfo.sh +0 -0
  511. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/deploy/create_venv.py +0 -0
  512. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  513. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  514. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
  515. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/deploy/test_deploy.py +0 -0
  516. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/dev_jaeger_container.sh +0 -0
  517. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/dls_dev_env.sh +0 -0
  518. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/docker/entrypoint.sh +0 -0
  519. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/docker/healthcheck.sh +0 -0
  520. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/docker/i03-compose.yml +0 -0
  521. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/generate_plantuml.py +0 -0
  522. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/graylog/Dockerfile +0 -0
  523. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/graylog/tcp_input.json +0 -0
  524. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/procserv_ioc_start.sh +0 -0
  525. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/run_imginfo.sh +0 -0
  526. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/setup_graylog.sh +0 -0
  527. {mx_bluesky-1.4.9 → mx_bluesky-1.5.1}/utility_scripts/strip_metafile.py +0 -0
@@ -30,14 +30,25 @@ jobs:
30
30
  DOCKER_BUILD_RECORD_UPLOAD: false
31
31
  with:
32
32
  context: .
33
- file: Dockerfile.release
33
+ file: Dockerfile.hyperion
34
+ load: true
35
+
36
+ - name: Build and export Dockerfile.blueapi to local cache
37
+ uses: docker/build-push-action@v6
38
+ env:
39
+ DOCKER_BUILD_RECORD_UPLOAD: false
40
+ with:
41
+ context: .
42
+ file: Dockerfile.blueapi
34
43
  load: true
35
44
 
36
45
  - name: Create tags for publishing image
37
46
  id: meta
38
47
  uses: docker/metadata-action@v5
39
48
  with:
40
- images: ghcr.io/${{ github.repository }}
49
+ images: |
50
+ ghcr.io/${{ github.repository }}
51
+ ghcr.io/${{ github.repository }}-blueapi
41
52
  tags: |
42
53
  type=ref,event=tag
43
54
  type=raw,value=latest
@@ -51,7 +62,19 @@ jobs:
51
62
  # Docker cache and publish it
52
63
  with:
53
64
  context: .
54
- file: Dockerfile.release
65
+ file: Dockerfile.hyperion
66
+ push: true
67
+ tags: ${{ steps.meta.outputs.tags }}
68
+ labels: ${{ steps.meta.outputs.labels }}
69
+
70
+ - name: Push Dockerfile.blueapi image to container registry
71
+ if: github.ref_type == 'tag'
72
+ uses: docker/build-push-action@v6
73
+ env:
74
+ DOCKER_BUILD_RECORD_UPLOAD: false
75
+ with:
76
+ context: .
77
+ file: Dockerfile.blueapi
55
78
  push: true
56
79
  tags: ${{ steps.meta.outputs.tags }}
57
80
  labels: ${{ steps.meta.outputs.labels }}
@@ -0,0 +1,14 @@
1
+ # See https://github.com/DiamondLightSource/mx-bluesky/issues/1004
2
+ FROM ghcr.io/diamondlightsource/blueapi:0.10.1
3
+
4
+ ARG DEBIAN_FRONTEND=noninteractive
5
+
6
+ RUN apt update -y && apt upgrade -y
7
+ # Needed for python cv2 dependency
8
+ RUN apt install -y libgl1 libglib2.0-0
9
+
10
+ RUN /venv/bin/pip install mx-bluesky
11
+
12
+ # Needed so that Blueapi's setup-scratch stage has permission to modify dependencies installed
13
+ # in the above pip installation
14
+ RUN mkdir -p /.cache/pip; chmod -R 777 /venv /.cache/pip
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.4.9
3
+ Version: 1.5.1
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
@@ -221,7 +221,7 @@ Requires-Dist: ispyb
221
221
  Requires-Dist: jupyterlab
222
222
  Requires-Dist: matplotlib
223
223
  Requires-Dist: nexgen>=0.11.0
224
- Requires-Dist: numpy
224
+ Requires-Dist: numpy==2.2.6
225
225
  Requires-Dist: opencv-python
226
226
  Requires-Dist: opentelemetry-distro
227
227
  Requires-Dist: opentelemetry-exporter-otlp
@@ -233,13 +233,14 @@ Requires-Dist: requests
233
233
  Requires-Dist: scanspec
234
234
  Requires-Dist: scipy
235
235
  Requires-Dist: semver
236
+ Requires-Dist: deepdiff
236
237
  Requires-Dist: matplotlib
237
- Requires-Dist: blueapi>=0.5.0
238
+ Requires-Dist: blueapi>=0.11.1
238
239
  Requires-Dist: daq-config-server==0.1.1
239
240
  Requires-Dist: ophyd>=1.10.5
240
241
  Requires-Dist: ophyd-async>=0.10.0a2
241
242
  Requires-Dist: bluesky>=1.13.1
242
- Requires-Dist: dls-dodal==1.48.0
243
+ Requires-Dist: dls-dodal==1.51.0
243
244
  Provides-Extra: dev
244
245
  Requires-Dist: black; extra == "dev"
245
246
  Requires-Dist: build; extra == "dev"
@@ -1,9 +1,9 @@
1
1
  Grid Detect Then Xray Centre
2
2
  ============================
3
3
 
4
- The aim of this page is to provide a general overview of the Hyperion ``grid_detect_then_xray_centre_plan``.
4
+ The aim of this page is to provide a general overview of the ``grid_detect_then_xray_centre_plan``.
5
5
 
6
- Most of the code for the ``grid_detect_then_xray_centre_plan`` plan is in ``mx-bluesky/hyperion``. Some code is located in ``mx-bluesky/common`` and `dodal <https://github.com/DiamondLightSource/dodal>`_, and plans are increasingly being generalised and moved into ``mx-bluesky/common`` where possible. Therefore, the structure of the codebase is subject to change and this document should be updated accordingly.
6
+ The code for the ``grid_detect_then_xray_centre`` plan is now entirely ``mx-bluesky/common/`` and `dodal <https://github.com/DiamondLightSource/dodal>`_. There is a new Hyperion entry point, ``hyperion_grid_detect_then_xray_centre`` which calls this common plan, setting up Hyperion features for it. There will soon be an i04 entry point that calls the common plan in the same way.
7
7
 
8
8
  There are then a number of plans that make up the ``grid_detect_then_xray_centre_plan`` plan. Some important ones:
9
9
 
@@ -11,7 +11,7 @@ There are then a number of plans that make up the ``grid_detect_then_xray_centre
11
11
  * :ref:`flyscan_xray_centre_plan<flyscan>` - Triggers a hardware-based grid scan and moves to the X-ray centre as returned from ``zocalo``.
12
12
  * :ref:`grid_detect_then_xray_centre_plan<grid-detect-xrc>` - This top-level plan performs an :ref:`OAV grid detection <grid-detect>` then a :ref:`flyscan x-ray centre <flyscan>`.
13
13
 
14
- The diagram below shows all the plans that make up the ``grid_detect_then_xray_centre_plan``. The colors indicate where these plans can be found.
14
+ The diagram below shows all the plans that make up the ``grid_detect_then_xray_centre_plan``.
15
15
 
16
16
  .. image:: grid_detect_then_xray_centre.drawio.png
17
17
 
@@ -20,21 +20,22 @@ The diagram below shows all the plans that make up the ``grid_detect_then_xray_c
20
20
  Grid Detect Then Xray Centre Plan
21
21
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
22
 
23
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py>`__ does the following, in roughly this order:
23
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py>`__ does the following, in roughly this order:
24
24
 
25
25
  1. If called standalone, start preparing for data collection.
26
- 2. Perform an :ref:`OAV grid detection <grid-detect>`.
27
- 3. Convert the parameters calculated in step 2 into something we can send to the flyscan X-ray centre.
28
- 4. Move the backlight out, set the aperture to small, and wait for the detector to finish moving.
29
- 5. Perform a :ref:`flyscan X-ray centre <flyscan>`.
30
- 6. Move the sample based on the results of step 5.
26
+ 2. Move the beamstop into place if it isn't already.
27
+ 3. Perform an :ref:`OAV grid detection <grid-detect>`.
28
+ 4. Convert the parameters calculated in step 2 into something we can send to the flyscan X-ray centre.
29
+ 5. Move the backlight out, set the aperture to small, and wait for the detector to finish moving.
30
+ 6. Perform a :ref:`flyscan X-ray centre <flyscan>`.
31
+ 7. Move the sample based on the results of step 5.
31
32
 
32
33
  .. _grid-detect:
33
34
 
34
35
  OAV Grid Detection
35
36
  ~~~~~~~~~~~~~~~~~~
36
37
 
37
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py>`__ does the following, in roughly this order:
38
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py>`__ does the following, in roughly this order:
38
39
 
39
40
  1. Move to omega 0.
40
41
  2. Calculate the 2D grid size using the edge arrays from the OAV.
@@ -48,7 +49,7 @@ OAV Grid Detection
48
49
  Flyscan Xray Centre No Move
49
50
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
50
51
 
51
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py>`__ does the following, in roughly this order:
52
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py>`__ does the following, in roughly this order:
52
53
 
53
54
  1. Move to the desired transmission (and turn off xbpm feedback).
54
55
  2. Move to omega 0.
@@ -0,0 +1,14 @@
1
+ Containerised mx-bluesky
2
+ ========================
3
+
4
+ There are currently two images associated with this repository which are pushed on release: hyperion, and mx-bluesky-blueapi.
5
+
6
+ The Hyperion image exists because Hyperion was developed before BlueAPI was production-ready, and so doesn't use BlueAPI to schedule plans. This image is only really relevant for i03, and currently isn't used in production anywhere
7
+
8
+ The ``mx-bluesky-blueapi`` image exists as a minor extension of BlueAPI's image. BlueAPI's image contains the dependencies of BlueAPI, as well as the dependencies of BlueAPI, which includes dodal. When the BlueAPI service is launched, it will do a ``pip install --no deps`` of the plan repository. For MX, this means ``mx-bluesky`` gets installed without any of its dependencies. For this reason, we have created an ``mx-bluesky-blueapi`` image which installs these extra dependencies.
9
+
10
+ This image can be used with BlueAPI's original helmchart, the only change required in the ``values.yaml`` is::
11
+
12
+ image:
13
+ repository: ghcr.io/diamondlightsource/mx-bluesky-blueapi
14
+ tag: "{desired_version}"
@@ -10,12 +10,15 @@ Release
10
10
  =======
11
11
 
12
12
  1. Create a new branch from main named pre followed by the release version e.g. pre_v0.1.0. The release versions should look like ``v{major}.{minor}.{patch}``.
13
- 2. On this branch pin the up-to-date version of dodal and the latest release of nexgen if necessary.
14
- 3. Go `here <https://github.com/DiamondLightSource/mx-bluesky/releases/new>`_.
15
- 4. Select Choose a new tag and type the version of the release, then select the branch created in step 1 as the target.
16
- 5. Click on Generate release notes. This will create a starting set of release notes based on PR titles since the last release.
17
- 6. You should now manually go through each line on the release notes and read it from the perspective of a beamline scientist. It should be clear from each what the change means to the beamline and should have links to easily find further info.
18
- 7. Publish the release
13
+ 2. On this branch pin the up-to-date version of dodal and the latest release of nexgen if necessary, then push to GitHub.
14
+ 3. Make sure the CI is passing for this new pre-release branch.
15
+ 4. Go `here <https://github.com/DiamondLightSource/mx-bluesky/releases/new>`_.
16
+ 5. Select Choose a new tag and type the version of the release, then select the branch created in step 1 as the target.
17
+ 6. Click on Generate release notes. This will create a starting set of release notes based on PR titles since the last release.
18
+ 7. You should now manually go through each line on the release notes and read it from the perspective of a beamline scientist. It should be clear from each what the change means to the beamline and should have links to easily find further info.
19
+ 8. Publish the release
20
+
21
+ NOTE FOR USING THE MX-BLUESKY-BLUEAPI IMAGE: If using this image with BlueAPI's helmchart for deployment, the version of dodal which is installed will be the version which is pinned in the BlueAPI, rather than what's in mx-bluesky's pyproject.toml. Before releasing, you should pin BlueAPI to a version which uses a dodal version which is compatible with itself AND mx-bluesky. The deployment will fail if BlueAPI has no version which works with the desired dodal version
19
22
 
20
23
  ------------------------
21
24
  Deciding release numbers
@@ -42,6 +42,7 @@ Documentation is split into four categories, and each is also accessible from li
42
42
 
43
43
  explanations/decisions
44
44
  explanations/callback_and_run_logic
45
+ explanations/containerised_mx_bluesky
45
46
 
46
47
  +++
47
48
 
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "jupyterlab",
25
25
  "matplotlib",
26
26
  "nexgen >= 0.11.0",
27
- "numpy",
27
+ "numpy == 2.2.6", # See https://github.com/DiamondLightSource/mx-bluesky/issues/1119
28
28
  "opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
29
29
  "opentelemetry-distro",
30
30
  "opentelemetry-exporter-otlp",
@@ -36,17 +36,18 @@ dependencies = [
36
36
  "scanspec",
37
37
  "scipy",
38
38
  "semver",
39
+ "deepdiff",
39
40
  "matplotlib",
40
41
  #
41
42
  # These dependencies may be issued as pre-release versions and should have a pin constraint
42
43
  # as by default pip-install will not upgrade to a pre-release.
43
44
  #
44
- "blueapi >= 0.5.0",
45
+ "blueapi >= 0.11.1",
45
46
  "daq-config-server == 0.1.1",
46
47
  "ophyd >= 1.10.5",
47
48
  "ophyd-async >= 0.10.0a2",
48
49
  "bluesky >= 1.13.1",
49
- "dls-dodal == 1.48.0"
50
+ "dls-dodal == 1.51.0",
50
51
  ]
51
52
 
52
53
 
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.4.9'
21
- __version_tuple__ = version_tuple = (1, 4, 9)
20
+ __version__ = version = '1.5.1'
21
+ __version_tuple__ = version_tuple = (1, 5, 1)
@@ -2,7 +2,8 @@ from mx_bluesky.beamlines.i24.serial.web_gui_plans.general_plans import (
2
2
  gui_gonio_move_on_click,
3
3
  gui_move_backlight,
4
4
  gui_move_detector,
5
- gui_set_parameters,
5
+ gui_run_chip_collection,
6
+ gui_set_zoom_level,
6
7
  gui_sleep,
7
8
  gui_stage_move_on_click,
8
9
  )
@@ -57,6 +58,7 @@ __all__ = [
57
58
  "gui_gonio_move_on_click",
58
59
  "gui_sleep",
59
60
  "gui_move_detector",
60
- "gui_set_parameters",
61
+ "gui_run_chip_collection",
61
62
  "gui_move_backlight",
63
+ "gui_set_zoom_level",
62
64
  ]
@@ -8,6 +8,10 @@ env:
8
8
  broadcast_status_events: false
9
9
  api:
10
10
  port: 25565
11
+ cors:
12
+ allow_credentials: True
13
+ origins:
14
+ - "*"
11
15
  stomp:
12
16
  enabled: true
13
17
  host: i24-control.diamond.ac.uk
@@ -23,8 +23,8 @@ from dodal.devices.i24.beamstop import Beamstop
23
23
  from dodal.devices.i24.dcm import DCM
24
24
  from dodal.devices.i24.dual_backlight import DualBacklight
25
25
  from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
26
- from dodal.devices.i24.i24_detector_motion import DetectorMotion
27
26
  from dodal.devices.i24.pilatus_metadata import PilatusMetadata
27
+ from dodal.devices.motors import YZStage
28
28
  from dodal.devices.zebra.zebra import Zebra
29
29
 
30
30
  from mx_bluesky.beamlines.i24.serial.dcid import (
@@ -70,7 +70,7 @@ def flush_print(text):
70
70
 
71
71
  @log_on_entry
72
72
  def initialise_extruder(
73
- detector_stage: DetectorMotion = inject("detector_motion"),
73
+ detector_stage: YZStage = inject("detector_motion"),
74
74
  ) -> MsgGenerator:
75
75
  SSX_LOGGER.info("Initialise Parameters for extruder data collection on I24.")
76
76
 
@@ -98,7 +98,7 @@ def initialise_extruder(
98
98
  def laser_check(
99
99
  mode: str,
100
100
  zebra: Zebra = inject("zebra"),
101
- detector_stage: DetectorMotion = inject("detector_motion"),
101
+ detector_stage: YZStage = inject("detector_motion"),
102
102
  ) -> MsgGenerator:
103
103
  """Plan to open the shutter and check the laser beam from the viewer by pressing \
104
104
  'Laser On' and 'Laser Off' buttons on the edm.
@@ -138,7 +138,7 @@ def laser_check(
138
138
 
139
139
  @log_on_entry
140
140
  def enter_hutch(
141
- detector_stage: DetectorMotion = inject("detector_motion"),
141
+ detector_stage: YZStage = inject("detector_motion"),
142
142
  ) -> MsgGenerator:
143
143
  """Move the detector stage before entering hutch."""
144
144
  yield from bps.mv(detector_stage.z, SAFE_DET_Z)
@@ -146,12 +146,12 @@ def enter_hutch(
146
146
 
147
147
 
148
148
  @log_on_entry
149
- def read_parameters(detector_stage: DetectorMotion, attenuator: ReadOnlyAttenuator):
149
+ def read_parameters(detector_stage: YZStage, attenuator: ReadOnlyAttenuator):
150
150
  """ Read the parameters from user input and create the parameter model for an \
151
151
  extruder collection.
152
152
 
153
153
  Args:
154
- detector_stage (DetectorMotion): The detector stage device.
154
+ detector_stage (YZStage): The detector stage device.
155
155
  attenuator (ReadOnlyAttenuator): A read-only attenuator device to get the \
156
156
  transmission value.
157
157
 
@@ -208,7 +208,7 @@ def main_extruder_plan(
208
208
  aperture: Aperture,
209
209
  backlight: DualBacklight,
210
210
  beamstop: Beamstop,
211
- detector_stage: DetectorMotion,
211
+ detector_stage: YZStage,
212
212
  shutter: HutchShutter,
213
213
  dcm: DCM,
214
214
  mirrors: FocusMirrorsMode,
@@ -500,7 +500,7 @@ def run_extruder_plan(
500
500
  aperture: Aperture = inject("aperture"),
501
501
  backlight: DualBacklight = inject("backlight"),
502
502
  beamstop: Beamstop = inject("beamstop"),
503
- detector_stage: DetectorMotion = inject("detector_motion"),
503
+ detector_stage: YZStage = inject("detector_motion"),
504
504
  shutter: HutchShutter = inject("shutter"),
505
505
  dcm: DCM = inject("dcm"),
506
506
  mirrors: FocusMirrorsMode = inject("focus_mirrors"),
@@ -18,9 +18,9 @@ from dodal.devices.i24.beamstop import Beamstop
18
18
  from dodal.devices.i24.dcm import DCM
19
19
  from dodal.devices.i24.dual_backlight import DualBacklight
20
20
  from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
21
- from dodal.devices.i24.i24_detector_motion import DetectorMotion
22
21
  from dodal.devices.i24.pilatus_metadata import PilatusMetadata
23
22
  from dodal.devices.i24.pmac import PMAC
23
+ from dodal.devices.motors import YZStage
24
24
  from dodal.devices.zebra.zebra import Zebra
25
25
 
26
26
  from mx_bluesky.beamlines.i24.serial.dcid import (
@@ -269,7 +269,7 @@ def start_i24(
269
269
  aperture: Aperture,
270
270
  backlight: DualBacklight,
271
271
  beamstop: Beamstop,
272
- detector_stage: DetectorMotion,
272
+ detector_stage: YZStage,
273
273
  shutter: HutchShutter,
274
274
  parameters: FixedTargetParameters,
275
275
  dcm: DCM,
@@ -504,7 +504,7 @@ def main_fixed_target_plan(
504
504
  aperture: Aperture,
505
505
  backlight: DualBacklight,
506
506
  beamstop: Beamstop,
507
- detector_stage: DetectorMotion,
507
+ detector_stage: YZStage,
508
508
  shutter: HutchShutter,
509
509
  dcm: DCM,
510
510
  mirrors: FocusMirrorsMode,
@@ -655,7 +655,7 @@ def run_fixed_target_plan(
655
655
  aperture: Aperture = inject("aperture"),
656
656
  backlight: DualBacklight = inject("backlight"),
657
657
  beamstop: Beamstop = inject("beamstop"),
658
- detector_stage: DetectorMotion = inject("detector_motion"),
658
+ detector_stage: YZStage = inject("detector_motion"),
659
659
  shutter: HutchShutter = inject("shutter"),
660
660
  dcm: DCM = inject("dcm"),
661
661
  mirrors: FocusMirrorsMode = inject("focus_mirrors"),
@@ -684,6 +684,38 @@ def run_fixed_target_plan(
684
684
  # DCID instance - do not create yet
685
685
  dcid = DCID(emit_errors=False, expt_params=parameters)
686
686
 
687
+ yield from run_plan_in_wrapper(
688
+ zebra,
689
+ pmac,
690
+ aperture,
691
+ backlight,
692
+ beamstop,
693
+ detector_stage,
694
+ shutter,
695
+ dcm,
696
+ mirrors,
697
+ beam_center_device,
698
+ parameters,
699
+ dcid,
700
+ pilatus_metadata,
701
+ )
702
+
703
+
704
+ def run_plan_in_wrapper(
705
+ zebra: Zebra,
706
+ pmac: PMAC,
707
+ aperture: Aperture,
708
+ backlight: DualBacklight,
709
+ beamstop: Beamstop,
710
+ detector_stage: YZStage,
711
+ shutter: HutchShutter,
712
+ dcm: DCM,
713
+ mirrors: FocusMirrorsMode,
714
+ beam_center_device: DetectorBeamCenter,
715
+ parameters: FixedTargetParameters,
716
+ dcid: DCID,
717
+ pilatus_metadata: PilatusMetadata,
718
+ ) -> MsgGenerator:
687
719
  yield from bpp.contingency_wrapper(
688
720
  main_fixed_target_plan(
689
721
  zebra,
@@ -16,8 +16,8 @@ from dodal.common import inject
16
16
  from dodal.devices.attenuator.attenuator import ReadOnlyAttenuator
17
17
  from dodal.devices.i24.beamstop import Beamstop, BeamstopPositions
18
18
  from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
19
- from dodal.devices.i24.i24_detector_motion import DetectorMotion
20
19
  from dodal.devices.i24.pmac import PMAC, EncReset, LaserSettings
20
+ from dodal.devices.motors import YZStage
21
21
 
22
22
  from mx_bluesky.beamlines.i24.serial.fixed_target.ft_utils import (
23
23
  ChipType,
@@ -121,14 +121,14 @@ def _is_checker_pattern() -> bool:
121
121
 
122
122
  @log_on_entry
123
123
  def read_parameters(
124
- detector_stage: DetectorMotion,
124
+ detector_stage: YZStage,
125
125
  attenuator: ReadOnlyAttenuator,
126
126
  ) -> MsgGenerator:
127
127
  """ Read the parameters from user input and create the parameter model for a fixed \
128
128
  target collection.
129
129
 
130
130
  Args:
131
- detector_stage (DetectorMotion): The detector stage device.
131
+ detector_stage (YZStage): The detector stage device.
132
132
  attenuator (ReadOnlyAttenuator): A read-only attenuator device to get the \
133
133
  transmission value.
134
134
 
@@ -256,6 +256,7 @@ def upload_chip_map_to_geobrick(pmac: PMAC, chip_map: list[int]) -> MsgGenerator
256
256
  """
257
257
  SSX_LOGGER.info("Uploading Parameters for Oxford Chip to the GeoBrick")
258
258
  SSX_LOGGER.info(f"Chipid {ChipType.Oxford}, width {OXFORD_CHIP_WIDTH}")
259
+ SSX_LOGGER.warning(f"MAP TO UPLOAD: {chip_map}")
259
260
  for block in range(1, 65):
260
261
  value = 1 if block in chip_map else 0
261
262
  pvar = PVAR_TEMPLATE % block
@@ -264,7 +265,7 @@ def upload_chip_map_to_geobrick(pmac: PMAC, chip_map: list[int]) -> MsgGenerator
264
265
  yield from bps.abs_set(pmac.pmac_string, pvar_str, wait=True)
265
266
  # Wait for PMAC to be done processing PVAR string
266
267
  yield from bps.sleep(0.02)
267
- SSX_LOGGER.debug("Upload parameters done.")
268
+ SSX_LOGGER.info("Upload parameters done.")
268
269
 
269
270
 
270
271
  @log_on_entry
@@ -565,7 +566,7 @@ def moveto_preset(
565
566
  pmac: PMAC = inject("pmac"),
566
567
  beamstop: Beamstop = inject("beamstop"),
567
568
  backlight: DualBacklight = inject("backlight"),
568
- det_stage: DetectorMotion = inject("detector_motion"),
569
+ det_stage: YZStage = inject("detector_motion"),
569
570
  ) -> MsgGenerator:
570
571
  # Non Chip Specific Move
571
572
  if place == "zero":
@@ -7,7 +7,7 @@ from dodal.devices.i24.beam_center import DetectorBeamCenter
7
7
  from dodal.devices.i24.beamstop import Beamstop, BeamstopPositions
8
8
  from dodal.devices.i24.dcm import DCM
9
9
  from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
10
- from dodal.devices.i24.i24_detector_motion import DetectorMotion
10
+ from dodal.devices.motors import YZStage
11
11
  from dodal.devices.util.lookup_tables import (
12
12
  linear_interpolation_lut,
13
13
  parse_lookup_table,
@@ -69,7 +69,7 @@ def setup_beamline_for_collection_plan(
69
69
 
70
70
 
71
71
  def move_detector_stage_to_position_plan(
72
- detector_stage: DetectorMotion,
72
+ detector_stage: YZStage,
73
73
  detector_distance: float,
74
74
  ):
75
75
  SSX_LOGGER.debug("Setup beamline: moving detector stage.")
@@ -8,7 +8,7 @@ from enum import IntEnum
8
8
  import bluesky.plan_stubs as bps
9
9
  from bluesky.utils import Msg, MsgGenerator
10
10
  from dodal.common import inject
11
- from dodal.devices.i24.i24_detector_motion import DetectorMotion
11
+ from dodal.devices.motors import YZStage
12
12
 
13
13
  from mx_bluesky.beamlines.i24.serial.log import SSX_LOGGER
14
14
  from mx_bluesky.beamlines.i24.serial.parameters import SSXType
@@ -38,9 +38,9 @@ class UnknownDetectorType(Exception):
38
38
  pass
39
39
 
40
40
 
41
- def get_detector_type(detector_stage: DetectorMotion) -> Generator[Msg, None, Detector]:
41
+ def get_detector_type(detector_stage: YZStage) -> Generator[Msg, None, Detector]:
42
42
  det_y = yield from bps.rd(detector_stage.y)
43
- # DetectorMotion should also be used for this.
43
+ # YZStage should also be used for this.
44
44
  # This should be part of https://github.com/DiamondLightSource/mx_bluesky/issues/51
45
45
  if float(det_y) < Eiger.det_y_threshold:
46
46
  SSX_LOGGER.info("Eiger detector in use.")
@@ -53,7 +53,7 @@ def get_detector_type(detector_stage: DetectorMotion) -> Generator[Msg, None, De
53
53
  raise UnknownDetectorType("Detector not found.")
54
54
 
55
55
 
56
- def _move_detector_stage(detector_stage: DetectorMotion, target: float) -> MsgGenerator:
56
+ def _move_detector_stage(detector_stage: YZStage, target: float) -> MsgGenerator:
57
57
  SSX_LOGGER.info(f"Moving detector stage to target position: {target}.")
58
58
  yield from bps.mv(detector_stage.y, target)
59
59
 
@@ -82,7 +82,7 @@ def _get_requested_detector(det_type_pv: str) -> str:
82
82
 
83
83
 
84
84
  def setup_detector_stage(
85
- expt_type: SSXType, detector_stage: DetectorMotion = inject("detector_motion")
85
+ expt_type: SSXType, detector_stage: YZStage = inject("detector_motion")
86
86
  ) -> MsgGenerator:
87
87
  # Grab the correct PV depending on experiment
88
88
  # Its value is set with MUX on edm screen