mx-bluesky 1.4.0__tar.gz → 1.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_container.yml +1 -5
  2. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/Dockerfile.release +1 -1
  3. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/PKG-INFO +3 -3
  4. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/conf.py +1 -0
  5. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +1 -1
  6. mx_bluesky-1.4.1/docs/developer/general/how-to/dev-ops/dev-ops.rst +8 -0
  7. {mx_bluesky-1.4.0/docs/developer/general/how-to → mx_bluesky-1.4.1/docs/developer/general/how-to/dev-ops}/lint.rst +5 -5
  8. {mx_bluesky-1.4.0/docs/developer/general/how-to → mx_bluesky-1.4.1/docs/developer/general/how-to/dev-ops}/run-tests.rst +1 -1
  9. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/index.rst +2 -7
  10. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/reference/standards.rst +2 -2
  11. {mx_bluesky-1.4.0/docs/developer/general/how-to → mx_bluesky-1.4.1/docs/developer/general/tutorials}/profile-tests.rst +2 -2
  12. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/hyperion/index.rst +2 -2
  13. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/hyperion/reference/param_hierarchy.puml +4 -4
  14. mx_bluesky-1.4.1/docs/index.rst +22 -0
  15. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/pyproject.toml +2 -2
  16. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/run_hyperion.sh +2 -0
  17. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/_version.py +2 -2
  18. mx_bluesky-1.4.1/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +178 -0
  19. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i04/thawing_plan.py +1 -1
  20. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/dcid.py +143 -171
  21. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +1 -1
  22. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +54 -21
  23. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +2 -5
  24. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -1
  25. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +67 -50
  26. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +26 -79
  27. mx_bluesky-1.4.1/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +119 -0
  28. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +4 -6
  29. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/log.py +1 -1
  30. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +4 -0
  31. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +6 -1
  32. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +42 -15
  33. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +4 -3
  34. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +2 -0
  35. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +103 -81
  36. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +1 -2
  37. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +24 -26
  38. mx_bluesky-1.4.1/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +107 -0
  39. {mx_bluesky-1.4.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1/src/mx_bluesky/common}/external_interaction/config_server.py +19 -20
  40. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/parameters/components.py +52 -15
  41. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/parameters/constants.py +11 -1
  42. mx_bluesky-1.4.1/src/mx_bluesky/common/parameters/gridscan.py +94 -0
  43. {mx_bluesky-1.4.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1/src/mx_bluesky/common}/parameters/robot_load.py +2 -2
  44. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/plans/do_fgs.py +2 -2
  45. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/utils/log.py +2 -0
  46. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/__main__.py +2 -1
  47. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +21 -31
  48. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +4 -4
  49. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +1 -1
  50. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +3 -3
  51. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/exceptions.py +13 -1
  52. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +4 -0
  53. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +83 -0
  54. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/experiment_plans/common/xrc_result.py +47 -0
  55. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +9 -9
  56. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +133 -97
  57. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +42 -18
  58. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +112 -0
  59. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +2 -2
  60. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +1 -1
  61. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +2 -2
  62. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +36 -17
  63. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +5 -5
  64. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +28 -28
  65. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +64 -16
  66. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +11 -3
  67. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +10 -10
  68. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -4
  69. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +4 -0
  70. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/callbacks/common/abstract_event.py +66 -0
  71. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +5 -0
  72. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/grid_detection_callback.py +15 -15
  73. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +18 -10
  74. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +3 -1
  75. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +5 -3
  76. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling/sample_handling_callback.py +84 -0
  77. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_callback.py +15 -9
  78. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/nexus_callback.py +5 -4
  79. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/config_server.py +18 -0
  80. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/exceptions.py +4 -0
  81. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/ispyb/exp_eye_store.py +65 -15
  82. mx_bluesky-1.4.1/src/mx_bluesky/hyperion/parameters/components.py +7 -0
  83. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/constants.py +0 -1
  84. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/gridscan.py +33 -76
  85. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +14 -9
  86. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/rotation.py +15 -6
  87. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/PKG-INFO +3 -3
  88. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/SOURCES.txt +24 -15
  89. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/requires.txt +2 -2
  90. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/conftest.py +57 -29
  91. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/conftest.py +13 -39
  92. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +8 -8
  93. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +24 -29
  94. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/conftest.py +102 -18
  95. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/test_config_service.py +2 -2
  96. mx_bluesky-1.4.1/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +83 -0
  97. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +14 -8
  98. mx_bluesky-1.4.1/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +477 -0
  99. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +2 -2
  100. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/test_aperturescatterguard_system.py +4 -3
  101. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_parameters.json +3 -4
  102. mx_bluesky-1.4.1/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +56 -0
  103. mx_bluesky-1.4.1/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +189 -0
  104. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/conftest.py +69 -0
  105. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +58 -6
  106. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +1 -19
  107. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +5 -1
  108. mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +30 -0
  109. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +98 -7
  110. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +45 -2
  111. mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/test_dcid.py +116 -0
  112. mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +37 -0
  113. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/common/plan_stubs/test_do_fgs.py +1 -1
  114. mx_bluesky-1.4.1/tests/unit_tests/conftest.py +44 -0
  115. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +61 -37
  116. mx_bluesky-1.4.1/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +78 -0
  117. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +4 -4
  118. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -11
  119. mx_bluesky-1.4.1/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +26 -0
  120. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/conftest.py +73 -57
  121. mx_bluesky-1.4.1/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +78 -0
  122. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +5 -0
  123. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +107 -190
  124. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +83 -22
  125. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +15 -20
  126. mx_bluesky-1.4.1/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +505 -0
  127. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +6 -0
  128. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +2 -2
  129. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +67 -16
  130. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +5 -4
  131. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +7 -38
  132. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +201 -35
  133. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +16 -1
  134. mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/common/test_abstract_event.py +44 -0
  135. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +9 -15
  136. mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +186 -0
  137. mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +81 -0
  138. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +1 -1
  139. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_mapping.py +3 -3
  140. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/conftest.py +2 -2
  141. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/ispyb/conftest.py +2 -2
  142. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/ispyb/test_expeye_interaction.py +18 -4
  143. mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  144. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +28 -17
  145. mx_bluesky-1.4.1/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  146. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +20 -18
  147. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/test_main_system.py +15 -9
  148. mx_bluesky-1.4.1/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  149. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/utils/test_context.py +2 -2
  150. mx_bluesky-1.4.0/.github/workflows/publish_docker_image.yml +0 -50
  151. mx_bluesky-1.4.0/docs/developer/general/how-to/static-analysis.rst +0 -8
  152. mx_bluesky-1.4.0/docs/developer/general/tutorials/dev-install.rst +0 -60
  153. mx_bluesky-1.4.0/docs/genindex.rst +0 -5
  154. mx_bluesky-1.4.0/docs/index.rst +0 -29
  155. mx_bluesky-1.4.0/docs/user/explanations/docs-structure.rst +0 -18
  156. mx_bluesky-1.4.0/docs/user/how-to/run-container.rst +0 -15
  157. mx_bluesky-1.4.0/docs/user/index.rst +0 -57
  158. mx_bluesky-1.4.0/docs/user/tutorials/installation.rst +0 -38
  159. mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Mapping_py3v1.py +0 -150
  160. mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -318
  161. mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -105
  162. mx_bluesky-1.4.0/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -46
  163. mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/exceptions.py +0 -13
  164. mx_bluesky-1.4.0/src/mx_bluesky/hyperion/parameters/components.py +0 -12
  165. mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -52
  166. mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +0 -254
  167. mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -58
  168. mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -34
  169. mx_bluesky-1.4.0/tests/unit_tests/conftest.py +0 -18
  170. mx_bluesky-1.4.0/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -38
  171. mx_bluesky-1.4.0/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -257
  172. mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -139
  173. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.copier-answers.yml +0 -0
  174. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.coveragerc +0 -0
  175. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.devcontainer/Dockerfile +0 -0
  176. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.devcontainer/devcontainer.json +0 -0
  177. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.dockerignore +0 -0
  178. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/CONTRIBUTING.md +0 -0
  179. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  180. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  181. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  182. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/actions/install_requirements/action.yml +0 -0
  183. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/actions/verify-nexus/Dockerfile +0 -0
  184. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/actions/verify-nexus/action.yml +0 -0
  185. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  186. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/dependabot.yml +0 -0
  187. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/pages/index.html +0 -0
  188. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/pages/make_switcher.py +0 -0
  189. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_check.yml +0 -0
  190. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_dist.yml +0 -0
  191. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_docs.yml +0 -0
  192. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_pypi.yml +0 -0
  193. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_release.yml +0 -0
  194. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_test.yml +0 -0
  195. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/_tox.yml +0 -0
  196. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/ci.yml +0 -0
  197. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.github/workflows/periodic.yml +0 -0
  198. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.gitignore +0 -0
  199. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.pre-commit-config.yaml +0 -0
  200. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/extensions.json +0 -0
  201. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/launch.json +0 -0
  202. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/mx-bluesky.code-workspace +0 -0
  203. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  204. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/settings.json +0 -0
  205. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/.vscode/tasks.json +0 -0
  206. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/Dockerfile +0 -0
  207. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/LICENSE +0 -0
  208. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/README.rst +0 -0
  209. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/catalog-info.yaml +0 -0
  210. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/codecov.yml +0 -0
  211. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/conftest.py +0 -0
  212. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/_api.rst +0 -0
  213. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/_templates/custom-module-template.rst +0 -0
  214. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  215. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  216. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/explanations/decisions.rst +0 -0
  217. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/how-to/contribute.rst +0 -0
  218. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/how-to/create-a-release.rst +0 -0
  219. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  220. {mx_bluesky-1.4.0/docs/developer/general/how-to → mx_bluesky-1.4.1/docs/developer/general/how-to/dev-ops}/build-docs.rst +0 -0
  221. {mx_bluesky-1.4.0/docs/developer/general/how-to → mx_bluesky-1.4.1/docs/developer/general/how-to/dev-ops}/update-tools.rst +0 -0
  222. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/general/how-to/get-started.rst +0 -0
  223. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  224. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  225. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/hyperion/reference/readme.md +0 -0
  226. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/index.rst +0 -0
  227. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  228. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  229. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/murko-integration/index.rst +0 -0
  230. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  231. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  232. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  233. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  234. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
  235. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  236. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  237. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/images/dls-favicon.ico +0 -0
  238. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/docs/images/dls-logo.svg +0 -0
  239. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/helmchart/Chart.yaml +0 -0
  240. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/helmchart/templates/deployment.yaml +0 -0
  241. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/helmchart/templates/ingress.yaml +0 -0
  242. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/helmchart/templates/service.yaml +0 -0
  243. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/helmchart/values.yaml +0 -0
  244. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  245. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  246. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/code.yml +0 -0
  247. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/container_tests.sh +0 -0
  248. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  249. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  250. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/linkcheck.yml +0 -0
  251. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  252. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  253. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/pin_versions.py +0 -0
  254. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  255. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  256. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  257. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  258. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  259. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  260. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/hyperion_other/workflows/test_pin_versions.py +0 -0
  261. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/run_hyperion_in_podman.sh +0 -0
  262. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/setup.cfg +0 -0
  263. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/__init__.py +0 -0
  264. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/__main__.py +0 -0
  265. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/__init__.py +0 -0
  266. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  267. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  268. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  269. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  270. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  271. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  272. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  273. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  274. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  275. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  276. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  277. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  278. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  279. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  280. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  281. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  282. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  283. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  284. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  285. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  286. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  287. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  288. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  289. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  290. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  291. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  292. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  293. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  294. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  295. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  296. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  297. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  298. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  299. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/__init__.py +0 -0
  300. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +0 -0
  301. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/plans/__init__.py +0 -0
  302. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/common/utils/tracing.py +0 -0
  303. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/__init__.py +0 -0
  304. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/__init__.py +0 -0
  305. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
  306. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
  307. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +0 -0
  308. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +0 -0
  309. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +0 -0
  310. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +0 -0
  311. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  312. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/aperture_change_callback.py +0 -0
  313. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/__init__.py +0 -0
  314. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
  315. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/ispyb_callback_base.py +0 -0
  316. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/log_uid_tag_callback.py +0 -0
  317. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/logging_callback.py +0 -0
  318. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/plan_reactive_callback.py +0 -0
  319. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  320. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  321. {mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  322. {mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/ispyb → mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  323. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  324. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/callbacks/zocalo_callback.py +0 -0
  325. {mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/nexus → mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/ispyb}/__init__.py +0 -0
  326. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/ispyb/data_model.py +0 -0
  327. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_store.py +0 -0
  328. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_utils.py +0 -0
  329. {mx_bluesky-1.4.0/tests → mx_bluesky-1.4.1/src/mx_bluesky/hyperion/external_interaction/nexus}/__init__.py +0 -0
  330. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/nexus/nexus_utils.py +0 -0
  331. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/external_interaction/nexus/write_nexus.py +0 -0
  332. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/log.py +0 -0
  333. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  334. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  335. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  336. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  337. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/utils/utils.py +0 -0
  338. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/hyperion/utils/validation.py +0 -0
  339. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  340. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  341. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  342. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  343. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/start_jupyter.sh +0 -0
  344. {mx_bluesky-1.4.0/tests/system_tests → mx_bluesky-1.4.1/tests}/__init__.py +0 -0
  345. {mx_bluesky-1.4.0/tests/system_tests/hyperion → mx_bluesky-1.4.1/tests/system_tests}/__init__.py +0 -0
  346. {mx_bluesky-1.4.0/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.1/tests/system_tests/hyperion}/__init__.py +0 -0
  347. {mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.1/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
  348. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +0 -0
  349. {mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.1/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  350. {mx_bluesky-1.4.0/tests/unit_tests → mx_bluesky-1.4.1/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  351. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
  352. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
  353. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/README.md +0 -0
  354. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  355. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  356. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  357. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  358. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  359. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  360. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  361. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  362. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  363. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  364. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  365. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  366. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  367. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  368. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  369. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -0
  370. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  371. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  372. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  373. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/scratch/README +0 -0
  374. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_OAVCentring.json +0 -0
  375. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  376. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  377. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_beamline_parameters.txt +0 -0
  378. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  379. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_config.cfg +0 -0
  380. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  381. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  382. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  383. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_det_dist_converter.txt +0 -0
  384. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_display.configuration +0 -0
  385. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  386. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_lookup_table.txt +0 -0
  387. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/test_data/test_mirror_focus.json +0 -0
  388. {mx_bluesky-1.4.0/tests/unit_tests/beamlines → mx_bluesky-1.4.1/tests/unit_tests}/__init__.py +0 -0
  389. {mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.1/tests/unit_tests/beamlines}/__init__.py +0 -0
  390. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  391. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
  392. {mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  393. {mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  394. {mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  395. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  396. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  397. {mx_bluesky-1.4.0/tests/unit_tests/common → mx_bluesky-1.4.1/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  398. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  399. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  400. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  401. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  402. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  403. {mx_bluesky-1.4.0/tests/unit_tests/common/utils → mx_bluesky-1.4.1/tests/unit_tests/common}/__init__.py +0 -0
  404. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +0 -0
  405. {mx_bluesky-1.4.0/tests/unit_tests/hyperion → mx_bluesky-1.4.1/tests/unit_tests/common/utils}/__init__.py +0 -0
  406. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/common/utils/test_log.py +0 -0
  407. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.1/tests/unit_tests/hyperion}/__init__.py +0 -0
  408. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/conftest.py +0 -0
  409. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.1/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  410. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  411. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
  412. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +0 -0
  413. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.1/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  414. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  415. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -0
  416. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  417. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  418. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/ispyb → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/common}/__init__.py +0 -0
  419. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  420. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
  421. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  422. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  423. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -0
  424. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  425. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  426. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/conftest.py +0 -0
  427. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_callback.py +0 -0
  428. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_handler.py +0 -0
  429. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_nexus_handler.py +0 -0
  430. {mx_bluesky-1.4.0/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.1/tests/unit_tests/hyperion/external_interaction/ispyb}/__init__.py +0 -0
  431. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  432. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/ispyb/test_rotation_ispyb_store.py +0 -0
  433. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  434. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/nexus/test_nexus_utils.py +0 -0
  435. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  436. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  437. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  438. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/test_ispyb_utils.py +0 -0
  439. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
  440. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  441. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/test_utils.py +0 -0
  442. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  443. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/tests/unit_tests/test_cli.py +0 -0
  444. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/beam_off_trickery.sh +0 -0
  445. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/build_docker_image.sh +0 -0
  446. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/build_imginfo.sh +0 -0
  447. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/deploy/create_venv.py +0 -0
  448. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  449. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/deploy/deploy_hyperion_to_k8s.sh +0 -0
  450. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  451. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/deploy/test_deploy.py +0 -0
  452. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/dev_jaeger_container.sh +0 -0
  453. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/dls_dev_env.sh +0 -0
  454. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/docker/entrypoint.sh +0 -0
  455. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/docker/healthcheck.sh +0 -0
  456. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/docker/i03-compose.yml +0 -0
  457. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/graylog/Dockerfile +0 -0
  458. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/graylog/tcp_input.json +0 -0
  459. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/procserv_ioc_start.sh +0 -0
  460. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/run_imginfo.sh +0 -0
  461. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/setup_graylog.sh +0 -0
  462. {mx_bluesky-1.4.0 → mx_bluesky-1.4.1}/utility_scripts/strip_metafile.py +0 -0
@@ -30,12 +30,8 @@ jobs:
30
30
  DOCKER_BUILD_RECORD_UPLOAD: false
31
31
  with:
32
32
  context: .
33
- # Need load and tags so we can test it below
33
+ file: Dockerfile.release
34
34
  load: true
35
- tags: tag_for_testing
36
-
37
- - name: Test cli works in cached runtime image
38
- run: docker run --rm tag_for_testing --version
39
35
 
40
36
  - name: Create tags for publishing image
41
37
  id: meta
@@ -33,6 +33,6 @@ RUN git restore .
33
33
  RUN rm src/mx_bluesky/_version.py
34
34
  RUN pip install --no-cache-dir --no-compile --no-deps -e .
35
35
 
36
- ENTRYPOINT /app/hyperion/utility_scripts/docker/entrypoint.sh
36
+ ENTRYPOINT ["/app/hyperion/utility_scripts/docker/entrypoint.sh"]
37
37
 
38
38
  EXPOSE 5005
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mx-bluesky
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -237,9 +237,9 @@ Requires-Dist: matplotlib
237
237
  Requires-Dist: blueapi>=0.5.0
238
238
  Requires-Dist: daq-config-server>=0.1.1
239
239
  Requires-Dist: ophyd==1.9.0
240
- Requires-Dist: ophyd-async>=0.3a5
240
+ Requires-Dist: ophyd-async>=0.8a5
241
241
  Requires-Dist: bluesky>=1.13.0a4
242
- Requires-Dist: dls-dodal==1.35.0
242
+ Requires-Dist: dls-dodal==1.36.2
243
243
  Provides-Extra: dev
244
244
  Requires-Dist: black; extra == "dev"
245
245
  Requires-Dist: build; extra == "dev"
@@ -136,6 +136,7 @@ rst_epilog = """
136
136
  .. _black: https://github.com/psf/black
137
137
  .. _mypy: http://mypy-lang.org/
138
138
  .. _pre-commit: https://pre-commit.com/
139
+ .. _ruff: https://github.com/astral-sh/ruff
139
140
  """
140
141
 
141
142
  # Ignore localhost links for periodic check that links in docs are valid
@@ -1,4 +1,4 @@
1
- 1. Python version support
1
+ 3. Python version support
2
2
  =========================
3
3
 
4
4
  Date: 2024-08-22
@@ -0,0 +1,8 @@
1
+ Dev-Ops guides
2
+ ==============================
3
+
4
+ .. toctree::
5
+ :maxdepth: 1
6
+ :glob:
7
+
8
+ ./*
@@ -1,7 +1,7 @@
1
1
  Run linting using pre-commit
2
2
  ============================
3
3
 
4
- Code linting is handled by black_, ruff run under pre-commit_.
4
+ Code linting is handled by ruff_, run under pre-commit_.
5
5
 
6
6
  Running pre-commit
7
7
  ------------------
@@ -18,15 +18,15 @@ commit`` on just the files that have changed::
18
18
  Fixing issues
19
19
  -------------
20
20
 
21
- If black reports an issue you can tell it to reformat all the files in the
21
+ If ruff reports an issue you can attempt to automatically reformat all the files in the
22
22
  repository::
23
23
 
24
- $ black .
24
+ $ ruff check --fix .
25
25
 
26
26
  If you get any ruff issues you will have to fix those manually.
27
27
 
28
28
  VSCode support
29
29
  --------------
30
30
 
31
- The ``.vscode/settings.json`` will run black and isort formatters as well as
32
- flake8 checking on save. Issues will be highlighted in the editor window.
31
+ The ``.vscode/settings.json`` will run linters and formatters
32
+ on save. Issues will be highlighted in the editor window.
@@ -4,7 +4,7 @@ Run the tests using pytest
4
4
  Testing is done with pytest_. It will find functions in the project that `look
5
5
  like tests`_, and run them to check for errors. You can run it with::
6
6
 
7
- $ tox -e pytest
7
+ $ tox -e tests
8
8
 
9
9
  It will also report coverage to the commandline and to ``cov.xml``.
10
10
 
@@ -12,7 +12,7 @@ Documentation is split into four categories, and each is also accessible from li
12
12
  :caption: Tutorials
13
13
  :maxdepth: 1
14
14
 
15
- tutorials/dev-install
15
+ tutorials/profile-tests
16
16
 
17
17
  +++
18
18
 
@@ -26,14 +26,9 @@ Documentation is split into four categories, and each is also accessible from li
26
26
 
27
27
  how-to/get-started
28
28
  how-to/contribute
29
- how-to/build-docs
30
- how-to/run-tests
31
- how-to/static-analysis
32
- how-to/lint
33
- how-to/update-tools
34
29
  how-to/create-a-release
35
30
  how-to/deploy-a-release
36
- how-to/profile-tests
31
+ how-to/dev-ops/dev-ops
37
32
 
38
33
  +++
39
34
 
@@ -15,7 +15,7 @@ The code in this repository conforms to standards set by the following tools:
15
15
 
16
16
  .. seealso::
17
17
 
18
- How-to guides `../how-to/lint` and `../how-to/static-analysis`
18
+ How-to guides `../how-to/dev-ops/lint`
19
19
 
20
20
  .. _documentation_standards:
21
21
 
@@ -60,4 +60,4 @@ Docs follow the underlining convention::
60
60
 
61
61
  .. seealso::
62
62
 
63
- How-to guide `../how-to/build-docs`
63
+ How-to guide `../how-to/dev-ops/build-docs`
@@ -15,7 +15,7 @@ value e.g.
15
15
  0.1s
16
16
 
17
17
  How to profile the unit tests
18
- =============================
18
+ -----------------------------
19
19
 
20
20
  Sometimes tests can exhibit slowdowns for unknown reasons, in order to diagnose the cause it can be useful to profile
21
21
  the test code.
@@ -35,7 +35,7 @@ You can then often step through in the debugger to find lines which execute slow
35
35
 
36
36
 
37
37
  More detailed profiling
38
- =======================
38
+ ------------------------
39
39
 
40
40
  Occasionally this is not sufficient. In which case more detailed profiling is necessary
41
41
 
@@ -1,7 +1,7 @@
1
- General MX-Bluesky Developer Guide
1
+ Hyperion Developer Guide
2
2
  ==================================
3
3
 
4
- Documentation is split into four categories, and each is also accessible from links in the side-bar.
4
+ Documentation specific for the Hyperion module within MX-Bluesky
5
5
 
6
6
  .. grid:: 2
7
7
  :gutter: 2
@@ -31,7 +31,7 @@ package Experiments {
31
31
  class RobotLoadAndEnergyChange
32
32
  class RobotLoadThenCentre
33
33
  class SpecifiedGridScan
34
- class ThreeDGridScan
34
+ class HyperionThreeDGridScan
35
35
  }
36
36
 
37
37
  class HyperionParameters
@@ -66,9 +66,9 @@ RobotLoadThenCentre *-- RobotLoadAndEnergyChange
66
66
  RobotLoadThenCentre *-- PinTipCentreThenXrayCentre
67
67
  GridCommon <|-- SpecifiedGridScan
68
68
  WithScan <|-- SpecifiedGridScan
69
- SpecifiedGridScan <|-- ThreeDGridScan
70
- SplitScan <|-- ThreeDGridScan
71
- WithOptionalEnergyChange <|-- ThreeDGridScan
69
+ SpecifiedGridScan <|-- HyperionThreeDGridScan
70
+ SplitScan <|-- HyperionThreeDGridScan
71
+ WithOptionalEnergyChange <|-- HyperionThreeDGridScan
72
72
  WithOavCentring <|-- GridCommon
73
73
  WithScan <|-- RotationScan
74
74
  RotationScanPerSweep <|-- RotationScan
@@ -0,0 +1,22 @@
1
+ :html_theme.sidebar_secondary.remove:
2
+
3
+ .. include:: ../README.rst
4
+ :end-before: when included in index.rst
5
+
6
+ How the documentation is structured
7
+ -----------------------------------
8
+
9
+ The documentation consists of a Developer Guide for MX-Bluesky, which also includes documentation for Hyperion. At its current stage in development, there is no user guide.
10
+
11
+ .. grid:: 1
12
+
13
+ .. grid-item-card:: :material-regular:`code;4em`
14
+ :link: developer/index
15
+ :link-type: doc
16
+
17
+ The Developer Guide contains documentation on how to install, develop and contribute changes to MX-Bluesky; explanations about the purpose of the software and some of the technical concepts; as well as how-to guides and tutorials.
18
+
19
+ .. toctree::
20
+ :hidden:
21
+
22
+ developer/index
@@ -44,9 +44,9 @@ dependencies = [
44
44
  "blueapi >= 0.5.0",
45
45
  "daq-config-server >= 0.1.1",
46
46
  "ophyd == 1.9.0",
47
- "ophyd-async >= 0.3a5",
47
+ "ophyd-async >= 0.8a5",
48
48
  "bluesky >= 1.13.0a4",
49
- "dls-dodal == 1.35.0",
49
+ "dls-dodal == 1.36.2",
50
50
  ]
51
51
 
52
52
 
@@ -99,6 +99,8 @@ if [[ $START == 1 ]]; then
99
99
  module unload controls_dev
100
100
  module load dials
101
101
 
102
+ RELATIVE_SCRIPT_DIR=$( dirname -- "$0"; )
103
+ cd ${RELATIVE_SCRIPT_DIR}
102
104
 
103
105
  if [ -z "$LOG_DIR" ]; then
104
106
  if [ $IN_DEV == true ]; then
@@ -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.0'
16
- __version_tuple__ = version_tuple = (1, 4, 0)
15
+ __version__ = version = '1.4.1'
16
+ __version_tuple__ = version_tuple = (1, 4, 1)
@@ -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()
@@ -3,7 +3,7 @@ from collections.abc import Callable
3
3
  import bluesky.plan_stubs as bps
4
4
  import bluesky.preprocessors as bpp
5
5
  from bluesky.preprocessors import run_decorator, subs_decorator
6
- from dls_bluesky_core.core import MsgGenerator
6
+ from bluesky.utils import MsgGenerator
7
7
  from dodal.beamlines.i04 import MURKO_REDIS_DB, REDIS_HOST, REDIS_PASSWORD
8
8
  from dodal.common import inject
9
9
  from dodal.devices.oav.oav_detector import OAV