mx-bluesky 1.2.0__tar.gz → 1.4.1a0__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 (463) hide show
  1. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.copier-answers.yml +3 -1
  2. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.devcontainer/Dockerfile +1 -1
  3. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/CONTRIBUTING.md +1 -1
  4. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/pages/make_switcher.py +8 -6
  5. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_container.yml +1 -5
  6. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_pypi.yml +2 -0
  7. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_release.yml +1 -1
  8. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/ci.yml +1 -1
  9. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.gitignore +1 -0
  10. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.pre-commit-config.yaml +8 -0
  11. mx_bluesky-1.4.1a0/.vscode/mxb-with-core-dependencies.code-workspace +23 -0
  12. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/Dockerfile +4 -1
  13. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/Dockerfile.release +1 -1
  14. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/PKG-INFO +5 -3
  15. mx_bluesky-1.4.1a0/docs/_api.rst +16 -0
  16. mx_bluesky-1.4.1a0/docs/_templates/custom-module-template.rst +37 -0
  17. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/conf.py +15 -5
  18. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +1 -1
  19. mx_bluesky-1.4.1a0/docs/developer/general/how-to/deploy-a-release.rst +57 -0
  20. mx_bluesky-1.4.1a0/docs/developer/general/how-to/dev-ops/dev-ops.rst +8 -0
  21. {mx_bluesky-1.2.0/docs/developer/general/how-to → mx_bluesky-1.4.1a0/docs/developer/general/how-to/dev-ops}/lint.rst +5 -5
  22. {mx_bluesky-1.2.0/docs/developer/general/how-to → mx_bluesky-1.4.1a0/docs/developer/general/how-to/dev-ops}/run-tests.rst +1 -1
  23. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/index.rst +2 -6
  24. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/reference/standards.rst +2 -2
  25. mx_bluesky-1.4.1a0/docs/developer/general/tutorials/profile-tests.rst +84 -0
  26. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/hyperion/deploying-hyperion.rst +10 -10
  27. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/hyperion/index.rst +2 -2
  28. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/hyperion/reference/param_hierarchy.puml +4 -4
  29. mx_bluesky-1.4.1a0/docs/index.rst +22 -0
  30. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/helmchart/templates/deployment.yaml +1 -1
  31. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/code.yml +6 -0
  32. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/test_data/setup.cfg +1 -1
  33. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/pyproject.toml +39 -10
  34. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/run_hyperion.sh +8 -8
  35. mx_bluesky-1.4.1a0/src/mx_bluesky/__init__.py +11 -0
  36. mx_bluesky-1.4.1a0/src/mx_bluesky/__main__.py +24 -0
  37. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/_version.py +2 -2
  38. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +14 -4
  39. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i04/thawing_plan.py +49 -11
  40. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/__init__.py +3 -0
  41. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/dcid.py +19 -21
  42. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +69 -91
  43. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +2 -5
  44. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -1
  45. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +111 -143
  46. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +141 -222
  47. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +119 -0
  48. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +18 -17
  49. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/log.py +58 -49
  50. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -1
  51. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +3 -3
  52. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +44 -0
  53. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +47 -0
  54. mx_bluesky-1.4.1a0/src/mx_bluesky/beamlines/i24/serial/run_serial.py +52 -0
  55. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -2
  56. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +79 -81
  57. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +9 -20
  58. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +26 -28
  59. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +11 -11
  60. mx_bluesky-1.4.1a0/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +14 -0
  61. mx_bluesky-1.4.1a0/src/mx_bluesky/common/external_interaction/config_server.py +46 -0
  62. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1a0/src/mx_bluesky/common}/parameters/components.py +54 -50
  63. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1a0/src/mx_bluesky/common}/parameters/constants.py +47 -67
  64. mx_bluesky-1.4.1a0/src/mx_bluesky/common/parameters/gridscan.py +94 -0
  65. mx_bluesky-1.4.1a0/src/mx_bluesky/common/parameters/robot_load.py +16 -0
  66. mx_bluesky-1.4.1a0/src/mx_bluesky/common/plans/__init__.py +1 -0
  67. mx_bluesky-1.4.1a0/src/mx_bluesky/common/plans/do_fgs.py +121 -0
  68. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1a0/src/mx_bluesky/common/utils}/log.py +39 -20
  69. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.1a0/src/mx_bluesky/common/utils}/tracing.py +2 -2
  70. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/__main__.py +13 -10
  71. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +31 -26
  72. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +6 -12
  73. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +6 -12
  74. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +5 -6
  75. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +49 -18
  76. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +6 -6
  77. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +2 -2
  78. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +4 -4
  79. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +4 -0
  80. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/experiment_plans/change_aperture_then_move_plan.py +83 -0
  81. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/experiment_plans/common/xrc_result.py +47 -0
  82. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +9 -9
  83. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +145 -161
  84. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +56 -22
  85. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +88 -0
  86. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +21 -20
  87. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +11 -14
  88. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +2 -2
  89. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +40 -21
  90. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +19 -19
  91. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +21 -21
  92. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +51 -13
  93. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +24 -7
  94. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +5 -6
  95. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +1 -2
  96. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/common/abstract_event.py +66 -0
  97. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/ispyb_mapping.py +1 -1
  98. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/grid_detection_callback.py +30 -25
  99. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/ispyb_callback_base.py +29 -12
  100. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/log_uid_tag_callback.py +1 -1
  101. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +1 -1
  102. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +7 -4
  103. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +5 -3
  104. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_callback.py +28 -20
  105. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/nexus_callback.py +5 -4
  106. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/config_server.py +18 -0
  107. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/ispyb/exp_eye_store.py +1 -1
  108. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_store.py +1 -1
  109. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/nexus/nexus_utils.py +2 -2
  110. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/nexus/write_nexus.py +1 -1
  111. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/log.py +15 -0
  112. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/parameters/components.py +7 -0
  113. mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/parameters/constants.py +61 -0
  114. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/parameters/gridscan.py +35 -74
  115. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +16 -11
  116. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/parameters/rotation.py +23 -10
  117. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/utils/utils.py +17 -0
  118. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/utils/validation.py +5 -6
  119. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/PKG-INFO +5 -3
  120. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/SOURCES.txt +37 -23
  121. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/requires.txt +4 -2
  122. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/conftest.py +120 -79
  123. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/conftest.py +23 -60
  124. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +11 -12
  125. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +1 -1
  126. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +24 -30
  127. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/conftest.py +64 -18
  128. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_config_service.py +2 -2
  129. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +15 -9
  130. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +42 -26
  131. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +11 -7
  132. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/test_aperturescatterguard_system.py +4 -3
  133. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +1 -2
  134. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -2
  135. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -1
  136. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -1
  137. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_parameters.json +3 -4
  138. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -2
  139. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -1
  140. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -1
  141. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -1
  142. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -1
  143. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -2
  144. mx_bluesky-1.4.1a0/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +56 -0
  145. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -1
  146. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_beamline_vfm_lat_converter.txt +1 -1
  147. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +1 -1
  148. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i04/test_thawing.py +139 -30
  149. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/conftest.py +8 -10
  150. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +40 -24
  151. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +111 -64
  152. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -12
  153. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +52 -12
  154. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +34 -11
  155. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +35 -0
  156. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +1 -2
  157. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +12 -0
  158. mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/test_log.py +104 -0
  159. mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +47 -0
  160. mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +43 -0
  161. mx_bluesky-1.4.1a0/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +36 -0
  162. mx_bluesky-1.4.1a0/tests/unit_tests/common/plan_stubs/test_do_fgs.py +169 -0
  163. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log → mx_bluesky-1.4.1a0/tests/unit_tests/common/utils}/test_log.py +77 -21
  164. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/conftest.py +0 -13
  165. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/conftest.py +24 -20
  166. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +155 -0
  167. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +78 -0
  168. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +1 -1
  169. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +20 -17
  170. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +9 -6
  171. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +34 -18
  172. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +26 -0
  173. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/conftest.py +100 -30
  174. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/experiment_plans/test_change_aperture_then_move_plan.py +78 -0
  175. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +7 -2
  176. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +139 -228
  177. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +122 -114
  178. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +115 -146
  179. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +505 -0
  180. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +6 -0
  181. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +14 -15
  182. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +81 -31
  183. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +58 -20
  184. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +9 -8
  185. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +120 -17
  186. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +19 -11
  187. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +2 -2
  188. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/common/test_abstract_event.py +44 -0
  189. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +20 -11
  190. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +2 -2
  191. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +5 -1
  192. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +299 -0
  193. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_callback.py +21 -26
  194. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_mapping.py +3 -3
  195. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/conftest.py +4 -13
  196. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/ispyb/conftest.py +2 -2
  197. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_expeye_interaction.py +4 -4
  198. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/nexus/__init__.py +0 -0
  199. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +28 -17
  200. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
  201. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +48 -14
  202. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/test_main_system.py +6 -8
  203. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/test_utils.py +19 -0
  204. mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/utils/__init__.py +0 -0
  205. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/utils/test_context.py +2 -2
  206. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/deploy/create_venv.py +10 -6
  207. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/deploy/deploy_hyperion_to_k8s.sh +10 -10
  208. mx_bluesky-1.2.0/utility_scripts/deploy/deploy_hyperion.py → mx_bluesky-1.4.1a0/utility_scripts/deploy/deploy_mx_bluesky.py +151 -84
  209. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/docker/entrypoint.sh +4 -4
  210. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/docker/i03-compose.yml +2 -2
  211. mx_bluesky-1.4.1a0/utility_scripts/procserv_ioc_start.sh +19 -0
  212. mx_bluesky-1.2.0/.github/workflows/publish_docker_image.yml +0 -50
  213. mx_bluesky-1.2.0/docs/developer/general/how-to/deploy-a-release.rst +0 -84
  214. mx_bluesky-1.2.0/docs/developer/general/how-to/static-analysis.rst +0 -8
  215. mx_bluesky-1.2.0/docs/developer/general/tutorials/dev-install.rst +0 -60
  216. mx_bluesky-1.2.0/docs/genindex.rst +0 -5
  217. mx_bluesky-1.2.0/docs/index.rst +0 -29
  218. mx_bluesky-1.2.0/docs/user/explanations/docs-structure.rst +0 -18
  219. mx_bluesky-1.2.0/docs/user/how-to/run-container.rst +0 -15
  220. mx_bluesky-1.2.0/docs/user/index.rst +0 -57
  221. mx_bluesky-1.2.0/docs/user/reference/api.rst +0 -14
  222. mx_bluesky-1.2.0/docs/user/tutorials/installation.rst +0 -38
  223. mx_bluesky-1.2.0/src/mx_bluesky/__init__.py +0 -6
  224. mx_bluesky-1.2.0/src/mx_bluesky/__main__.py +0 -19
  225. mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Mapping_py3v1.py +0 -161
  226. mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -328
  227. mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -19
  228. mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -22
  229. mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -36
  230. mx_bluesky-1.2.0/src/mx_bluesky/example.py +0 -19
  231. mx_bluesky-1.2.0/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -46
  232. mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -35
  233. mx_bluesky-1.2.0/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -16
  234. mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -68
  235. mx_bluesky-1.2.0/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -244
  236. mx_bluesky-1.2.0/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -38
  237. mx_bluesky-1.2.0/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +0 -224
  238. mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -420
  239. mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log/conftest.py +0 -13
  240. mx_bluesky-1.2.0/tests/unit_tests/test_example.py +0 -16
  241. mx_bluesky-1.2.0/utility_scripts/deploy/deploy_mxbluesky.py +0 -189
  242. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.coveragerc +0 -0
  243. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.devcontainer/devcontainer.json +0 -0
  244. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.dockerignore +0 -0
  245. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  246. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  247. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  248. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/actions/install_requirements/action.yml +0 -0
  249. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/actions/verify-nexus/Dockerfile +0 -0
  250. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/actions/verify-nexus/action.yml +0 -0
  251. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/actions/verify-nexus/entrypoint.sh +0 -0
  252. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/dependabot.yml +0 -0
  253. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/pages/index.html +0 -0
  254. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_check.yml +0 -0
  255. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_dist.yml +0 -0
  256. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_docs.yml +0 -0
  257. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_test.yml +0 -0
  258. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/_tox.yml +0 -0
  259. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.github/workflows/periodic.yml +0 -0
  260. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.vscode/extensions.json +0 -0
  261. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.vscode/launch.json +0 -0
  262. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.vscode/mx-bluesky.code-workspace +0 -0
  263. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.vscode/settings.json +0 -0
  264. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/.vscode/tasks.json +0 -0
  265. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/LICENSE +0 -0
  266. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/README.rst +0 -0
  267. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/catalog-info.yaml +0 -0
  268. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/codecov.yml +0 -0
  269. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/conftest.py +0 -0
  270. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  271. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
  272. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/explanations/decisions.rst +0 -0
  273. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/how-to/contribute.rst +0 -0
  274. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/how-to/create-a-release.rst +0 -0
  275. {mx_bluesky-1.2.0/docs/developer/general/how-to → mx_bluesky-1.4.1a0/docs/developer/general/how-to/dev-ops}/build-docs.rst +0 -0
  276. {mx_bluesky-1.2.0/docs/developer/general/how-to → mx_bluesky-1.4.1a0/docs/developer/general/how-to/dev-ops}/update-tools.rst +0 -0
  277. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/general/how-to/get-started.rst +0 -0
  278. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
  279. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/hyperion/reference/readme.md +0 -0
  280. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/index.rst +0 -0
  281. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
  282. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
  283. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/murko-integration/index.rst +0 -0
  284. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
  285. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
  286. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
  287. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
  288. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
  289. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
  290. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
  291. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/images/dls-favicon.ico +0 -0
  292. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/docs/images/dls-logo.svg +0 -0
  293. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/helmchart/Chart.yaml +0 -0
  294. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/helmchart/templates/ingress.yaml +0 -0
  295. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/helmchart/templates/service.yaml +0 -0
  296. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/helmchart/values.yaml +0 -0
  297. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
  298. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
  299. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/container_tests.sh +0 -0
  300. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
  301. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
  302. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/linkcheck.yml +0 -0
  303. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
  304. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
  305. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/pin_versions.py +0 -0
  306. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
  307. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
  308. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
  309. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
  310. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
  311. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/hyperion_other/workflows/test_pin_versions.py +0 -0
  312. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/run_hyperion_in_podman.sh +0 -0
  313. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/setup.cfg +0 -0
  314. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/__init__.py +0 -0
  315. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
  316. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
  317. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
  318. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
  319. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
  320. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
  321. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
  322. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
  323. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
  324. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
  325. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
  326. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
  327. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
  328. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
  329. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
  330. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
  331. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  332. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  333. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
  334. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
  335. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
  336. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
  337. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
  338. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  339. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
  340. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
  341. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
  342. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
  343. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
  344. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
  345. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
  346. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.1a0/src/mx_bluesky/common}/__init__.py +0 -0
  347. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/__init__.py +0 -0
  348. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/common → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
  349. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
  350. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
  351. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/exceptions.py +0 -0
  352. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
  353. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
  354. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/aperture_change_callback.py +0 -0
  355. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/common}/__init__.py +0 -0
  356. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +0 -0
  357. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/logging_callback.py +0 -0
  358. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/plan_reactive_callback.py +0 -0
  359. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  360. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
  361. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/ispyb → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
  362. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
  363. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/callbacks/zocalo_callback.py +0 -0
  364. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/exceptions.py +0 -0
  365. {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/nexus → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/ispyb}/__init__.py +0 -0
  366. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/ispyb/data_model.py +0 -0
  367. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_utils.py +0 -0
  368. {mx_bluesky-1.2.0/tests → mx_bluesky-1.4.1a0/src/mx_bluesky/hyperion/external_interaction/nexus}/__init__.py +0 -0
  369. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
  370. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
  371. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
  372. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/hyperion/utils/context.py +0 -0
  373. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky/jupyter_example.ipynb +0 -0
  374. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
  375. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
  376. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/src/mx_bluesky.egg-info/top_level.txt +0 -0
  377. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/start_jupyter.sh +0 -0
  378. {mx_bluesky-1.2.0/tests/system_tests → mx_bluesky-1.4.1a0/tests}/__init__.py +0 -0
  379. {mx_bluesky-1.2.0/tests/system_tests/hyperion → mx_bluesky-1.4.1a0/tests/system_tests}/__init__.py +0 -0
  380. {mx_bluesky-1.2.0/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.1a0/tests/system_tests/hyperion}/__init__.py +0 -0
  381. {mx_bluesky-1.2.0/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.1a0/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
  382. {mx_bluesky-1.2.0/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
  383. {mx_bluesky-1.2.0/tests/unit_tests → mx_bluesky-1.4.1a0/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  384. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
  385. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
  386. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
  387. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/README.md +0 -0
  388. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/fake_data.h5 +0 -0
  389. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
  390. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
  391. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
  392. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
  393. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
  394. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
  395. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
  396. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/scratch/README +0 -0
  397. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_OAVCentring.json +0 -0
  398. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
  399. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
  400. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_beamline_parameters.txt +0 -0
  401. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_config.cfg +0 -0
  402. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
  403. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
  404. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
  405. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_det_dist_converter.txt +0 -0
  406. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_display.configuration +0 -0
  407. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
  408. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_lookup_table.txt +0 -0
  409. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/test_data/test_mirror_focus.json +0 -0
  410. {mx_bluesky-1.2.0/tests/unit_tests/beamlines → mx_bluesky-1.4.1a0/tests/unit_tests}/__init__.py +0 -0
  411. {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.1a0/tests/unit_tests/beamlines}/__init__.py +0 -0
  412. {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
  413. {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
  414. {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
  415. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
  416. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
  417. {mx_bluesky-1.2.0/tests/unit_tests/hyperion → mx_bluesky-1.4.1a0/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
  418. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
  419. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
  420. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.1a0/tests/unit_tests/common}/__init__.py +0 -0
  421. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.1a0/tests/unit_tests/common/utils}/__init__.py +0 -0
  422. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion}/__init__.py +0 -0
  423. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
  424. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +0 -0
  425. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
  426. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
  427. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/ispyb → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
  428. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
  429. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/common}/__init__.py +0 -0
  430. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
  431. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
  432. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
  433. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_zocalo_handler.py +0 -0
  434. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/__init__.py +0 -0
  435. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/conftest.py +0 -0
  436. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_handler.py +0 -0
  437. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_nexus_handler.py +0 -0
  438. {mx_bluesky-1.2.0/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.1a0/tests/unit_tests/hyperion/external_interaction/ispyb}/__init__.py +0 -0
  439. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
  440. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_rotation_ispyb_store.py +0 -0
  441. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
  442. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/nexus/test_nexus_utils.py +0 -0
  443. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
  444. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
  445. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
  446. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/test_ispyb_utils.py +0 -0
  447. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
  448. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
  449. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
  450. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/tests/unit_tests/test_cli.py +0 -0
  451. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/beam_off_trickery.sh +0 -0
  452. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/build_docker_image.sh +0 -0
  453. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/build_imginfo.sh +0 -0
  454. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
  455. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/deploy/test_deploy.py +0 -0
  456. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/dev_jaeger_container.sh +0 -0
  457. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/dls_dev_env.sh +0 -0
  458. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/docker/healthcheck.sh +0 -0
  459. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/graylog/Dockerfile +0 -0
  460. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/graylog/tcp_input.json +0 -0
  461. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/run_imginfo.sh +0 -0
  462. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/setup_graylog.sh +0 -0
  463. {mx_bluesky-1.2.0 → mx_bluesky-1.4.1a0}/utility_scripts/strip_metafile.py +0 -0
@@ -1,9 +1,11 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 2.2.0
2
+ _commit: 2.5.0
3
3
  _src_path: gh:DiamondLightSource/python-copier-template
4
4
  author_email: dominic.oram@diamond.ac.uk
5
5
  author_name: Dominic Oram
6
+ component_lifecycle: production
6
7
  component_owner: group:data-acquisition
8
+ component_type: library
7
9
  description: Bluesky tools for MX Beamlines at DLS
8
10
  distribution_name: mx-bluesky
9
11
  docker: true
@@ -3,7 +3,7 @@
3
3
  # The devcontainer should use the build target and run as root with podman
4
4
  # or docker with user namespaces.
5
5
  #
6
- FROM python:3.11 AS build
6
+ FROM python:3.12 AS build
7
7
 
8
8
  ARG PIP_OPTIONS
9
9
 
@@ -54,4 +54,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
54
54
 
55
55
  This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
56
56
 
57
- 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/2.2.0/how-to.html).
57
+ 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/2.5.0/how-to.html).
@@ -1,3 +1,5 @@
1
+ """Make switcher.json to allow docs to switch between different versions."""
2
+
1
3
  import json
2
4
  import logging
3
5
  from argparse import ArgumentParser
@@ -6,6 +8,7 @@ from subprocess import CalledProcessError, check_output
6
8
 
7
9
 
8
10
  def report_output(stdout: bytes, label: str) -> list[str]:
11
+ """Print and return something received frm stdout."""
9
12
  ret = stdout.decode().strip().split("\n")
10
13
  print(f"{label}: {ret}")
11
14
  return ret
@@ -52,14 +55,12 @@ def get_versions(ref: str, add: str | None) -> list[str]:
52
55
  return versions
53
56
 
54
57
 
55
- def write_json(path: Path, repository: str, versions: str):
58
+ def write_json(path: Path, repository: str, versions: list[str]):
59
+ """Write the JSON switcher to path."""
56
60
  org, repo_name = repository.split("/")
57
- pages_url = f"https://{org}.github.io"
58
- if repo_name != f"{org}.github.io":
59
- # Only add the repo name if it isn't the source for the org pages site
60
- pages_url += f"/{repo_name}"
61
61
  struct = [
62
- {"version": version, "url": f"{pages_url}/{version}/"} for version in versions
62
+ {"version": version, "url": f"https://{org}.github.io/{repo_name}/{version}/"}
63
+ for version in versions
63
64
  ]
64
65
  text = json.dumps(struct, indent=2)
65
66
  print(f"JSON switcher:\n{text}")
@@ -67,6 +68,7 @@ def write_json(path: Path, repository: str, versions: str):
67
68
 
68
69
 
69
70
  def main(args=None):
71
+ """Parse args and write switcher."""
70
72
  parser = ArgumentParser(
71
73
  description="Make a versions.json file from gh-pages directories"
72
74
  )
@@ -30,12 +30,8 @@ jobs:
30
30
  DOCKER_BUILD_RECORD_UPLOAD: false
31
31
  with:
32
32
  context: .
33
- # Need load and tags so we can test it below
33
+ file: Dockerfile.release
34
34
  load: true
35
- tags: tag_for_testing
36
-
37
- - name: Test cli works in cached runtime image
38
- run: docker run --rm tag_for_testing --version
39
35
 
40
36
  - name: Create tags for publishing image
41
37
  id: meta
@@ -15,3 +15,5 @@ jobs:
15
15
 
16
16
  - name: Publish to PyPI using trusted publishing
17
17
  uses: pypa/gh-action-pypi-publish@release/v1
18
+ with:
19
+ attestations: false
@@ -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@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
26
+ uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8 # v2.0.9
27
27
  with:
28
28
  prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }}
29
29
  files: "*"
@@ -21,7 +21,7 @@ jobs:
21
21
  strategy:
22
22
  matrix:
23
23
  runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
24
- python-version: ["3.11"] # , "3.12"] # add 3.12 when p4p #145 is fixed
24
+ python-version: ["3.11", "3.12"]
25
25
  fail-fast: false
26
26
  uses: ./.github/workflows/_test.yml
27
27
  with:
@@ -80,6 +80,7 @@ instance/
80
80
 
81
81
  # Sphinx documentation
82
82
  docs/_build/
83
+ docs/_api
83
84
 
84
85
  # PyBuilder
85
86
  target/
@@ -26,6 +26,14 @@ repos:
26
26
  types: [python]
27
27
  require_serial: true
28
28
 
29
+ - id: import-contracts
30
+ name: Ensure import directionality
31
+ pass_filenames: false
32
+ language: system
33
+ entry: lint-imports
34
+ types: [python]
35
+ require_serial: false
36
+
29
37
  # Type checking
30
38
  - repo: https://github.com/pre-commit/mirrors-mypy
31
39
  rev: v1.4.1
@@ -0,0 +1,23 @@
1
+ // To use this you should obviously have these all in the parent directory
2
+ {
3
+ "folders": [
4
+ {
5
+ "path": ".."
6
+ },
7
+ {
8
+ "path": "../../dodal"
9
+ },
10
+ {
11
+ "path": "../../bluesky"
12
+ },
13
+ {
14
+ "path": "../../ophyd"
15
+ },
16
+ {
17
+ "path": "../../ophyd-async"
18
+ }
19
+ ],
20
+ "settings": {
21
+ "terminal.integrated.gpuAcceleration": "off"
22
+ }
23
+ }
@@ -1,11 +1,14 @@
1
1
  # The devcontainer should use the developer target and run as root with podman
2
2
  # or docker with user namespaces.
3
- ARG PYTHON_VERSION=3.11
3
+ ARG PYTHON_VERSION=3.12
4
4
  FROM python:${PYTHON_VERSION} AS developer
5
5
 
6
6
  # Add any system dependencies for the developer/build environment here
7
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
8
  graphviz \
9
+ ffmpeg \
10
+ libsm6 \
11
+ libxext6 \
9
12
  && rm -rf /var/lib/apt/lists/*
10
13
 
11
14
  # Set up a virtual environment and put it in PATH
@@ -33,6 +33,6 @@ RUN git restore .
33
33
  RUN rm src/mx_bluesky/_version.py
34
34
  RUN pip install --no-cache-dir --no-compile --no-deps -e .
35
35
 
36
- ENTRYPOINT /app/hyperion/utility_scripts/docker/entrypoint.sh
36
+ ENTRYPOINT ["/app/hyperion/utility_scripts/docker/entrypoint.sh"]
37
37
 
38
38
  EXPOSE 5005
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mx-bluesky
3
- Version: 1.2.0
3
+ Version: 1.4.1a0
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -226,6 +226,7 @@ Requires-Dist: opencv-python
226
226
  Requires-Dist: opentelemetry-distro
227
227
  Requires-Dist: opentelemetry-exporter-otlp
228
228
  Requires-Dist: pydantic
229
+ Requires-Dist: pydantic-extra-types
229
230
  Requires-Dist: pyepics
230
231
  Requires-Dist: pyzmq
231
232
  Requires-Dist: requests
@@ -236,14 +237,15 @@ Requires-Dist: matplotlib
236
237
  Requires-Dist: blueapi>=0.5.0
237
238
  Requires-Dist: daq-config-server>=0.1.1
238
239
  Requires-Dist: ophyd==1.9.0
239
- Requires-Dist: ophyd-async>=0.3a5
240
+ Requires-Dist: ophyd-async>=0.8a5
240
241
  Requires-Dist: bluesky>=1.13.0a4
241
- Requires-Dist: dls-dodal==1.33.0
242
+ Requires-Dist: dls-dodal==1.36.1a
242
243
  Provides-Extra: dev
243
244
  Requires-Dist: black; extra == "dev"
244
245
  Requires-Dist: build; extra == "dev"
245
246
  Requires-Dist: diff-cover; extra == "dev"
246
247
  Requires-Dist: GitPython; extra == "dev"
248
+ Requires-Dist: import-linter; extra == "dev"
247
249
  Requires-Dist: ipython; extra == "dev"
248
250
  Requires-Dist: mypy; extra == "dev"
249
251
  Requires-Dist: myst-parser; extra == "dev"
@@ -0,0 +1,16 @@
1
+ :orphan:
2
+
3
+ ..
4
+ This page is not included in the TOC tree, but must exist so that the
5
+ autosummary pages are generated for mx_bluesky and all its
6
+ subpackages
7
+
8
+ API
9
+ ===
10
+
11
+ .. autosummary::
12
+ :toctree: _api
13
+ :template: custom-module-template.rst
14
+ :recursive:
15
+
16
+ mx_bluesky
@@ -0,0 +1,37 @@
1
+ {{ ('``' + fullname + '``') | underline }}
2
+
3
+ {%- set filtered_members = [] %}
4
+ {%- for item in members %}
5
+ {%- if item in functions + classes + exceptions + attributes %}
6
+ {% set _ = filtered_members.append(item) %}
7
+ {%- endif %}
8
+ {%- endfor %}
9
+
10
+ .. automodule:: {{ fullname }}
11
+ :members:
12
+
13
+ {% block modules %}
14
+ {% if modules %}
15
+ .. rubric:: Submodules
16
+
17
+ .. autosummary::
18
+ :toctree:
19
+ :template: custom-module-template.rst
20
+ :recursive:
21
+ {% for item in modules %}
22
+ {{ item }}
23
+ {%- endfor %}
24
+ {% endif %}
25
+ {% endblock %}
26
+
27
+ {% block members %}
28
+ {% if filtered_members %}
29
+ .. rubric:: Members
30
+
31
+ .. autosummary::
32
+ :nosignatures:
33
+ {% for item in filtered_members %}
34
+ {{ item }}
35
+ {%- endfor %}
36
+ {% endif %}
37
+ {% endblock %}
@@ -1,8 +1,9 @@
1
- # Configuration file for the Sphinx documentation builder.
2
- #
3
- # This file only contains a selection of the most common options. For a full
4
- # list see the documentation:
5
- # https://www.sphinx-doc.org/en/master/usage/configuration.html
1
+ """Configuration file for the Sphinx documentation builder.
2
+
3
+ This file only contains a selection of the most common options. For a full
4
+ list see the documentation:
5
+ https://www.sphinx-doc.org/en/master/usage/configuration.html
6
+ """
6
7
 
7
8
  import sys
8
9
  from pathlib import Path
@@ -32,6 +33,8 @@ else:
32
33
  extensions = [
33
34
  # Use this for generating API docs
34
35
  "sphinx.ext.autodoc",
36
+ # and making summary tables at the top of API docs
37
+ "sphinx.ext.autosummary",
35
38
  # This can parse google style docstrings
36
39
  "sphinx.ext.napoleon",
37
40
  # For linking to external sphinx documentation
@@ -93,6 +96,12 @@ autodoc_member_order = "bysource"
93
96
  # Don't inherit docstrings from baseclasses
94
97
  autodoc_inherit_docstrings = False
95
98
 
99
+ # Document only what is in __all__
100
+ autosummary_ignore_module_all = False
101
+
102
+ # Add any paths that contain templates here, relative to this directory.
103
+ templates_path = ["_templates"]
104
+
96
105
  # Output graphviz directive produced images in a scalable format
97
106
  graphviz_output_format = "svg"
98
107
 
@@ -127,6 +136,7 @@ rst_epilog = """
127
136
  .. _black: https://github.com/psf/black
128
137
  .. _mypy: http://mypy-lang.org/
129
138
  .. _pre-commit: https://pre-commit.com/
139
+ .. _ruff: https://github.com/astral-sh/ruff
130
140
  """
131
141
 
132
142
  # Ignore localhost links for periodic check that links in docs are valid
@@ -1,4 +1,4 @@
1
- 1. Python version support
1
+ 3. Python version support
2
2
  =========================
3
3
 
4
4
  Date: 2024-08-22
@@ -0,0 +1,57 @@
1
+ Deploy a New Release
2
+ ====================
3
+
4
+ **Remember to discuss any new deployments with the appropriate beamline scientist.**
5
+
6
+ The ``utility_scripts/deploy/deploy_mx_bluesky.py`` script will deploy the latest mx-bluesky version to a specified beamline. Deployments live in ``/dls_sw/ixx/software/bluesky/mx-bluesky_vX.X.X``. To do a new deployment you should run the deploy script from your mx-bluesky dev environment with e.g.
7
+ If you have just created a new release, you may need to run git fetch --tags to get the newest release.
8
+
9
+ .. code:: console
10
+
11
+ python ./utility_scripts/deploy/deploy_mx_bluesky.py i24
12
+
13
+
14
+ If you want to test the script for a specific beamline you can run:
15
+
16
+ .. code:: console
17
+
18
+ python ./deploy/deploy_mx_bluesky.py i03 --dev
19
+
20
+
21
+ which will create the beamline deployment of the new release in ``/scratch/30day_tmp/mx-bluesky_release_test``.
22
+
23
+
24
+ .. note::
25
+
26
+ When deploying on I24, the edm screens for serial crystallography will be deployed automatically along with the mx-bluesky release.
27
+
28
+
29
+ The script has a few additional optional arguments, which can be viewed with:
30
+
31
+ .. code:: console
32
+
33
+ python ./deploy/deploy_mx_bluesky.py -h
34
+
35
+
36
+ For building and deploying a Docker image please see :doc:`../../hyperion/deploying-hyperion`.
37
+
38
+
39
+ .. note::
40
+
41
+ On i03 the installation will succeed with error messages due to RedHat7 versions of a dependency being unavailable.
42
+ This results in the installation being incomplete, thus requiring the following post-installation steps:
43
+
44
+ First, on a RedHat8 workstation, run
45
+
46
+ .. code:: console
47
+
48
+ . ./.venv/bin/activate
49
+ pip install confluent-kafka
50
+
51
+ Then, on the control machine, run
52
+
53
+ .. code:: console
54
+
55
+ . ./.venv/bin/activate
56
+ pip install -e .
57
+ pip install -e ../dodal
@@ -0,0 +1,8 @@
1
+ Dev-Ops guides
2
+ ==============================
3
+
4
+ .. toctree::
5
+ :maxdepth: 1
6
+ :glob:
7
+
8
+ ./*
@@ -1,7 +1,7 @@
1
1
  Run linting using pre-commit
2
2
  ============================
3
3
 
4
- Code linting is handled by black_, ruff run under pre-commit_.
4
+ Code linting is handled by ruff_, run under pre-commit_.
5
5
 
6
6
  Running pre-commit
7
7
  ------------------
@@ -18,15 +18,15 @@ commit`` on just the files that have changed::
18
18
  Fixing issues
19
19
  -------------
20
20
 
21
- If black reports an issue you can tell it to reformat all the files in the
21
+ If ruff reports an issue you can attempt to automatically reformat all the files in the
22
22
  repository::
23
23
 
24
- $ black .
24
+ $ ruff check --fix .
25
25
 
26
26
  If you get any ruff issues you will have to fix those manually.
27
27
 
28
28
  VSCode support
29
29
  --------------
30
30
 
31
- The ``.vscode/settings.json`` will run black and isort formatters as well as
32
- flake8 checking on save. Issues will be highlighted in the editor window.
31
+ The ``.vscode/settings.json`` will run linters and formatters
32
+ on save. Issues will be highlighted in the editor window.
@@ -4,7 +4,7 @@ Run the tests using pytest
4
4
  Testing is done with pytest_. It will find functions in the project that `look
5
5
  like tests`_, and run them to check for errors. You can run it with::
6
6
 
7
- $ tox -e pytest
7
+ $ tox -e tests
8
8
 
9
9
  It will also report coverage to the commandline and to ``cov.xml``.
10
10
 
@@ -12,7 +12,7 @@ Documentation is split into four categories, and each is also accessible from li
12
12
  :caption: Tutorials
13
13
  :maxdepth: 1
14
14
 
15
- tutorials/dev-install
15
+ tutorials/profile-tests
16
16
 
17
17
  +++
18
18
 
@@ -26,13 +26,9 @@ Documentation is split into four categories, and each is also accessible from li
26
26
 
27
27
  how-to/get-started
28
28
  how-to/contribute
29
- how-to/build-docs
30
- how-to/run-tests
31
- how-to/static-analysis
32
- how-to/lint
33
- how-to/update-tools
34
29
  how-to/create-a-release
35
30
  how-to/deploy-a-release
31
+ how-to/dev-ops/dev-ops
36
32
 
37
33
  +++
38
34
 
@@ -15,7 +15,7 @@ The code in this repository conforms to standards set by the following tools:
15
15
 
16
16
  .. seealso::
17
17
 
18
- How-to guides `../how-to/lint` and `../how-to/static-analysis`
18
+ How-to guides `../how-to/dev-ops/lint`
19
19
 
20
20
  .. _documentation_standards:
21
21
 
@@ -60,4 +60,4 @@ Docs follow the underlining convention::
60
60
 
61
61
  .. seealso::
62
62
 
63
- How-to guide `../how-to/build-docs`
63
+ How-to guide `../how-to/dev-ops/build-docs`
@@ -0,0 +1,84 @@
1
+ Unit test performance
2
+ =====================
3
+
4
+ Ideally we want to keep the run-time of the unit tests down so that they are quick for developers to run locally.
5
+ Preferably they should run in under a minute.
6
+
7
+ General Guidelines
8
+ ------------------
9
+
10
+ Where a unit test waits for some event to happen, ``wait`` on the group to complete rather than adding a fixed
11
+ ``sleep``.
12
+
13
+ If testing a timeout, ensure that the timeout constant is either configurable or appropriately ``patch`` ed to a short
14
+ value e.g.
15
+ 0.1s
16
+
17
+ How to profile the unit tests
18
+ -----------------------------
19
+
20
+ Sometimes tests can exhibit slowdowns for unknown reasons, in order to diagnose the cause it can be useful to profile
21
+ the test code.
22
+
23
+ The simplest way to find slow tests is to run ``pytest`` with the ``--durations`` option in order to find the slowest
24
+ tests.
25
+
26
+ e.g.
27
+
28
+ .. code-block:: bash
29
+
30
+ pytest -m "not (s03 or dlstbx)" --durations=10
31
+
32
+ in order to find the top 10 slowest tests
33
+
34
+ You can then often step through in the debugger to find lines which execute slowly.
35
+
36
+
37
+ More detailed profiling
38
+ ------------------------
39
+
40
+ Occasionally this is not sufficient. In which case more detailed profiling is necessary
41
+
42
+ Generating profiler output
43
+ --------------------------
44
+
45
+ You can install ``pytest-profiling`` to run the tests and generate profiling output
46
+
47
+ e.g.
48
+
49
+ .. code-block:: bash
50
+
51
+ pip install pytest-profiling
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
+
54
+
55
+ The output of this is quite brief but it will generate more detailed ``.prof`` files in the ``prof`` directory
56
+
57
+ To browse these files you need something useful. Snakeviz is a tool that can be used to browse the output:
58
+
59
+ .. code-block:: bash
60
+
61
+ cd prof
62
+ pip install snakeviz
63
+ snakeviz combined.prof
64
+
65
+ An alternative tool is py-spy.
66
+
67
+ e.g.
68
+
69
+ .. code-block:: bash
70
+
71
+ pip install py-spy
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
+
74
+ This will generator an interactive SVG flamechart that can be opened in a browser to see hot methods.
75
+
76
+ Alternatively something like
77
+
78
+ .. code-block:: bash
79
+
80
+ py-spy top -- 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
81
+
82
+ to view a ``top`` -like updating view of where time is being spent. You will probably need to temporarily annotate the
83
+ test with
84
+ ``@pytest.mark.parametrize`` in order to make the tests loop sufficient times in order to observe.
@@ -1,11 +1,11 @@
1
1
  Building a deployable Docker image
2
2
  ==================================
3
3
 
4
- Release builds of container images should be built by the github CI on release, ad-hoc builds can be performed via
4
+ Release builds of container images should be built by the github CI on release, ad-hoc builds can be performed via
5
5
  manual invocation of the Publish Docker Image workflow.
6
6
 
7
7
  Development builds of container images can be made by running the ``utility_scripts/build_docker_image.sh`` script.
8
- By default it will both build and push the image unless you specify ``--no-build`` or ``--no-push``. To push an image
8
+ By default it will both build and push the image unless you specify ``--no-build`` or ``--no-push``. To push an image
9
9
  you will first need to create a GH personal access token and then log in with podman as described below.
10
10
 
11
11
  Pushing the docker image
@@ -79,16 +79,16 @@ Then create and deploy the helm release
79
79
 
80
80
  ./utility_scripts/deploy/deploy_hyperion_to_k8s.sh --beamline=<beamline> --checkout-to-prod hyperion
81
81
 
82
- This will run the ``deploy_hyperion.py`` script to deploy the latest hyperion to ``/dls_sw``.
82
+ This will run the ``deploy_mx_bluesky.py`` script to deploy the latest hyperion to ``/dls_sw``.
83
83
  You will be prompted to log into the beamline cluster, then it will create a helm release "hyperion".
84
- The source folders will be mounted as bind mounts to allow the pod to pick up changes in production.
84
+ The source folders will be mounted as bind mounts to allow the pod to pick up changes in production.
85
85
  For production these are expected to be in the normal place defined in ``values.yaml``.
86
86
 
87
87
  Development deployment
88
88
  ~~~~~~~~~~~~~~~~~~~~~~
89
89
 
90
- From a development ``hyperion`` workspace, either with a release image or using a development image built with the
91
- script
90
+ From a development ``hyperion`` workspace, either with a release image or using a development image built with the
91
+ script
92
92
  above, you install a dev deployment to the cluster you are currently logged into with ``kubectl``:
93
93
 
94
94
  ::
@@ -96,12 +96,12 @@ above, you install a dev deployment to the cluster you are currently logged into
96
96
  ./utility_scripts/deploy/deploy_hyperion_to_k8s.sh --dev --beamline=<beamline> --repository=<your image repo> hyperion-test
97
97
 
98
98
 
99
- The dev deployment bind-mounts the current ``hyperion`` workspace and ``../dodal`` into the container so that you can
100
- run against your own development code. **Clusters do not allow bind mounts from arbitrary directories so
99
+ The dev deployment bind-mounts the current ``hyperion`` workspace and ``../dodal`` into the container so that you can
100
+ run against your own development code. **Clusters do not allow bind mounts from arbitrary directories so
101
101
  your workspace will have to be in a permitted directory such as your home directory.**
102
102
 
103
- By default the script will log into the ``argus`` cluster, if you want to deploy to an alternate cluster,
104
- log in with ``kubectl set-context --current --namespace=<NAMESPACE>`` and then specify ``--no-login`` when running the
103
+ By default the script will log into the ``argus`` cluster, if you want to deploy to an alternate cluster,
104
+ log in with ``kubectl set-context --current --namespace=<NAMESPACE>`` and then specify ``--no-login`` when running the
105
105
  script
106
106
 
107
107
  Please note, the deployment script is intended to be run from a checked-out matching version of the git repository.
@@ -1,7 +1,7 @@
1
- General MX-Bluesky Developer Guide
1
+ Hyperion Developer Guide
2
2
  ==================================
3
3
 
4
- Documentation is split into four categories, and each is also accessible from links in the side-bar.
4
+ Documentation specific for the Hyperion module within MX-Bluesky
5
5
 
6
6
  .. grid:: 2
7
7
  :gutter: 2
@@ -31,7 +31,7 @@ package Experiments {
31
31
  class RobotLoadAndEnergyChange
32
32
  class RobotLoadThenCentre
33
33
  class SpecifiedGridScan
34
- class ThreeDGridScan
34
+ class HyperionThreeDGridScan
35
35
  }
36
36
 
37
37
  class HyperionParameters
@@ -66,9 +66,9 @@ RobotLoadThenCentre *-- RobotLoadAndEnergyChange
66
66
  RobotLoadThenCentre *-- PinTipCentreThenXrayCentre
67
67
  GridCommon <|-- SpecifiedGridScan
68
68
  WithScan <|-- SpecifiedGridScan
69
- SpecifiedGridScan <|-- ThreeDGridScan
70
- SplitScan <|-- ThreeDGridScan
71
- WithOptionalEnergyChange <|-- ThreeDGridScan
69
+ SpecifiedGridScan <|-- HyperionThreeDGridScan
70
+ SplitScan <|-- HyperionThreeDGridScan
71
+ WithOptionalEnergyChange <|-- HyperionThreeDGridScan
72
72
  WithOavCentring <|-- GridCommon
73
73
  WithScan <|-- RotationScan
74
74
  RotationScanPerSweep <|-- RotationScan