mx-bluesky 1.4.5__tar.gz → 1.4.7__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 (496) hide show
  1. mx_bluesky-1.4.7/.github/CODEOWNERS +1 -0
  2. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/CONTRIBUTING.md +19 -0
  3. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.gitignore +1 -0
  4. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.pre-commit-config.yaml +1 -1
  5. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/PKG-INFO +6 -5
  6. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/README.rst +1 -1
  7. mx_bluesky-1.4.7/docs/developer/general/explanations/callback_and_run_logic.rst +27 -0
  8. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/get-started.rst +2 -2
  9. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/index.rst +1 -0
  10. mx_bluesky-1.4.7/docs/developer/hyperion/how-to/update-panda-ioc.rst +44 -0
  11. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/hyperion/index.rst +13 -0
  12. mx_bluesky-1.4.7/docs/developer/hyperion/system-tests.rst +20 -0
  13. {mx_bluesky-1.4.5/helmchart → mx_bluesky-1.4.7/helmcharts/hyperion}/templates/deployment.yaml +17 -17
  14. {mx_bluesky-1.4.5/helmchart → mx_bluesky-1.4.7/helmcharts/hyperion}/templates/ingress.yaml +4 -4
  15. {mx_bluesky-1.4.5/helmchart → mx_bluesky-1.4.7/helmcharts/hyperion}/templates/service.yaml +3 -3
  16. {mx_bluesky-1.4.5/helmchart → mx_bluesky-1.4.7/helmcharts/hyperion}/values.yaml +1 -1
  17. mx_bluesky-1.4.7/helmcharts/redis-to-murko/Chart.yaml +6 -0
  18. mx_bluesky-1.4.7/helmcharts/redis-to-murko/templates/deployment.yaml +73 -0
  19. mx_bluesky-1.4.7/helmcharts/redis-to-murko/values.yaml +17 -0
  20. {mx_bluesky-1.4.5/.github/PULL_REQUEST_TEMPLATE → mx_bluesky-1.4.7}/pull_request_template.md +1 -1
  21. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/pyproject.toml +31 -13
  22. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/_version.py +9 -4
  23. mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +13 -0
  24. mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +29 -0
  25. mx_bluesky-1.4.7/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +18 -0
  26. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +45 -28
  27. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/thawing_plan.py +19 -14
  28. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/__init__.py +14 -0
  29. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/dcid.py +3 -1
  30. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +12 -12
  31. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +31 -30
  32. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +16 -14
  33. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +19 -21
  34. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +11 -4
  35. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +1 -1
  36. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +1 -1
  37. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +16 -16
  38. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +48 -49
  39. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +2 -2
  40. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +11 -9
  41. mx_bluesky-1.4.7/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +109 -0
  42. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +5 -4
  43. mx_bluesky-1.4.7/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +45 -0
  44. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +2 -4
  45. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +1 -1
  46. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +2 -2
  47. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +18 -15
  48. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion → mx_bluesky-1.4.7/src/mx_bluesky/common}/external_interaction/callbacks/sample_handling/sample_handling_callback.py +29 -12
  49. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +43 -7
  50. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +1 -1
  51. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +2 -1
  52. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +1 -0
  53. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +6 -2
  54. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +21 -1
  55. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +1 -1
  56. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/constants.py +3 -1
  57. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/gridscan.py +36 -1
  58. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/plans/do_fgs.py +4 -6
  59. mx_bluesky-1.4.7/src/mx_bluesky/common/plans/read_hardware.py +78 -0
  60. mx_bluesky-1.4.7/src/mx_bluesky/common/plans/write_sample_status.py +46 -0
  61. mx_bluesky-1.4.7/src/mx_bluesky/common/preprocessors/preprocessors.py +105 -0
  62. mx_bluesky-1.4.7/src/mx_bluesky/common/protocols/protocols.py +10 -0
  63. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion → mx_bluesky-1.4.7/src/mx_bluesky/common}/utils/context.py +0 -16
  64. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion/experiment_plans → mx_bluesky-1.4.7/src/mx_bluesky}/common/xrc_result.py +16 -0
  65. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/__main__.py +7 -9
  66. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/baton_handler.py +84 -0
  67. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +5 -5
  68. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +5 -1
  69. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +2 -2
  70. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +6 -6
  71. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +2 -2
  72. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -4
  73. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +12 -31
  74. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -7
  75. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +44 -97
  76. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +6 -6
  77. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +8 -6
  78. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +11 -11
  79. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +5 -5
  80. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +1 -1
  81. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +2 -4
  82. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +15 -13
  83. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +10 -10
  84. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +1 -29
  85. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +30 -27
  86. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +25 -6
  87. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +242 -0
  88. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +12 -6
  89. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +1 -1
  90. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +107 -0
  91. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/parameters/device_composites.py +49 -0
  92. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/gridscan.py +3 -3
  93. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/rotation.py +1 -1
  94. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/utils/__init__.py +1 -0
  95. mx_bluesky-1.4.7/src/mx_bluesky/hyperion/utils/context.py +19 -0
  96. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/utils/validation.py +3 -3
  97. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/PKG-INFO +6 -5
  98. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/SOURCES.txt +54 -19
  99. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/entry_points.txt +1 -0
  100. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/requires.txt +2 -2
  101. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/conftest.py +119 -5
  102. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/conftest.py +31 -3
  103. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +25 -22
  104. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +34 -66
  105. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/conftest.py +63 -58
  106. mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +59 -0
  107. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +11 -14
  108. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +84 -72
  109. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +197 -43
  110. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +8 -5
  111. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +21 -25
  112. mx_bluesky-1.4.7/tests/test_data/agamemnon/example_collect.json +83 -0
  113. mx_bluesky-1.4.7/tests/test_data/agamemnon/example_collect_multipin.json +83 -0
  114. {mx_bluesky-1.4.5/tests/test_data/nexus_files/rotation_unicode_metafile → mx_bluesky-1.4.7/tests/test_data/nexus_files/rotation}/ins_8_5_expected_output.txt +1 -1
  115. {mx_bluesky-1.4.5/tests/test_data/nexus_files/rotation → mx_bluesky-1.4.7/tests/test_data/nexus_files/rotation_unicode_metafile}/ins_8_5_expected_output.txt +1 -1
  116. mx_bluesky-1.4.7/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  117. mx_bluesky-1.4.7/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  118. mx_bluesky-1.4.7/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +31 -0
  119. mx_bluesky-1.4.7/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +39 -0
  120. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +52 -7
  121. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/test_thawing.py +8 -6
  122. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +12 -4
  123. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +48 -1
  124. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +104 -4
  125. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +7 -7
  126. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +21 -19
  127. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +9 -9
  128. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +34 -1
  129. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +26 -4
  130. mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +60 -0
  131. mx_bluesky-1.4.7/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +132 -0
  132. mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +83 -0
  133. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +11 -0
  134. mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +723 -0
  135. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +8 -16
  136. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +50 -32
  137. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/conftest.py +15 -3
  138. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +110 -9
  139. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +5 -2
  140. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +2 -2
  141. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +3 -3
  142. mx_bluesky-1.4.7/tests/unit_tests/common/plans/test_read_hardware.py +107 -0
  143. mx_bluesky-1.4.7/tests/unit_tests/common/preprocessors/test_preprocessors.py +192 -0
  144. mx_bluesky-1.4.7/tests/unit_tests/common/test_write_sample_status.py +65 -0
  145. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/conftest.py +16 -5
  146. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/conftest.py +24 -0
  147. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +4 -4
  148. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +3 -3
  149. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +14 -0
  150. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +1 -1
  151. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/conftest.py +31 -21
  152. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +1 -1
  153. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +150 -179
  154. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +3 -1
  155. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -8
  156. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +256 -18
  157. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +6 -6
  158. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +1 -4
  159. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +80 -7
  160. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +20 -102
  161. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +62 -12
  162. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  163. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +1 -1
  164. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  165. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +18 -50
  166. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  167. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +212 -0
  168. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -79
  169. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  170. mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +374 -0
  171. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +4 -4
  172. mx_bluesky-1.4.7/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  173. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +16 -12
  174. mx_bluesky-1.4.7/tests/unit_tests/hyperion/test_baton_handler.py +162 -0
  175. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_main_system.py +1 -6
  176. mx_bluesky-1.4.7/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  177. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/utils/test_context.py +1 -1
  178. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/deploy/deploy_mx_bluesky.py +1 -1
  179. mx_bluesky-1.4.5/utility_scripts/deploy/deploy_hyperion_to_k8s.sh → mx_bluesky-1.4.7/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +37 -23
  180. mx_bluesky-1.4.5/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +0 -14
  181. mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction/callbacks/common/aperture_change_callback.py +0 -22
  182. mx_bluesky-1.4.5/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +0 -54
  183. mx_bluesky-1.4.5/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +0 -103
  184. mx_bluesky-1.4.5/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +0 -69
  185. mx_bluesky-1.4.5/tests/system_tests/hyperion/test_aperturescatterguard_system.py +0 -53
  186. mx_bluesky-1.4.5/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +0 -36
  187. mx_bluesky-1.4.5/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -765
  188. mx_bluesky-1.4.5/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +0 -135
  189. mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -82
  190. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.copier-answers.yml +0 -0
  191. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.coveragerc +0 -0
  192. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.devcontainer/Dockerfile +0 -0
  193. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.devcontainer/devcontainer.json +0 -0
  194. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.dockerignore +0 -0
  195. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  196. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  197. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/actions/install_requirements/action.yml +0 -0
  198. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/Dockerfile +0 -0
  199. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/action.yml +0 -0
  200. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  201. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/dependabot.yml +0 -0
  202. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/pages/index.html +0 -0
  203. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/pages/make_switcher.py +0 -0
  204. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_check.yml +0 -0
  205. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_container.yml +0 -0
  206. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_dist.yml +0 -0
  207. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_docs.yml +0 -0
  208. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_pypi.yml +0 -0
  209. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_release.yml +0 -0
  210. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_test.yml +0 -0
  211. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/_tox.yml +0 -0
  212. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/ci.yml +0 -0
  213. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.github/workflows/periodic.yml +0 -0
  214. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/extensions.json +0 -0
  215. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/launch.json +0 -0
  216. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/mx-bluesky.code-workspace +0 -0
  217. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  218. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/settings.json +0 -0
  219. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/.vscode/tasks.json +0 -0
  220. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/Dockerfile +0 -0
  221. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/Dockerfile.release +0 -0
  222. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/LICENSE +0 -0
  223. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/catalog-info.yaml +0 -0
  224. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/codecov.yml +0 -0
  225. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/conftest.py +0 -0
  226. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/_api.rst +0 -0
  227. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/_templates/custom-module-template.rst +0 -0
  228. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/conf.py +0 -0
  229. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  230. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  231. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  232. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/explanations/decisions.rst +0 -0
  233. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/contribute.rst +0 -0
  234. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/create-a-release.rst +0 -0
  235. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  236. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  237. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  238. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  239. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  240. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  241. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/reference/standards.rst +0 -0
  242. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  243. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
  244. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  245. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  246. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/hyperion/reference/readme.md +0 -0
  247. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/index.rst +0 -0
  248. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  249. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  250. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/murko-integration/index.rst +0 -0
  251. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  252. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  253. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  254. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  255. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
  256. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  257. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  258. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/images/dls-favicon.ico +0 -0
  259. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/images/dls-logo.svg +0 -0
  260. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/docs/index.rst +0 -0
  261. {mx_bluesky-1.4.5/helmchart → mx_bluesky-1.4.7/helmcharts/hyperion}/Chart.yaml +0 -0
  262. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  263. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  264. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/code.yml +0 -0
  265. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/container_tests.sh +0 -0
  266. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  267. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  268. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/linkcheck.yml +0 -0
  269. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  270. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  271. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/pin_versions.py +0 -0
  272. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  273. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  274. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  275. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  276. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  277. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  278. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/hyperion_other/workflows/test_pin_versions.py +0 -0
  279. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/run_hyperion.sh +0 -0
  280. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/run_hyperion_in_podman.sh +0 -0
  281. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/setup.cfg +0 -0
  282. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/__init__.py +0 -0
  283. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/__main__.py +0 -0
  284. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/__init__.py +0 -0
  285. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  286. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  287. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  288. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  289. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  290. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  291. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  292. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  293. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  294. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  295. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  296. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  297. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  298. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  299. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  300. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  301. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  302. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  303. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  304. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  305. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  306. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  307. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  308. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  309. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  310. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  311. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  312. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  313. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  314. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  315. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  316. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  317. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  318. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  319. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  320. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  321. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  322. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  323. {mx_bluesky-1.4.5/src/mx_bluesky/common → mx_bluesky-1.4.7/src/mx_bluesky/beamlines/i24/serial/web_gui_plans}/__init__.py +0 -0
  324. {mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction → mx_bluesky-1.4.7/src/mx_bluesky/common}/__init__.py +0 -0
  325. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  326. {mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction/callbacks/common → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  327. {mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/callbacks/common}/__init__.py +0 -0
  328. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  329. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  330. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  331. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  332. {mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  333. {mx_bluesky-1.4.5/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  334. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  335. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  336. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  337. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.7/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  338. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  339. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/external_interaction/test_config_server.py +0 -0
  340. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/parameters/components.py +0 -0
  341. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/plans/__init__.py +0 -0
  342. {mx_bluesky-1.4.5/src/mx_bluesky/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.7/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
  343. {mx_bluesky-1.4.5/tests → mx_bluesky-1.4.7/src/mx_bluesky/common/protocols}/__init__.py +0 -0
  344. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  345. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/log.py +0 -0
  346. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/tracing.py +0 -0
  347. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/common/utils/utils.py +0 -0
  348. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/definitions.py +0 -0
  349. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/__init__.py +0 -0
  350. {mx_bluesky-1.4.5/tests/system_tests → mx_bluesky-1.4.7/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  351. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/check_beamstop.py +0 -0
  352. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  353. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
  354. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
  355. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  356. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  357. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +0 -0
  358. {mx_bluesky-1.4.5/tests/system_tests/hyperion → mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  359. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  360. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
  361. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/external_interaction/config_server.py +6 -6
  362. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  363. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  364. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  365. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/constants.py +0 -0
  366. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
  367. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  368. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  369. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  370. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  371. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  372. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/start_jupyter.sh +0 -0
  373. {mx_bluesky-1.4.5/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.7/tests}/__init__.py +0 -0
  374. {mx_bluesky-1.4.5/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.7/tests/system_tests}/__init__.py +0 -0
  375. {mx_bluesky-1.4.5/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.7/tests/system_tests/hyperion}/__init__.py +0 -0
  376. {mx_bluesky-1.4.5/tests/unit_tests → mx_bluesky-1.4.7/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
  377. {mx_bluesky-1.4.5/tests/unit_tests/beamlines → mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  378. {mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24 → mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  379. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  380. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
  381. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/README.md +0 -0
  382. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  383. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  384. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  385. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  386. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  387. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  388. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  389. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  390. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  391. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  392. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  393. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  394. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  395. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  396. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  397. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -0
  398. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  399. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  400. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  401. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  402. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/scratch/README +0 -0
  403. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_OAVCentring.json +0 -0
  404. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  405. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  406. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_parameters.txt +0 -0
  407. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  408. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_config.cfg +0 -0
  409. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  410. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  411. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  412. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  413. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  414. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_det_dist_converter.txt +0 -0
  415. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_display.configuration +0 -0
  416. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  417. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_lookup_table.txt +0 -0
  418. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/test_data/test_mirror_focus.json +0 -0
  419. {mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.7/tests/unit_tests}/__init__.py +0 -0
  420. {mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.7/tests/unit_tests/beamlines}/__init__.py +0 -0
  421. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  422. {mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  423. {mx_bluesky-1.4.5/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  424. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/conftest.py +0 -0
  425. {mx_bluesky-1.4.5/tests/unit_tests/common → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  426. {mx_bluesky-1.4.5/tests/unit_tests/common/external_interaction → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  427. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  428. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  429. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  430. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  431. {mx_bluesky-1.4.5/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  432. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  433. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  434. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  435. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  436. {mx_bluesky-1.4.5/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  437. {mx_bluesky-1.4.5/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.4.7/tests/unit_tests/common}/__init__.py +0 -0
  438. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  439. {mx_bluesky-1.4.5/tests/unit_tests/common/utils → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  440. {mx_bluesky-1.4.5/tests/unit_tests/hyperion → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  441. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  442. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  443. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  444. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  445. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  446. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  447. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  448. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  449. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.7/tests/unit_tests/common/plans}/__init__.py +0 -0
  450. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.7/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
  451. {mx_bluesky-1.4.5/tests/unit_tests/common/plan_stubs → mx_bluesky-1.4.7/tests/unit_tests/common}/test_do_fgs.py +0 -0
  452. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.7/tests/unit_tests/common/utils}/__init__.py +0 -0
  453. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/common/utils/test_log.py +0 -0
  454. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.7/tests/unit_tests/hyperion}/__init__.py +0 -0
  455. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.7/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  456. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_check_beamstop.py +0 -0
  457. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  458. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
  459. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  460. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.7/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  461. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  462. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +0 -0
  463. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  464. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +0 -0
  465. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  466. {mx_bluesky-1.4.5/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  467. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -0
  468. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  469. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
  470. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  471. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  472. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  473. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  474. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  475. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  476. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/test_utils.py +0 -0
  477. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  478. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/tests/unit_tests/test_cli.py +0 -0
  479. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/beam_off_trickery.sh +0 -0
  480. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/build_docker_image.sh +0 -0
  481. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/build_imginfo.sh +0 -0
  482. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/deploy/create_venv.py +0 -0
  483. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  484. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/deploy/test_deploy.py +0 -0
  485. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/dev_jaeger_container.sh +0 -0
  486. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/dls_dev_env.sh +0 -0
  487. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/docker/entrypoint.sh +0 -0
  488. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/docker/healthcheck.sh +0 -0
  489. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/docker/i03-compose.yml +0 -0
  490. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/generate_plantuml.py +0 -0
  491. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/graylog/Dockerfile +0 -0
  492. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/graylog/tcp_input.json +0 -0
  493. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/procserv_ioc_start.sh +0 -0
  494. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/run_imginfo.sh +0 -0
  495. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/setup_graylog.sh +0 -0
  496. {mx_bluesky-1.4.5 → mx_bluesky-1.4.7}/utility_scripts/strip_metafile.py +0 -0
@@ -0,0 +1 @@
1
+ * @DiamondLightSource/developers-mx-daq
@@ -17,6 +17,23 @@ Contributions and issues are most welcome! All issues and pull requests are hand
17
17
 
18
18
  **Work should not be done without an associated ticket describing what the work is**
19
19
 
20
+ ## Developing mx-bluesky and dodal
21
+
22
+ Some issues will span the mx-bluesky repo and the dodal repo. When working on both at the same time, follow these instructions:
23
+ 1. An issue is created for the work, inside mx-bluesky. This issue should describe in as much detail as possible the work that needs to be done. Anyone is free to make a ticket and/or comment on one.
24
+ 2. If a developer is going to do the work they assign themselves to the issue.
25
+ 3. The developer makes a new branch in mx-bluesky with the format `issue_short_description` e.g. `122_create_a_contributing_file`. The developer also creates a new branch in dodal, with the format `mx_bluesky_issue_short_description` - the same as the mx-bluesky branch name but with `mx_bluesky_` in front. (External developers are also welcome to make forks)
26
+ 4. The developer does the work on these branches, adding their work in small commits. Commit messages should be informative and prefixed with the issue number e.g. `(#122) Added contributing file`.
27
+ 5. Once the developer has done the final commit in both repos, they find the latest commit SHA in the dodal repo using `git log`. In `mx-bluesky/pyproject.toml`, the developer changes `dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@{dodal_commmit_SHA}` using the SHA they just found.
28
+ 6. The developer commits and pushes this final change on mx-bluesky.
29
+ 7. The developer submits a dodal PR for the work they have done in the dodal repo. The pull request should start with `Fixes #issue_num` e.g. `Fixes #122`, and should link to the issue created in mx-bluesky. The developer should also add some background on how the reviewer might test the change.
30
+ 8. The developer submits a mx-bluesky PR for the work they have done in the mx-bluesky repo. The pull request should start with `Fixes #issue_num` e.g. `Fixes #122`. This PR should link to the dodal PR just created with something like "Also needs #456". Again, the developer should add some background on how the reviewer might test the change.
31
+ 9. If the developer has a particular person in mind to review the work they should assign that person to the PRs as a reviewer.
32
+ 10. The reviewer and developer go back and forth on the code until the reviewer approves it. (See "Reviewing Work" below)
33
+ 11. Once the work is approved on both PRs, the original developer merges them. The PRs should be merged at the same time.
34
+
35
+ **Work should not be done without an associated ticket describing what the work is**
36
+
20
37
  ## Reviewing Work
21
38
 
22
39
  **Work must be reviewed by another developer before it can be merged**. Remember that work is reviewed for a number of reasons:
@@ -36,6 +53,8 @@ Developers are welcome to ignore **nit** comments if they wish and can choose no
36
53
 
37
54
  For minor changes to code reviewers are welcome to make the changes themselves but in this case the original developer should then recheck what the reviewer has done.
38
55
 
56
+ When beginning to review a PR, it is recommended to assign the PR to yourself on GitHub so that other developers know that this code is already being reviewed. If you decide you cannot complete the review, remember to unassign yourself from this PR to let others know.
57
+
39
58
  ## Issue or Discussion?
40
59
 
41
60
  Github also offers [discussions](https://github.com/DiamondLightSource/mx-bluesky/discussions) as a place to ask questions and share ideas. If
@@ -12,6 +12,7 @@ env/
12
12
  # Output
13
13
  *.png
14
14
  !docs/*.png
15
+ !tests/test_data/**/*.png
15
16
 
16
17
  # Distribution / packaging
17
18
  .Python
@@ -6,7 +6,7 @@ repos:
6
6
  args: ["--maxkb=500"]
7
7
  - id: check-yaml
8
8
  args: ["--allow-multiple-documents"]
9
- exclude: ^helmchart/
9
+ exclude: ^helmcharts/
10
10
  - id: check-merge-conflict
11
11
  - id: end-of-file-fixer
12
12
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.4.5
3
+ Version: 1.4.7
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
@@ -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.9.0a2
241
- Requires-Dist: bluesky>=1.13
242
- Requires-Dist: dls-dodal==1.40.0
241
+ Requires-Dist: bluesky>=1.13.1
242
+ Requires-Dist: dls-dodal==1.44.0
243
243
  Provides-Extra: dev
244
244
  Requires-Dist: black; extra == "dev"
245
245
  Requires-Dist: build; extra == "dev"
@@ -266,6 +266,7 @@ Requires-Dist: tox-direct; extra == "dev"
266
266
  Requires-Dist: tox; extra == "dev"
267
267
  Requires-Dist: types-mock; extra == "dev"
268
268
  Requires-Dist: types-requests; extra == "dev"
269
+ Dynamic: license-file
269
270
 
270
271
  mx-bluesky
271
272
  ===========================
@@ -284,7 +285,7 @@ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
284
285
  Getting Started
285
286
  ===============
286
287
 
287
- To get started with developing this repo at DLS run ``dls_dev_setup.sh``.
288
+ To get started with developing this repo at DLS run ``./utility_scripts/dls_dev_env.sh``.
288
289
 
289
290
  If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
290
291
 
@@ -15,7 +15,7 @@ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
15
15
  Getting Started
16
16
  ===============
17
17
 
18
- To get started with developing this repo at DLS run ``dls_dev_setup.sh``.
18
+ To get started with developing this repo at DLS run ``./utility_scripts/dls_dev_env.sh``.
19
19
 
20
20
  If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
21
21
 
@@ -0,0 +1,27 @@
1
+ Callbacks and Run Logic
2
+ ========================
3
+
4
+ Callbacks are used to trigger external services:
5
+
6
+ - Ispyb deposition
7
+ - Nexus writing
8
+ - Zocalo triggering
9
+
10
+ These are linked in that to trigger zocalo you need to have made an ispyb deposition, written a nexus file and have finished writing raw data to disk. Nexus files and ispyb depositions can be made at anytime, we do not need to have necessarily finished writing raw data.
11
+
12
+ Currently, the requirement of needing to have written to ispyb is explicit as the ispyb callback will emit to the zocalo callback. The nexus file is written when the hardware is read during a collection and so its ordering is implied. When instantiated the zocalo callback is told on which plan to trigger and it is up to the plan developer to make sure this plan finishes after data is written to the detector.
13
+
14
+ In general, the ordering flow of when callbacks are triggered is controlled by emitting documents with the expected plan name and data.
15
+
16
+ Rotation Scans
17
+ ---------------------
18
+
19
+ There are currently two ways of doing rotation scans. A single scan creates one hdf file, one ispyb deposition and then triggers zocalo once. Multi rotation scans create one hdf file for all rotations but then N nexus files, N ispyb depositions and triggers zocalo N times.
20
+
21
+ Single scans will be removed in https://github.com/DiamondLightSource/mx-bluesky/issues/847
22
+
23
+ For multi rotations this is does by starting 1+2*N different runs:
24
+
25
+ 1. ``CONST.PLAN.ROTATION_MULTI``: This is emitted once for the whole multiple rotation. It is used by the nexus callback to get the full number of images and meta_data_run_number so that it knows which hdf file to use. When this is finished zocalo end is triggered.
26
+ 2. ``CONST.PLAN.ROTATION_OUTER``: Emitted N times, inside a ``CONST.PLAN.ROTATION_MULTI`` run. This is used to create the initial ispyb deposition and create the nexus writer (but not actually write the file)
27
+ 3. ``CONST.PLAN.ROTATION_MAIN``: Emitted N times, inside ``CONST.PLAN.ROTATION_OUTER`` run. Used to finish writing to ispyb (i.e. write success/failure) and to send collection information to zocalo.
@@ -4,8 +4,8 @@ Get Started with mx-bluesky
4
4
  Development Environment
5
5
  =======================
6
6
 
7
- - Clone this repo: ``git@github.com:DiamondLightSource/mx-bluesky.git``
8
- - To install a ``dev`` environment run ``./dls_dev_setup.sh``. Note that this will also clone and install a local version of ``dodal``, as the ``mx-bluesky`` package makes use of the devices instantiated there.
7
+ - Clone this repo using SSH: ``git clone git@github.com:DiamondLightSource/mx-bluesky.git``
8
+ - To install a ``dev`` environment, from the top level ``mx-bluesky`` directory, run ``./utility_scripts/dls_dev_env.sh``. Note that this will also clone and install a local version of ``dodal``, as the ``mx-bluesky`` package makes use of the devices instantiated there.
9
9
 
10
10
  The recommended IDE is vscode, and a workspace which includes dodal has been set up in the repo. This can be used on a DLS machine as follows:
11
11
 
@@ -41,6 +41,7 @@ Documentation is split into four categories, and each is also accessible from li
41
41
  :maxdepth: 1
42
42
 
43
43
  explanations/decisions
44
+ explanations/callback_and_run_logic
44
45
 
45
46
  +++
46
47
 
@@ -0,0 +1,44 @@
1
+ Update the PandA IOC
2
+ =====================
3
+
4
+ The IOC for the PandA can sometimes get out of sync with the production version of Ophyd-Async. Here is how to update it
5
+
6
+ Check if the IOC needs updating
7
+ """"""""""""""""""""""""""""""""
8
+
9
+ - Check the minimum panda IOC version required in the version of ophyd-async used in Hyperion's release version. This can be found in the ``MINIMUM_PANDA_IOC`` constant in `_hdf_panda.py <https://github.com/bluesky/ophyd-async/blob/main/src/ophyd_async/fastcs/panda/_hdf_panda.py>`_
10
+
11
+ - In a terminal:
12
+
13
+ .. code-block:: bash
14
+
15
+ cd /dls_sw/work/R3.14.12.7/ioc/BL03I/BL03I-PY-IOC-02
16
+ source venv/bin/activate
17
+ pip freeze | grep pandablocks-ioc
18
+
19
+ Note that the IOC location will soon be moving to ``prod`` instead of ``work``.
20
+
21
+ - Compare the version from step one
22
+
23
+ Updating the IOC
24
+ """"""""""""""""""""""""""
25
+
26
+ - Update the Python IOC repo in the venv:
27
+
28
+ .. code-block:: bash
29
+
30
+ cd /dls_sw/work/R3.14.12.7/ioc/BL03I/BL03I-PY-IOC-02
31
+ source venv/bin/activate
32
+ pip install --upgrade pandablocks-ioc=={desired version}
33
+
34
+
35
+ - After making sure the beamline isn't in use, restart the IOC:
36
+
37
+ .. code-block:: bash
38
+
39
+ module load controls-tools
40
+
41
+ console BL03I-PY-IOC-02
42
+
43
+ - Press ``ctrl+x``
44
+ - Disconnect by pressing ``ctrl+e``, then press ``c``, then press ``.``
@@ -15,7 +15,20 @@ Documentation specific for the Hyperion module within MX-Bluesky
15
15
  reference/param-hierarchy
16
16
  reference/readme
17
17
  deploying-hyperion
18
+ system-tests
18
19
 
19
20
  +++
20
21
 
21
22
  Technical reference material on standards in use.
23
+
24
+ .. grid-item-card:: :material-regular:`task;3em`
25
+
26
+ .. toctree::
27
+ :caption: How-to Guides
28
+ :maxdepth: 1
29
+
30
+ how-to/update-panda-ioc
31
+
32
+ +++
33
+
34
+ Practical step-by-step guides for day-to-day dev tasks.
@@ -0,0 +1,20 @@
1
+ System Tests
2
+ ============
3
+
4
+ The system tests are run by a project hosted in a GitLab private repository, `Hyperion System Testing`_.
5
+
6
+ This contains a ``.gitlab-ci`` pipeline that defines a job that runs the tests.
7
+
8
+ System Test Images
9
+ ------------------
10
+
11
+ The system tests require a number of container images to run:
12
+
13
+ * The test runner image
14
+ * An ISPyB MariaDB database server image
15
+ * An ExpEye image
16
+
17
+ It is expected that these images should need to change only infrequently and builds are triggered
18
+ manually as needed - see the Hyperion System Testing project for how to rebuild them and how to trigger the tests.
19
+
20
+ .. _`Hyperion System Testing`: https://gitlab.diamond.ac.uk/MX-GDA/hyperion-system-testing
@@ -14,13 +14,13 @@ spec:
14
14
  spec:
15
15
  securityContext:
16
16
  # gda2
17
- runAsUser: {{ .Values.hyperion.runAsUser }}
18
- runAsGroup: {{ .Values.hyperion.runAsGroup }}
19
- supplementalGroups: {{ .Values.hyperion.supplementalGroups }}
17
+ runAsUser: {{ .Values.application.runAsUser }}
18
+ runAsGroup: {{ .Values.application.runAsGroup }}
19
+ supplementalGroups: {{ .Values.application.supplementalGroups }}
20
20
  volumes:
21
21
  - name: dls-sw-bl
22
22
  hostPath:
23
- path: "/dls_sw/{{ .Values.hyperion.beamline }}"
23
+ path: "/dls_sw/{{ .Values.application.beamline }}"
24
24
  type: Directory
25
25
  - name: dls-sw-apps
26
26
  hostPath:
@@ -33,15 +33,15 @@ spec:
33
33
  # Bind some source folders for easier debugging
34
34
  - name: src
35
35
  hostPath:
36
- path: "{{ .Values.hyperion.projectDir }}/src"
36
+ path: "{{ .Values.application.projectDir }}/src"
37
37
  type: Directory
38
38
  - name: tests
39
39
  hostPath:
40
- path: "{{ .Values.hyperion.projectDir }}/tests"
40
+ path: "{{ .Values.application.projectDir }}/tests"
41
41
  type: Directory
42
42
  - name: utility-scripts
43
43
  hostPath:
44
- path: "{{ .Values.hyperion.projectDir }}/utility_scripts"
44
+ path: "{{ .Values.application.projectDir }}/utility_scripts"
45
45
  type: Directory
46
46
  - name: dodal
47
47
  hostPath:
@@ -50,14 +50,14 @@ spec:
50
50
  - name: logs
51
51
  hostPath:
52
52
  type: Directory
53
- path: "{{ .Values.hyperion.logDir }}"
53
+ path: "{{ .Values.application.logDir }}"
54
54
  - name: data
55
55
  hostPath:
56
56
  type: Directory
57
- path: "{{ .Values.hyperion.dataDir }}"
57
+ path: "{{ .Values.application.dataDir }}"
58
58
  containers:
59
59
  - name: hyperion
60
- image: {{ .Values.hyperion.imageRepository}}/mx-bluesky:{{ .Values.hyperion.appVersion }}
60
+ image: {{ .Values.application.imageRepository}}/mx-bluesky:{{ .Values.application.appVersion }}
61
61
  securityContext:
62
62
  capabilities:
63
63
  # Required for hostNetwork
@@ -103,29 +103,29 @@ spec:
103
103
  memory: "1Gi"
104
104
  ports:
105
105
  - name: hyperion-api
106
- containerPort: {{ .Values.hyperion.containerPort }}
106
+ containerPort: {{ .Values.application.containerPort }}
107
107
  protocol: TCP
108
108
  env:
109
109
  - name: LOG_DIR
110
110
  value: /var/log/bluesky
111
111
  - name: BEAMLINE
112
- value: "{{ .Values.hyperion.beamline }}"
113
- {{- if not .Values.hyperion.dev }}
112
+ value: "{{ .Values.application.beamline }}"
113
+ {{- if not .Values.application.dev }}
114
114
  - name: ZOCALO_GO_USER
115
115
  value: "gda2"
116
116
  - name: ZOCALO_GO_HOSTNAME
117
- value: "{{ .Values.hyperion.beamline }}-control"
117
+ value: "{{ .Values.application.beamline }}-control"
118
118
  - name: ZOCALO_CONFIG
119
119
  value: "/dls_sw/apps/zocalo/live/configuration.yaml"
120
120
  - name: ISPYB_CONFIG_PATH
121
- value: "/dls_sw/dasc/mariadb/credentials/ispyb-hyperion-{{ .Values.hyperion.beamline }}.cfg"
121
+ value: "/dls_sw/dasc/mariadb/credentials/ispyb-hyperion-{{ .Values.application.beamline }}.cfg"
122
122
  {{- end }}
123
123
  readinessProbe:
124
124
  exec:
125
125
  command: [ "/app/hyperion/utility_scripts/docker/healthcheck.sh" ]
126
126
  periodSeconds: 5
127
127
  volumeMounts:
128
- - mountPath: "/dls_sw/{{ .Values.hyperion.beamline }}"
128
+ - mountPath: "/dls_sw/{{ .Values.application.beamline }}"
129
129
  name: dls-sw-bl
130
130
  readOnly: true
131
131
  mountPropagation: HostToContainer
@@ -147,6 +147,6 @@ spec:
147
147
  name: dodal
148
148
  - mountPath: "/var/log/bluesky"
149
149
  name: logs
150
- - mountPath: "/dls/{{ .Values.hyperion.beamline }}/data"
150
+ - mountPath: "/dls/{{ .Values.application.beamline }}/data"
151
151
  name: data
152
152
  hostNetwork: true
@@ -1,4 +1,4 @@
1
- {{- if not .Values.hyperion.dev }}
1
+ {{- if not .Values.application.dev }}
2
2
  apiVersion: networking.k8s.io/v1
3
3
  kind: Ingress
4
4
  metadata:
@@ -7,9 +7,9 @@ spec:
7
7
  ingressClassName: nginx
8
8
  tls:
9
9
  - hosts:
10
- - {{ .Values.hyperion.externalHostname }}
10
+ - {{ .Values.application.externalHostname }}
11
11
  rules:
12
- - host: {{ .Values.hyperion.externalHostname }}
12
+ - host: {{ .Values.application.externalHostname }}
13
13
  http:
14
14
  paths:
15
15
  - path: /
@@ -18,6 +18,6 @@ spec:
18
18
  service:
19
19
  name: hyperion-svc # this must match the name of the service you want to target
20
20
  port:
21
- number: {{ .Values.hyperion.containerPort }}
21
+ number: {{ .Values.application.containerPort }}
22
22
  {{- end }}
23
23
 
@@ -3,15 +3,15 @@ kind: Service
3
3
  metadata:
4
4
  name: hyperion-svc
5
5
  spec:
6
- {{- if .Values.hyperion.dev }}
6
+ {{- if .Values.application.dev }}
7
7
  type: LoadBalancer
8
8
  {{- else }}
9
9
  type: ClusterIP
10
10
  {{- end }}
11
11
  ports:
12
12
  - name: hyperion-api
13
- port: {{ .Values.hyperion.servicePort }}
13
+ port: {{ .Values.application.servicePort }}
14
14
  protocol: TCP
15
- targetPort: {{ .Values.hyperion.containerPort }}
15
+ targetPort: {{ .Values.application.containerPort }}
16
16
  selector:
17
17
  app: hyperion
@@ -1,4 +1,4 @@
1
- hyperion:
1
+ application:
2
2
  containerPort: 5005
3
3
  servicePort: 80
4
4
  imageRepository: ghcr.io/diamondlightsource
@@ -0,0 +1,6 @@
1
+ apiVersion: v2
2
+ name: redis-to-murko
3
+ description: Redis to murko server
4
+ type: application
5
+ # version of the chart
6
+ version: 0.0.1
@@ -0,0 +1,73 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: {{ .Values.application.name }}-deployment
5
+ spec:
6
+ selector:
7
+ matchLabels:
8
+ app: {{ .Values.application.name }}
9
+ replicas: 1
10
+ template:
11
+ metadata:
12
+ labels:
13
+ app: {{ .Values.application.name }}
14
+ project: murko
15
+ spec:
16
+ securityContext:
17
+ runAsUser: {{ .Values.application.runAsUser }}
18
+ runAsGroup: {{ .Values.application.runAsGroup }}
19
+ supplementalGroups: {{ .Values.application.supplementalGroups }}
20
+ volumes:
21
+ - name: dls-sw-bl
22
+ hostPath:
23
+ path: "/dls_sw/{{ .Values.application.beamline }}"
24
+ type: Directory
25
+ # Bind some source folders for easier debugging
26
+ - name: src
27
+ hostPath:
28
+ path: "{{ .Values.application.projectDir }}/src"
29
+ type: Directory
30
+ - name: tests
31
+ hostPath:
32
+ path: "{{ .Values.application.projectDir }}/tests"
33
+ type: Directory
34
+ - name: utility-scripts
35
+ hostPath:
36
+ path: "{{ .Values.application.projectDir }}/utility_scripts"
37
+ type: Directory
38
+ - name: dodal
39
+ hostPath:
40
+ path: "{{ .Values.dodal.projectDir | clean }}"
41
+ type: Directory
42
+ containers:
43
+ - name: {{ .Values.application.name }}
44
+ image: {{ .Values.application.imageRepository}}/mx-bluesky:{{ .Values.application.appVersion }}
45
+ command: ["redis_to_murko"]
46
+ resources:
47
+ limits:
48
+ cpu: "1"
49
+ memory: "1Gi"
50
+ env:
51
+ - name: LOG_DIR
52
+ value: /var/log/bluesky
53
+ - name: BEAMLINE
54
+ value: "{{ .Values.application.beamline }}"
55
+ - name: VALKEY_PASSWORD
56
+ valueFrom:
57
+ secretKeyRef:
58
+ name: valkey-secret
59
+ key: requirepass
60
+ volumeMounts:
61
+ - mountPath: "/dls_sw/{{ .Values.application.beamline }}"
62
+ name: dls-sw-bl
63
+ readOnly: true
64
+ mountPropagation: HostToContainer
65
+ - mountPath: "/app/hyperion/src"
66
+ name: src
67
+ - mountPath: "/app/hyperion/tests"
68
+ name: tests
69
+ - mountPath: "/app/hyperion/utility_scripts"
70
+ name: utility-scripts
71
+ - mountPath: "/app/dodal"
72
+ name: dodal
73
+ hostNetwork: false
@@ -0,0 +1,17 @@
1
+ podSecurityContext: {}
2
+
3
+ application:
4
+ name: redis-to-murko
5
+ imageRepository: ghcr.io/diamondlightsource
6
+ beamline: i04
7
+ # i03-hyperion user and group
8
+ runAsUser: 36101
9
+ runAsGroup: 36101
10
+ supplementalGroups: []
11
+ # These should be overridden at install time
12
+ projectDir: SET_ON_INSTALL
13
+ appVersion: SET_ON_INSTALL
14
+ dodal:
15
+ projectDir: SET_ON_INSTALL
16
+ service:
17
+ type: NodePort
@@ -1,7 +1,7 @@
1
1
  Fixes #ISSUE
2
2
 
3
3
  Link to dodal PR (if required): #XXX
4
- (remember to update `setup.cfg` with the dodal commit tag if you need it for tests to pass!)
4
+ (remember to update `pyproject.toml` with the dodal commit tag if you need it for tests to pass!)
5
5
 
6
6
  ### Instructions to reviewer on how to test:
7
7
 
@@ -45,8 +45,8 @@ dependencies = [
45
45
  "daq-config-server >= 0.1.1",
46
46
  "ophyd == 1.9.0",
47
47
  "ophyd-async >= 0.9.0a2",
48
- "bluesky >= 1.13",
49
- "dls-dodal == 1.40.0",
48
+ "bluesky >= 1.13.1",
49
+ "dls-dodal == 1.44.0",
50
50
  ]
51
51
 
52
52
 
@@ -94,6 +94,7 @@ hyperion = "mx_bluesky.hyperion.__main__:main"
94
94
  hyperion-callbacks = "mx_bluesky.hyperion.external_interaction.callbacks.__main__:main"
95
95
  hyperion-generate-test-nexus = "mx_bluesky.hyperion.utils.validation:generate_test_nexus"
96
96
  hyperion-populate-test-and-meta-files = "mx_bluesky.hyperion.utils.validation:copy_test_meta_data_files"
97
+ redis_to_murko = "mx_bluesky.beamlines.i04.redis_to_murko_forwarder:main"
97
98
 
98
99
  [project.urls]
99
100
  GitHub = "https://github.com/DiamondLightSource/mx-bluesky"
@@ -119,6 +120,7 @@ markers = [
119
120
  "dlstbx: marks tests as requiring dlstbx (deselect with '-m \"not dlstbx\"')",
120
121
  "skip_log_setup: marks tests so that loggers are not setup before the test.",
121
122
  "skip_in_pycharm: marks test as not working in pycharm testrunner",
123
+ "system_test: marks tests as a system test",
122
124
  ]
123
125
  addopts = """
124
126
  --tb=native -vv --doctest-modules --doctest-glob="*.rst" --durations=10
@@ -128,6 +130,8 @@ filterwarnings = [
128
130
  "error",
129
131
  # Ignore deprecation warning from sqlalchemy
130
132
  "ignore::sqlalchemy.exc.MovedIn20Warning",
133
+ # Remove when there's a fix for https://github.com/DiamondLightSource/ispyb-api/issues/233
134
+ "ignore::sqlalchemy.exc.SADeprecationWarning",
131
135
  # Ignore deprecation warning from setuptools_dso (remove when https://github.com/epics-base/setuptools_dso/issues/36 is released)
132
136
  "ignore::DeprecationWarning:wheel",
133
137
  # Ophyd status objects in tests
@@ -147,6 +151,11 @@ filterwarnings = [
147
151
  "ignore:.*custom tp_new.*:DeprecationWarning",
148
152
  # Ignore warning about deprecated throw() call https://github.com/bluesky/bluesky/issues/1817
149
153
  "ignore:.*signature of throw\\(\\) is deprecated.*:DeprecationWarning",
154
+ # Ignore warning about deprecations in python-workflows encountered during system tests
155
+ # https://github.com/DiamondLightSource/python-workflows/issues/188
156
+ "ignore:.*`Field` should not be instantiated.*:marshmallow.warnings.ChangedInMarshmallow4Warning",
157
+ # https://github.com/bluesky/ophyd-async/issues/838 and https://github.com/seperman/deepdiff/issues/536
158
+ "ignore:Accessing this attribute on the instance is deprecated",
150
159
  ]
151
160
  # Doctest python code in docs, python code in src docstrings, test functions in tests
152
161
  testpaths = "docs src tests/unit_tests"
@@ -165,10 +174,12 @@ legacy_tox_ini = """
165
174
  [tox]
166
175
  skipsdist=True
167
176
 
168
- [testenv:{pre-commit,type-checking,tests,docs}]
177
+ [testenv:{pre-commit,type-checking,tests,docs,systemtests}]
169
178
  # Don't create a virtualenv for the command, requires tox-direct plugin
170
179
  direct = True
171
180
  passenv = *
181
+ setenv =
182
+ systemtests: DODAL_TEST_MODE=true
172
183
  allowlist_externals =
173
184
  pytest
174
185
  pre-commit
@@ -180,6 +191,7 @@ commands =
180
191
  type-checking: pyright src tests {posargs}
181
192
  tests: pytest --cov=mx_bluesky --cov-report term --cov-report xml:cov.xml {posargs}
182
193
  docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html
194
+ systemtests: pytest --junit-xml=systemtests_output.xml -m system_test tests/system_tests
183
195
  commands_pre =
184
196
  docs: /usr/bin/bash -c "{toxinidir}/utility_scripts/generate_plantuml.py > \
185
197
  docs/developer/hyperion/reference/param_hierarchy.puml"
@@ -189,14 +201,17 @@ commands_pre =
189
201
  src = ["src", "tests"]
190
202
  line-length = 88
191
203
  lint.select = [
192
- "B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
193
- "C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
194
- "E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
195
- "F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
196
- "W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
197
- "I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
198
- "UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
199
- "SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
204
+ "B", # flake8-bugbear - https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
205
+ "C4", # flake8-comprehensions - https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
206
+ "E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
207
+ "F", # pyflakes rules - https://docs.astral.sh/ruff/rules/#pyflakes-f
208
+ "W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#warning-w
209
+ "I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
210
+ "UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
211
+ "SLF", # self - https://docs.astral.sh/ruff/settings/#lintflake8-self
212
+ "PT012", # flake8-pytest-style rules - https://docs.astral.sh/ruff/rules/pytest-raises-with-multiple-statements/#pytest-raises-with-multiple-statements-pt012
213
+ "RUF018", # walrus operators in asserts - https://docs.astral.sh/ruff/rules/assignment-in-assert/
214
+ "TID251", # banned api - https://docs.astral.sh/ruff/rules/banned-api/
200
215
  ]
201
216
  lint.extend-ignore = [
202
217
  "E501", # Line too long
@@ -205,8 +220,11 @@ lint.extend-ignore = [
205
220
  [tool.ruff.lint.per-file-ignores]
206
221
  # By default, private member access is allowed in tests
207
222
  # See https://github.com/DiamondLightSource/python-copier-template/issues/154
208
- # Remove this line to forbid private member access in tests
209
- "tests/**/*" = ["SLF001", "B023"]
223
+ # Remove this line to forbid private member access, walrys operators in asserts, banned api in tests
224
+ "tests/**/*" = ["SLF001", "B023", "RUF018", "TID251"]
225
+
226
+ [tool.ruff.lint.flake8-tidy-imports.banned-api]
227
+ "time.sleep".msg = "Use bps.sleep instead. # noqa will disable this rule for that line. See https://github.com/DiamondLightSource/mx-bluesky/issues/925"
210
228
 
211
229
  [tool.mypy]
212
230
  plugins = ["pydantic.mypy"]
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '1.4.5'
16
- __version_tuple__ = version_tuple = (1, 4, 5)
20
+ __version__ = version = '1.4.7'
21
+ __version_tuple__ = version_tuple = (1, 4, 7)
@@ -0,0 +1,13 @@
1
+ from mx_bluesky.beamlines.aithre_lasershaping.check_goniometer_performance import (
2
+ check_omega_performance,
3
+ )
4
+ from mx_bluesky.beamlines.aithre_lasershaping.goniometer_controls import (
5
+ change_goniometer_turn_speed,
6
+ rotate_goniometer_relative,
7
+ )
8
+
9
+ __all__ = [
10
+ "check_omega_performance",
11
+ "change_goniometer_turn_speed",
12
+ "rotate_goniometer_relative",
13
+ ]