mx-bluesky 1.4.1a0__tar.gz → 1.4.3__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 (471) hide show
  1. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_container.yml +1 -0
  2. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.gitignore +3 -0
  3. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/PKG-INFO +6 -6
  4. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/conf.py +2 -0
  5. mx_bluesky-1.4.3/docs/developer/hyperion/reference/gridscan.puml +109 -0
  6. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/hyperion/reference/param-hierarchy.rst +1 -1
  7. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/pyproject.toml +8 -5
  8. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/_version.py +2 -2
  9. mx_bluesky-1.4.3/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +178 -0
  10. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -6
  11. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/dcid.py +125 -151
  12. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +1 -1
  13. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +88 -43
  14. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +1 -1
  15. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +2 -46
  16. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +85 -122
  17. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +58 -66
  18. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +1 -19
  19. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +11 -2
  20. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +16 -2
  21. mx_bluesky-1.4.3/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +178 -0
  22. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +19 -0
  23. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +2 -0
  24. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +61 -8
  25. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +81 -40
  26. mx_bluesky-1.4.3/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +104 -0
  27. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/aperture_change_callback.py +1 -1
  28. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/grid_detection_callback.py +19 -1
  29. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/ispyb_callback_base.py +40 -34
  30. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/common/ispyb_mapping.py +4 -4
  31. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/logging_callback.py +1 -1
  32. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/zocalo_callback.py +14 -9
  33. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/xray_centre/ispyb_callback.py +46 -38
  34. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/xray_centre/ispyb_mapping.py +2 -2
  35. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/xray_centre/nexus_callback.py +20 -15
  36. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/external_interaction/config_server.py +11 -0
  37. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/ispyb/data_model.py +2 -0
  38. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/ispyb/exp_eye_store.py +67 -17
  39. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/ispyb/ispyb_store.py +20 -18
  40. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/ispyb/ispyb_utils.py +2 -2
  41. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/nexus/nexus_utils.py +21 -6
  42. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/nexus/write_nexus.py +5 -5
  43. mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/test_config_server.py +38 -0
  44. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/parameters/components.py +10 -8
  45. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/parameters/constants.py +6 -0
  46. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/parameters/gridscan.py +39 -78
  47. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/plans/do_fgs.py +4 -4
  48. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common/utils}/exceptions.py +27 -1
  49. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/utils/log.py +17 -7
  50. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/__main__.py +15 -14
  51. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/device_setup_plans/check_beamstop.py +27 -0
  52. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +34 -37
  53. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +7 -7
  54. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +1 -1
  55. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +3 -3
  56. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +21 -4
  57. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +62 -36
  58. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +3 -3
  59. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +4 -0
  60. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +8 -8
  61. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +28 -17
  62. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/common/xrc_result.py +10 -1
  63. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +9 -9
  64. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +54 -58
  65. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +22 -31
  66. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +105 -0
  67. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +3 -3
  68. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +8 -2
  69. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +6 -14
  70. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +12 -11
  71. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +4 -4
  72. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +39 -30
  73. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +36 -18
  74. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +33 -21
  75. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +10 -9
  76. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -4
  77. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +31 -20
  78. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +80 -0
  79. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +39 -24
  80. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +25 -24
  81. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +1 -1
  82. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +13 -9
  83. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling/sample_handling_callback.py +50 -0
  84. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/config_server.py +32 -0
  85. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/parameters/components.py +3 -2
  86. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/parameters/constants.py +1 -0
  87. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/parameters/gridscan.py +149 -0
  88. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +100 -0
  89. mx_bluesky-1.4.3/src/mx_bluesky/hyperion/parameters/robot_load.py +40 -0
  90. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/parameters/rotation.py +28 -3
  91. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/utils/context.py +1 -1
  92. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/utils/validation.py +5 -3
  93. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/PKG-INFO +6 -6
  94. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/SOURCES.txt +59 -44
  95. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/requires.txt +4 -4
  96. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/conftest.py +548 -50
  97. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/conftest.py +6 -2
  98. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +28 -40
  99. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +2 -2
  100. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +5 -4
  101. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/conftest.py +72 -20
  102. mx_bluesky-1.4.3/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +83 -0
  103. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +41 -34
  104. mx_bluesky-1.4.3/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +516 -0
  105. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +11 -11
  106. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +6 -6
  107. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/test_aperturescatterguard_system.py +14 -4
  108. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +28 -12
  109. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +1 -1
  110. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +4 -5
  111. mx_bluesky-1.4.3/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +51 -0
  112. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +2 -2
  113. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +1 -1
  114. mx_bluesky-1.4.3/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +7 -0
  115. mx_bluesky-1.4.3/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +189 -0
  116. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i04/test_thawing.py +3 -1
  117. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/conftest.py +82 -2
  118. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +109 -57
  119. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +10 -18
  120. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +37 -59
  121. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +122 -21
  122. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +1 -1
  123. mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +95 -0
  124. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +27 -1
  125. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +45 -6
  126. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +3 -3
  127. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +26 -24
  128. mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/test_dcid.py +119 -0
  129. mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +37 -0
  130. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion → mx_bluesky-1.4.3/tests/unit_tests/common}/external_interaction/callbacks/common/test_abstract_event.py +1 -1
  131. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks}/ispyb/conftest.py +6 -6
  132. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks}/ispyb/test_expeye_interaction.py +25 -11
  133. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks}/ispyb/test_gridscan_ispyb_store_3d.py +17 -18
  134. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks}/ispyb/test_rotation_ispyb_store.py +11 -11
  135. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion → mx_bluesky-1.4.3/tests/unit_tests/common}/external_interaction/callbacks/test_plan_reactive_callback.py +5 -2
  136. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion → mx_bluesky-1.4.3/tests/unit_tests/common}/external_interaction/callbacks/test_zocalo_handler.py +11 -11
  137. mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/conftest.py +52 -0
  138. mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +45 -0
  139. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion → mx_bluesky-1.4.3/tests/unit_tests/common}/external_interaction/test_ispyb_utils.py +2 -2
  140. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/xray_centre/test_ispyb_callback.py +31 -16
  141. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/xray_centre/test_ispyb_handler.py +34 -17
  142. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/xray_centre/test_ispyb_mapping.py +25 -28
  143. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/xray_centre/test_nexus_handler.py +22 -11
  144. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/common/plan_stubs/test_do_fgs.py +2 -1
  145. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/common/utils/test_log.py +21 -19
  146. mx_bluesky-1.4.3/tests/unit_tests/conftest.py +44 -0
  147. mx_bluesky-1.4.3/tests/unit_tests/hyperion/conftest.py +23 -0
  148. mx_bluesky-1.4.3/tests/unit_tests/hyperion/device_setup_plans/test_check_beamstop.py +24 -0
  149. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +62 -38
  150. mx_bluesky-1.4.3/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +128 -0
  151. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +15 -10
  152. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +7 -7
  153. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +1 -1
  154. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +38 -30
  155. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/conftest.py +30 -21
  156. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +2 -2
  157. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +128 -106
  158. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +19 -60
  159. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +41 -28
  160. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +136 -7
  161. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +18 -10
  162. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +3 -2
  163. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +25 -5
  164. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +9 -17
  165. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +50 -44
  166. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +111 -22
  167. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +134 -20
  168. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +16 -1
  169. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  170. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +12 -0
  171. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +186 -0
  172. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  173. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +19 -19
  174. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  175. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +82 -0
  176. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +7 -7
  177. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +12 -12
  178. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/conftest.py +53 -0
  179. mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  180. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +56 -13
  181. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +37 -30
  182. mx_bluesky-1.4.3/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  183. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +76 -17
  184. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/test_exceptions.py +4 -1
  185. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/test_main_system.py +18 -10
  186. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/test_utils.py +1 -1
  187. mx_bluesky-1.4.3/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  188. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/deploy/create_venv.py +3 -7
  189. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/deploy/deploy_hyperion_to_k8s.sh +16 -7
  190. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/deploy/deploy_mx_bluesky.py +60 -8
  191. mx_bluesky-1.4.3/utility_scripts/generate_plantuml.py +95 -0
  192. mx_bluesky-1.4.1a0/docs/developer/hyperion/reference/param_hierarchy.puml +0 -86
  193. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -103
  194. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -105
  195. mx_bluesky-1.4.1a0/src/mx_bluesky/common/parameters/gridscan.py +0 -94
  196. mx_bluesky-1.4.1a0/src/mx_bluesky/common/parameters/robot_load.py +0 -16
  197. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -88
  198. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +0 -64
  199. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -18
  200. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/exceptions.py +0 -13
  201. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/log.py +0 -15
  202. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -55
  203. mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -52
  204. mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +0 -270
  205. mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -46
  206. mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -43
  207. mx_bluesky-1.4.1a0/tests/unit_tests/conftest.py +0 -18
  208. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/conftest.py +0 -84
  209. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -78
  210. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -272
  211. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -139
  212. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/conftest.py +0 -60
  213. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -218
  214. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/nexus/test_nexus_utils.py +0 -17
  215. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.copier-answers.yml +0 -0
  216. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.coveragerc +0 -0
  217. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.devcontainer/Dockerfile +0 -0
  218. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.devcontainer/devcontainer.json +0 -0
  219. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.dockerignore +0 -0
  220. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/CONTRIBUTING.md +0 -0
  221. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  222. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  223. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  224. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/actions/install_requirements/action.yml +0 -0
  225. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/actions/verify-nexus/Dockerfile +0 -0
  226. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/actions/verify-nexus/action.yml +0 -0
  227. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  228. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/dependabot.yml +0 -0
  229. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/pages/index.html +0 -0
  230. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/pages/make_switcher.py +0 -0
  231. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_check.yml +0 -0
  232. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_dist.yml +0 -0
  233. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_docs.yml +0 -0
  234. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_pypi.yml +0 -0
  235. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_release.yml +0 -0
  236. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_test.yml +0 -0
  237. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/_tox.yml +0 -0
  238. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/ci.yml +0 -0
  239. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.github/workflows/periodic.yml +0 -0
  240. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.pre-commit-config.yaml +0 -0
  241. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/extensions.json +0 -0
  242. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/launch.json +0 -0
  243. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/mx-bluesky.code-workspace +0 -0
  244. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  245. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/settings.json +0 -0
  246. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/.vscode/tasks.json +0 -0
  247. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/Dockerfile +0 -0
  248. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/Dockerfile.release +0 -0
  249. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/LICENSE +0 -0
  250. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/README.rst +0 -0
  251. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/catalog-info.yaml +0 -0
  252. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/codecov.yml +0 -0
  253. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/conftest.py +0 -0
  254. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/_api.rst +0 -0
  255. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/_templates/custom-module-template.rst +0 -0
  256. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  257. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  258. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  259. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/explanations/decisions.rst +0 -0
  260. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/contribute.rst +0 -0
  261. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/create-a-release.rst +0 -0
  262. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  263. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  264. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  265. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  266. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  267. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  268. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/how-to/get-started.rst +0 -0
  269. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/index.rst +0 -0
  270. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/reference/standards.rst +0 -0
  271. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  272. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  273. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/hyperion/index.rst +0 -0
  274. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/hyperion/reference/readme.md +0 -0
  275. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/index.rst +0 -0
  276. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  277. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  278. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/murko-integration/index.rst +0 -0
  279. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  280. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  281. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  282. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  283. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
  284. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  285. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  286. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/images/dls-favicon.ico +0 -0
  287. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/images/dls-logo.svg +0 -0
  288. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/docs/index.rst +0 -0
  289. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/helmchart/Chart.yaml +0 -0
  290. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/helmchart/templates/deployment.yaml +0 -0
  291. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/helmchart/templates/ingress.yaml +0 -0
  292. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/helmchart/templates/service.yaml +0 -0
  293. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/helmchart/values.yaml +0 -0
  294. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  295. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  296. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/code.yml +0 -0
  297. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/container_tests.sh +0 -0
  298. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  299. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  300. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/linkcheck.yml +0 -0
  301. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  302. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  303. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/pin_versions.py +0 -0
  304. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  305. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  306. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  307. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  308. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  309. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  310. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/hyperion_other/workflows/test_pin_versions.py +0 -0
  311. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/run_hyperion.sh +0 -0
  312. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/run_hyperion_in_podman.sh +0 -0
  313. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/setup.cfg +0 -0
  314. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/__init__.py +0 -0
  315. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/__main__.py +0 -0
  316. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/__init__.py +0 -0
  317. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  318. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  319. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  320. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  321. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  322. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  323. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  324. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  325. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  326. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  327. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  328. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  329. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  330. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  331. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  332. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  333. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  334. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  335. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  336. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  337. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  338. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  339. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  340. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  341. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  342. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  343. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  344. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  345. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  346. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  347. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  348. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  349. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  350. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  351. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  352. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  353. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/__init__.py +0 -0
  354. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +0 -0
  355. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  356. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/common/__init__.py +0 -0
  357. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/external_interaction/callbacks/common/abstract_event.py +0 -0
  358. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/log_uid_tag_callback.py +0 -0
  359. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/common}/plan_reactive_callback.py +0 -0
  360. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  361. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  362. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/ispyb → mx_bluesky-1.4.3/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  363. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/plans/__init__.py +0 -0
  364. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/common/utils/tracing.py +0 -0
  365. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/common}/utils/utils.py +0 -0
  366. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/__init__.py +0 -0
  367. {mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/nexus → mx_bluesky-1.4.3/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  368. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +0 -0
  369. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  370. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  371. {mx_bluesky-1.4.1a0/tests → mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/callbacks/common}/__init__.py +0 -0
  372. {mx_bluesky-1.4.1a0/tests/system_tests → mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  373. {mx_bluesky-1.4.1a0/tests/system_tests/hyperion → mx_bluesky-1.4.3/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  374. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  375. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  376. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  377. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  378. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  379. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  380. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  381. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/start_jupyter.sh +0 -0
  382. {mx_bluesky-1.4.1a0/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.3/tests}/__init__.py +0 -0
  383. {mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/system_tests}/__init__.py +0 -0
  384. {mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/system_tests/hyperion}/__init__.py +0 -0
  385. {mx_bluesky-1.4.1a0/tests/unit_tests → mx_bluesky-1.4.3/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
  386. {mx_bluesky-1.4.1a0/tests/unit_tests/beamlines → mx_bluesky-1.4.3/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  387. {mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.3/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  388. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  389. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/README.md +0 -0
  390. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  391. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  392. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  393. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  394. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  395. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  396. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  397. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  398. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  399. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  400. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  401. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  402. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  403. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -0
  404. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  405. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  406. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  407. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/scratch/README +0 -0
  408. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_OAVCentring.json +0 -0
  409. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  410. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  411. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_beamline_parameters.txt +0 -0
  412. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  413. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_config.cfg +0 -0
  414. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  415. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  416. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  417. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_det_dist_converter.txt +0 -0
  418. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_display.configuration +0 -0
  419. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  420. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_lookup_table.txt +0 -0
  421. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/test_data/test_mirror_focus.json +0 -0
  422. {mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.3/tests/unit_tests}/__init__.py +0 -0
  423. {mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.3/tests/unit_tests/beamlines}/__init__.py +0 -0
  424. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  425. {mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  426. {mx_bluesky-1.4.1a0/tests/unit_tests/common → mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  427. {mx_bluesky-1.4.1a0/tests/unit_tests/common/utils → mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  428. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  429. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion → mx_bluesky-1.4.3/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  430. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  431. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  432. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  433. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.3/tests/unit_tests/common}/__init__.py +0 -0
  434. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +0 -0
  435. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  436. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  437. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  438. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/common → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  439. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.3/tests/unit_tests/common/external_interaction}/xray_centre/__init__.py +0 -0
  440. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.3/tests/unit_tests/common/utils}/__init__.py +0 -0
  441. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/ispyb → mx_bluesky-1.4.3/tests/unit_tests/hyperion}/__init__.py +0 -0
  442. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.3/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  443. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  444. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.3/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  445. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  446. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  447. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +0 -0
  448. {mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.3/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  449. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  450. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  451. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  452. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  453. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  454. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  455. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/tests/unit_tests/test_cli.py +0 -0
  456. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/beam_off_trickery.sh +0 -0
  457. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/build_docker_image.sh +0 -0
  458. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/build_imginfo.sh +0 -0
  459. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  460. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/deploy/test_deploy.py +0 -0
  461. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/dev_jaeger_container.sh +0 -0
  462. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/dls_dev_env.sh +0 -0
  463. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/docker/entrypoint.sh +0 -0
  464. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/docker/healthcheck.sh +0 -0
  465. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/docker/i03-compose.yml +0 -0
  466. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/graylog/Dockerfile +0 -0
  467. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/graylog/tcp_input.json +0 -0
  468. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/procserv_ioc_start.sh +0 -0
  469. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/run_imginfo.sh +0 -0
  470. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/setup_graylog.sh +0 -0
  471. {mx_bluesky-1.4.1a0 → mx_bluesky-1.4.3}/utility_scripts/strip_metafile.py +0 -0
@@ -51,6 +51,7 @@ jobs:
51
51
  # Docker cache and publish it
52
52
  with:
53
53
  context: .
54
+ file: Dockerfile.release
54
55
  push: true
55
56
  tags: ${{ steps.meta.outputs.tags }}
56
57
  labels: ${{ steps.meta.outputs.labels }}
@@ -172,3 +172,6 @@ edm_serial/
172
172
  **/parameters/fixed_target/*/*.map
173
173
  # idea project files
174
174
  .idea/
175
+
176
+ # Generated PlantUML diagrams
177
+ docs/developer/hyperion/reference/param_hierarchy.puml
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: mx-bluesky
3
- Version: 1.4.1a0
3
+ Version: 1.4.3
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
@@ -226,7 +226,7 @@ Requires-Dist: opencv-python
226
226
  Requires-Dist: opentelemetry-distro
227
227
  Requires-Dist: opentelemetry-exporter-otlp
228
228
  Requires-Dist: pydantic
229
- Requires-Dist: pydantic-extra-types
229
+ Requires-Dist: pydantic-extra-types>=2.10.1
230
230
  Requires-Dist: pyepics
231
231
  Requires-Dist: pyzmq
232
232
  Requires-Dist: requests
@@ -238,8 +238,8 @@ Requires-Dist: blueapi>=0.5.0
238
238
  Requires-Dist: daq-config-server>=0.1.1
239
239
  Requires-Dist: ophyd==1.9.0
240
240
  Requires-Dist: ophyd-async>=0.8a5
241
- Requires-Dist: bluesky>=1.13.0a4
242
- Requires-Dist: dls-dodal==1.36.1a
241
+ Requires-Dist: bluesky>=1.13
242
+ Requires-Dist: dls-dodal==1.38.0
243
243
  Provides-Extra: dev
244
244
  Requires-Dist: black; extra == "dev"
245
245
  Requires-Dist: build; extra == "dev"
@@ -250,6 +250,7 @@ Requires-Dist: ipython; extra == "dev"
250
250
  Requires-Dist: mypy; extra == "dev"
251
251
  Requires-Dist: myst-parser; extra == "dev"
252
252
  Requires-Dist: pipdeptree; extra == "dev"
253
+ Requires-Dist: plantweb; extra == "dev"
253
254
  Requires-Dist: pre-commit; extra == "dev"
254
255
  Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
255
256
  Requires-Dist: pyright; extra == "dev"
@@ -260,7 +261,6 @@ Requires-Dist: pytest; extra == "dev"
260
261
  Requires-Dist: ruff; extra == "dev"
261
262
  Requires-Dist: sphinx-autobuild; extra == "dev"
262
263
  Requires-Dist: sphinx-copybutton; extra == "dev"
263
- Requires-Dist: sphinxcontrib-plantuml; extra == "dev"
264
264
  Requires-Dist: sphinx-design; extra == "dev"
265
265
  Requires-Dist: tox-direct; extra == "dev"
266
266
  Requires-Dist: tox; extra == "dev"
@@ -49,6 +49,8 @@ extensions = [
49
49
  "sphinx_design",
50
50
  # For markdown
51
51
  "myst_parser",
52
+ # For plantUML diagrams
53
+ "plantweb.directive",
52
54
  ]
53
55
 
54
56
  myst_enable_extensions = [
@@ -0,0 +1,109 @@
1
+ @startuml
2
+ title Gridscan Parameter Relationships
3
+
4
+ class DiffractionExperiment
5
+ class DiffractionExperimentWithSample
6
+ class GridCommon {
7
+ grid_width_um
8
+ exposure_time_s
9
+ }
10
+ class GridScanWithEdgeDetect {
11
+ box_size_um
12
+ }
13
+ class HyperionGridCommon {
14
+ enable_dev_shm
15
+ }
16
+ class HyperionThreeDGridScan {
17
+ x_step_size_um
18
+ y_step_size_um
19
+ z_step_size_um
20
+ y2_start_um
21
+ z2_start_um
22
+ --
23
+ grid_1_spec
24
+ grid_2_spec
25
+ scan_indices
26
+ scan_spec
27
+ scan_points
28
+ scan_points_first_grid
29
+ scan_points_second_grid
30
+ num_images
31
+ FGS_Params
32
+ panda_FGS_Params
33
+ }
34
+ class MxBlueSkyParameters
35
+ class SpecifiedGrid
36
+ class XyzStarts {
37
+ x_start_um
38
+ y_start_um
39
+ z_start_um
40
+ }
41
+ class OptionalXYZStarts {
42
+ x_start_um
43
+ y_start_um
44
+ z_start_um
45
+ }
46
+ class RotationScanPerSweep
47
+
48
+ MxBlueSkyParameters <|-- DiffractionExperiment
49
+ DiffractionExperiment <|-- DiffractionExperimentWithSample
50
+ DiffractionExperimentWithSample <|-- GridCommon
51
+ GridCommon <|-- GridScanWithEdgeDetect
52
+ GridCommon <|-- HyperionGridCommon
53
+ HyperionGridCommon <|-- HyperionThreeDGridScan
54
+ SpecifiedGrid <|-- HyperionThreeDGridScan
55
+ XyzStarts <|-- SpecifiedGrid
56
+ OptionalXYZStarts <|-- RotationScanPerSweep
57
+ class GridParamUpdate {
58
+ x_start_um
59
+ y_start_um
60
+ y2_start_um
61
+ z_start_um
62
+ z2_start_um
63
+ x_steps
64
+ y_steps
65
+ z_steps
66
+ x_step_size_um
67
+ y_step_size_um
68
+ z_step_size_um
69
+ }
70
+
71
+ class GridDetectionCallback {
72
+ get_grid_parameters() -> GridParamUpdate
73
+ }
74
+
75
+ GridDetectionCallback --> GridParamUpdate : generates from event. Adds 0.5 to get box-centres
76
+ GridParamUpdate --> HyperionThreeDGridScan : combines with GridScanWithEdgeDetect
77
+
78
+ class experiment_plans {
79
+ grid_detect_then_xray_centre()
80
+ flyscan_xray_centre_no_move()
81
+ create_parameters_for_flyscan_xray_centre(GridScanWithEdgeDetect, GridParamUpdate) -> HyperionThreeDGridScan
82
+ }
83
+
84
+ class AbstractExperimentBase
85
+ class AbstractExperimentWithBeamParams
86
+ class GridScanParamsCommon {
87
+ x_steps
88
+ y_steps
89
+ z_steps
90
+ x_step_size_mm
91
+ y_step_size_mm
92
+ z_step_size_mm
93
+ x_start_mm
94
+ y1_start_mm
95
+ y2_start_mm
96
+ z1_start_mm
97
+ z2_start_mm
98
+ }
99
+ class PandAGridScanParams
100
+ class ZebraGridScanParams
101
+
102
+ AbstractExperimentBase <|-- AbstractExperimentWithBeamParams
103
+ AbstractExperimentWithBeamParams <|-- GridScanParamsCommon
104
+ GridScanParamsCommon <|-- PandAGridScanParams
105
+ GridScanParamsCommon <|-- ZebraGridScanParams
106
+
107
+ HyperionThreeDGridScan --> ZebraGridScanParams : generates
108
+ HyperionThreeDGridScan --> PandAGridScanParams : generates
109
+ @enduml
@@ -1,4 +1,4 @@
1
1
  Hyperion Parameter class hierarchy
2
2
  ==================================
3
3
 
4
- TODO: automate including the param hierarchy here
4
+ .. uml:: param_hierarchy.puml
@@ -25,11 +25,11 @@ dependencies = [
25
25
  "matplotlib",
26
26
  "nexgen",
27
27
  "numpy",
28
- "opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
28
+ "opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
29
29
  "opentelemetry-distro",
30
30
  "opentelemetry-exporter-otlp",
31
31
  "pydantic",
32
- "pydantic-extra-types",
32
+ "pydantic-extra-types >= 2.10.1",
33
33
  "pyepics",
34
34
  "pyzmq",
35
35
  "requests",
@@ -45,8 +45,8 @@ dependencies = [
45
45
  "daq-config-server >= 0.1.1",
46
46
  "ophyd == 1.9.0",
47
47
  "ophyd-async >= 0.8a5",
48
- "bluesky >= 1.13.0a4",
49
- "dls-dodal == 1.36.1a",
48
+ "bluesky >= 1.13",
49
+ "dls-dodal == 1.38.0",
50
50
  ]
51
51
 
52
52
 
@@ -68,6 +68,7 @@ dev = [
68
68
  "mypy",
69
69
  "myst-parser",
70
70
  "pipdeptree",
71
+ "plantweb",
71
72
  "pre-commit",
72
73
  "pydata-sphinx-theme>=0.12",
73
74
  "pyright",
@@ -78,7 +79,6 @@ dev = [
78
79
  "ruff",
79
80
  "sphinx-autobuild",
80
81
  "sphinx-copybutton",
81
- "sphinxcontrib-plantuml",
82
82
  "sphinx-design",
83
83
  "tox-direct",
84
84
  "tox",
@@ -180,6 +180,9 @@ commands =
180
180
  type-checking: pyright src tests {posargs}
181
181
  tests: pytest --cov=mx_bluesky --cov-report term --cov-report xml:cov.xml {posargs}
182
182
  docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html
183
+ commands_pre =
184
+ docs: /usr/bin/bash -c "{toxinidir}/utility_scripts/generate_plantuml.py > \
185
+ docs/developer/hyperion/reference/param_hierarchy.puml"
183
186
  """
184
187
 
185
188
  [tool.ruff]
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.4.1a0'
16
- __version_tuple__ = version_tuple = (1, 4, 1)
15
+ __version__ = version = '1.4.3'
16
+ __version_tuple__ = version_tuple = (1, 4, 3)
@@ -0,0 +1,178 @@
1
+ import io
2
+ import json
3
+ import pickle
4
+ from typing import TypedDict
5
+
6
+ import numpy as np
7
+ import zmq
8
+ from dodal.beamlines.i04 import MURKO_REDIS_DB, REDIS_HOST, REDIS_PASSWORD
9
+ from numpy.typing import NDArray
10
+ from PIL import Image
11
+ from redis import StrictRedis
12
+
13
+ from mx_bluesky.common.utils.log import LOGGER
14
+
15
+ MURKO_ADDRESS = "tcp://i04-murko-prod.diamond.ac.uk:8008"
16
+
17
+
18
+ class MurkoRequest(TypedDict):
19
+ to_predict: NDArray
20
+ model_img_size: tuple[int, int]
21
+ save: bool
22
+ min_size: int
23
+ description: list
24
+ prefix: list[str]
25
+
26
+
27
+ def get_image_size(image: NDArray) -> tuple[int, int]:
28
+ """Returns the width and height of a numpy image"""
29
+ return image.shape[1], image.shape[0]
30
+
31
+
32
+ def send_to_murko_and_get_results(request: MurkoRequest) -> dict:
33
+ LOGGER.info(f"Sending {request['prefix']} to murko")
34
+ context = zmq.Context()
35
+ socket = context.socket(zmq.REQ)
36
+ socket.connect(MURKO_ADDRESS)
37
+ socket.send(pickle.dumps(request))
38
+ raw_results = socket.recv()
39
+ results = pickle.loads(raw_results)
40
+ LOGGER.info(f"Got {len(results['descriptions'])} results")
41
+ return results
42
+
43
+
44
+ def correlate_results_to_uuids(request: MurkoRequest, murko_results: dict) -> list:
45
+ results = []
46
+ uuids = request["prefix"]
47
+
48
+ width, height = get_image_size(request["to_predict"][0])
49
+
50
+ for uuid, prediction in zip(uuids, murko_results["descriptions"], strict=False):
51
+ coords = prediction["most_likely_click"]
52
+ y_coord = coords[0] * height
53
+ x_coord = coords[1] * width
54
+ results.append(
55
+ {"uuid": uuid, "x_pixel_coord": x_coord, "y_pixel_coord": y_coord}
56
+ )
57
+ return results
58
+
59
+
60
+ class BatchMurkoForwarder:
61
+ def __init__(self, redis_client: StrictRedis, batch_size: int):
62
+ """
63
+ Holds image data streamed from redis and forwards it to murko when:
64
+ * A set number have been received
65
+ * The shape of the images changes
66
+ * When `flush` is called
67
+
68
+ Once data has been forwarded this will then wait on the results and put them
69
+ back in redis.
70
+
71
+ Args:
72
+ redis_client: The client to send murko results back to redis.
73
+ batch_size: How many results to accumulate until they are flushed to redis.
74
+ """
75
+ self.redis_client = redis_client
76
+ self.batch_size = batch_size
77
+ self._uuids_and_images: dict[str, NDArray] = {}
78
+ self._last_image_size: tuple[int, int] | None = None
79
+ self._last_sample_id = ""
80
+
81
+ def _handle_batch_of_images(self, sample_id, images, uuids):
82
+ request_arguments: MurkoRequest = {
83
+ "model_img_size": (256, 320),
84
+ "to_predict": np.array(images),
85
+ "save": False,
86
+ "min_size": 64,
87
+ "description": [
88
+ "foreground",
89
+ "crystal",
90
+ "loop_inside",
91
+ "loop",
92
+ ["crystal", "loop"],
93
+ ["crystal", "loop", "stem"],
94
+ ],
95
+ "prefix": uuids,
96
+ }
97
+ predictions = send_to_murko_and_get_results(request_arguments)
98
+ results = correlate_results_to_uuids(request_arguments, predictions)
99
+ self._send_murko_results_to_redis(sample_id, results)
100
+
101
+ def _send_murko_results_to_redis(self, sample_id: str, results: list):
102
+ for result in results:
103
+ self.redis_client.hset(
104
+ f"murko:{sample_id}:results", result["uuid"], json.dumps(result)
105
+ )
106
+ self.redis_client.publish("murko-results", json.dumps(results))
107
+
108
+ def add(self, sample_id: str, uuid: str, image: NDArray):
109
+ """Add an image to the batch to send to murko."""
110
+ image_size = get_image_size(image)
111
+ self._last_sample_id = sample_id
112
+ if self._last_image_size and self._last_image_size != image_size:
113
+ self.flush()
114
+ self._uuids_and_images[uuid] = image
115
+ self._last_image_size = image_size
116
+ if len(self._uuids_and_images.keys()) >= self.batch_size:
117
+ self.flush()
118
+
119
+ def flush(self):
120
+ """Flush the batch to murko."""
121
+ if self._uuids_and_images:
122
+ self._handle_batch_of_images(
123
+ self._last_sample_id,
124
+ list(self._uuids_and_images.values()),
125
+ list(self._uuids_and_images.keys()),
126
+ )
127
+ self._uuids_and_images = {}
128
+ self._last_image_size = None
129
+
130
+
131
+ class RedisListener:
132
+ TIMEOUT_S = 2
133
+
134
+ def __init__(
135
+ self,
136
+ redis_host=REDIS_HOST,
137
+ redis_password=REDIS_PASSWORD,
138
+ db=MURKO_REDIS_DB,
139
+ redis_channel="murko",
140
+ ):
141
+ self.redis_client = StrictRedis(
142
+ host=redis_host,
143
+ password=redis_password,
144
+ db=db,
145
+ )
146
+ self.pubsub = self.redis_client.pubsub()
147
+ self.channel = redis_channel
148
+ self.forwarder = BatchMurkoForwarder(self.redis_client, 10)
149
+
150
+ def _get_and_handle_message(self):
151
+ message = self.pubsub.get_message(timeout=self.TIMEOUT_S)
152
+ if message and message["type"] == "message":
153
+ data = json.loads(message["data"])
154
+ LOGGER.info(f"Received from redis: {data}")
155
+ uuid = data["uuid"]
156
+ sample_id = data["sample_id"]
157
+
158
+ # Images are put in redis as raw jpeg bytes, murko needs numpy arrays
159
+ raw_image = self.redis_client.hget(f"murko:{sample_id}:raw", uuid)
160
+ assert isinstance(raw_image, bytes)
161
+ image = Image.open(io.BytesIO(raw_image))
162
+ image = np.asarray(image)
163
+
164
+ self.forwarder.add(sample_id, uuid, image)
165
+
166
+ elif not message:
167
+ self.forwarder.flush()
168
+
169
+ def listen_for_image_data_forever(self):
170
+ self.pubsub.subscribe(self.channel)
171
+
172
+ while True:
173
+ self._get_and_handle_message()
174
+
175
+
176
+ if __name__ == "__main__":
177
+ client = RedisListener()
178
+ client.listen_for_image_data_forever()
@@ -18,9 +18,6 @@ from .fixed_target.i24ssx_Chip_Manager_py3v1 import (
18
18
  moveto,
19
19
  moveto_preset,
20
20
  pumpprobe_calc,
21
- save_screen_map,
22
- upload_parameters,
23
- write_parameter_file,
24
21
  )
25
22
  from .log import clean_up_log_config_at_end, setup_collection_logs
26
23
  from .setup_beamline.setup_detector import setup_detector_stage
@@ -44,9 +41,6 @@ __all__ = [
44
41
  "load_lite_map",
45
42
  "load_stock_map",
46
43
  "pumpprobe_calc",
47
- "save_screen_map",
48
- "upload_parameters",
49
- "write_parameter_file",
50
44
  "setup_collection_logs",
51
45
  "clean_up_log_config_at_end",
52
46
  ]