mx-bluesky 1.5.15__tar.gz → 1.6.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.copier-answers.yml +1 -1
  2. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.devcontainer/devcontainer.json +36 -10
  3. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/CONTRIBUTING.md +1 -1
  4. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_container.yml +1 -1
  5. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_dist.yml +7 -6
  6. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_docs.yml +4 -4
  7. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_helm.yml +1 -1
  8. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_pypi.yml +1 -1
  9. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_release.yml +2 -2
  10. mx_bluesky-1.6.3/.github/workflows/_test.yml +45 -0
  11. mx_bluesky-1.6.3/.github/workflows/_tox.yml +28 -0
  12. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/ci.yml +6 -11
  13. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/periodic.yml +1 -1
  14. mx_bluesky-1.6.3/.gitleaks.toml +19 -0
  15. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.pre-commit-config.yaml +27 -1
  16. mx_bluesky-1.6.3/Dockerfile +71 -0
  17. mx_bluesky-1.6.3/Dockerfile.blueapi +24 -0
  18. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/PKG-INFO +3 -31
  19. mx_bluesky-1.6.3/collection_info.json +1 -0
  20. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/tutorials/profile-tests.rst +3 -3
  21. mx_bluesky-1.6.3/docs/developer/hyperion/hyperion-blueapi.rst +65 -0
  22. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/index.rst +1 -0
  23. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +1 -1
  24. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/templates/zocalo-config.yaml +0 -1
  25. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/mx-bluesky-blueapi/templates/zocalo-config.yaml +0 -1
  26. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/pyproject.toml +135 -48
  27. mx_bluesky-1.6.3/renovate.json +41 -0
  28. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/run_hyperion.sh +62 -22
  29. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/Getting started.ipynb +1 -0
  30. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/_version.py +3 -3
  31. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i02_1/parameters/gridscan.py +1 -1
  32. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/__init__.py +4 -0
  33. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +18 -0
  34. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +5 -4
  35. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +329 -0
  36. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +5 -2
  37. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/thawing_plan.py +3 -2
  38. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/__init__.py +13 -0
  39. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/callbacks/metadata_writer.py +86 -0
  40. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/composites.py +35 -0
  41. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py +19 -20
  42. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/rotation_scan_plan.py +292 -0
  43. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py +4 -9
  44. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_internal_acquisition.py +4 -5
  45. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py +15 -19
  46. mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/parameters/constants.py +9 -0
  47. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/dcid.py +3 -3
  48. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py +7 -7
  49. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py +7 -7
  50. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py +3 -3
  51. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +3 -3
  52. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +5 -5
  53. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +7 -7
  54. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py +1 -1
  55. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +2 -24
  56. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/setup_zebra_and_shutter.py +5 -2
  57. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +2 -2
  58. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +1 -0
  59. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +1 -1
  60. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py +2 -2
  61. mx_bluesky-1.6.3/src/mx_bluesky/common/experiment_plans/rotation/rotation_utils.py +127 -0
  62. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +13 -2
  63. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -2
  64. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +1 -1
  65. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +1 -1
  66. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/parameters/components.py +17 -7
  67. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/parameters/constants.py +6 -0
  68. {mx_bluesky-1.5.15/src/mx_bluesky/hyperion → mx_bluesky-1.6.3/src/mx_bluesky/common}/parameters/rotation.py +10 -8
  69. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/preprocessors/preprocessors.py +98 -36
  70. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/__main__.py +55 -22
  71. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/baton_handler.py +24 -64
  72. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/blueapi_config.yaml +17 -0
  73. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/blueapi_dev_config.yaml +16 -0
  74. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/blueapi_plans/__init__.py +96 -0
  75. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +9 -7
  76. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +1 -1
  77. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +1 -1
  78. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +3 -1
  79. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +1 -0
  80. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.py +2 -2
  81. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +3 -1
  82. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +17 -6
  83. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +2 -5
  84. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +3 -3
  85. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +14 -128
  86. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +4 -4
  87. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py +19 -6
  88. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +3 -8
  89. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +121 -47
  90. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +3 -1
  91. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +3 -1
  92. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +6 -3
  93. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/external_interaction/callbacks/stomp/dispatcher.py +33 -0
  94. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/in_process_runner.py +132 -0
  95. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/parameters/cli.py +96 -0
  96. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/parameters/components.py +23 -0
  97. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/constants.py +2 -9
  98. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/device_composites.py +1 -1
  99. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +3 -1
  100. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/plan_runner.py +86 -0
  101. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/plan_runner_api.py +3 -4
  102. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/supervisor/__init__.py +3 -0
  103. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/supervisor/_supervisor.py +116 -0
  104. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/supervisor/client_config.yaml +6 -0
  105. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/supervisor/supervisor_config.yaml +10 -0
  106. mx_bluesky-1.6.3/src/mx_bluesky/hyperion/supervisor/supervisor_dev_config.yaml +9 -0
  107. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/PKG-INFO +3 -31
  108. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/SOURCES.txt +52 -4
  109. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/requires.txt +2 -31
  110. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/conftest.py +71 -76
  111. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/conftest.py +0 -4
  112. mx_bluesky-1.6.3/tests/system_tests/hyperion/external_interaction/callbacks/stomp_callback_wrapper/__main__.py +70 -0
  113. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +118 -11
  114. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/conftest.py +20 -11
  115. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +3 -1
  116. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +6 -11
  117. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +3 -1
  118. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/client_config.yaml +7 -0
  119. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/dummy_devices.py +4 -0
  120. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/dummy_plans.py +35 -0
  121. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/supervisor_config.yaml +18 -0
  122. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/system_test_blueapi.yaml +20 -0
  123. mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor/test_supervisor.py +245 -0
  124. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/test_main_udc.py +1 -1
  125. mx_bluesky-1.6.3/tests/test_data/hyperion_blueapi/move_to_udc_default_state.json +5 -0
  126. mx_bluesky-1.6.3/tests/test_data/hyperion_blueapi/robot_unload.json +7 -0
  127. mx_bluesky-1.6.3/tests/test_data/hyperion_blueapi/test_load_centre_collect.json +56 -0
  128. mx_bluesky-1.6.3/tests/test_data/stomp_callback_test_config.yaml +11 -0
  129. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +24 -1
  130. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i04/conftest.py +1 -0
  131. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +19 -65
  132. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i04/test_oav_imaging.py +917 -0
  133. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +1 -1
  134. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i04/test_thawing.py +62 -22
  135. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/callbacks/test_metadata_writer.py +117 -0
  136. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/conftest.py +57 -0
  137. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans/test_do_darks.py +8 -22
  138. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_external_acquisition.py +10 -4
  139. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_do_internal_acquisition.py +10 -3
  140. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_plan_utils.py +90 -0
  141. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_data/test_good_rotation_params.json +13 -0
  142. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_do_darks.py +113 -0
  143. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/test_rotation_scan.py +260 -0
  144. mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/utils.py +11 -0
  145. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/conftest.py +37 -37
  146. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +20 -3
  147. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +3 -3
  148. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +13 -10
  149. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +1 -1
  150. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +4 -4
  151. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +3 -3
  152. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +3 -7
  153. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +11 -21
  154. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/device_setup_plans/test_setup_zebra_and_shutter.py +5 -1
  155. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +22 -14
  156. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +1 -1
  157. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_common_flyscan_xray_centre_plan.py +9 -11
  158. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_grid_detection_plan.py +0 -4
  159. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_pin_tip_centring.py +2 -3
  160. mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/callbacks/common/test_ispyb_callback_base.py +60 -0
  161. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +3 -1
  162. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +1 -1
  163. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +2 -2
  164. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +1 -1
  165. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/preprocessors/test_preprocessors.py +110 -14
  166. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/conftest.py +43 -17
  167. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/conftest.py +4 -2
  168. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +1 -1
  169. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +4 -12
  170. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/conftest.py +9 -83
  171. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +2 -6
  172. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +6 -7
  173. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +5 -12
  174. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +101 -16
  175. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +3 -56
  176. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +1 -1
  177. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +14 -14
  178. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py +31 -1
  179. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/__init__.py +0 -0
  180. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
  181. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +3 -1
  182. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/__init__.py +0 -0
  183. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/__init__.py +0 -0
  184. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +1 -1
  185. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +77 -11
  186. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +3 -1
  187. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/conftest.py +3 -1
  188. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  189. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +3 -1
  190. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/stomp/__init__.py +0 -0
  191. mx_bluesky-1.6.3/tests/unit_tests/hyperion/external_interaction/stomp/test_dispatcher.py +49 -0
  192. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +2 -2
  193. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +3 -1
  194. mx_bluesky-1.6.3/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  195. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +3 -1
  196. mx_bluesky-1.6.3/tests/unit_tests/hyperion/supervisor/__init__.py +0 -0
  197. mx_bluesky-1.6.3/tests/unit_tests/hyperion/supervisor/test_supervisor.py +284 -0
  198. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_baton_handler.py +70 -37
  199. mx_bluesky-1.6.3/tests/unit_tests/hyperion/test_blueapi_plans.py +73 -0
  200. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_main_system.py +82 -14
  201. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_plan_runner.py +5 -4
  202. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_plan_runner_api.py +2 -2
  203. mx_bluesky-1.6.3/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  204. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/deploy/deploy_mx_bluesky.py +7 -20
  205. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +4 -4
  206. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/dls_dev_env.sh +8 -13
  207. mx_bluesky-1.6.3/utility_scripts/generate_plantuml.py +127 -0
  208. mx_bluesky-1.6.3/uv.lock +4648 -0
  209. mx_bluesky-1.5.15/.devcontainer/Dockerfile +0 -37
  210. mx_bluesky-1.5.15/.github/actions/install_requirements/action.yml +0 -35
  211. mx_bluesky-1.5.15/.github/dependabot.yml +0 -26
  212. mx_bluesky-1.5.15/.github/workflows/_test.yml +0 -64
  213. mx_bluesky-1.5.15/.github/workflows/_tox.yml +0 -22
  214. mx_bluesky-1.5.15/Dockerfile +0 -55
  215. mx_bluesky-1.5.15/Dockerfile.blueapi +0 -18
  216. mx_bluesky-1.5.15/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +0 -115
  217. mx_bluesky-1.5.15/src/mx_bluesky/hyperion/parameters/cli.py +0 -57
  218. mx_bluesky-1.5.15/src/mx_bluesky/hyperion/parameters/components.py +0 -10
  219. mx_bluesky-1.5.15/src/mx_bluesky/hyperion/plan_runner.py +0 -107
  220. mx_bluesky-1.5.15/tests/unit_tests/beamlines/i04/test_oav_imaging.py +0 -253
  221. mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs/test_plan_utils.py +0 -60
  222. mx_bluesky-1.5.15/utility_scripts/generate_plantuml.py +0 -95
  223. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.coveragerc +0 -0
  224. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.dockerignore +0 -0
  225. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/CODEOWNERS +0 -0
  226. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  227. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  228. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/actions/verify-nexus/Dockerfile +0 -0
  229. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/actions/verify-nexus/action.yml +0 -0
  230. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  231. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/pages/index.html +0 -0
  232. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/pages/make_switcher.py +0 -0
  233. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/release.yml +0 -0
  234. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_debug_container.yml +0 -0
  235. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.github/workflows/_label.yml +0 -0
  236. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.gitignore +0 -0
  237. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/extensions.json +0 -0
  238. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/launch.json +0 -0
  239. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/mx-bluesky-dev-container.code-workspace +0 -0
  240. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/mx-bluesky.code-workspace +0 -0
  241. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
  242. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/settings.json +0 -0
  243. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/.vscode/tasks.json +0 -0
  244. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/Dockerfile.hyperion +0 -0
  245. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/LICENSE +0 -0
  246. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/README.rst +0 -0
  247. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/catalog-info.yaml +0 -0
  248. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/codecov.yml +0 -0
  249. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/conftest.py +0 -0
  250. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/_api.rst +0 -0
  251. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/_templates/custom-module-template.rst +0 -0
  252. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/conf.py +0 -0
  253. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
  254. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/code-map/grid_detect_xrc.rst +0 -0
  255. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/code-map/index.rst +0 -0
  256. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
  257. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/containerised_mx_bluesky.rst +0 -0
  258. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  259. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  260. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
  261. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/explanations/decisions.rst +0 -0
  262. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/contribute.rst +0 -0
  263. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/create-a-release.rst +0 -0
  264. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
  265. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
  266. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
  267. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
  268. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
  269. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
  270. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/get-started.md +0 -0
  271. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/how-to/setup-blueapi-for-mx.md +0 -0
  272. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/index.rst +0 -0
  273. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/general/reference/standards.rst +0 -0
  274. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
  275. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/baton.rst +0 -0
  276. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/coordinate-systems.puml +0 -0
  277. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/coordinate-systems.rst +0 -0
  278. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/gda-baton.puml +0 -0
  279. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/gridscan.puml +0 -0
  280. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  281. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/reference/readme.md +0 -0
  282. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/hyperion/system-tests.rst +0 -0
  283. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/index.rst +0 -0
  284. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/murko-integration/explanations/DrawioImages.rst +0 -0
  285. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  286. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/murko-integration/images/Murko.drawio.png +0 -0
  287. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/murko-integration/index.rst +0 -0
  288. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  289. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  290. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  291. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  292. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  293. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  294. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/176701633-b93bba62-b2e7-4740-a863-c6b388beb14f.png +0 -0
  295. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/207297611-f67dfc25-a3a5-4ade-a1e7-28b54a136fa6.png +0 -0
  296. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/417717258-afbd813c-8941-445c-9fdf-255c167453cf.png +0 -0
  297. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/dls-favicon.ico +0 -0
  298. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/dls-logo.svg +0 -0
  299. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/motor coordinate systems.odg +0 -0
  300. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/motor-coords-omega-0.svg +0 -0
  301. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/images/motor-coords-omega-alpha.svg +0 -0
  302. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/index.rst +0 -0
  303. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/alerts.rst +0 -0
  304. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/concurrent_operations.puml +0 -0
  305. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/concurrent_operations_rotation.puml +0 -0
  306. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/concurrent_operations_set_energy.puml +0 -0
  307. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/index.rst +0 -0
  308. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/install.rst +0 -0
  309. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/operations.rst +0 -0
  310. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/advanced/pvs.rst +0 -0
  311. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/configuration.rst +0 -0
  312. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/index.rst +0 -0
  313. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/logging.rst +0 -0
  314. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/running.rst +0 -0
  315. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/docs/user/hyperion/troubleshooting.rst +0 -0
  316. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/Chart.yaml +0 -0
  317. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/templates/deployment.yaml +0 -0
  318. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/templates/ingress.yaml +0 -0
  319. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/templates/service.yaml +0 -0
  320. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/hyperion/values.yaml +0 -0
  321. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/mx-bluesky-blueapi/Chart.yaml +0 -0
  322. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/mx-bluesky-blueapi/values.yaml +0 -0
  323. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/redis-to-murko/Chart.yaml +0 -0
  324. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/redis-to-murko/templates/deployment.yaml +0 -0
  325. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/helm/redis-to-murko/values.yaml +0 -0
  326. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/pull_request_template.md +0 -0
  327. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/run_hyperion_in_podman.sh +0 -0
  328. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/setup.cfg +0 -0
  329. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/__init__.py +0 -0
  330. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/__main__.py +0 -0
  331. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/__init__.py +0 -0
  332. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
  333. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py +0 -0
  334. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
  335. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/__init__.py +0 -0
  336. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/experiment_plans/robot_load_plan.py +0 -0
  337. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
  338. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/__init__.py +0 -0
  339. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/constants.py +0 -0
  340. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/parameters/robot_load_parameters.py +0 -0
  341. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/pin_tip_centring.py +0 -0
  342. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/aithre_lasershaping/robot_load.py +0 -0
  343. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i02_1/parameters/__init__.py +0 -0
  344. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/callbacks/__init__.py +0 -0
  345. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/experiment_plans/__init__.py +0 -0
  346. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/external_interaction/__init__.py +0 -0
  347. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/external_interaction/config_server.py +0 -0
  348. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/oav_centering_plans/__init__.py +0 -0
  349. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/parameters/__init__.py +0 -0
  350. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i04/parameters/constants.py +0 -0
  351. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i23/__init__.py +0 -0
  352. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i23/serial.py +0 -0
  353. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  354. {mx_bluesky-1.5.15/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/callbacks}/__init__.py +0 -0
  355. {mx_bluesky-1.5.15/src/mx_bluesky/beamlines/i24/serial/extruder → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans}/__init__.py +0 -0
  356. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py +0 -0
  357. {mx_bluesky-1.5.15/src/mx_bluesky/beamlines/i24/serial/fixed_target → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/parameters}/__init__.py +0 -0
  358. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/__init__.py +0 -0
  359. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  360. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  361. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  362. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  363. {mx_bluesky-1.5.15/src/mx_bluesky/beamlines/i24/serial/web_gui_plans → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/serial/extruder}/__init__.py +0 -0
  364. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  365. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  366. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
  367. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  368. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  369. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  370. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  371. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  372. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  373. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  374. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
  375. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
  376. {mx_bluesky-1.5.15/src/mx_bluesky/common → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  377. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
  378. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_startup_py3v1.py +0 -0
  379. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/log.py +0 -0
  380. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  381. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
  382. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  383. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
  384. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  385. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  386. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  387. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  388. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
  389. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
  390. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
  391. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  392. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  393. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  394. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
  395. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  396. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  397. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +0 -0
  398. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
  399. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  400. {mx_bluesky-1.5.15/src/mx_bluesky/common/device_setup_plans → mx_bluesky-1.6.3/src/mx_bluesky/beamlines/i24/serial/web_gui_plans}/__init__.py +0 -0
  401. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
  402. {mx_bluesky-1.5.15/src/mx_bluesky/common/experiment_plans/inner_plans → mx_bluesky-1.6.3/src/mx_bluesky/common}/__init__.py +0 -0
  403. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction → mx_bluesky-1.6.3/src/mx_bluesky/common/device_setup_plans}/__init__.py +0 -0
  404. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/gonio.py +0 -0
  405. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +0 -0
  406. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/position_detector.py +0 -0
  407. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/setup_oav.py +0 -0
  408. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
  409. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/utils.py +0 -0
  410. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
  411. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/__init__.py +0 -0
  412. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/beamstop_check.py +0 -0
  413. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +0 -0
  414. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py +0 -0
  415. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction/callbacks/common → mx_bluesky-1.6.3/src/mx_bluesky/common/experiment_plans/inner_plans}/__init__.py +0 -0
  416. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py +0 -0
  417. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/inner_plans/write_sample_status.py +0 -0
  418. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +0 -0
  419. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.6.3/src/mx_bluesky/common/experiment_plans/rotation}/__init__.py +0 -0
  420. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction/callbacks/xray_centre → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction}/__init__.py +0 -0
  421. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/alerting/__init__.py +0 -0
  422. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/alerting/_service.py +0 -0
  423. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/alerting/log_based_service.py +0 -0
  424. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction/ispyb → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction/callbacks/common}/__init__.py +0 -0
  425. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
  426. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
  427. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
  428. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
  429. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
  430. {mx_bluesky-1.5.15/src/mx_bluesky/common/external_interaction/nexus → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  431. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
  432. {mx_bluesky-1.5.15/src/mx_bluesky/common/parameters → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  433. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +0 -0
  434. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  435. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
  436. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
  437. {mx_bluesky-1.5.15/src/mx_bluesky/common/preprocessors → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction/ispyb}/__init__.py +0 -0
  438. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +0 -0
  439. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +0 -0
  440. {mx_bluesky-1.5.15/src/mx_bluesky/common/protocols → mx_bluesky-1.6.3/src/mx_bluesky/common/external_interaction/nexus}/__init__.py +0 -0
  441. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
  442. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
  443. {mx_bluesky-1.5.15/src/mx_bluesky/common/utils → mx_bluesky-1.6.3/src/mx_bluesky/common/parameters}/__init__.py +0 -0
  444. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/parameters/device_composites.py +0 -0
  445. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/parameters/gridscan.py +0 -0
  446. {mx_bluesky-1.5.15/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.6.3/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
  447. {mx_bluesky-1.5.15/src/mx_bluesky/hyperion/external_interaction/alerting → mx_bluesky-1.6.3/src/mx_bluesky/common/protocols}/__init__.py +0 -0
  448. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/protocols/protocols.py +0 -0
  449. {mx_bluesky-1.5.15/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions → mx_bluesky-1.6.3/src/mx_bluesky/common/utils}/__init__.py +0 -0
  450. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/utils/context.py +0 -0
  451. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/utils/exceptions.py +0 -0
  452. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/utils/log.py +0 -0
  453. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/utils/tracing.py +0 -0
  454. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/utils/utils.py +0 -0
  455. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/common/xrc_result.py +0 -0
  456. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/definitions.py +0 -0
  457. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/__init__.py +0 -0
  458. {mx_bluesky-1.5.15/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.6.3/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  459. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -0
  460. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
  461. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
  462. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  463. {mx_bluesky-1.5.15/src/mx_bluesky/phase1_zebra/device_setup_plans → mx_bluesky-1.6.3/src/mx_bluesky/hyperion/external_interaction/alerting}/__init__.py +0 -0
  464. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/alerting/constants.py +0 -0
  465. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  466. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py +0 -0
  467. {mx_bluesky-1.5.15/tests → mx_bluesky-1.6.3/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions}/__init__.py +0 -0
  468. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py +0 -0
  469. {mx_bluesky-1.5.15/tests/system_tests → mx_bluesky-1.6.3/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  470. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -0
  471. {mx_bluesky-1.5.15/tests/system_tests/common/device_setup_plans → mx_bluesky-1.6.3/src/mx_bluesky/hyperion/external_interaction/callbacks/stomp}/__init__.py +0 -0
  472. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
  473. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  474. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/gridscan.py +0 -0
  475. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
  476. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  477. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/runner.py +0 -0
  478. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
  479. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  480. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  481. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky/phase1_zebra/__init__.py +0 -0
  482. {mx_bluesky-1.5.15/tests/system_tests/hyperion → mx_bluesky-1.6.3/src/mx_bluesky/phase1_zebra/device_setup_plans}/__init__.py +0 -0
  483. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  484. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  485. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  486. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/start_jupyter.sh +0 -0
  487. {mx_bluesky-1.5.15/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.6.3/tests}/__init__.py +0 -0
  488. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/expeye_helpers.py +0 -0
  489. {mx_bluesky-1.5.15/tests/system_tests/hyperion/external_interaction/alerting → mx_bluesky-1.6.3/tests/system_tests}/__init__.py +0 -0
  490. {mx_bluesky-1.5.15/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.6.3/tests/system_tests/common/device_setup_plans}/__init__.py +0 -0
  491. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +0 -0
  492. {mx_bluesky-1.5.15/tests/unit_tests → mx_bluesky-1.6.3/tests/system_tests/hyperion}/__init__.py +0 -0
  493. {mx_bluesky-1.5.15/tests/unit_tests/beamlines → mx_bluesky-1.6.3/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  494. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/aithre_lasershaping → mx_bluesky-1.6.3/tests/system_tests/hyperion/external_interaction/alerting}/__init__.py +0 -0
  495. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/alerting/test_log_based_alerts.py +0 -0
  496. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i04 → mx_bluesky-1.6.3/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  497. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i04/callbacks → mx_bluesky-1.6.3/tests/system_tests/hyperion/external_interaction/callbacks/stomp_callback_wrapper}/__init__.py +0 -0
  498. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -0
  499. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_baton_handler_soak.py +0 -0
  500. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  501. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +0 -0
  502. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i23 → mx_bluesky-1.6.3/tests/system_tests/hyperion/supervisor}/__init__.py +0 -0
  503. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/agamemnon/example_collect_multipin.json +0 -0
  504. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/agamemnon/example_native.json +0 -0
  505. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/agamemnon/example_wait.json +0 -0
  506. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/ispyb-test-credentials.cfg +0 -0
  507. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/README.md +0 -0
  508. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  509. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  510. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  511. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  512. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  513. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  514. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  515. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
  516. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
  517. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
  518. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
  519. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
  520. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +0 -0
  521. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +0 -0
  522. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
  523. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
  524. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
  525. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
  526. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
  527. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
  528. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
  529. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
  530. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  531. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/rabbitmq-test-credentials.yml +0 -0
  532. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/scratch/README +0 -0
  533. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_OAVCentring.json +0 -0
  534. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  535. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  536. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_beamline_parameters.txt +0 -0
  537. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
  538. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_config.cfg +0 -0
  539. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +0 -0
  540. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/display.configuration +0 -0
  541. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  542. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  543. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  544. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
  545. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
  546. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_det_dist_converter.txt +0 -0
  547. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_display.configuration +0 -0
  548. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_domain_properties +0 -0
  549. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_domain_properties_with_no_gpu +0 -0
  550. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_domain_properties_with_panda +0 -0
  551. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
  552. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
  553. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/ins_15_33_0.png +0 -0
  554. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/ins_15_33_90.png +0 -0
  555. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
  556. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
  557. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/thau_1_91_0.png +0 -0
  558. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/thau_1_91_90.png +0 -0
  559. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
  560. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
  561. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  562. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_lookup_table.txt +0 -0
  563. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/test_mirror_focus.json +0 -0
  564. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/test_data/zocalo-test-configuration.yaml +0 -0
  565. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24 → mx_bluesky-1.6.3/tests/unit_tests}/__init__.py +0 -0
  566. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/jungfrau_commissioning → mx_bluesky-1.6.3/tests/unit_tests/beamlines}/__init__.py +0 -0
  567. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans → mx_bluesky-1.6.3/tests/unit_tests/beamlines/aithre_lasershaping}/__init__.py +0 -0
  568. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/aithre_lasershaping/test_aithre_pin_tip_centre.py +0 -0
  569. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/aithre_lasershaping/test_beamline_safe.py +0 -0
  570. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
  571. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
  572. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/aithre_lasershaping/test_robot_load.py +0 -0
  573. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i04}/__init__.py +0 -0
  574. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i04/callbacks}/__init__.py +0 -0
  575. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i23}/__init__.py +0 -0
  576. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i23/test_serial.py +0 -0
  577. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24}/__init__.py +0 -0
  578. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial/parameters → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning}/__init__.py +0 -0
  579. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/callbacks}/__init__.py +0 -0
  580. {mx_bluesky-1.5.15/tests/unit_tests/beamlines/i24/serial/web_gui → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/experiment_plans}/__init__.py +0 -0
  581. {mx_bluesky-1.5.15/tests/unit_tests/common → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/jungfrau_commissioning/plan_stubs}/__init__.py +0 -0
  582. {mx_bluesky-1.5.15/tests/unit_tests/common/device_setup_plans → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  583. {mx_bluesky-1.5.15/tests/unit_tests/common/experiment_plans → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  584. {mx_bluesky-1.5.15/tests/unit_tests/common/experiment_plans/inner_plans → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  585. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  586. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
  587. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial/parameters}/__init__.py +0 -0
  588. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
  589. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  590. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/alerting → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  591. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  592. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +0 -0
  593. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  594. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
  595. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
  596. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +0 -0
  597. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/alerting/alerting → mx_bluesky-1.6.3/tests/unit_tests/beamlines/i24/serial/web_gui}/__init__.py +0 -0
  598. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/beamlines/i24/serial/web_gui/test_oav_plans.py +0 -0
  599. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.6.3/tests/unit_tests/common}/__init__.py +0 -0
  600. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.6.3/tests/unit_tests/common/device_setup_plans}/__init__.py +0 -0
  601. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
  602. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.6.3/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
  603. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/callbacks/sample_handling → mx_bluesky-1.6.3/tests/unit_tests/common/experiment_plans/inner_plans}/__init__.py +0 -0
  604. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/inner_plans/test_do_fgs.py +0 -0
  605. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/inner_plans/test_write_sample_status.py +0 -0
  606. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_beamstop_check.py +0 -0
  607. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +0 -0
  608. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +0 -0
  609. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +0 -0
  610. {mx_bluesky-1.5.15/tests/unit_tests/common/external_interaction/nexus → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
  611. {mx_bluesky-1.5.15/tests/unit_tests/common/parameters → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/alerting}/__init__.py +0 -0
  612. {mx_bluesky-1.5.15/tests/unit_tests/common/preprocessors → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/alerting/alerting}/__init__.py +0 -0
  613. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/alerting/alerting/test_alerting.py +0 -0
  614. {mx_bluesky-1.5.15/tests/unit_tests/common/utils → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
  615. {mx_bluesky-1.5.15/tests/unit_tests/hyperion → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
  616. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
  617. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
  618. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +0 -0
  619. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
  620. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
  621. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +0 -0
  622. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  623. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  624. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/conftest.py +0 -0
  625. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/experiment_plans/common → mx_bluesky-1.6.3/tests/unit_tests/common/external_interaction/nexus}/__init__.py +0 -0
  626. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +0 -0
  627. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/test_config_server.py +0 -0
  628. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
  629. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
  630. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +0 -0
  631. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
  632. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
  633. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.6.3/tests/unit_tests/common/parameters}/__init__.py +0 -0
  634. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/parameters/test_components.py +0 -0
  635. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/parameters/test_constants.py +0 -0
  636. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.6.3/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
  637. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load → mx_bluesky-1.6.3/tests/unit_tests/common/utils}/__init__.py +0 -0
  638. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/utils/test_log.py +0 -0
  639. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/common/utils/test_utils.py +0 -0
  640. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.6.3/tests/unit_tests/hyperion}/__init__.py +0 -0
  641. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.6.3/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  642. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
  643. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +0 -0
  644. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
  645. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -0
  646. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/parameters → mx_bluesky-1.6.3/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  647. {mx_bluesky-1.5.15/tests/unit_tests/hyperion/utils → mx_bluesky-1.6.3/tests/unit_tests/hyperion/experiment_plans/common}/__init__.py +0 -0
  648. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
  649. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
  650. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_hyperion_grid_detect_then_xray_centre_plan.py +0 -0
  651. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
  652. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
  653. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/callbacks/test_alert_on_container_change.py +0 -0
  654. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
  655. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  656. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  657. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  658. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  659. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_runner.py +0 -0
  660. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/test_utils.py +0 -0
  661. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  662. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
  663. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/t01.py +0 -0
  664. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/tests/unit_tests/test_cli.py +0 -0
  665. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/build_docker_image.sh +0 -0
  666. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/build_imginfo.sh +0 -0
  667. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/deploy/create_venv.py +0 -0
  668. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  669. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/deploy/test_deploy.py +0 -0
  670. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/dev_jaeger_container.sh +0 -0
  671. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/docker/entrypoint.sh +0 -0
  672. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/docker/healthcheck.sh +0 -0
  673. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/docker/i03-compose.yml +0 -0
  674. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/graylog/Dockerfile +0 -0
  675. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/graylog/tcp_input.json +0 -0
  676. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/procserv_ioc_start.sh +0 -0
  677. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/request_baton.sh +0 -0
  678. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/run_imginfo.sh +0 -0
  679. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/setup_graylog.sh +0 -0
  680. {mx_bluesky-1.5.15 → mx_bluesky-1.6.3}/utility_scripts/strip_metafile.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 4.3.0
2
+ _commit: 5.0.1
3
3
  _src_path: gh:DiamondLightSource/python-copier-template
4
4
  author_email: dominic.oram@diamond.ac.uk
5
5
  author_name: Dominic Oram
@@ -7,13 +7,29 @@
7
7
  },
8
8
  "remoteEnv": {
9
9
  // Allow X11 apps to run inside the container
10
- "DISPLAY": "${localEnv:DISPLAY}"
10
+ "DISPLAY": "${localEnv:DISPLAY}",
11
+ // Put things that allow it in the persistent cache
12
+ "PRE_COMMIT_HOME": "/cache/pre-commit",
13
+ "UV_CACHE_DIR": "/cache/uv",
14
+ "UV_PYTHON_CACHE_DIR": "/cache/uv-python",
15
+ // Make a venv that is specific for this workspace path as the cache is shared
16
+ "UV_PROJECT_ENVIRONMENT": "/cache/venv-for${localWorkspaceFolder}",
17
+ // Do the equivalent of "activate" the venv so we don't have to "uv run" everything
18
+ "VIRTUAL_ENV": "/cache/venv-for${localWorkspaceFolder}",
19
+ "PATH": "/cache/venv-for${localWorkspaceFolder}/bin:${containerEnv:PATH}"
11
20
  },
12
21
  "customizations": {
13
22
  "vscode": {
14
23
  // Set *default* container specific settings.json values on container create.
15
24
  "settings": {
16
- "python.defaultInterpreterPath": "/venv/bin/python"
25
+ // Use the container's python by default
26
+ "python.defaultInterpreterPath": "/cache/venv-for${localWorkspaceFolder}/bin/python",
27
+ // Don't activate the venv as it is already in the PATH
28
+ "python.terminal.activateEnvInCurrentTerminal": false,
29
+ "python.terminal.activateEnvironment": false,
30
+ // Workaround to prevent garbled python REPL in the terminal
31
+ // https://github.com/microsoft/vscode-python/issues/25505
32
+ "python.terminal.shellIntegration.enabled": false
17
33
  },
18
34
  // Add the IDs of extensions you want installed when the container is created.
19
35
  "extensions": [
@@ -53,23 +69,33 @@
53
69
  "python.analysis.typeCheckingMode": "basic"
54
70
  }
55
71
  },
56
- "features": {
57
- // add in eternal history and other bash features
58
- "ghcr.io/diamondlightsource/devcontainer-features/bash-config:1": {}
59
- },
60
- // Create the config folder for the bash-config feature
61
- "initializeCommand": "mkdir -p ${localEnv:HOME}/.config/bash-config",
72
+ // Create the config folder for the bash-config feature and uv cache
73
+ "initializeCommand": "mkdir -p ${localEnv:HOME}/.config/terminal-config",
62
74
  "runArgs": [
63
75
  // Allow the container to access the host X11 display and EPICS CA
64
76
  "--net=host",
65
77
  // Make sure SELinux does not disable with access to host filesystems like tmp
66
78
  "--security-opt=label=disable"
67
79
  ],
80
+ "mounts": [
81
+ // Mount in the user terminal config folder so it can be edited
82
+ {
83
+ "source": "${localEnv:HOME}/.config/terminal-config",
84
+ "target": "/user-terminal-config",
85
+ "type": "bind"
86
+ },
87
+ // Keep a persistent cross container cache for uv, pre-commit, and the venvs
88
+ {
89
+ "source": "devcontainer-shared-cache",
90
+ "target": "/cache",
91
+ "type": "volume"
92
+ }
93
+ ],
68
94
  // Mount the parent as /workspaces so we can pip install peers as editable
69
95
  "workspaceMount": "source=${localWorkspaceFolder}/..,target=/workspaces,type=bind",
70
96
  "mounts": [
71
97
  "source=/dls_sw/apps/dials/latest/latest/modules/dlstbx/src/dlstbx/,target=/dls_sw/apps/dials/latest/latest/modules/dlstbx/src/dlstbx/,type=bind,consistency=cached"
72
98
  ],
73
- // After the container is created, install the python project in editable form
74
- "postCreateCommand": "pip install $([ -f dev-requirements.txt ] && echo '-c dev-requirements.txt') -e '.[dev]' && pip install -e /workspaces/dodal[dev] && pre-commit install && ln -s /dls_sw/apps/dials/latest/latest/modules/dlstbx/src/dlstbx/ /venv/lib/python3.12/site-packages/dlstbx"
99
+ // After the container is created, recreate the venv then make pre-commit first run faster
100
+ "postCreateCommand": "uv venv --clear && uv sync && pre-commit install --install-hooks"
75
101
  }
@@ -73,4 +73,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
73
73
 
74
74
  This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
75
75
 
76
- For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/4.3.0/how-to.html).
76
+ For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.0.1/how-to.html).
@@ -11,7 +11,7 @@ jobs:
11
11
 
12
12
  steps:
13
13
  - name: Checkout
14
- uses: actions/checkout@v4
14
+ uses: actions/checkout@v5
15
15
  with:
16
16
  # Need this to get version number from last tag
17
17
  fetch-depth: 0
@@ -7,15 +7,18 @@ jobs:
7
7
 
8
8
  steps:
9
9
  - name: Checkout
10
- uses: actions/checkout@v4
10
+ uses: actions/checkout@v5
11
11
  with:
12
12
  # Need this to get version number from last tag
13
13
  fetch-depth: 0
14
14
 
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v7
17
+
15
18
  - name: Build sdist and wheel
16
19
  run: >
17
20
  export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) &&
18
- pipx run build
21
+ uvx --from build pyproject-build
19
22
 
20
23
  - name: Upload sdist and wheel as artifacts
21
24
  uses: actions/upload-artifact@v4
@@ -24,12 +27,10 @@ jobs:
24
27
  path: dist
25
28
 
26
29
  - name: Check for packaging errors
27
- run: pipx run twine check --strict dist/*
30
+ run: uvx twine check --strict dist/*
28
31
 
29
32
  - name: Install produced wheel
30
- uses: ./.github/actions/install_requirements
31
- with:
32
- pip-install: dist/*.whl
33
+ run: python -m pip install dist/*.whl
33
34
 
34
35
  - name: Test module --version works using the installed wheel
35
36
  # If more than one module in src/ replace with module name to test
@@ -12,7 +12,7 @@ jobs:
12
12
  run: sleep 60
13
13
 
14
14
  - name: Checkout
15
- uses: actions/checkout@v4
15
+ uses: actions/checkout@v5
16
16
  with:
17
17
  # Need this to get version number from last tag
18
18
  fetch-depth: 0
@@ -20,11 +20,11 @@ jobs:
20
20
  - name: Install system packages
21
21
  run: sudo apt-get install graphviz
22
22
 
23
- - name: Install python packages
24
- uses: ./.github/actions/install_requirements
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v7
25
25
 
26
26
  - name: Build docs
27
- run: tox -e docs
27
+ run: uv run --locked tox -e docs
28
28
 
29
29
  - name: Remove environment.pickle
30
30
  run: rm build/html/.doctrees/environment.pickle
@@ -19,7 +19,7 @@ jobs:
19
19
  - name: Helm login to GHCR
20
20
  if: ${{ github.event_name == 'push' && github.ref_type == 'tag' }}
21
21
  run: |
22
- echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io/${{ github.repository }} --username ${{ github.repository_owner }} --password-stdin
22
+ echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ghcr.io --username DiamondLightSource --password-stdin
23
23
 
24
24
  - name: Get version from Git tag
25
25
  id: meta
@@ -8,7 +8,7 @@ jobs:
8
8
 
9
9
  steps:
10
10
  - name: Download dist artifact
11
- uses: actions/download-artifact@v4
11
+ uses: actions/download-artifact@v5
12
12
  with:
13
13
  name: dist
14
14
  path: dist
@@ -7,7 +7,7 @@ jobs:
7
7
 
8
8
  steps:
9
9
  - name: Download artifacts
10
- uses: actions/download-artifact@v4
10
+ uses: actions/download-artifact@v5
11
11
  with:
12
12
  merge-multiple: true
13
13
 
@@ -23,7 +23,7 @@ jobs:
23
23
  - name: Create GitHub Release
24
24
  # We pin to the SHA, not the tag, for security reasons.
25
25
  # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
26
- uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
26
+ uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
27
27
  with:
28
28
  prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
29
29
  files: "*"
@@ -0,0 +1,45 @@
1
+ on:
2
+ workflow_call:
3
+ inputs:
4
+ python-version:
5
+ type: string
6
+ description: The version of python to install, default is from .python-version file
7
+ default: ""
8
+ runs-on:
9
+ type: string
10
+ description: The runner to run this job on
11
+ required: true
12
+
13
+ env:
14
+ # https://github.com/pytest-dev/pytest/issues/2042
15
+ PY_IGNORE_IMPORTMISMATCH: "1"
16
+ UV_PYTHON: ${{ inputs.python-version }}
17
+
18
+ jobs:
19
+ run:
20
+ runs-on: ${{ inputs.runs-on }}
21
+
22
+ steps:
23
+ - name: Checkout
24
+ uses: actions/checkout@v5
25
+ with:
26
+ # Need this to get version number from last tag
27
+ fetch-depth: 0
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@v7
31
+
32
+ - name: Run tests
33
+ # Longer timeout for CI due to likelihood of cold caches,
34
+ # cloud infra hw contention etc.
35
+ run: uv run --locked tox -e tests -- -m "not dlstbx" --timeout=2 --cov=mx_bluesky --cov-report term --cov-report xml:cov.xml
36
+
37
+ - name: Print dependency versions
38
+ if: always()
39
+ run: uv pip list
40
+
41
+ - name: Upload coverage to Codecov
42
+ uses: codecov/codecov-action@v5
43
+ with:
44
+ name: ${{ inputs.python-version }}/${{ inputs.runs-on }}
45
+ files: cov.xml
@@ -0,0 +1,28 @@
1
+ on:
2
+ workflow_call:
3
+ inputs:
4
+ tox:
5
+ type: string
6
+ description: What to run under tox
7
+ required: true
8
+ skip_hooks:
9
+ description: "Comma-separated pre-commit hook IDs to skip"
10
+ required: false
11
+ type: string
12
+ default: "" # important so the context always exists
13
+
14
+ jobs:
15
+ run:
16
+ runs-on: "ubuntu-latest"
17
+
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v5
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v7
24
+
25
+ - name: Run tox
26
+ env:
27
+ SKIP: ${{ inputs.skip_hooks }}
28
+ run: uv run --locked tox -e ${{ inputs.tox }}
@@ -5,11 +5,10 @@ on:
5
5
  branches:
6
6
  - main
7
7
  tags:
8
- - '*'
8
+ - "*"
9
9
  pull_request:
10
10
 
11
11
  jobs:
12
-
13
12
  require-label:
14
13
  if: github.event_name == 'pull_request'
15
14
  uses: ./.github/workflows/_label.yml
@@ -18,23 +17,18 @@ jobs:
18
17
  uses: ./.github/workflows/_tox.yml
19
18
  with:
20
19
  tox: pre-commit,type-checking
20
+ skip_hooks: local-install-dodal
21
21
 
22
22
  test:
23
23
  strategy:
24
24
  matrix:
25
25
  runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
26
26
  python-version: ["3.11", "3.12", "3.13"]
27
- include:
28
- # Include one that runs in the dev environment
29
- - runs-on: "ubuntu-latest"
30
- python-version: "dev"
31
27
  fail-fast: false
32
28
  uses: ./.github/workflows/_test.yml
33
29
  with:
34
30
  runs-on: ${{ matrix.runs-on }}
35
31
  python-version: ${{ matrix.python-version }}
36
- secrets:
37
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
38
32
 
39
33
  container:
40
34
  needs: test
@@ -65,18 +59,19 @@ jobs:
65
59
 
66
60
  docs:
67
61
  uses: ./.github/workflows/_docs.yml
68
-
62
+ permissions:
63
+ contents: write
69
64
 
70
65
  dist:
71
66
  uses: ./.github/workflows/_dist.yml
72
-
67
+
73
68
  pypi:
74
69
  needs: [dist, test]
75
70
  if: github.ref_type == 'tag'
76
71
  uses: ./.github/workflows/_pypi.yml
77
72
  permissions:
78
73
  id-token: write
79
-
74
+
80
75
  release:
81
76
  needs: [dist, test, docs]
82
77
  if: github.ref_type == 'tag'
@@ -10,4 +10,4 @@ jobs:
10
10
  linkcheck:
11
11
  uses: ./.github/workflows/_tox.yml
12
12
  with:
13
- tox: docs build -- -b linkcheck
13
+ tox: docs -- -b linkcheck
@@ -0,0 +1,19 @@
1
+ # This allow-list is limited to YAML/YML files to cut down SealedSecrets false positives.
2
+ # All gitleaks default rules still apply everywhere (useDefault = true).
3
+ # To broaden this allow-list to all files, comment out the 'paths' line below.
4
+
5
+ [extend]
6
+ useDefault = true
7
+
8
+ [[rules]]
9
+ id = "generic-api-key"
10
+
11
+ # Pattern-only allowlist for long Ag… tokens in YAML
12
+ [[rules.allowlists]]
13
+ condition = "AND"
14
+ regexes = [
15
+ # Boundary-safe Ag… token without lookarounds (RE2-safe)
16
+ '''(?:^|[^A-Za-z0-9+/=])(Ag[A-Za-z0-9+/]{500,}={0,2})(?:[^A-Za-z0-9+/=]|$)'''
17
+ ]
18
+ # Limit to YAML only for now. Comment this out if you want it to apply everywhere.
19
+ paths = ['''(?i).*\.ya?ml$''']
@@ -4,6 +4,7 @@ repos:
4
4
  hooks:
5
5
  - id: check-added-large-files
6
6
  args: ["--maxkb=500"]
7
+ exclude: ^uv.lock
7
8
  - id: check-yaml
8
9
  args: ["--allow-multiple-documents"]
9
10
  exclude: ^helm/
@@ -34,11 +35,36 @@ repos:
34
35
  types: [python]
35
36
  require_serial: false
36
37
 
38
+ - id: lock dodal
39
+ name: keep dodal up to date in lockfile
40
+ pass_filenames: false
41
+ language: system
42
+ entry: uv lock --upgrade-package dls-dodal
43
+
44
+ - id: uv-sync
45
+ name: update uv.lock and venv
46
+ pass_filenames: false
47
+ language: system
48
+ entry: uv sync
49
+ files: ^(uv\.lock|pyproject\.toml)$
50
+
51
+ - id: local-install-dodal
52
+ name: editable install of dodal
53
+ language: system
54
+ pass_filenames: false
55
+ entry: uv pip install -e ../dodal
56
+ files: ^(uv\.lock|pyproject\.toml)$
57
+
37
58
  # Type checking
38
59
  - repo: https://github.com/pre-commit/mirrors-mypy
39
- rev: v1.4.1
60
+ rev: v1.19.1
40
61
  hooks:
41
62
  - id: mypy
42
63
  files: 'src/.*\.py$'
43
64
  additional_dependencies: [types-requests, types-redis, pydantic]
44
65
  args: ["--ignore-missing-imports", "--no-strict-optional"]
66
+
67
+ - repo: https://github.com/gitleaks/gitleaks
68
+ rev: v8.28.0
69
+ hooks:
70
+ - id: gitleaks
@@ -0,0 +1,71 @@
1
+ # The devcontainer should use the developer target and run as root with podman
2
+ # or docker with user namespaces.
3
+ FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:noble AS developer
4
+
5
+ ENV CMAKE_POLICY_VERSION_MINIMUM=3.5
6
+
7
+ # Add any system dependencies for the developer/build environment here
8
+ RUN apt-get update -y && apt-get install -y --no-install-recommends \
9
+ graphviz \
10
+ ffmpeg \
11
+ libsm6 \
12
+ libxext6 \
13
+ && apt-get dist-clean
14
+
15
+ # The build stage installs the context into the venv
16
+ FROM developer AS build
17
+
18
+ # Change the working directory to the `app` directory
19
+ # and copy in the project
20
+ WORKDIR /app
21
+ COPY . /app
22
+ RUN chmod o+wrX .
23
+
24
+ # Tell uv sync to install python in a known location so we can copy it out later
25
+ ENV UV_PYTHON_INSTALL_DIR=/python
26
+
27
+ # Sync the project without its dev dependencies
28
+ RUN --mount=type=cache,target=/root/.cache/uv \
29
+ uv sync --locked --no-editable --no-dev
30
+
31
+
32
+ FROM build AS debug
33
+
34
+
35
+ # Set origin to use ssh
36
+ RUN git remote set-url origin git@github.com:DiamondLightSource/mx-bluesky.git
37
+
38
+
39
+ # For this pod to understand finding user information from LDAP
40
+ RUN apt update
41
+ RUN DEBIAN_FRONTEND=noninteractive apt install libnss-ldapd -y
42
+ RUN sed -i 's/files/ldap files/g' /etc/nsswitch.conf
43
+
44
+ # Make editable and debuggable
45
+ RUN uv pip install debugpy
46
+ RUN uv pip install -e .
47
+ ENV PATH=/app/.venv/bin:$PATH
48
+
49
+ # Alternate entrypoint to allow devcontainer to attach
50
+ ENTRYPOINT [ "/bin/bash", "-c", "--" ]
51
+ CMD [ "while true; do sleep 30; done;" ]
52
+
53
+
54
+ # The runtime stage copies the built venv into a runtime container
55
+ FROM ubuntu:noble AS runtime
56
+
57
+ # Add apt-get system dependecies for runtime here if needed
58
+ # RUN apt-get update -y && apt-get install -y --no-install-recommends \
59
+ # some-library \
60
+ # && apt-get dist-clean
61
+
62
+ # Copy the python installation from the build stage
63
+ COPY --from=build /python /python
64
+
65
+ # Copy the environment, but not the source code
66
+ COPY --from=build /app/.venv /app/.venv
67
+ ENV PATH=/app/.venv/bin:$PATH
68
+
69
+ # change this entrypoint if it is not the same as the repo
70
+ ENTRYPOINT ["mx-bluesky"]
71
+ CMD ["--version"]
@@ -0,0 +1,24 @@
1
+ # Before changing this BlueAPI version number, you should check that
2
+ # the BlueAPI pin in pyproject.toml is compatible, else the version will
3
+ # be overridden
4
+ FROM ghcr.io/diamondlightsource/blueapi:latest
5
+ USER root
6
+
7
+ ARG DEBIAN_FRONTEND=noninteractive
8
+
9
+ # Need:
10
+ # libgl, libglib2.0 for python cv2 dependency
11
+ RUN apt update -y && \
12
+ apt upgrade -y && \
13
+ apt install -y libgl1 libglib2.0-0
14
+
15
+ RUN uv pip install --no-cache-dir --no-compile mx-bluesky
16
+
17
+ # Create and set permissions for uv venv, root cache
18
+ # and user cache. Allows Blueapi's setup-scratch
19
+ # to change dependencies without permission errors
20
+ RUN mkdir -p /app/.venv /root/.cache/uv /home/app/.cache/uv \
21
+ && chmod -R 777 /app/.venv /root/.cache/uv /home/app/.cache/uv
22
+
23
+
24
+ USER ubuntu
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.15
3
+ Version: 1.6.3
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -236,41 +236,13 @@ Requires-Dist: semver
236
236
  Requires-Dist: deepdiff
237
237
  Requires-Dist: matplotlib
238
238
  Requires-Dist: cachetools
239
+ Requires-Dist: bluesky-stomp>=0.2.0
239
240
  Requires-Dist: daq-config-server>=v1.0.0-rc.2
240
241
  Requires-Dist: blueapi>=1.8.0
241
242
  Requires-Dist: ophyd>=1.10.5
242
243
  Requires-Dist: ophyd-async>=0.14.0
243
244
  Requires-Dist: bluesky>=1.14.6
244
- Requires-Dist: dls-dodal==1.68.0
245
- Provides-Extra: dev
246
- Requires-Dist: black; extra == "dev"
247
- Requires-Dist: build; extra == "dev"
248
- Requires-Dist: diff-cover; extra == "dev"
249
- Requires-Dist: GitPython; extra == "dev"
250
- Requires-Dist: import-linter; extra == "dev"
251
- Requires-Dist: ispyb; extra == "dev"
252
- Requires-Dist: ipython; extra == "dev"
253
- Requires-Dist: mypy; extra == "dev"
254
- Requires-Dist: myst-parser; extra == "dev"
255
- Requires-Dist: pipdeptree; extra == "dev"
256
- Requires-Dist: plantweb; extra == "dev"
257
- Requires-Dist: pre-commit; extra == "dev"
258
- Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
259
- Requires-Dist: pyright==1.1.406; extra == "dev"
260
- Requires-Dist: pytest-asyncio; extra == "dev"
261
- Requires-Dist: pytest-cov; extra == "dev"
262
- Requires-Dist: pytest-random-order; extra == "dev"
263
- Requires-Dist: pytest-timeout; extra == "dev"
264
- Requires-Dist: pytest; extra == "dev"
265
- Requires-Dist: responses; extra == "dev"
266
- Requires-Dist: ruff; extra == "dev"
267
- Requires-Dist: sphinx-autobuild; extra == "dev"
268
- Requires-Dist: sphinx-copybutton; extra == "dev"
269
- Requires-Dist: sphinx-design; extra == "dev"
270
- Requires-Dist: tox-direct; extra == "dev"
271
- Requires-Dist: tox; extra == "dev"
272
- Requires-Dist: types-mock; extra == "dev"
273
- Requires-Dist: types-requests; extra == "dev"
245
+ Requires-Dist: dls-dodal==2.0.0
274
246
  Dynamic: license-file
275
247
 
276
248
  mx-bluesky
@@ -0,0 +1 @@
1
+ {"wavelength_in_a": null, "energy_kev": null, "angular_increment_deg": 0.1, "detector_distance_mm": null}
@@ -48,7 +48,7 @@ e.g.
48
48
 
49
49
  .. code-block:: bash
50
50
 
51
- pip install pytest-profiling
51
+ uv pip install pytest-profiling
52
52
  pytest --profile tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py::test_given_detector_bit_depth_changes_then_vds_datatype_as_expected
53
53
 
54
54
 
@@ -59,7 +59,7 @@ To browse these files you need something useful. Snakeviz is a tool that can be
59
59
  .. code-block:: bash
60
60
 
61
61
  cd prof
62
- pip install snakeviz
62
+ uv pip install snakeviz
63
63
  snakeviz combined.prof
64
64
 
65
65
  An alternative tool is py-spy.
@@ -68,7 +68,7 @@ e.g.
68
68
 
69
69
  .. code-block:: bash
70
70
 
71
- pip install py-spy
71
+ uv add --frozen py-spy
72
72
  py-spy record -o profile.svg -- pytest -s tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py::test_given_no_energy_supplied_when_robot_load_then_centre_current_energy_set_on_eiger
73
73
 
74
74
  This will generator an interactive SVG flamechart that can be opened in a browser to see hot methods.
@@ -0,0 +1,65 @@
1
+ Hyperion on BlueAPI
2
+ ===================
3
+
4
+ This document describes the migration of Hyperion from a monolithic service that contains its own application server
5
+ and is only partially dependent on BlueAPI,
6
+ to a standard BlueAPI application deployment.
7
+
8
+ Architecture
9
+ ------------
10
+
11
+ Hyperion on BlueAPI consists of two components:
12
+
13
+ * hyperion-blueapi: This is intended to ultimately be a standard blueapi installation, consisting of a beamline
14
+ module and a dodal plan module. In the interim, deployment may vary from the standard method until such time as
15
+ monolithic operation can be desupported. ``hyperion-blueapi`` exposes a minimal set of bluesky plans for UDC data
16
+ collection.
17
+
18
+ * hyperion-supervisor: This will be a separate service that is responsible for fetching instructions from
19
+ Agamemnon, decoding them and sending corresponding requests to ``hyperion-blueapi`` for execution. The supervisor
20
+ also monitors the state of ``hyperion-blueapi``, manages the Hyperion baton and provides endpoints for status
21
+ monitoring.
22
+
23
+ Deployment
24
+ ----------
25
+
26
+ ``hyperion-blueapi`` and ``hyperion-supervisor`` are automatically available in a standard Hyperion deployment.
27
+
28
+ Launching
29
+ ---------
30
+
31
+ ``hyperion-blueapi`` can be launched in using the ``run_hyperion.sh`` script, using the ``--blueapi`` option:
32
+
33
+ ::
34
+
35
+ ./run_hyperion.sh --beamline=i03 --dev --blueapi
36
+
37
+
38
+ ``hyperion-supervisor`` can be launched using the ``run_hyperion.sh`` script, using the ``--supervisor`` option:
39
+
40
+ ::
41
+
42
+ ./run_hyperion.sh --beamline=i03 --dev --supervisor
43
+
44
+ Configuration
45
+ -------------
46
+
47
+ Configuration of ``hyperion-blueapi`` and ``hyperion-supervisor`` is done via standard BlueAPI .yaml configuration files.
48
+ Basic configuration files for i03 are supplied as follows in ``src/mx_bluesky/hyperion``.
49
+
50
+ .. csv-table:: hyperion-blueapi configuration files
51
+ :widths: auto
52
+ :header: "File", "Description"
53
+
54
+ "blueapi_config.yaml", "Defines beamline device module and blueapi plans to be exported, BlueAPI REST to listen on, Stomp and graylog servers."
55
+
56
+
57
+ .. csv-table:: hyperion-supervisor configuration files
58
+ :widths: auto
59
+ :header: "File", "Description"
60
+
61
+ "supervisor/client_config.yaml", "Tells the supervisor how to communicate with hyperion-blueapi, specifying the REST endpoint and stomp server."
62
+ "supervisor/supervisor_config.yaml", "Configures the internal blueapi context with a minimal beamline module containing the baton device and the graylog endpoint."
63
+
64
+ When these are deployed in kubernetes it is anticipated that these will be provided by specifying
65
+ directly in the values.yaml which will be expanded by the base helmcharts at deployment time.
@@ -17,6 +17,7 @@ Documentation specific for the Hyperion module within MX-Bluesky
17
17
  reference/param-hierarchy
18
18
  reference/coordinate-systems
19
19
  system-tests
20
+ hyperion-blueapi
20
21
 
21
22
  +++
22
23