mx-bluesky 1.4.8__tar.gz → 1.5.0__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 (531) hide show
  1. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_container.yml +26 -3
  2. mx_bluesky-1.5.0/Dockerfile.blueapi +14 -0
  3. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/PKG-INFO +5 -5
  4. mx_bluesky-1.5.0/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  5. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/code-map/grid_detect_xrc.rst +12 -11
  6. mx_bluesky-1.5.0/docs/developer/general/explanations/containerised_mx_bluesky.rst +14 -0
  7. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/create-a-release.rst +2 -0
  8. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/index.rst +1 -0
  9. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/deploying-hyperion.rst +14 -3
  10. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/index.rst +1 -0
  11. mx_bluesky-1.5.0/docs/developer/hyperion/reference/coordinate-systems.puml +20 -0
  12. mx_bluesky-1.5.0/docs/developer/hyperion/reference/coordinate-systems.rst +76 -0
  13. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/reference/readme.md +8 -11
  14. mx_bluesky-1.5.0/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  15. mx_bluesky-1.5.0/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  16. mx_bluesky-1.5.0/docs/images/motor coordinate systems.odg +0 -0
  17. mx_bluesky-1.5.0/docs/images/motor-coords-omega-0.svg +243 -0
  18. mx_bluesky-1.5.0/docs/images/motor-coords-omega-alpha.svg +277 -0
  19. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/hyperion/templates/deployment.yaml +26 -9
  20. mx_bluesky-1.5.0/helmcharts/hyperion/templates/zocalo-config.yaml +40 -0
  21. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/hyperion/values.yaml +15 -0
  22. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/pyproject.toml +4 -20
  23. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/run_hyperion.sh +31 -30
  24. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/_version.py +2 -2
  25. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +8 -0
  26. mx_bluesky-1.5.0/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +36 -0
  27. mx_bluesky-1.5.0/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +61 -0
  28. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/__init__.py +4 -2
  29. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +6 -1
  30. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/dcid.py +5 -5
  31. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +2 -2
  32. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +9 -9
  33. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +18 -3
  34. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +2 -2
  35. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +14 -14
  36. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +2 -2
  37. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +55 -4
  38. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +9 -2
  39. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -8
  40. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +77 -8
  41. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +9 -14
  42. {mx_bluesky-1.4.8/src/mx_bluesky/hyperion → mx_bluesky-1.5.0/src/mx_bluesky/common}/device_setup_plans/utils.py +4 -14
  43. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/common_flyscan_xray_centre_plan.py +11 -19
  44. mx_bluesky-1.4.8/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +108 -126
  45. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/inner_plans/do_fgs.py +1 -1
  46. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +5 -13
  47. {mx_bluesky-1.4.8/src/mx_bluesky/hyperion → mx_bluesky-1.5.0/src/mx_bluesky/common}/experiment_plans/oav_snapshot_plan.py +8 -2
  48. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +2 -2
  49. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/parameters/components.py +1 -1
  50. {mx_bluesky-1.4.8/src/mx_bluesky/hyperion → mx_bluesky-1.5.0/src/mx_bluesky/common}/parameters/device_composites.py +12 -31
  51. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/utils/log.py +12 -11
  52. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/__main__.py +6 -11
  53. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/baton_handler.py +8 -3
  54. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +2 -7
  55. mx_bluesky-1.5.0/src/mx_bluesky/hyperion/device_setup_plans/utils.py +12 -0
  56. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +5 -5
  57. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +6 -7
  58. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +40 -41
  59. mx_bluesky-1.5.0/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +60 -0
  60. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +40 -10
  61. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +26 -15
  62. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +2 -11
  63. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +8 -6
  64. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +33 -36
  65. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +68 -62
  66. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +1 -1
  67. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +3 -3
  68. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +6 -3
  69. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +2 -2
  70. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/config_server.py +4 -1
  71. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/cli.py +3 -10
  72. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/constants.py +1 -1
  73. mx_bluesky-1.5.0/src/mx_bluesky/hyperion/parameters/device_composites.py +62 -0
  74. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +4 -4
  75. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/rotation.py +9 -8
  76. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/utils/context.py +5 -2
  77. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/utils/validation.py +11 -18
  78. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/PKG-INFO +5 -5
  79. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/SOURCES.txt +32 -19
  80. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/requires.txt +4 -4
  81. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/conftest.py +362 -255
  82. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/conftest.py +2 -2
  83. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +7 -7
  84. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/conftest.py +10 -12
  85. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +20 -18
  86. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +33 -21
  87. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +32 -55
  88. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +20 -19
  89. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +1 -1
  90. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/agamemnon/example_collect_multipin.json +1 -1
  91. mx_bluesky-1.5.0/tests/test_data/agamemnon/example_native.json +84 -0
  92. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +1 -0
  93. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +1 -0
  94. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +2 -2
  95. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +2 -2
  96. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +2 -2
  97. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +1 -1
  98. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +1 -1
  99. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +1 -1
  100. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_parameters.json +1 -1
  101. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +1 -1
  102. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +1 -1
  103. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +2 -2
  104. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +1 -1
  105. mx_bluesky-1.5.0/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +66 -0
  106. mx_bluesky-1.5.0/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +111 -0
  107. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i04/test_thawing.py +3 -3
  108. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/conftest.py +21 -0
  109. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +52 -0
  110. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +21 -1
  111. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +93 -8
  112. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +12 -0
  113. mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +213 -0
  114. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +3 -15
  115. {mx_bluesky-1.4.8/tests/unit_tests/common/plans → mx_bluesky-1.5.0/tests/unit_tests/common/experiment_plans}/test_common_flyscan_xray_centre_plan.py +44 -64
  116. mx_bluesky-1.5.0/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +462 -0
  117. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +2 -2
  118. {mx_bluesky-1.4.8/tests/unit_tests/hyperion → mx_bluesky-1.5.0/tests/unit_tests/common}/experiment_plans/test_oav_snapshot_plan.py +7 -6
  119. {mx_bluesky-1.4.8/tests/unit_tests/common/plans → mx_bluesky-1.5.0/tests/unit_tests/common/experiment_plans}/test_read_hardware.py +3 -3
  120. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +6 -5
  121. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +4 -2
  122. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +15 -15
  123. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +36 -29
  124. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +47 -33
  125. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +4 -2
  126. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +17 -14
  127. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/parameters/test_components.py +8 -0
  128. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/test_do_fgs.py +11 -5
  129. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/test_write_sample_status.py +2 -2
  130. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/utils/test_log.py +27 -32
  131. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/conftest.py +105 -7
  132. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/conftest.py +17 -27
  133. mx_bluesky-1.5.0/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +106 -0
  134. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +1 -1
  135. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/conftest.py +3 -67
  136. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +15 -139
  137. mx_bluesky-1.5.0/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +228 -0
  138. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +265 -55
  139. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +70 -51
  140. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +3 -2
  141. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +28 -17
  142. mx_bluesky-1.5.0/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +1615 -0
  143. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +2 -2
  144. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +36 -30
  145. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +11 -10
  146. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/conftest.py +7 -12
  147. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +1 -2
  148. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +3 -1
  149. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +155 -113
  150. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +38 -45
  151. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +19 -13
  152. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/test_baton_handler.py +19 -3
  153. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/test_main_system.py +65 -46
  154. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/build_docker_image.sh +2 -2
  155. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +7 -1
  156. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/dls_dev_env.sh +0 -1
  157. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/docker/entrypoint.sh +0 -13
  158. mx_bluesky-1.4.8/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  159. mx_bluesky-1.4.8/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -18
  160. mx_bluesky-1.4.8/src/mx_bluesky/common/device_setup_plans/check_beamstop.py +0 -27
  161. mx_bluesky-1.4.8/tests/test_data/agamemnon/example_collect.json +0 -83
  162. mx_bluesky-1.4.8/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -39
  163. mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -95
  164. mx_bluesky-1.4.8/tests/unit_tests/common/device_setup_plans/test_check_beamstop.py +0 -24
  165. mx_bluesky-1.4.8/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -125
  166. mx_bluesky-1.4.8/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +0 -322
  167. mx_bluesky-1.4.8/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +0 -752
  168. mx_bluesky-1.4.8/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +0 -873
  169. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.copier-answers.yml +0 -0
  170. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.coveragerc +0 -0
  171. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.devcontainer/Dockerfile +0 -0
  172. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.devcontainer/devcontainer.json +0 -0
  173. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.dockerignore +0 -0
  174. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/CODEOWNERS +0 -0
  175. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/CONTRIBUTING.md +0 -0
  176. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  177. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  178. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/actions/install_requirements/action.yml +0 -0
  179. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/actions/verify-nexus/Dockerfile +0 -0
  180. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/actions/verify-nexus/action.yml +0 -0
  181. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  182. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/dependabot.yml +0 -0
  183. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/pages/index.html +0 -0
  184. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/pages/make_switcher.py +0 -0
  185. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_check.yml +0 -0
  186. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_dist.yml +0 -0
  187. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_docs.yml +0 -0
  188. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_pypi.yml +0 -0
  189. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_release.yml +0 -0
  190. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_test.yml +0 -0
  191. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/_tox.yml +0 -0
  192. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/ci.yml +0 -0
  193. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.github/workflows/periodic.yml +0 -0
  194. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.gitignore +0 -0
  195. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.pre-commit-config.yaml +0 -0
  196. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/extensions.json +0 -0
  197. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/launch.json +0 -0
  198. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/mx-bluesky.code-workspace +0 -0
  199. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  200. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/settings.json +0 -0
  201. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/.vscode/tasks.json +0 -0
  202. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/Dockerfile +0 -0
  203. /mx_bluesky-1.4.8/Dockerfile.release → /mx_bluesky-1.5.0/Dockerfile.hyperion +0 -0
  204. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/LICENSE +0 -0
  205. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/README.rst +0 -0
  206. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/catalog-info.yaml +0 -0
  207. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/codecov.yml +0 -0
  208. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/conftest.py +0 -0
  209. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/_api.rst +0 -0
  210. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/_templates/custom-module-template.rst +0 -0
  211. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/conf.py +0 -0
  212. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/code-map/index.rst +0 -0
  213. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  214. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  215. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  216. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  217. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/explanations/decisions.rst +0 -0
  218. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/contribute.rst +0 -0
  219. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  220. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  221. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  222. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  223. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  224. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  225. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/how-to/get-started.rst +0 -0
  226. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/reference/standards.rst +0 -0
  227. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/general/tutorials/profile-tests.rst +0 -0
  228. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  229. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  230. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  231. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/hyperion/system-tests.rst +0 -0
  232. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/index.rst +0 -0
  233. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  234. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  235. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/murko-integration/index.rst +0 -0
  236. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  237. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  238. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  239. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +0 -0
  240. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  241. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  242. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  243. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/images/dls-favicon.ico +0 -0
  244. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/images/dls-logo.svg +0 -0
  245. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/docs/index.rst +0 -0
  246. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/hyperion/Chart.yaml +0 -0
  247. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/hyperion/templates/ingress.yaml +0 -0
  248. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/hyperion/templates/service.yaml +0 -0
  249. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/redis-to-murko/Chart.yaml +0 -0
  250. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/redis-to-murko/templates/deployment.yaml +0 -0
  251. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/helmcharts/redis-to-murko/values.yaml +0 -0
  252. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  253. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  254. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  255. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  256. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/linkcheck.yml +0 -0
  257. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  258. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  259. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/pin_versions.py +0 -0
  260. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  261. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  262. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  263. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/test_data/setup.cfg +0 -0
  264. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  265. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  266. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/hyperion_other/workflows/test_pin_versions.py +0 -0
  267. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/pull_request_template.md +0 -0
  268. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/run_hyperion_in_podman.sh +0 -0
  269. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/setup.cfg +0 -0
  270. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/__init__.py +0 -0
  271. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/__main__.py +0 -0
  272. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/__init__.py +0 -0
  273. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  274. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  275. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
  276. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +0 -0
  277. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i04/thawing_plan.py +0 -0
  278. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  279. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  280. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  281. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  282. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  283. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  284. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  285. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  286. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  287. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  288. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  289. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  290. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  291. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  292. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  293. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  294. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
  295. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
  296. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  297. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  298. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  299. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  300. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  301. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  302. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  303. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  304. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  305. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  306. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  307. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  308. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  309. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  310. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  311. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  312. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  313. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  314. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  315. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  316. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  317. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
  318. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  319. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/__init__.py +0 -0
  320. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  321. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  322. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  323. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  324. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/__init__.py +0 -0
  325. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  326. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/inner_plans/__init__ .py +0 -0
  327. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/read_hardware.py +0 -0
  328. {mx_bluesky-1.4.8/src/mx_bluesky/common/plans → mx_bluesky-1.5.0/src/mx_bluesky/common/experiment_plans}/write_sample_status.py +0 -0
  329. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
  330. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
  331. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  332. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  333. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +0 -0
  334. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
  335. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  336. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
  337. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  338. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  339. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  340. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  341. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  342. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
  343. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  344. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  345. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  346. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
  347. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
  348. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
  349. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
  350. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  351. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
  352. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  353. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/parameters/constants.py +0 -0
  354. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  355. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/preprocessors/__init__.py +0 -0
  356. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
  357. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/protocols/__init__.py +0 -0
  358. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  359. {mx_bluesky-1.4.8/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.5.0/src/mx_bluesky/common/utils}/__init__.py +0 -0
  360. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/utils/context.py +0 -0
  361. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  362. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/utils/tracing.py +0 -0
  363. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/utils/utils.py +0 -0
  364. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/common/xrc_result.py +0 -0
  365. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/definitions.py +0 -0
  366. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/__init__.py +0 -0
  367. {mx_bluesky-1.4.8/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.5.0/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  368. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +0 -0
  369. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
  370. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  371. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  372. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +0 -0
  373. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +0 -0
  374. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  375. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  376. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +0 -0
  377. {mx_bluesky-1.4.8/tests → mx_bluesky-1.5.0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  378. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  379. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  380. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
  381. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  382. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  383. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  384. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  385. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  386. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  387. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  388. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  389. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/start_jupyter.sh +0 -0
  390. {mx_bluesky-1.4.8/tests/system_tests → mx_bluesky-1.5.0/tests}/__init__.py +0 -0
  391. {mx_bluesky-1.4.8/tests/system_tests/hyperion → mx_bluesky-1.5.0/tests/system_tests}/__init__.py +0 -0
  392. {mx_bluesky-1.4.8/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.5.0/tests/system_tests/hyperion}/__init__.py +0 -0
  393. {mx_bluesky-1.4.8/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.5.0/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  394. {mx_bluesky-1.4.8/tests/unit_tests → mx_bluesky-1.5.0/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  395. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
  396. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  397. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  398. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/README.md +0 -0
  399. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  400. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  401. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  402. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  403. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  404. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  405. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  406. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  407. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  408. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  409. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  410. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/scratch/README +0 -0
  411. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_OAVCentring.json +0 -0
  412. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  413. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  414. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_beamline_parameters.txt +0 -0
  415. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  416. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_config.cfg +0 -0
  417. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  418. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  419. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  420. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  421. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  422. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  423. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  424. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_det_dist_converter.txt +0 -0
  425. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_display.configuration +0 -0
  426. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  427. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  428. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  429. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  430. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  431. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  432. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  433. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  434. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  435. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  436. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  437. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_lookup_table.txt +0 -0
  438. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/test_mirror_focus.json +0 -0
  439. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  440. {mx_bluesky-1.4.8/tests/unit_tests/beamlines → mx_bluesky-1.5.0/tests/unit_tests}/__init__.py +0 -0
  441. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24 → mx_bluesky-1.5.0/tests/unit_tests/beamlines}/__init__.py +0 -0
  442. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  443. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
  444. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
  445. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  446. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  447. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  448. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  449. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  450. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  451. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  452. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +0 -0
  453. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  454. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  455. {mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  456. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  457. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
  458. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  459. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  460. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  461. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  462. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  463. {mx_bluesky-1.4.8/tests/unit_tests/common → mx_bluesky-1.5.0/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  464. {mx_bluesky-1.4.8/tests/unit_tests/common/experiment_plans → mx_bluesky-1.5.0/tests/unit_tests/common}/__init__.py +0 -0
  465. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  466. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
  467. {mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction → mx_bluesky-1.5.0/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
  468. {mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.5.0/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  469. {mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.5.0/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  470. {mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.5.0/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  471. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  472. {mx_bluesky-1.4.8/tests/unit_tests/common/parameters → mx_bluesky-1.5.0/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  473. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  474. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  475. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +0 -0
  476. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  477. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  478. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  479. {mx_bluesky-1.4.8/src/mx_bluesky → mx_bluesky-1.5.0/tests/unit_tests}/common/external_interaction/test_config_server.py +0 -0
  480. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  481. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  482. {mx_bluesky-1.4.8/tests/unit_tests/common/plans → mx_bluesky-1.5.0/tests/unit_tests/common/parameters}/__init__.py +0 -0
  483. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/preprocessors/__init__.py +0 -0
  484. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
  485. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/common/utils/__init__.py +0 -0
  486. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/__init__.py +0 -0
  487. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/__init__.py +0 -0
  488. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -0
  489. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  490. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  491. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  492. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/__init__.py +0 -0
  493. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  494. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  495. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  496. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
  497. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  498. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  499. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  500. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
  501. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  502. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/__init__.py +0 -0
  503. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  504. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  505. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  506. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  507. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  508. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  509. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  510. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  511. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/test_utils.py +0 -0
  512. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  513. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  514. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  515. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/tests/unit_tests/test_cli.py +0 -0
  516. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/beam_off_trickery.sh +0 -0
  517. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/build_imginfo.sh +0 -0
  518. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/deploy/create_venv.py +0 -0
  519. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  520. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/deploy/deploy_mx_bluesky.py +0 -0
  521. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/deploy/test_deploy.py +0 -0
  522. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/dev_jaeger_container.sh +0 -0
  523. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/docker/healthcheck.sh +0 -0
  524. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/docker/i03-compose.yml +0 -0
  525. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/generate_plantuml.py +0 -0
  526. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/graylog/Dockerfile +0 -0
  527. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/graylog/tcp_input.json +0 -0
  528. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/procserv_ioc_start.sh +0 -0
  529. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/run_imginfo.sh +0 -0
  530. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/setup_graylog.sh +0 -0
  531. {mx_bluesky-1.4.8 → mx_bluesky-1.5.0}/utility_scripts/strip_metafile.py +0 -0
@@ -30,14 +30,25 @@ jobs:
30
30
  DOCKER_BUILD_RECORD_UPLOAD: false
31
31
  with:
32
32
  context: .
33
- file: Dockerfile.release
33
+ file: Dockerfile.hyperion
34
+ load: true
35
+
36
+ - name: Build and export Dockerfile.blueapi to local cache
37
+ uses: docker/build-push-action@v6
38
+ env:
39
+ DOCKER_BUILD_RECORD_UPLOAD: false
40
+ with:
41
+ context: .
42
+ file: Dockerfile.blueapi
34
43
  load: true
35
44
 
36
45
  - name: Create tags for publishing image
37
46
  id: meta
38
47
  uses: docker/metadata-action@v5
39
48
  with:
40
- images: ghcr.io/${{ github.repository }}
49
+ images: |
50
+ ghcr.io/${{ github.repository }}
51
+ ghcr.io/${{ github.repository }}-blueapi
41
52
  tags: |
42
53
  type=ref,event=tag
43
54
  type=raw,value=latest
@@ -51,7 +62,19 @@ jobs:
51
62
  # Docker cache and publish it
52
63
  with:
53
64
  context: .
54
- file: Dockerfile.release
65
+ file: Dockerfile.hyperion
66
+ push: true
67
+ tags: ${{ steps.meta.outputs.tags }}
68
+ labels: ${{ steps.meta.outputs.labels }}
69
+
70
+ - name: Push Dockerfile.blueapi image to container registry
71
+ if: github.ref_type == 'tag'
72
+ uses: docker/build-push-action@v6
73
+ env:
74
+ DOCKER_BUILD_RECORD_UPLOAD: false
75
+ with:
76
+ context: .
77
+ file: Dockerfile.blueapi
55
78
  push: true
56
79
  tags: ${{ steps.meta.outputs.tags }}
57
80
  labels: ${{ steps.meta.outputs.labels }}
@@ -0,0 +1,14 @@
1
+ # See https://github.com/DiamondLightSource/mx-bluesky/issues/1004
2
+ FROM ghcr.io/diamondlightsource/blueapi:0.10.1
3
+
4
+ ARG DEBIAN_FRONTEND=noninteractive
5
+
6
+ RUN apt update -y && apt upgrade -y
7
+ # Needed for python cv2 dependency
8
+ RUN apt install -y libgl1 libglib2.0-0
9
+
10
+ RUN /venv/bin/pip install mx-bluesky
11
+
12
+ # Needed so that Blueapi's setup-scratch stage has permission to modify dependencies installed
13
+ # in the above pip installation
14
+ RUN mkdir -p /.cache/pip; chmod -R 777 /venv /.cache/pip
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.4.8
3
+ Version: 1.5.0
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
@@ -220,7 +220,7 @@ Requires-Dist: flask-restful
220
220
  Requires-Dist: ispyb
221
221
  Requires-Dist: jupyterlab
222
222
  Requires-Dist: matplotlib
223
- Requires-Dist: nexgen
223
+ Requires-Dist: nexgen>=0.11.0
224
224
  Requires-Dist: numpy
225
225
  Requires-Dist: opencv-python
226
226
  Requires-Dist: opentelemetry-distro
@@ -234,12 +234,12 @@ Requires-Dist: scanspec
234
234
  Requires-Dist: scipy
235
235
  Requires-Dist: semver
236
236
  Requires-Dist: matplotlib
237
- Requires-Dist: blueapi>=0.5.0
238
- Requires-Dist: daq-config-server>=0.1.1
237
+ Requires-Dist: blueapi>=0.11.1
238
+ Requires-Dist: daq-config-server==0.1.1
239
239
  Requires-Dist: ophyd>=1.10.5
240
240
  Requires-Dist: ophyd-async>=0.10.0a2
241
241
  Requires-Dist: bluesky>=1.13.1
242
- Requires-Dist: dls-dodal==1.47.0
242
+ Requires-Dist: dls-dodal==1.49.0
243
243
  Provides-Extra: dev
244
244
  Requires-Dist: black; extra == "dev"
245
245
  Requires-Dist: build; extra == "dev"
@@ -1,9 +1,9 @@
1
1
  Grid Detect Then Xray Centre
2
2
  ============================
3
3
 
4
- The aim of this page is to provide a general overview of the Hyperion ``grid_detect_then_xray_centre_plan``.
4
+ The aim of this page is to provide a general overview of the ``grid_detect_then_xray_centre_plan``.
5
5
 
6
- Most of the code for the ``grid_detect_then_xray_centre_plan`` plan is in ``mx-bluesky/hyperion``. Some code is located in ``mx-bluesky/common`` and `dodal <https://github.com/DiamondLightSource/dodal>`_, and plans are increasingly being generalised and moved into ``mx-bluesky/common`` where possible. Therefore, the structure of the codebase is subject to change and this document should be updated accordingly.
6
+ The code for the ``grid_detect_then_xray_centre`` plan is now entirely ``mx-bluesky/common/`` and `dodal <https://github.com/DiamondLightSource/dodal>`_. There is a new Hyperion entry point, ``hyperion_grid_detect_then_xray_centre`` which calls this common plan, setting up Hyperion features for it. There will soon be an i04 entry point that calls the common plan in the same way.
7
7
 
8
8
  There are then a number of plans that make up the ``grid_detect_then_xray_centre_plan`` plan. Some important ones:
9
9
 
@@ -11,7 +11,7 @@ There are then a number of plans that make up the ``grid_detect_then_xray_centre
11
11
  * :ref:`flyscan_xray_centre_plan<flyscan>` - Triggers a hardware-based grid scan and moves to the X-ray centre as returned from ``zocalo``.
12
12
  * :ref:`grid_detect_then_xray_centre_plan<grid-detect-xrc>` - This top-level plan performs an :ref:`OAV grid detection <grid-detect>` then a :ref:`flyscan x-ray centre <flyscan>`.
13
13
 
14
- The diagram below shows all the plans that make up the ``grid_detect_then_xray_centre_plan``. The colors indicate where these plans can be found.
14
+ The diagram below shows all the plans that make up the ``grid_detect_then_xray_centre_plan``.
15
15
 
16
16
  .. image:: grid_detect_then_xray_centre.drawio.png
17
17
 
@@ -20,21 +20,22 @@ The diagram below shows all the plans that make up the ``grid_detect_then_xray_c
20
20
  Grid Detect Then Xray Centre Plan
21
21
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
22
 
23
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py>`__ does the following, in roughly this order:
23
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py>`__ does the following, in roughly this order:
24
24
 
25
25
  1. If called standalone, start preparing for data collection.
26
- 2. Perform an :ref:`OAV grid detection <grid-detect>`.
27
- 3. Convert the parameters calculated in step 2 into something we can send to the flyscan X-ray centre.
28
- 4. Move the backlight out, set the aperture to small, and wait for the detector to finish moving.
29
- 5. Perform a :ref:`flyscan X-ray centre <flyscan>`.
30
- 6. Move the sample based on the results of step 5.
26
+ 2. Move the beamstop into place if it isn't already.
27
+ 3. Perform an :ref:`OAV grid detection <grid-detect>`.
28
+ 4. Convert the parameters calculated in step 2 into something we can send to the flyscan X-ray centre.
29
+ 5. Move the backlight out, set the aperture to small, and wait for the detector to finish moving.
30
+ 6. Perform a :ref:`flyscan X-ray centre <flyscan>`.
31
+ 7. Move the sample based on the results of step 5.
31
32
 
32
33
  .. _grid-detect:
33
34
 
34
35
  OAV Grid Detection
35
36
  ~~~~~~~~~~~~~~~~~~
36
37
 
37
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py>`__ does the following, in roughly this order:
38
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py>`__ does the following, in roughly this order:
38
39
 
39
40
  1. Move to omega 0.
40
41
  2. Calculate the 2D grid size using the edge arrays from the OAV.
@@ -48,7 +49,7 @@ OAV Grid Detection
48
49
  Flyscan Xray Centre No Move
49
50
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
50
51
 
51
- `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py>`__ does the following, in roughly this order:
52
+ `This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py>`__ does the following, in roughly this order:
52
53
 
53
54
  1. Move to the desired transmission (and turn off xbpm feedback).
54
55
  2. Move to omega 0.
@@ -0,0 +1,14 @@
1
+ Containerised mx-bluesky
2
+ ========================
3
+
4
+ There are currently two images associated with this repository which are pushed on release: hyperion, and mx-bluesky-blueapi.
5
+
6
+ The Hyperion image exists because Hyperion was developed before BlueAPI was production-ready, and so doesn't use BlueAPI to schedule plans. This image is only really relevant for i03, and currently isn't used in production anywhere
7
+
8
+ The ``mx-bluesky-blueapi`` image exists as a minor extension of BlueAPI's image. BlueAPI's image contains the dependencies of BlueAPI, as well as the dependencies of BlueAPI, which includes dodal. When the BlueAPI service is launched, it will do a ``pip install --no deps`` of the plan repository. For MX, this means ``mx-bluesky`` gets installed without any of its dependencies. For this reason, we have created an ``mx-bluesky-blueapi`` image which installs these extra dependencies.
9
+
10
+ This image can be used with BlueAPI's original helmchart, the only change required in the ``values.yaml`` is::
11
+
12
+ image:
13
+ repository: ghcr.io/diamondlightsource/mx-bluesky-blueapi
14
+ tag: "{desired_version}"
@@ -17,6 +17,8 @@ Release
17
17
  6. You should now manually go through each line on the release notes and read it from the perspective of a beamline scientist. It should be clear from each what the change means to the beamline and should have links to easily find further info.
18
18
  7. Publish the release
19
19
 
20
+ NOTE FOR USING THE MX-BLUESKY-BLUEAPI IMAGE: If using this image with BlueAPI's helmchart for deployment, the version of dodal which is installed will be the version which is pinned in the BlueAPI, rather than what's in mx-bluesky's pyproject.toml. Before releasing, you should pin BlueAPI to a version which uses a dodal version which is compatible with itself AND mx-bluesky. The deployment will fail if BlueAPI has no version which works with the desired dodal version
21
+
20
22
  ------------------------
21
23
  Deciding release numbers
22
24
  ------------------------
@@ -42,6 +42,7 @@ Documentation is split into four categories, and each is also accessible from li
42
42
 
43
43
  explanations/decisions
44
44
  explanations/callback_and_run_logic
45
+ explanations/containerised_mx_bluesky
45
46
 
46
47
  +++
47
48
 
@@ -68,7 +68,17 @@ For further information, see https://github.com/containers/podman/issues/2542
68
68
  Deploying to kubernetes
69
69
  -----------------------
70
70
 
71
- Once the docker image is built, the image can be deployed to kubernetes using the ``deploy_hyperion_to_k8s.sh`` script
71
+ Once the docker image is built, the image can be deployed to kubernetes using the ``deploy_mx_bluesky_app_to_k8s.sh``
72
+ script.
73
+
74
+ Secrets
75
+ ~~~~~~~
76
+
77
+ The deployment requires the following secrets to be created with the corresponding zocalo rabbitmq credentials if they
78
+ are not already present:
79
+
80
+ * ``rmq-creds``
81
+ * ``rmq-api-reader``
72
82
 
73
83
  Production deployment
74
84
  ~~~~~~~~~~~~~~~~~~~~~
@@ -77,12 +87,13 @@ Then create and deploy the helm release
77
87
 
78
88
  ::
79
89
 
80
- ./utility_scripts/deploy/deploy_hyperion_to_k8s.sh --beamline=<beamline> --checkout-to-prod hyperion
90
+ ./utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh --appVersion=x.y.z --beamline=<beamline> --checkout-to-prod hyperion hyperion
81
91
 
82
92
  This will run the ``deploy_mx_bluesky.py`` script to deploy the latest hyperion to ``/dls_sw``.
83
93
  You will be prompted to log into the beamline cluster, then it will create a helm release "hyperion".
84
94
  The source folders will be mounted as bind mounts to allow the pod to pick up changes in production.
85
95
  For production these are expected to be in the normal place defined in ``values.yaml``.
96
+ If the non-k8s deployment of hyperion has already been performed, then omit ``--checkout-to-prod``.
86
97
 
87
98
  Development deployment
88
99
  ~~~~~~~~~~~~~~~~~~~~~~
@@ -93,7 +104,7 @@ above, you install a dev deployment to the cluster you are currently logged into
93
104
 
94
105
  ::
95
106
 
96
- ./utility_scripts/deploy/deploy_hyperion_to_k8s.sh --dev --beamline=<beamline> --repository=<your image repo> hyperion-test
107
+ ./utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh --dev --beamline=<beamline> --repository=<your image repo> hyperion-test hyperion
97
108
 
98
109
 
99
110
  The dev deployment bind-mounts the current ``hyperion`` workspace and ``../dodal`` into the container so that you can
@@ -14,6 +14,7 @@ Documentation specific for the Hyperion module within MX-Bluesky
14
14
 
15
15
  reference/param-hierarchy
16
16
  reference/readme
17
+ reference/coordinate-systems
17
18
  deploying-hyperion
18
19
  system-tests
19
20
 
@@ -0,0 +1,20 @@
1
+ @startuml
2
+ box "Request Coordinate Space"
3
+ participant "GDA/Agamemnon"
4
+ participant Hyperion
5
+ end box
6
+
7
+ boundary omega_flip
8
+
9
+ box "Hardware Coordinate Space"
10
+ participant "Ophyd Devices"
11
+ participant "Nexus File"
12
+ end box
13
+
14
+ "GDA/Agamemnon" -> Hyperion: Hyperion Request\n(Request Coordinate Space)
15
+ Hyperion -> "Ophyd Devices": Rotation Operations
16
+ "Ophyd Devices" -> "Nexus File": PCAP Data
17
+ Hyperion -> "Nexus File": Write metadata\nRecord actual hardware coordinate system
18
+
19
+
20
+ @enduml
@@ -0,0 +1,76 @@
1
+ Hyperion Coordinate Systems
2
+ ===========================
3
+
4
+ Rotation Coordinate Systems
5
+ ---------------------------
6
+
7
+ Within hyperion coordinates are expressed both in requests to Hyperion, in commands issued to hardware, and in the
8
+ output files sent to downstream analysis.
9
+
10
+ .. uml:: coordinate-systems.puml
11
+
12
+ Within requests to Hyperion, the requested rotations are defined with respect to a fixed coordinate system, that is
13
+ defined to be the same for all installations and the intention is that this should be the same as that defined by the
14
+ nexus file format when all axes are in their positive orientations. Thus the same request made across different
15
+ deployments of Hyperion should result in the same physical motion regardless of the coordinate space conventions of
16
+ the underlying hardware.
17
+
18
+ In the ``RotationScan`` parameter class ``scan_width_deg`` is defined to always be positive and the direction is
19
+ defined by ``rotation_direction`` which can be ``POSITIVE`` or ``NEGATIVE``
20
+
21
+ The coordinate systems of the underlying hardware may differ from the request. At Diamond traditionally the omega
22
+ axis is implemented to be in the opposite direction, therefore the commands sent to the hardware are transformed and
23
+ the ``omega_flip`` feature flag controls this behaviour, which by default is set to ``True`` as this is
24
+ generally expected to be required for the beamlines here.
25
+
26
+ In the Nexus output file, there is provision for describing the choice of axis orientations in the nexus file, and
27
+ the ``omega_flip`` parameter affects the omega axis description in ``/entry/sample/transformations/omega``.
28
+ This is especially important as if PCAP position capture is enabled then referenced data files will contain positions
29
+ with respect to this axis.
30
+
31
+
32
+ Gridscan Coordinate System
33
+ --------------------------
34
+
35
+ The diagram below shows how the coordinate system used in the 3D gridscan relates to the beam and sample loop. The blue arrows indicate the direction of the beam. The red grids represent the grids used during the scan.
36
+
37
+ .. image:: ../../../images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png
38
+
39
+ Motors Coordinate System
40
+ ------------------------
41
+
42
+ .. include:: <isogrk1.txt>
43
+
44
+ The diagram below shows the x,y,z directions of the smargon motor coordinate system. The smargon y, z axes change with the :math:`\omega`. x,y,z are measured in millimetres.
45
+
46
+
47
+ * The pin runs from -ve x to +ve x
48
+ * y is +ve towards the ceiling when :math:`\omega = 0`.
49
+ * z is +ve towards the detector/away from the oav and parallel to the beam when :math:`\omega = 0`.
50
+ * The x and y coordinates of the image are also shown, the image feed has x from left to right, y from top to bottom, with the pin to the right of the image.
51
+ * |ohgr| rotates from the y axis at :math:`\omega = 0` (the floor to ceiling).
52
+
53
+ :math:`\omega = 0`
54
+
55
+
56
+ .. image:: ../../../images/motor-coords-omega-0.svg
57
+
58
+
59
+ :math:`\omega = \alpha`
60
+
61
+ .. image:: ../../../images/motor-coords-omega-alpha.svg
62
+
63
+
64
+ OAV Image Coordinate System
65
+ ---------------------------
66
+
67
+ In the OAV image the below coordinate system is used (with units in pixels).
68
+
69
+ .. image:: ../../../images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png
70
+
71
+ Conversion Between OAV Image and Smargon
72
+ ----------------------------------------
73
+
74
+ At :math:`\omega = 0`, :math:`x` and :math:`y` in the camera are antiparallel to :math:`x` and :math:`y` in the smargon. :math:`y` in the camera are is parallel to :math:`z` of the smargon at :math:`x` = :math:`\frac{\pi}{2}`. Then to convert from the camera to smargon coordinate systems we map
75
+
76
+ :math:`x_\text{smargon} = -x, \quad y_\text{smargon} = -y\cos(\omega),\quad z_\text{smargon} = y sin(\omega).`
@@ -25,14 +25,17 @@ Note that because Hyperion makes heavy use of [Dodal](https://github.com/Diamond
25
25
 
26
26
  ## Starting the bluesky runner
27
27
 
28
- The bluesky runner is (re)started in production by GDA when it invokes `run_hyperion.sh`.
28
+ The bluesky runner is (re)started in production by GDA when it invokes `run_hyperion.sh`.
29
29
 
30
- If you wish to attempt to run from a developer machine, then (if you are able to connect all devices)
31
- you may `run_hyperion.sh --dev --beamline=<beamline>`, which will give you a running instance albeit with
32
- read-only devices. The `--dev` flag ensures that logging will not be sent to the production Graylog/output folders.
33
30
 
34
31
  This script will determine which beamline you are on based on the `BEAMLINE` environment variable. If on a
35
- beamline Hyperion will run with `INFO` level logging, sending its logs to both production graylog and to the beamline/log/bluesky/hyperion.log on the shared file system.
32
+ beamline Hyperion will run with `INFO` level logging, sending its logs to both production graylog and to the
33
+ beamline/log/bluesky/hyperion.log on the shared file system.
34
+
35
+ If you wish to attempt to run from a developer machine, then (if you are able to connect all devices)
36
+ you may `run_hyperion.sh --dev --beamline=<beamline>`, which will give you a running instance albeit with
37
+ read-only devices. The `--dev` flag ensures that logging will not be sent to the production Graylog/output folders
38
+ and that hyperion will create mock devices.
36
39
 
37
40
  If in a dev environment Hyperion will log to a local graylog instance instead and into a file at `./tmp/dev/hyperion.log`. A local instance of graylog will need to be running for this to work correctly. To set this up and run up the containers on your local machine run the `setup_graylog.sh` script.
38
41
 
@@ -40,12 +43,6 @@ This uses the generic defaults for a local graylog instance. It can be accessed
40
43
 
41
44
  The hyperion python module can also be run directly without the startup script. It takes the same command line options, including:
42
45
 
43
- `INFO` level logging of the Bluesky event documents can be enabled with the flag
44
-
45
- ```
46
- python -m hyperion --dev --verbose-event-logging
47
- ```
48
-
49
46
  ## Testing
50
47
 
51
48
  Unit tests can be run with `pytest --random-order`. To see log output from tests you can turn on logging with the `--logging` command line option and then use the `-s` command line option to print logs into the console. So to run the unit tests such that all logs are at printed to the terminal, you can use `python -m pytest --random-order --logging -s`. Note that this will likely overrun your terminal buffer, so you can narrow the selection of tests with the `-k "<test name pattern>"` option.