mx-bluesky 1.5.11__tar.gz → 1.5.12__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 (617) hide show
  1. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/dependabot.yml +3 -5
  2. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_container.yml +43 -25
  3. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/settings.json +7 -6
  4. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/Dockerfile.blueapi +6 -4
  5. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/Dockerfile.hyperion +6 -4
  6. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/PKG-INFO +6 -5
  7. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/conftest.py +3 -0
  8. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/callback_and_run_logic.rst +2 -4
  9. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/create-a-release.rst +3 -2
  10. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/deploy-a-release.rst +12 -1
  11. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/configuration.rst +3 -0
  12. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/pyproject.toml +7 -16
  13. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/_version.py +3 -3
  14. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/robot_load_plan.py +198 -0
  15. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/constants.py +17 -0
  16. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/robot_load_parameters.py +13 -0
  17. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/pin_tip_centring.py +31 -0
  18. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/robot_load.py +80 -0
  19. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i04/__init__.py +6 -2
  20. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +27 -12
  21. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +87 -13
  22. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/external_interaction/config_server.py +15 -0
  23. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +115 -0
  24. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/parameters/constants.py +21 -0
  25. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +24 -1
  26. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i04/thawing_plan.py +147 -152
  27. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/dcid.py +4 -5
  28. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py +5 -2
  29. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +11 -11
  30. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +3 -3
  31. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +142 -142
  32. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +135 -135
  33. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +8 -8
  34. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +13 -13
  35. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py +7 -4
  36. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py +35 -32
  37. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +5 -5
  38. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +180 -0
  39. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +8 -2
  40. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +1 -1
  41. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +1 -1
  42. mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py +64 -0
  43. mx_bluesky-1.5.11/src/mx_bluesky/hyperion/device_setup_plans/smargon.py → mx_bluesky-1.5.12/src/mx_bluesky/common/device_setup_plans/gonio.py +9 -6
  44. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +8 -1
  45. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +1 -1
  46. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +8 -0
  47. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/setup_zebra_and_shutter.py +0 -5
  48. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +8 -1
  49. mx_bluesky-1.5.12/src/mx_bluesky/common/experiment_plans/beamstop_check.py +229 -0
  50. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +2 -0
  51. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +5 -2
  52. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -1
  53. {mx_bluesky-1.5.11/src/mx_bluesky/hyperion → mx_bluesky-1.5.12/src/mx_bluesky/common}/experiment_plans/pin_tip_centring_plan.py +20 -21
  54. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +5 -0
  55. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +10 -12
  56. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +3 -5
  57. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +5 -5
  58. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/config_server.py +2 -2
  59. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +11 -4
  60. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +159 -2
  61. mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +214 -0
  62. mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +13 -0
  63. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/parameters/components.py +1 -0
  64. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/parameters/constants.py +3 -2
  65. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/parameters/device_composites.py +4 -2
  66. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/utils/exceptions.py +15 -0
  67. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/utils/log.py +9 -0
  68. mx_bluesky-1.5.12/src/mx_bluesky/common/utils/utils.py +90 -0
  69. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/__main__.py +3 -13
  70. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/baton_handler.py +23 -6
  71. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +5 -6
  72. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +3 -10
  73. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +4 -2
  74. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +8 -2
  75. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +2 -2
  76. mx_bluesky-1.5.12/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py +160 -0
  77. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +1 -1
  78. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +2 -2
  79. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +1 -0
  80. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +1 -4
  81. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/config_server.py +5 -5
  82. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/constants.py +10 -3
  83. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/device_composites.py +2 -2
  84. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/robot_load.py +1 -9
  85. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/PKG-INFO +6 -5
  86. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/SOURCES.txt +28 -6
  87. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/requires.txt +5 -4
  88. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/conftest.py +121 -199
  89. mx_bluesky-1.5.12/tests/expeye_helpers.py +151 -0
  90. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +1 -1
  91. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/conftest.py +22 -11
  92. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +1 -2
  93. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/conftest.py +11 -12
  94. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +16 -5
  95. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +3 -5
  96. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +11 -31
  97. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +2 -2
  98. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/test_main_udc.py +1 -1
  99. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_domain_properties +5 -0
  100. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_domain_properties_with_no_gpu +4 -0
  101. mx_bluesky-1.5.12/tests/unit_tests/beamlines/aithre_lasershaping/test_aithre_pin_tip_centre.py +41 -0
  102. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +2 -3
  103. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +1 -2
  104. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +2 -10
  105. mx_bluesky-1.5.12/tests/unit_tests/beamlines/aithre_lasershaping/test_robot_load.py +282 -0
  106. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +107 -37
  107. mx_bluesky-1.5.12/tests/unit_tests/beamlines/i04/conftest.py +12 -0
  108. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +137 -18
  109. mx_bluesky-1.5.12/tests/unit_tests/beamlines/i04/test_oav_imaging.py +253 -0
  110. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +26 -1
  111. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i04/test_thawing.py +156 -65
  112. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i23/test_serial.py +3 -8
  113. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_external_acquisition.py +1 -1
  114. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_internal_acquisition.py +1 -1
  115. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_plan_utils.py +0 -2
  116. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/conftest.py +7 -23
  117. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +8 -3
  118. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +23 -3
  119. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +16 -4
  120. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +1 -1
  121. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +14 -9
  122. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +1 -1
  123. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +1 -1
  124. mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/web_gui/test_oav_plans.py +87 -0
  125. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +10 -3
  126. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +24 -2
  127. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +1 -2
  128. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +2 -3
  129. mx_bluesky-1.5.12/tests/unit_tests/common/experiment_plans/test_beamstop_check.py +439 -0
  130. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +27 -6
  131. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +1 -1
  132. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +10 -2
  133. {mx_bluesky-1.5.11/tests/unit_tests/hyperion → mx_bluesky-1.5.12/tests/unit_tests/common}/experiment_plans/test_pin_tip_centring.py +101 -78
  134. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +1 -2
  135. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +4 -2
  136. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +1 -1
  137. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +240 -325
  138. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +137 -171
  139. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/test_config_server.py +12 -9
  140. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +177 -204
  141. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/parameters/test_constants.py +6 -0
  142. mx_bluesky-1.5.12/tests/unit_tests/common/utils/test_utils.py +49 -0
  143. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/conftest.py +75 -27
  144. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +1 -1
  145. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +1 -1
  146. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
  147. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/conftest.py +6 -2
  148. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +1 -5
  149. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +5 -2
  150. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +2 -5
  151. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +5 -6
  152. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +4 -1
  153. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +62 -32
  154. mx_bluesky-1.5.12/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py +346 -0
  155. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +14 -1
  156. mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/__init__.py +0 -0
  157. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +1 -1
  158. mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  159. mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +283 -0
  160. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/callbacks/test_alert_on_container_change.py +1 -2
  161. mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  162. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +1 -5
  163. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +1 -0
  164. mx_bluesky-1.5.12/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  165. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_baton_handler.py +35 -7
  166. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_main_system.py +1 -1
  167. mx_bluesky-1.5.12/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  168. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/deploy/deploy_mx_bluesky.py +1 -1
  169. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +2 -2
  170. mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -373
  171. mx_bluesky-1.5.11/src/mx_bluesky/common/experiment_plans/inner_plans/udc_default_state.py +0 -86
  172. mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -29
  173. mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -304
  174. mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -27
  175. mx_bluesky-1.5.11/src/mx_bluesky/common/utils/utils.py +0 -42
  176. mx_bluesky-1.5.11/tests/unit_tests/common/experiment_plans/inner_plans/test_udc_default_state.py +0 -206
  177. mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -307
  178. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.copier-answers.yml +0 -0
  179. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.coveragerc +0 -0
  180. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.devcontainer/Dockerfile +0 -0
  181. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.devcontainer/devcontainer.json +0 -0
  182. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.dockerignore +0 -0
  183. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/CODEOWNERS +0 -0
  184. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/CONTRIBUTING.md +0 -0
  185. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  186. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  187. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/actions/install_requirements/action.yml +0 -0
  188. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/actions/verify-nexus/Dockerfile +0 -0
  189. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/actions/verify-nexus/action.yml +0 -0
  190. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  191. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/pages/index.html +0 -0
  192. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/pages/make_switcher.py +0 -0
  193. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/release.yml +0 -0
  194. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_debug_container.yml +0 -0
  195. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_dist.yml +0 -0
  196. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_docs.yml +0 -0
  197. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_helm.yml +0 -0
  198. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_label.yml +0 -0
  199. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_pypi.yml +0 -0
  200. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_release.yml +0 -0
  201. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_test.yml +0 -0
  202. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/_tox.yml +0 -0
  203. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/ci.yml +0 -0
  204. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.github/workflows/periodic.yml +0 -0
  205. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.gitignore +0 -0
  206. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.pre-commit-config.yaml +0 -0
  207. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/extensions.json +0 -0
  208. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/launch.json +0 -0
  209. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/mx-bluesky-dev-container.code-workspace +0 -0
  210. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/mx-bluesky.code-workspace +0 -0
  211. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  212. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/.vscode/tasks.json +0 -0
  213. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/Dockerfile +0 -0
  214. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/LICENSE +0 -0
  215. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/README.rst +0 -0
  216. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/catalog-info.yaml +0 -0
  217. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/codecov.yml +0 -0
  218. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/_api.rst +0 -0
  219. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/_templates/custom-module-template.rst +0 -0
  220. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/conf.py +0 -0
  221. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  222. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
  223. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/code-map/index.rst +0 -0
  224. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
  225. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  226. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  227. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  228. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/explanations/decisions.rst +0 -0
  229. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/contribute.rst +0 -0
  230. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  231. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  232. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  233. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  234. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  235. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/how-to/get-started.md +0 -0
  236. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/index.rst +0 -0
  237. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/reference/standards.rst +0 -0
  238. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  239. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  240. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  241. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/index.rst +0 -0
  242. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/baton.rst +0 -0
  243. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  244. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  245. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/gda-baton.puml +0 -0
  246. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  247. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  248. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/reference/readme.md +0 -0
  249. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/hyperion/system-tests.rst +0 -0
  250. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/index.rst +0 -0
  251. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/murko-integration/explanations/DrawioImages.rst +0 -0
  252. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  253. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
  254. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/murko-integration/index.rst +0 -0
  255. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  256. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  257. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  258. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  259. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  260. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  261. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  262. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  263. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  264. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/417717258-afbd813c-8941-445c-9fdf-255c167453cf.png +0 -0
  265. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/dls-favicon.ico +0 -0
  266. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/dls-logo.svg +0 -0
  267. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/motor coordinate systems.odg +0 -0
  268. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/motor-coords-omega-0.svg +0 -0
  269. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/images/motor-coords-omega-alpha.svg +0 -0
  270. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/index.rst +0 -0
  271. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/alerts.rst +0 -0
  272. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/index.rst +0 -0
  273. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/pvs.rst +0 -0
  274. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/running.rst +0 -0
  275. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/docs/user/hyperion/troubleshooting.rst +0 -0
  276. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/Chart.yaml +0 -0
  277. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/templates/deployment.yaml +0 -0
  278. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/templates/ingress.yaml +0 -0
  279. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/templates/service.yaml +0 -0
  280. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/templates/zocalo-config.yaml +0 -0
  281. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/hyperion/values.yaml +0 -0
  282. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
  283. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -0
  284. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/mx-bluesky-blueapi/values.yaml +0 -0
  285. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/redis-to-murko/Chart.yaml +0 -0
  286. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/redis-to-murko/templates/deployment.yaml +0 -0
  287. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/helm/redis-to-murko/values.yaml +0 -0
  288. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/pull_request_template.md +0 -0
  289. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/run_hyperion.sh +0 -0
  290. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/run_hyperion_in_podman.sh +0 -0
  291. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/setup.cfg +0 -0
  292. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/__init__.py +0 -0
  293. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/__main__.py +0 -0
  294. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/__init__.py +0 -0
  295. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  296. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  297. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  298. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i02_1/parameters → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans}/__init__.py +0 -0
  299. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  300. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i04/callbacks → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/aithre_lasershaping/parameters}/__init__.py +0 -0
  301. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i04/experiment_plans → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i02_1/parameters}/__init__.py +0 -0
  302. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i02_1/parameters/gridscan.py +0 -0
  303. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24 → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/callbacks}/__init__.py +0 -0
  304. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24/jungfrau_commissioning → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04}/experiment_plans/__init__.py +0 -0
  305. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24/serial/extruder → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/external_interaction}/__init__.py +0 -0
  306. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/oav_centering_plans}/__init__.py +0 -0
  307. {mx_bluesky-1.5.11/src/mx_bluesky/beamlines/i24/serial/web_gui_plans → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i04/parameters}/__init__.py +0 -0
  308. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  309. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  310. {mx_bluesky-1.5.11/src/mx_bluesky/common → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24}/__init__.py +0 -0
  311. {mx_bluesky-1.5.11/src/mx_bluesky/common/device_setup_plans → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans}/__init__.py +0 -0
  312. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py +0 -0
  313. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
  314. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py +0 -0
  315. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_internal_acquisition.py +0 -0
  316. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py +0 -0
  317. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  318. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  319. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  320. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  321. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  322. {mx_bluesky-1.5.11/src/mx_bluesky/common/experiment_plans/inner_plans → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/serial/extruder}/__init__.py +0 -0
  323. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  324. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  325. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  326. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  327. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  328. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  329. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  330. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  331. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_startup_py3v1.py +0 -0
  332. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  333. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  334. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  335. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  336. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  337. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  338. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  339. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  340. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  341. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  342. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  343. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  344. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  345. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  346. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  347. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  348. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  349. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  350. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  351. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/callbacks/common → mx_bluesky-1.5.12/src/mx_bluesky/beamlines/i24/serial/web_gui_plans}/__init__.py +0 -0
  352. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  353. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.5.12/src/mx_bluesky/common}/__init__.py +0 -0
  354. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.5.12/src/mx_bluesky/common/device_setup_plans}/__init__.py +0 -0
  355. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  356. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  357. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
  358. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
  359. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  360. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +0 -0
  361. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.5.12/src/mx_bluesky/common/experiment_plans/inner_plans}/__init__.py +0 -0
  362. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +0 -0
  363. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
  364. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +0 -0
  365. {mx_bluesky-1.5.11/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  366. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
  367. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
  368. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
  369. {mx_bluesky-1.5.11/src/mx_bluesky/common/parameters → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/callbacks/common}/__init__.py +0 -0
  370. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  371. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  372. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  373. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  374. {mx_bluesky-1.5.11/src/mx_bluesky/common/preprocessors → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  375. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  376. {mx_bluesky-1.5.11/src/mx_bluesky/common/protocols → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  377. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  378. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  379. {mx_bluesky-1.5.11/src/mx_bluesky/common/utils → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  380. {mx_bluesky-1.5.11/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.5.12/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  381. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  382. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  383. {mx_bluesky-1.5.11/src/mx_bluesky/hyperion/external_interaction/alerting → mx_bluesky-1.5.12/src/mx_bluesky/common/parameters}/__init__.py +0 -0
  384. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  385. {mx_bluesky-1.5.11/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions → mx_bluesky-1.5.12/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
  386. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  387. {mx_bluesky-1.5.11/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.12/src/mx_bluesky/common/protocols}/__init__.py +0 -0
  388. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  389. {mx_bluesky-1.5.11/src/mx_bluesky/phase1_zebra/device_setup_plans → mx_bluesky-1.5.12/src/mx_bluesky/common/utils}/__init__.py +0 -0
  390. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/utils/context.py +0 -0
  391. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/utils/tracing.py +0 -0
  392. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/common/xrc_result.py +0 -0
  393. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/definitions.py +0 -0
  394. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/__init__.py +0 -0
  395. {mx_bluesky-1.5.11/tests → mx_bluesky-1.5.12/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  396. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  397. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  398. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  399. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  400. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  401. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
  402. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +0 -0
  403. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  404. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
  405. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  406. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  407. {mx_bluesky-1.5.11/tests/system_tests → mx_bluesky-1.5.12/src/mx_bluesky/hyperion/external_interaction/alerting}/__init__.py +0 -0
  408. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
  409. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  410. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +0 -0
  411. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +0 -0
  412. {mx_bluesky-1.5.11/tests/system_tests/common/device_setup_plans → mx_bluesky-1.5.12/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions}/__init__.py +0 -0
  413. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
  414. {mx_bluesky-1.5.11/tests/system_tests/hyperion → mx_bluesky-1.5.12/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  415. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  416. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  417. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  418. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  419. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  420. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  421. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -0
  422. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/plan_runner.py +0 -0
  423. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/plan_runner_api.py +0 -0
  424. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  425. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/runner.py +0 -0
  426. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  427. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  428. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  429. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
  430. {mx_bluesky-1.5.11/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.5.12/src/mx_bluesky/phase1_zebra/device_setup_plans}/__init__.py +0 -0
  431. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  432. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  433. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  434. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/start_jupyter.sh +0 -0
  435. {mx_bluesky-1.5.11/tests/system_tests/hyperion/external_interaction/alerting → mx_bluesky-1.5.12/tests}/__init__.py +0 -0
  436. {mx_bluesky-1.5.11/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.12/tests/system_tests}/__init__.py +0 -0
  437. {mx_bluesky-1.5.11/tests/unit_tests → mx_bluesky-1.5.12/tests/system_tests/common/device_setup_plans}/__init__.py +0 -0
  438. {mx_bluesky-1.5.11/tests/unit_tests/beamlines → mx_bluesky-1.5.12/tests/system_tests/hyperion}/__init__.py +0 -0
  439. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/aithre_lasershaping → mx_bluesky-1.5.12/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  440. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i04 → mx_bluesky-1.5.12/tests/system_tests/hyperion/external_interaction/alerting}/__init__.py +0 -0
  441. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
  442. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i04 → mx_bluesky-1.5.12/tests/system_tests/hyperion/external_interaction}/callbacks/__init__.py +0 -0
  443. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  444. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  445. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
  446. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  447. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/agamemnon/example_native.json +0 -0
  448. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/agamemnon/example_wait.json +0 -0
  449. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  450. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/README.md +0 -0
  451. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  452. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  453. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  454. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  455. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  456. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  457. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  458. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  459. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  460. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  461. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  462. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  463. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
  464. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
  465. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  466. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  467. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  468. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  469. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  470. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  471. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  472. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  473. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  474. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  475. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/scratch/README +0 -0
  476. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_OAVCentring.json +0 -0
  477. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  478. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  479. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_beamline_parameters.txt +0 -0
  480. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  481. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_config.cfg +0 -0
  482. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  483. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  484. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  485. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  486. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  487. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  488. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  489. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_det_dist_converter.txt +0 -0
  490. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_display.configuration +0 -0
  491. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_domain_properties_with_panda +0 -0
  492. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  493. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  494. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  495. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  496. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  497. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  498. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  499. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  500. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  501. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  502. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  503. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_lookup_table.txt +0 -0
  504. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/test_mirror_focus.json +0 -0
  505. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  506. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i23 → mx_bluesky-1.5.12/tests/unit_tests}/__init__.py +0 -0
  507. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24 → mx_bluesky-1.5.12/tests/unit_tests/beamlines}/__init__.py +0 -0
  508. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/jungfrau_commissioning → mx_bluesky-1.5.12/tests/unit_tests/beamlines/aithre_lasershaping}/__init__.py +0 -0
  509. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i04}/__init__.py +0 -0
  510. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i04/callbacks}/__init__.py +0 -0
  511. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i23}/__init__.py +0 -0
  512. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  513. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/jungfrau_commissioning}/__init__.py +0 -0
  514. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial/parameters → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans}/__init__.py +0 -0
  515. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans/test_do_darks.py +0 -0
  516. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs}/__init__.py +0 -0
  517. {mx_bluesky-1.5.11/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  518. {mx_bluesky-1.5.11/tests/unit_tests/common → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  519. {mx_bluesky-1.5.11/tests/unit_tests/common/device_setup_plans → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  520. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  521. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  522. {mx_bluesky-1.5.11/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/parameters}/__init__.py +0 -0
  523. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  524. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  525. {mx_bluesky-1.5.11/tests/unit_tests/common/experiment_plans/inner_plans → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  526. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  527. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  528. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  529. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  530. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  531. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction → mx_bluesky-1.5.12/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  532. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -0
  533. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/alerting → mx_bluesky-1.5.12/tests/unit_tests/common}/__init__.py +0 -0
  534. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/alerting/alerting → mx_bluesky-1.5.12/tests/unit_tests/common/device_setup_plans}/__init__.py +0 -0
  535. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  536. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/device_setup_plans/test_setup_zebra_and_shutter.py +0 -0
  537. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.5.12/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
  538. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.5.12/tests/unit_tests/common/experiment_plans/inner_plans}/__init__.py +0 -0
  539. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/inner_plans/test_write_sample_status.py +0 -0
  540. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
  541. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
  542. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  543. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/alerting}/__init__.py +0 -0
  544. {mx_bluesky-1.5.11/tests/unit_tests/common/external_interaction/nexus → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/alerting/alerting}/__init__.py +0 -0
  545. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
  546. {mx_bluesky-1.5.11/tests/unit_tests/common/parameters → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  547. {mx_bluesky-1.5.11/tests/unit_tests/common/preprocessors → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  548. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  549. {mx_bluesky-1.5.11/tests/unit_tests/common/utils → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  550. {mx_bluesky-1.5.11/tests/unit_tests/hyperion → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  551. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  552. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  553. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  554. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  555. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.5.12/tests/unit_tests/common/external_interaction/nexus}/__init__.py +0 -0
  556. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  557. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  558. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  559. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  560. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  561. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  562. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.5.12/tests/unit_tests/common/parameters}/__init__.py +0 -0
  563. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/parameters/test_components.py +0 -0
  564. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/experiment_plans/common → mx_bluesky-1.5.12/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
  565. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  566. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.5.12/tests/unit_tests/common/utils}/__init__.py +0 -0
  567. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/common/utils/test_log.py +0 -0
  568. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.12/tests/unit_tests/hyperion}/__init__.py +0 -0
  569. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/conftest.py +0 -0
  570. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load → mx_bluesky-1.5.12/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  571. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  572. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  573. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  574. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.12/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  575. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.5.12/tests/unit_tests/hyperion/experiment_plans/common}/__init__.py +0 -0
  576. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  577. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  578. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  579. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +0 -0
  580. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  581. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/parameters → mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  582. {mx_bluesky-1.5.11/tests/unit_tests/hyperion/utils → mx_bluesky-1.5.12/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  583. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  584. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
  585. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  586. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  587. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  588. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  589. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  590. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  591. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
  592. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  593. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_plan_runner_api.py +0 -0
  594. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_runner.py +0 -0
  595. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/test_utils.py +0 -0
  596. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  597. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  598. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/t01.py +0 -0
  599. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/tests/unit_tests/test_cli.py +0 -0
  600. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/build_docker_image.sh +0 -0
  601. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/build_imginfo.sh +0 -0
  602. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/deploy/create_venv.py +0 -0
  603. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  604. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/deploy/test_deploy.py +0 -0
  605. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/dev_jaeger_container.sh +0 -0
  606. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/dls_dev_env.sh +0 -0
  607. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/docker/entrypoint.sh +0 -0
  608. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/docker/healthcheck.sh +0 -0
  609. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/docker/i03-compose.yml +0 -0
  610. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/generate_plantuml.py +0 -0
  611. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/graylog/Dockerfile +0 -0
  612. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/graylog/tcp_input.json +0 -0
  613. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/procserv_ioc_start.sh +0 -0
  614. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/request_baton.sh +0 -0
  615. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/run_imginfo.sh +0 -0
  616. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/setup_graylog.sh +0 -0
  617. {mx_bluesky-1.5.11 → mx_bluesky-1.5.12}/utility_scripts/strip_metafile.py +0 -0
@@ -1,8 +1,3 @@
1
- # To get started with Dependabot version updates, you'll need to specify which
2
- # package ecosystems to update and where the package manifests are located.
3
- # Please see the documentation for all configuration options:
4
- # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
-
6
1
  version: 2
7
2
  updates:
8
3
  - package-ecosystem: "github-actions"
@@ -26,3 +21,6 @@ updates:
26
21
  - "*"
27
22
  commit-message:
28
23
  prefix: "chore"
24
+ ignore:
25
+ - dependency-name: "pyright"
26
+ versions: [ ">=1.1.407" ] # Until https://github.com/microsoft/pyright/issues/11060 is fixed
@@ -28,6 +28,10 @@ jobs:
28
28
  username: ${{ github.actor }}
29
29
  password: ${{ secrets.GITHUB_TOKEN }}
30
30
 
31
+ ################################
32
+ # Hyperion Container Image Build
33
+ ################################
34
+
31
35
  - name: Build and export to Docker local cache
32
36
  uses: docker/build-push-action@v6
33
37
  env:
@@ -37,15 +41,6 @@ jobs:
37
41
  file: Dockerfile.hyperion
38
42
  load: true
39
43
 
40
- - name: Build and export Dockerfile.blueapi to local cache
41
- uses: docker/build-push-action@v6
42
- env:
43
- DOCKER_BUILD_RECORD_UPLOAD: false
44
- with:
45
- context: .
46
- file: Dockerfile.blueapi
47
- load: true
48
-
49
44
  - name: Create tags for publishing Hyperion image
50
45
  id: meta-hyperion
51
46
  uses: docker/metadata-action@v5
@@ -62,22 +57,6 @@ jobs:
62
57
  type=ref,event=tag
63
58
  type=raw,value=latest
64
59
 
65
- - name: Create tags for publishing BlueAPI image
66
- id: meta-blueapi
67
- uses: docker/metadata-action@v5
68
- with:
69
- images: |
70
- ghcr.io/${{ github.repository }}-blueapi
71
- labels: |
72
- org.opencontainers.image.title=mx-bluesky-blueapi
73
- org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
74
- annotations: |
75
- org.opencontainers.image.title=mx-bluesky-blueapi
76
- org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
77
- tags: |
78
- type=ref,event=tag
79
- type=raw,value=latest
80
-
81
60
  - name: Push cached Hyperion image to container registry
82
61
  if: inputs.publish && github.ref_type == 'tag'
83
62
  uses: docker/build-push-action@v6
@@ -94,6 +73,45 @@ jobs:
94
73
  # Set the annotations to make the description appear in the GH repo page
95
74
  annotations: ${{ steps.meta-hyperion.outputs.annotations }}
96
75
 
76
+ - name: Check disk space before
77
+ run: df -h && docker buildx du
78
+
79
+ - name: Prune local image cache before next build
80
+ run: docker buildx prune -f
81
+
82
+ - name: Check disk space after
83
+ run: df -h && docker buildx du
84
+
85
+ ###############################
86
+ # BlueAPI Container Image Build
87
+ ###############################
88
+
89
+ - name: Build and export Dockerfile.blueapi to local cache
90
+ uses: docker/build-push-action@v6
91
+ env:
92
+ DOCKER_BUILD_RECORD_UPLOAD: false
93
+ with:
94
+ context: .
95
+ file: Dockerfile.blueapi
96
+ load: true
97
+
98
+
99
+ - name: Create tags for publishing BlueAPI image
100
+ id: meta-blueapi
101
+ uses: docker/metadata-action@v5
102
+ with:
103
+ images: |
104
+ ghcr.io/${{ github.repository }}-blueapi
105
+ labels: |
106
+ org.opencontainers.image.title=mx-bluesky-blueapi
107
+ org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
108
+ annotations: |
109
+ org.opencontainers.image.title=mx-bluesky-blueapi
110
+ org.opencontainers.image.description=BlueAPI plans, stubs and utilities for MX beamlines
111
+ tags: |
112
+ type=ref,event=tag
113
+ type=raw,value=latest
114
+
97
115
  - name: Push cached BlueAPI image to container registry
98
116
  if: github.ref_type == 'tag'
99
117
  uses: docker/build-push-action@v6
@@ -26,8 +26,12 @@
26
26
  "python.analysis.typeCheckingMode": "basic",
27
27
  "cSpell.words": [
28
28
  "aperturescatterguard",
29
+ "beamline",
30
+ "beamlines",
31
+ "beamsize",
29
32
  "beamstop",
30
33
  "blueapi",
34
+ "caget",
31
35
  "cryostream",
32
36
  "deadtime",
33
37
  "dodal",
@@ -40,19 +44,16 @@
40
44
  "mrad",
41
45
  "murko",
42
46
  "ophyd",
47
+ "pmac",
43
48
  "readback",
44
49
  "scanspec",
45
50
  "scatterguard",
46
51
  "smargon",
52
+ "thawer",
47
53
  "topup",
48
54
  "Transfocator",
49
55
  "undulator",
50
56
  "xbpm",
51
- "xspress",
52
- "pmac",
53
- "beamlines",
54
- "caget",
55
- "thawer",
56
- "beamline",
57
+ "xspress"
57
58
  ],
58
59
  }
@@ -5,11 +5,13 @@ FROM ghcr.io/diamondlightsource/blueapi:1.0.0-rc.2
5
5
 
6
6
  ARG DEBIAN_FRONTEND=noninteractive
7
7
 
8
- RUN apt update -y && apt upgrade -y
9
- # Needed for python cv2 dependency
10
- RUN apt install -y libgl1 libglib2.0-0
8
+ # Need:
9
+ # libgl, libglib2.0 for python cv2 dependency
10
+ RUN apt update -y && \
11
+ apt upgrade -y && \
12
+ apt install -y libgl1 libglib2.0-0
11
13
 
12
- RUN /venv/bin/pip install mx-bluesky
14
+ RUN /venv/bin/pip install --no-cache-dir --no-compile mx-bluesky
13
15
 
14
16
  # Needed so that Blueapi's setup-scratch stage has permission to modify dependencies installed
15
17
  # in the above pip installation
@@ -2,11 +2,13 @@ FROM python:3.11 AS build
2
2
 
3
3
  ARG DEBIAN_FRONTEND=noninteractive
4
4
 
5
- RUN apt update -y && apt upgrade -y
6
- # Needed for python cv2 dependency
7
- RUN apt install -y libgl1 libglib2.0-0
5
+ # Need:
6
+ # libgl, libglib2.0 for python cv2 dependency
7
+ RUN apt update -y && \
8
+ apt upgrade -y && \
9
+ apt install -y libgl1 libglib2.0-0
8
10
 
9
- RUN pip install setuptools_scm
11
+ RUN pip install --no-cache-dir --no-compile setuptools_scm
10
12
 
11
13
  # Copy the pyproject.toml and install dependencies for better caching when developing
12
14
  # & rerunning deployment scripts
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.11
3
+ Version: 1.5.12
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
@@ -218,11 +218,10 @@ Requires-Dist: annotated_types
218
218
  Requires-Dist: caproto
219
219
  Requires-Dist: fastapi[all]
220
220
  Requires-Dist: flask-restful
221
- Requires-Dist: ispyb
222
221
  Requires-Dist: jupyterlab
223
222
  Requires-Dist: matplotlib
224
223
  Requires-Dist: nexgen>=0.11.0
225
- Requires-Dist: numpy==2.2.6
224
+ Requires-Dist: numpy>=2.3.5
226
225
  Requires-Dist: opencv-python
227
226
  Requires-Dist: opentelemetry-distro
228
227
  Requires-Dist: opentelemetry-exporter-otlp
@@ -240,15 +239,16 @@ Requires-Dist: cachetools
240
239
  Requires-Dist: daq-config-server>=v1.0.0-rc.2
241
240
  Requires-Dist: blueapi>=1.6.3
242
241
  Requires-Dist: ophyd>=1.10.5
243
- Requires-Dist: ophyd-async>=0.13.5
242
+ Requires-Dist: ophyd-async>=0.14.0
244
243
  Requires-Dist: bluesky>=1.14.6
245
- Requires-Dist: dls-dodal==1.65.0
244
+ Requires-Dist: dls-dodal==1.66.0
246
245
  Provides-Extra: dev
247
246
  Requires-Dist: black; extra == "dev"
248
247
  Requires-Dist: build; extra == "dev"
249
248
  Requires-Dist: diff-cover; extra == "dev"
250
249
  Requires-Dist: GitPython; extra == "dev"
251
250
  Requires-Dist: import-linter; extra == "dev"
251
+ Requires-Dist: ispyb; extra == "dev"
252
252
  Requires-Dist: ipython; extra == "dev"
253
253
  Requires-Dist: mypy; extra == "dev"
254
254
  Requires-Dist: myst-parser; extra == "dev"
@@ -262,6 +262,7 @@ Requires-Dist: pytest-cov; extra == "dev"
262
262
  Requires-Dist: pytest-random-order; extra == "dev"
263
263
  Requires-Dist: pytest-timeout; extra == "dev"
264
264
  Requires-Dist: pytest; extra == "dev"
265
+ Requires-Dist: responses; extra == "dev"
265
266
  Requires-Dist: ruff; extra == "dev"
266
267
  Requires-Dist: sphinx-autobuild; extra == "dev"
267
268
  Requires-Dist: sphinx-copybutton; extra == "dev"
@@ -7,6 +7,9 @@ import pytest
7
7
  environ["HYPERION_TEST_MODE"] = "true"
8
8
 
9
9
 
10
+ pytest_plugins = ["dodal.testing.fixtures.run_engine"]
11
+
12
+
10
13
  def pytest_addoption(parser):
11
14
  parser.addoption(
12
15
  "--logging",
@@ -16,11 +16,9 @@ In general, the ordering flow of when callbacks are triggered is controlled by e
16
16
  Rotation Scans
17
17
  ---------------------
18
18
 
19
- There are currently two ways of doing rotation scans. A single scan creates one hdf file, one ispyb deposition and then triggers zocalo once. Multi rotation scans create one hdf file for all rotations but then N nexus files, N ispyb depositions and triggers zocalo N times.
19
+ Rotation scans are generalised so that multiple scans can be done at once. The plan will create one hdf file for all rotations but then N nexus files, N ispyb depositions and triggers zocalo N times.
20
20
 
21
- Single scans will be removed in https://github.com/DiamondLightSource/mx-bluesky/issues/847
22
-
23
- For multi rotations this is does by starting 1+2*N different runs:
21
+ It does this by starting 1+2*N different runs:
24
22
 
25
23
  1. ``CONST.PLAN.ROTATION_MULTI``: This is emitted once for the whole multiple rotation. It is used by the nexus callback to get the full number of images and meta_data_run_number so that it knows which hdf file to use. When this is finished zocalo end is triggered.
26
24
  2. ``CONST.PLAN.ROTATION_OUTER``: Emitted N times, inside a ``CONST.PLAN.ROTATION_MULTI`` run. This is used to create the initial ispyb deposition and create the nexus writer (but not actually write the file)
@@ -9,8 +9,8 @@ Make sure that dodal has an up-to-date release. If not, create one (see `dodal r
9
9
  Release
10
10
  =======
11
11
 
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, then push to GitHub.
12
+ 1. Create a new branch from main named pre followed by the release version e.g. pre_0.1.0. The release versions should look like ``{major}.{minor}.{patch}``.
13
+ 2. On this branch pin the latest release of dodal, and nexgen if necessary, then push to GitHub. (e.g "dls-dodal == 1.63.0")
14
14
  3. Make sure the CI is passing for this new pre-release branch.
15
15
  4. Go `here <https://github.com/DiamondLightSource/mx-bluesky/releases/new>`_.
16
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.
@@ -19,6 +19,7 @@ Release
19
19
  8. Publish the release
20
20
 
21
21
  NOTE FOR USING THE MX-BLUESKY-BLUEAPI IMAGE: If using this image with BlueAPI's helmchart for deployment, the version of dodal which is installed will be the version which is pinned in the BlueAPI, rather than what's in mx-bluesky's pyproject.toml. Before releasing, you should pin BlueAPI to a version which uses a dodal version which is compatible with itself AND mx-bluesky. The deployment will fail if BlueAPI has no version which works with the desired dodal version
22
+ Follow these :ref:`instructions <deploying-to-i04-blueapi>` on how to deploy to I04 BlueAPI.
22
23
 
23
24
  ------------------------
24
25
  Deciding release numbers
@@ -3,7 +3,7 @@ Deploy a New Release
3
3
 
4
4
  **Remember to discuss any new deployments with the appropriate beamline scientist.**
5
5
 
6
- The ``utility_scripts/deploy/deploy_mx_bluesky.py`` script will deploy the latest mx-bluesky version to a specified beamline. Deployments live in ``/dls_sw/ixx/software/bluesky/mx-bluesky_vX.X.X``. To do a new deployment you should run the deploy script from your mx-bluesky dev environment with e.g.
6
+ The ``utility_scripts/deploy/deploy_mx_bluesky.py`` script will deploy the latest mx-bluesky version to a specified beamline. Deployments live in ``/dls_sw/ixx/software/bluesky/mx-bluesky_X.X.X``. To do a new deployment you should run the deploy script from your mx-bluesky dev environment with e.g.
7
7
  If you have just created a new release, you may need to run git fetch --tags to get the newest release.
8
8
 
9
9
  .. code:: console
@@ -56,3 +56,14 @@ For building and deploying a Docker image please see :doc:`../../hyperion/deploy
56
56
  . ./.venv/bin/activate
57
57
  pip install -e .
58
58
  pip install -e ../dodal
59
+
60
+ .. _deploying-to-i04-blueapi:
61
+
62
+ Deploying to I04 BlueAPI
63
+ ------------------------
64
+
65
+ To deploy to I04 BlueAPI, update the Chart.yaml and values.yaml in the i04-services repository to match the release version. It's a good idea to bump BlueAPI to the latest version too.
66
+
67
+ Look at this `example <https://gitlab.diamond.ac.uk/controls/containers/beamline/i04-services/-/commit/f0ea7432ae996834001bbe50a07ba86d23534749>`_ as a guide. Note that mx-bluesky has recently dropped the ``v`` from it's version numbers.
68
+
69
+ Once this change has been merged into main and the CI has completed successfully, press synchronise on the I04 ArgoCD page. This will update the version deployed in Kubernetes.
@@ -28,6 +28,9 @@ Note that making a change to these properties generally requires a restart of th
28
28
  "gda.mx.hyperion.xrc.use_gpu_results", "boolean", "If true, then zocalo gridscan processing uses the GPU results"
29
29
  "gda.mx.hyperion.xrc.use_roi_mode", "boolean", "If true then ROI mode is used."
30
30
  "gda.mx.udc.hyperion.enable", "boolean", "Enables Hyperion UDC mode."
31
+ "gda.mx.hyperion.enable_beamstop_diode_check", "boolean", "If true, enables an extended beamstop position check
32
+ during UDC default state script measuring the diode current out-of and in beam. Otherwise the beamstop position is
33
+ moved to the data collection position."
31
34
 
32
35
  Beamline configuration/calibration files
33
36
  ========================================
@@ -21,11 +21,10 @@ dependencies = [
21
21
  "caproto",
22
22
  "fastapi[all]",
23
23
  "flask-restful",
24
- "ispyb",
25
24
  "jupyterlab",
26
25
  "matplotlib",
27
26
  "nexgen >= 0.11.0",
28
- "numpy == 2.2.6", # See https://github.com/DiamondLightSource/mx-bluesky/issues/1119
27
+ "numpy >= 2.3.5",
29
28
  "opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
30
29
  "opentelemetry-distro",
31
30
  "opentelemetry-exporter-otlp",
@@ -47,9 +46,9 @@ dependencies = [
47
46
  "daq-config-server>=v1.0.0-rc.2",
48
47
  "blueapi >= 1.6.3",
49
48
  "ophyd >= 1.10.5",
50
- "ophyd-async >= 0.13.5",
49
+ "ophyd-async >= 0.14.0",
51
50
  "bluesky >= 1.14.6",
52
- "dls-dodal == 1.65.0",
51
+ "dls-dodal == 1.66.0",
53
52
  ]
54
53
 
55
54
 
@@ -67,6 +66,7 @@ dev = [
67
66
  "diff-cover",
68
67
  "GitPython",
69
68
  "import-linter",
69
+ "ispyb",
70
70
  "ipython",
71
71
  "mypy",
72
72
  "myst-parser",
@@ -75,12 +75,13 @@ dev = [
75
75
  "pre-commit",
76
76
  "pydata-sphinx-theme>=0.12",
77
77
  # Pin to previous pyright until https://github.com/microsoft/pyright/issues/11060 is fixed
78
- "pyright==1.1.406",
78
+ "pyright==1.1.406",
79
79
  "pytest-asyncio",
80
80
  "pytest-cov",
81
81
  "pytest-random-order",
82
82
  "pytest-timeout",
83
83
  "pytest",
84
+ "responses",
84
85
  "ruff",
85
86
  "sphinx-autobuild",
86
87
  "sphinx-copybutton",
@@ -112,7 +113,6 @@ version_file = "src/mx_bluesky/_version.py"
112
113
 
113
114
  [tool.pyright]
114
115
  typeCheckingMode = "strict"
115
- # Issue to remove some of these exceptions: https://github.com/DiamondLightSource/mx-bluesky/issues/1403
116
116
  reportMissingTypeStubs = false
117
117
  reportUnknownMemberType = false
118
118
  reportUnknownLambdaType = false
@@ -123,12 +123,8 @@ reportMissingTypeArgument = false
123
123
  reportPrivateUsage = false
124
124
  reportUnknownVariableType = false
125
125
  reportUnusedVariable = false
126
- reportUnusedFunction = false
127
126
  reportArgumentType = false
128
- reportUnnecessaryComparison = false
129
- reportUnnecessaryCast = false
130
127
  reportMatchNotExhaustive = false
131
- reportUnnecessaryIsInstance = false
132
128
 
133
129
 
134
130
  [tool.pytest.ini_options]
@@ -155,13 +151,8 @@ filterwarnings = [
155
151
  "ignore:(.*)unclosed file(.*)name='(.*)dodal.log'(.*):ResourceWarning",
156
152
  "ignore:(.*)unclosed <socket(.*):ResourceWarning",
157
153
  "ignore:(.*)unclosed event loop(.*):ResourceWarning",
158
- # Ignore deprecation warning from python-workflows https://github.com/DiamondLightSource/python-workflows/issues/180
159
- "ignore:.*pkg_resources.*:DeprecationWarning",
160
154
  # Ignore warning about deprecated throw() call https://github.com/bluesky/bluesky/issues/1817
161
155
  "ignore:.*signature of throw\\(\\) is deprecated.*:DeprecationWarning",
162
- # Ignore warning about deprecations in python-workflows encountered during system tests
163
- # https://github.com/DiamondLightSource/python-workflows/issues/188
164
- "ignore:.*`Field` should not be instantiated.*:marshmallow.warnings.ChangedInMarshmallow4Warning",
165
156
  #Remove when we drop python 3.11
166
157
  "ignore:.*__contains__ will no longer raise TypeError.*:DeprecationWarning",
167
158
  # epicscorelibs requires setuptools >= 70.1
@@ -221,7 +212,7 @@ setenv =
221
212
  ISPYB_CONFIG_PATH={toxinidir}/tests/test_data/ispyb-test-credentials.cfg
222
213
  ZOCALO_CONFIG={toxinidir}/tests/test_data/zocalo-test-configuration.yaml
223
214
  commands =
224
- pytest -m system_test --timeout=60 tests/system_tests
215
+ pytest -m system_test --timeout=60 tests/system_tests {posargs}
225
216
  """
226
217
 
227
218
  [tool.ruff]
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.5.11'
32
- __version_tuple__ = version_tuple = (1, 5, 11)
31
+ __version__ = version = '1.5.12'
32
+ __version_tuple__ = version_tuple = (1, 5, 12)
33
33
 
34
- __commit_id__ = commit_id = 'ge95f07917'
34
+ __commit_id__ = commit_id = 'ge66bd29e0'
@@ -0,0 +1,198 @@
1
+ from __future__ import annotations
2
+
3
+ from datetime import datetime
4
+ from pathlib import Path
5
+
6
+ import bluesky.plan_stubs as bps
7
+ import bluesky.preprocessors as bpp
8
+ import pydantic
9
+ from dodal.devices.motors import XYZOmegaStage, XYZStage
10
+ from dodal.devices.oav.oav_detector import OAV
11
+ from dodal.devices.oav.pin_image_recognition import PinTipDetection
12
+ from dodal.devices.robot import BartRobot, SampleLocation
13
+
14
+ from mx_bluesky.beamlines.aithre_lasershaping.parameters.constants import CONST
15
+ from mx_bluesky.beamlines.aithre_lasershaping.parameters.robot_load_parameters import (
16
+ AithreRobotLoad,
17
+ )
18
+ from mx_bluesky.common.device_setup_plans.robot_load_unload import (
19
+ do_plan_while_lower_gonio_at_home,
20
+ )
21
+ from mx_bluesky.common.experiment_plans.pin_tip_centring_plan import (
22
+ PinTipCentringComposite,
23
+ pin_tip_centre_plan,
24
+ )
25
+ from mx_bluesky.common.parameters.constants import (
26
+ DocDescriptorNames,
27
+ PlanNameConstants,
28
+ )
29
+
30
+
31
+ @pydantic.dataclasses.dataclass(config={"arbitrary_types_allowed": True})
32
+ class RobotLoadComposite:
33
+ # RobotLoad fields
34
+ robot: BartRobot
35
+ lower_gonio: XYZStage
36
+ oav: OAV
37
+ gonio: XYZOmegaStage
38
+
39
+
40
+ def _move_gonio_to_home_position(
41
+ composite: RobotLoadComposite,
42
+ x_home: float = 0.0,
43
+ y_home: float = 0.0,
44
+ z_home: float = 0.0,
45
+ omega_home: float = 0.0,
46
+ group: str = "group",
47
+ ):
48
+ """
49
+ Move Gonio to home position, default is zero
50
+ """
51
+ yield from bps.abs_set(composite.gonio.omega, omega_home, group=group)
52
+ yield from bps.abs_set(composite.gonio.x, x_home, group=group)
53
+ yield from bps.abs_set(composite.gonio.y, y_home, group=group)
54
+ yield from bps.abs_set(composite.gonio.z, z_home, group=group)
55
+
56
+ yield from bps.wait(group=group)
57
+
58
+
59
+ def _take_robot_snapshots(oav: OAV, directory: Path):
60
+ time_now = datetime.now()
61
+ snapshot_format = f"{time_now.strftime('%H%M%S')}_{{device}}_after_load"
62
+ for device in [oav.snapshot]:
63
+ yield from bps.abs_set(
64
+ device.filename, snapshot_format.format(device=device.name)
65
+ )
66
+ yield from bps.abs_set(device.directory, str(directory))
67
+ # Note: should be able to use `wait=True` after https://github.com/bluesky/bluesky/issues/1795
68
+ yield from bps.trigger(device, group="snapshots")
69
+ yield from bps.wait("snapshots")
70
+
71
+
72
+ def _do_robot_load_and_centre(
73
+ composite: RobotLoadComposite,
74
+ sample_location: SampleLocation,
75
+ sample_id: int,
76
+ pin_tip_detection: PinTipDetection,
77
+ tip_offset_microns: float = 0,
78
+ oav_config_file: str = CONST.OAV_CENTRING_FILE,
79
+ ):
80
+ yield from bps.abs_set(composite.robot.next_sample_id, sample_id, wait=True)
81
+ yield from bps.abs_set(
82
+ composite.robot,
83
+ sample_location,
84
+ group="robot_load",
85
+ )
86
+
87
+ yield from _move_gonio_to_home_position(composite=composite, group="robot_load")
88
+
89
+ yield from bps.wait(group="robot_load")
90
+
91
+ pin_tip_centring_composite = PinTipCentringComposite(
92
+ composite.oav, composite.gonio, pin_tip_detection
93
+ )
94
+ yield from pin_tip_centre_plan(
95
+ pin_tip_centring_composite, tip_offset_microns, oav_config_file
96
+ )
97
+
98
+
99
+ def _robot_load_and_snapshots(
100
+ composite: RobotLoadComposite,
101
+ location: SampleLocation,
102
+ snapshot_directory: Path,
103
+ sample_id: int,
104
+ pin_tip_detection: PinTipDetection,
105
+ tip_offset_microns: float = 0,
106
+ oav_config_file: str = CONST.OAV_CENTRING_FILE,
107
+ ):
108
+ yield from bps.create(name=DocDescriptorNames.ROBOT_PRE_LOAD)
109
+ yield from bps.read(composite.robot)
110
+ yield from bps.save()
111
+
112
+ robot_load_plan = _do_robot_load_and_centre(
113
+ composite,
114
+ location,
115
+ sample_id,
116
+ pin_tip_detection,
117
+ tip_offset_microns,
118
+ oav_config_file,
119
+ )
120
+
121
+ gonio_finished = yield from do_plan_while_lower_gonio_at_home(
122
+ robot_load_plan, composite.lower_gonio
123
+ )
124
+ yield from bps.wait(group="snapshot")
125
+
126
+ yield from _take_robot_snapshots(composite.oav, snapshot_directory)
127
+
128
+ yield from bps.create(name=DocDescriptorNames.ROBOT_UPDATE)
129
+ yield from bps.read(composite.robot)
130
+ yield from bps.read(composite.oav.snapshot)
131
+ yield from bps.save()
132
+
133
+ yield from bps.wait(gonio_finished)
134
+
135
+
136
+ def robot_load_and_snapshots_plan(
137
+ composite: RobotLoadComposite,
138
+ params: AithreRobotLoad,
139
+ ptd: PinTipDetection,
140
+ tip_offset_microns: float = 0,
141
+ oav_config_file: str = CONST.OAV_CENTRING_FILE,
142
+ ):
143
+ assert params.sample_puck is not None
144
+ assert params.sample_pin is not None
145
+
146
+ sample_location = SampleLocation(params.sample_puck, params.sample_pin)
147
+
148
+ yield from _move_gonio_to_home_position(composite)
149
+
150
+ yield from bpp.set_run_key_wrapper(
151
+ bpp.run_wrapper(
152
+ _robot_load_and_snapshots(
153
+ composite,
154
+ sample_location,
155
+ params.snapshot_directory,
156
+ params.sample_id,
157
+ ptd,
158
+ tip_offset_microns,
159
+ oav_config_file,
160
+ ),
161
+ md={
162
+ "subplan_name": PlanNameConstants.ROBOT_LOAD,
163
+ "metadata": {"visit": params.visit, "sample_id": params.sample_id},
164
+ "activate_callbacks": [
165
+ "RobotLoadISPyBCallback",
166
+ ],
167
+ },
168
+ ),
169
+ PlanNameConstants.ROBOT_LOAD_AND_SNAPSHOTS,
170
+ )
171
+
172
+
173
+ def robot_unload_plan(
174
+ composite: RobotLoadComposite,
175
+ params: AithreRobotLoad,
176
+ ):
177
+ @bpp.run_decorator(
178
+ md={
179
+ "subplan_name": PlanNameConstants.ROBOT_UNLOAD,
180
+ "metadata": {"visit": params.visit, "sample_id": params.sample_id},
181
+ "activate_callbacks": [
182
+ "RobotLoadISPyBCallback",
183
+ ],
184
+ },
185
+ )
186
+ def do_robot_unload_and_send_to_ispyb():
187
+ yield from _take_robot_snapshots(composite.oav, params.snapshot_directory)
188
+ yield from bps.wait(group="snapshot")
189
+ yield from _move_gonio_to_home_position(composite)
190
+
191
+ yield from bps.abs_set(composite.robot, None, wait=True)
192
+
193
+ yield from bps.create(name=DocDescriptorNames.ROBOT_UPDATE)
194
+ yield from bps.read(composite.robot)
195
+ yield from bps.read(composite.oav.snapshot)
196
+ yield from bps.save()
197
+
198
+ yield from do_robot_unload_and_send_to_ispyb()
@@ -0,0 +1,17 @@
1
+ import os
2
+
3
+ from pydantic.dataclasses import dataclass
4
+
5
+ TEST_MODE = os.environ.get("AITHRE_TEST_MODE")
6
+
7
+
8
+ @dataclass(frozen=True)
9
+ class AithreConstants:
10
+ BEAMLINE = "aithre"
11
+ OAV_CENTRING_FILE = (
12
+ "/dls/science/groups/i23/aithre/daq_configuration/json/OAVCentring_aithre.json"
13
+ )
14
+ LOG_FILE_NAME = "aithre.log"
15
+
16
+
17
+ CONST = AithreConstants()
@@ -0,0 +1,13 @@
1
+ from mx_bluesky.common.parameters.components import (
2
+ WithSample,
3
+ WithSnapshot,
4
+ WithVisit,
5
+ )
6
+
7
+
8
+ class AithreRobotLoad(
9
+ WithSample,
10
+ WithSnapshot,
11
+ WithVisit,
12
+ ):
13
+ pass