mx-bluesky 1.4.7__tar.gz → 1.4.8__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.
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_test.yml +3 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.gitignore +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/PKG-INFO +5 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/conftest.py +1 -11
- mx_bluesky-1.4.8/docs/developer/code-map/grid_detect_then_xray_centre.drawio.png +0 -0
- mx_bluesky-1.4.8/docs/developer/code-map/grid_detect_xrc.rst +60 -0
- mx_bluesky-1.4.8/docs/developer/code-map/index.rst +17 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/tutorials/profile-tests.rst +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/reference/gridscan.puml +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/reference/readme.md +8 -13
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/index.rst +12 -0
- mx_bluesky-1.4.7/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst → mx_bluesky-1.4.8/docs/developer/serial-crystallography-on-i24/how-to/pmac-docs.rst +111 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/index.rst +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +52 -39
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/pyproject.toml +25 -8
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/run_hyperion.sh +2 -8
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/_version.py +2 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i04/thawing_plan.py +8 -2
- mx_bluesky-1.4.8/src/mx_bluesky/beamlines/i23/__init__.py +3 -0
- mx_bluesky-1.4.8/src/mx_bluesky/beamlines/i23/serial.py +71 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/__init__.py +2 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +7 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +3 -3
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +6 -56
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/log.py +9 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +36 -7
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +2 -1
- mx_bluesky-1.4.8/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +169 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +3 -3
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/device_setup_plans/check_beamstop.py +1 -1
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/device_setup_plans/manipulate_sample.py +1 -1
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/device_setup_plans/setup_oav.py +12 -6
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/experiment_plans/change_aperture_then_move_plan.py +4 -5
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/experiment_plans/oav_grid_detection_plan.py +6 -6
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +6 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +16 -47
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_store.py +4 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/ispyb/ispyb_utils.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/parameters/components.py +22 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/parameters/constants.py +4 -16
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/parameters/gridscan.py +36 -32
- mx_bluesky-1.4.8/src/mx_bluesky/common/plans/common_flyscan_xray_centre_plan.py +316 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/plans/read_hardware.py +3 -3
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/utils/log.py +15 -12
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/__main__.py +2 -15
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +0 -33
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -6
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -9
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +71 -88
- mx_bluesky-1.4.8/src/mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py +183 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +12 -7
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +28 -7
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +11 -3
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +9 -8
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +18 -56
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +2 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/agamemnon.py +62 -70
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +8 -6
- mx_bluesky-1.4.8/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +259 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/cli.py +2 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/constants.py +0 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/device_composites.py +40 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/gridscan.py +9 -58
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/rotation.py +0 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/utils/context.py +2 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/utils/validation.py +13 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/PKG-INFO +5 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/SOURCES.txt +42 -21
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/requires.txt +4 -3
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/conftest.py +188 -162
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/conftest.py +15 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +23 -19
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/conftest.py +31 -32
- mx_bluesky-1.4.8/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +92 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_config_service.py +12 -6
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +8 -9
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +41 -14
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +200 -14
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +3 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +8 -43
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/agamemnon/example_collect.json +2 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/agamemnon/example_collect_multipin.json +3 -3
- mx_bluesky-1.4.8/tests/test_data/ispyb-test-credentials.cfg +19 -0
- mx_bluesky-1.4.8/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters.json +37 -0
- mx_bluesky-1.4.7/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json → mx_bluesky-1.4.8/tests/test_data/parameter_json_files/good_test_one_multi_rotation_scan_parameters_nomove.json +9 -5
- mx_bluesky-1.4.8/tests/test_data/rabbitmq-test-credentials.yml +6 -0
- mx_bluesky-1.4.8/tests/test_data/test_daq_configuration/OAVCentring_hyperion.json +23 -0
- mx_bluesky-1.4.8/tests/test_data/test_daq_configuration/display.configuration +42 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/ins_15_33_0.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/ins_15_33_90.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/ins_15_33_expected_0.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/ins_15_33_expected_270.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/thau_1_91_0.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/thau_1_91_90.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/thau_1_91_expected_0.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/test_images/thau_1_91_expected_270.png +0 -0
- mx_bluesky-1.4.8/tests/test_data/zocalo-test-configuration.yaml +20 -0
- mx_bluesky-1.4.8/tests/unit_tests/beamlines/i23/test_serial.py +163 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/conftest.py +7 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +5 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +2 -9
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +32 -61
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +2 -6
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +18 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +11 -7
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +25 -10
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/test_write_nexus.py +22 -18
- mx_bluesky-1.4.8/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +95 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion → mx_bluesky-1.4.8/tests/unit_tests/common}/device_setup_plans/test_check_beamstop.py +2 -2
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion → mx_bluesky-1.4.8/tests/unit_tests/common}/experiment_plans/test_change_aperture_then_move_plan.py +7 -7
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion → mx_bluesky-1.4.8/tests/unit_tests/common}/experiment_plans/test_grid_detection_plan.py +13 -15
- mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +372 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/ispyb/conftest.py +2 -15
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_gridscan_ispyb_store_3d.py +33 -41
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_rotation_ispyb_store.py +21 -30
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/conftest.py +0 -12
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/nexus/test_nexus_utils.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_callback.py +0 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_handler.py +1 -6
- mx_bluesky-1.4.8/tests/unit_tests/common/parameters/test_components.py +64 -0
- mx_bluesky-1.4.8/tests/unit_tests/common/plans/test_common_flyscan_xray_centre_plan.py +700 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/plans/test_read_hardware.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/test_do_fgs.py +5 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/utils/test_log.py +14 -9
- mx_bluesky-1.4.8/tests/unit_tests/conftest.py +319 -0
- mx_bluesky-1.4.8/tests/unit_tests/hyperion/conftest.py +125 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +3 -3
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +9 -12
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +0 -35
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/conftest.py +7 -5
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +72 -45
- mx_bluesky-1.4.8/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +400 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +18 -13
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +3 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +70 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +4 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +54 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +5 -4
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +66 -59
- mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +14 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling/test_sample_handling_callback.py +2 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +12 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +18 -12
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +2 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +2 -2
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/test_agamemnon.py +76 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +2 -0
- mx_bluesky-1.4.8/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/test_main_system.py +47 -69
- mx_bluesky-1.4.8/tests/unit_tests/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/deploy/deploy_mx_bluesky.py +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/dls_dev_env.sh +1 -1
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/docker/entrypoint.sh +2 -7
- mx_bluesky-1.4.7/hyperion_other/workflows/code.yml +0 -86
- mx_bluesky-1.4.7/hyperion_other/workflows/container_tests.sh +0 -1
- mx_bluesky-1.4.7/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +0 -109
- mx_bluesky-1.4.7/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +0 -467
- mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py +0 -107
- mx_bluesky-1.4.7/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +0 -346
- mx_bluesky-1.4.7/tests/system_tests/hyperion/external_interaction/test_agamemnon.py +0 -59
- mx_bluesky-1.4.7/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -63
- mx_bluesky-1.4.7/tests/unit_tests/beamlines/i24/serial/web_gui/test_general_plans.py +0 -60
- mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common/test_snapshot_callback.py +0 -83
- mx_bluesky-1.4.7/tests/unit_tests/conftest.py +0 -72
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/conftest.py +0 -53
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +0 -1122
- mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +0 -12
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.copier-answers.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.coveragerc +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.devcontainer/Dockerfile +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.devcontainer/devcontainer.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.dockerignore +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/CODEOWNERS +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/CONTRIBUTING.md +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/actions/install_requirements/action.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/actions/verify-nexus/Dockerfile +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/actions/verify-nexus/action.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/actions/verify-nexus/entrypoint.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/dependabot.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/pages/index.html +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/pages/make_switcher.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_check.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_container.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_dist.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_docs.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_pypi.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_release.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/_tox.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/ci.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.github/workflows/periodic.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.pre-commit-config.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/extensions.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/launch.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/mx-bluesky.code-workspace +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/mxb-with-core-dependencies.code-workspace +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/settings.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/.vscode/tasks.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/Dockerfile +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/Dockerfile.release +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/LICENSE +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/README.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/catalog-info.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/codecov.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/_api.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/_templates/custom-module-template.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/conf.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/explanations/callback_and_run_logic.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/explanations/decisions.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/contribute.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/create-a-release.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/deploy-a-release.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/dev-ops/build-docs.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/dev-ops/dev-ops.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/dev-ops/lint.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/dev-ops/run-tests.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/dev-ops/update-tools.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/how-to/get-started.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/index.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/general/reference/standards.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/deploying-hyperion.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/how-to/update-panda-ioc.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/index.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/hyperion/system-tests.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/murko-integration/index.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/images/dls-favicon.ico +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/images/dls-logo.svg +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/index.rst +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/hyperion/Chart.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/hyperion/templates/deployment.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/hyperion/templates/ingress.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/hyperion/templates/service.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/hyperion/values.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/redis-to-murko/Chart.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/redis-to-murko/templates/deployment.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/helmcharts/redis-to-murko/values.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/linkcheck.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/pin_versions.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/test_data/setup.cfg +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/hyperion_other/workflows/test_pin_versions.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/pull_request_template.md +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/run_hyperion_in_podman.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/setup.cfg +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/__main__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/aithre_lasershaping/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
- /mx_bluesky-1.4.7/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png → /mx_bluesky-1.4.8/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png +0 -0
- /mx_bluesky-1.4.7/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png → /mx_bluesky-1.4.8/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/__init__.py +0 -0
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion → mx_bluesky-1.4.8/src/mx_bluesky/common}/device_setup_plans/position_detector.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/device_setup_plans/xbpm_feedback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/ispyb/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/ispyb/data_model.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/nexus/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/nexus/nexus_utils.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/nexus/write_nexus.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/external_interaction/test_config_server.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/plans/__init__.py +0 -0
- /mx_bluesky-1.4.7/src/mx_bluesky/common/preprocessors/__init__.py → /mx_bluesky-1.4.8/src/mx_bluesky/common/plans/inner_plans/__init__ .py +0 -0
- {mx_bluesky-1.4.7/src/mx_bluesky/common/plans → mx_bluesky-1.4.8/src/mx_bluesky/common/plans/inner_plans}/do_fgs.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/plans/write_sample_status.py +0 -0
- {mx_bluesky-1.4.7/src/mx_bluesky/common/protocols → mx_bluesky-1.4.8/src/mx_bluesky/common/preprocessors}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/preprocessors/preprocessors.py +0 -0
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.8/src/mx_bluesky/common/protocols}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/protocols/protocols.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/utils/context.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/utils/exceptions.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/utils/tracing.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/utils/utils.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/common/xrc_result.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/definitions.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/baton_handler.py +0 -0
- {mx_bluesky-1.4.7/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.8/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +0 -0
- {mx_bluesky-1.4.7/tests → mx_bluesky-1.4.8/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/components.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/parameters/robot_load.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky/jupyter_example.ipynb +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/src/mx_bluesky.egg-info/top_level.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/start_jupyter.sh +0 -0
- {mx_bluesky-1.4.7/tests/system_tests → mx_bluesky-1.4.8/tests}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/system_tests/hyperion → mx_bluesky-1.4.8/tests/system_tests}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.8/tests/system_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/system_tests/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/README.md +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/fake_data.h5 +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params_multi_rotation.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/load_centre_collect_params_top_n_by_max_count.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/scratch/README +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_OAVCentring.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_beamline_parameters.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_beamline_vfm_lat_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_config.cfg +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_daq_configuration/lookup/BeamLine_Undulator_toGap.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_daq_configuration/lookup/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_display.configuration +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_images/generate_snapshot_input.png +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_images/generate_snapshot_output.png +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_lookup_table.txt +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/test_data/test_mirror_focus.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/aithre_lasershaping/test_check_goniometer_performance.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/aithre_lasershaping/test_goniometer_controls.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i04/test_redis_to_murko_forwarder.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i04/test_thawing.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/beamlines/i24/serial/web_gui/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/device_setup_plans/test_xbpm_feedback.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction → mx_bluesky-1.4.8/tests/unit_tests/common/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks → mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/common → mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/external_interaction/callbacks/ispyb → mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks/common}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/common/test_abstract_event.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/plans → mx_bluesky-1.4.8/tests/unit_tests/common/external_interaction/callbacks/ispyb}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/ispyb/test_expeye_interaction.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/callbacks/test_zocalo_handler.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/test_ispyb_utils.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/xray_centre/test_ispyb_mapping.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/external_interaction/xray_centre/test_nexus_handler.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/preprocessors → mx_bluesky-1.4.8/tests/unit_tests/common/parameters}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/common/utils → mx_bluesky-1.4.8/tests/unit_tests/common/plans}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion → mx_bluesky-1.4.8/tests/unit_tests/common/preprocessors}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/preprocessors/test_preprocessors.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/common/test_write_sample_status.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.8/tests/unit_tests/common/utils}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.8/tests/unit_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.8/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.8/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/common/test_flyscan_result.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling → mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction/callbacks/sample_handling}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/conftest.py +0 -0
- {mx_bluesky-1.4.7/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.8/tests/unit_tests/hyperion/external_interaction/nexus}/__init__.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/test_baton_handler.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/test_utils.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/tests/unit_tests/test_cli.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/beam_off_trickery.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/build_docker_image.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/build_imginfo.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/deploy/create_venv.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/deploy/deploy_mx_bluesky_app_to_k8s.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/deploy/test_deploy.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/dev_jaeger_container.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/docker/healthcheck.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/docker/i03-compose.yml +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/generate_plantuml.py +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/graylog/Dockerfile +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/graylog/tcp_input.json +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/procserv_ioc_start.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/run_imginfo.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/setup_graylog.sh +0 -0
- {mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/utility_scripts/strip_metafile.py +0 -0
|
@@ -51,7 +51,9 @@ jobs:
|
|
|
51
51
|
pip-install: ".[dev]"
|
|
52
52
|
|
|
53
53
|
- name: Run tests
|
|
54
|
-
|
|
54
|
+
# Longer timeout for CI due to likelihood of cold caches,
|
|
55
|
+
# cloud infra hw contention etc.
|
|
56
|
+
run: tox -e tests -- -m "not dlstbx" --timeout=2
|
|
55
57
|
|
|
56
58
|
- name: Upload coverage to Codecov
|
|
57
59
|
uses: codecov/codecov-action@v4
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mx-bluesky
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.8
|
|
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,10 +236,10 @@ Requires-Dist: semver
|
|
|
236
236
|
Requires-Dist: matplotlib
|
|
237
237
|
Requires-Dist: blueapi>=0.5.0
|
|
238
238
|
Requires-Dist: daq-config-server>=0.1.1
|
|
239
|
-
Requires-Dist: ophyd
|
|
240
|
-
Requires-Dist: ophyd-async>=0.
|
|
239
|
+
Requires-Dist: ophyd>=1.10.5
|
|
240
|
+
Requires-Dist: ophyd-async>=0.10.0a2
|
|
241
241
|
Requires-Dist: bluesky>=1.13.1
|
|
242
|
-
Requires-Dist: dls-dodal==1.
|
|
242
|
+
Requires-Dist: dls-dodal==1.47.0
|
|
243
243
|
Provides-Extra: dev
|
|
244
244
|
Requires-Dist: black; extra == "dev"
|
|
245
245
|
Requires-Dist: build; extra == "dev"
|
|
@@ -257,6 +257,7 @@ Requires-Dist: pyright; extra == "dev"
|
|
|
257
257
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
258
258
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
259
259
|
Requires-Dist: pytest-random-order; extra == "dev"
|
|
260
|
+
Requires-Dist: pytest-timeout; extra == "dev"
|
|
260
261
|
Requires-Dist: pytest; extra == "dev"
|
|
261
262
|
Requires-Dist: ruff; extra == "dev"
|
|
262
263
|
Requires-Dist: sphinx-autobuild; extra == "dev"
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
from collections.abc import Iterator
|
|
2
|
-
from os import environ
|
|
2
|
+
from os import environ
|
|
3
3
|
from unittest.mock import patch
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
6
|
|
|
7
7
|
environ["HYPERION_TEST_MODE"] = "true"
|
|
8
8
|
|
|
9
|
-
print("Adjusting S03 EPICS environment ...")
|
|
10
|
-
s03_epics_server_port = getenv("S03_EPICS_CA_SERVER_PORT")
|
|
11
|
-
s03_epics_repeater_port = getenv("S03_EPICS_CA_REPEATER_PORT")
|
|
12
|
-
if s03_epics_server_port:
|
|
13
|
-
environ["EPICS_CA_SERVER_PORT"] = s03_epics_server_port
|
|
14
|
-
print(f"[EPICS_CA_SERVER_PORT] = {s03_epics_server_port}")
|
|
15
|
-
if s03_epics_repeater_port:
|
|
16
|
-
environ["EPICS_CA_REPEATER_PORT"] = s03_epics_repeater_port
|
|
17
|
-
print(f"[EPICS_CA_REPEATER_PORT] = {s03_epics_repeater_port}")
|
|
18
|
-
|
|
19
9
|
|
|
20
10
|
def pytest_addoption(parser):
|
|
21
11
|
parser.addoption(
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Grid Detect Then Xray Centre
|
|
2
|
+
============================
|
|
3
|
+
|
|
4
|
+
The aim of this page is to provide a general overview of the Hyperion ``grid_detect_then_xray_centre_plan``.
|
|
5
|
+
|
|
6
|
+
Most of the code for the ``grid_detect_then_xray_centre_plan`` plan is in ``mx-bluesky/hyperion``. Some code is located in ``mx-bluesky/common`` and `dodal <https://github.com/DiamondLightSource/dodal>`_, and plans are increasingly being generalised and moved into ``mx-bluesky/common`` where possible. Therefore, the structure of the codebase is subject to change and this document should be updated accordingly.
|
|
7
|
+
|
|
8
|
+
There are then a number of plans that make up the ``grid_detect_then_xray_centre_plan`` plan. Some important ones:
|
|
9
|
+
|
|
10
|
+
* :ref:`grid_detection_plan<grid-detect>` - Use the OAV to optically calculate a grid for a scan that would cover the whole sample.
|
|
11
|
+
* :ref:`flyscan_xray_centre_plan<flyscan>` - Triggers a hardware-based grid scan and moves to the X-ray centre as returned from ``zocalo``.
|
|
12
|
+
* :ref:`grid_detect_then_xray_centre_plan<grid-detect-xrc>` - This top-level plan performs an :ref:`OAV grid detection <grid-detect>` then a :ref:`flyscan x-ray centre <flyscan>`.
|
|
13
|
+
|
|
14
|
+
The diagram below shows all the plans that make up the ``grid_detect_then_xray_centre_plan``. The colors indicate where these plans can be found.
|
|
15
|
+
|
|
16
|
+
.. image:: grid_detect_then_xray_centre.drawio.png
|
|
17
|
+
|
|
18
|
+
.. _grid-detect-xrc:
|
|
19
|
+
|
|
20
|
+
Grid Detect Then Xray Centre Plan
|
|
21
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
22
|
+
|
|
23
|
+
`This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py>`__ does the following, in roughly this order:
|
|
24
|
+
|
|
25
|
+
1. If called standalone, start preparing for data collection.
|
|
26
|
+
2. Perform an :ref:`OAV grid detection <grid-detect>`.
|
|
27
|
+
3. Convert the parameters calculated in step 2 into something we can send to the flyscan X-ray centre.
|
|
28
|
+
4. Move the backlight out, set the aperture to small, and wait for the detector to finish moving.
|
|
29
|
+
5. Perform a :ref:`flyscan X-ray centre <flyscan>`.
|
|
30
|
+
6. Move the sample based on the results of step 5.
|
|
31
|
+
|
|
32
|
+
.. _grid-detect:
|
|
33
|
+
|
|
34
|
+
OAV Grid Detection
|
|
35
|
+
~~~~~~~~~~~~~~~~~~
|
|
36
|
+
|
|
37
|
+
`This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py>`__ does the following, in roughly this order:
|
|
38
|
+
|
|
39
|
+
1. Move to omega 0.
|
|
40
|
+
2. Calculate the 2D grid size using the edge arrays from the OAV.
|
|
41
|
+
3. Trigger the OAV device to take snapshots, both with and without the grid.
|
|
42
|
+
4. Read the snapshot paths (which will be gathered for ispyb in the background).
|
|
43
|
+
5. Repeat steps 2–4 for omega 90.
|
|
44
|
+
6. Return the grid positions.
|
|
45
|
+
|
|
46
|
+
.. _flyscan:
|
|
47
|
+
|
|
48
|
+
Flyscan Xray Centre No Move
|
|
49
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
50
|
+
|
|
51
|
+
`This plan <https://github.com/DiamondLightSource/mx-bluesky/blob/main/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py>`__ does the following, in roughly this order:
|
|
52
|
+
|
|
53
|
+
1. Move to the desired transmission (and turn off xbpm feedback).
|
|
54
|
+
2. Move to omega 0.
|
|
55
|
+
3. Read hardware values for ispyb (a grid scan entry will be added in the background).
|
|
56
|
+
4. Set up zebra and motion devices for a grid scan to be done in the motion controller.
|
|
57
|
+
5. Wait for the Eiger to finish arming or arm the Eiger if it hasn't already been done.
|
|
58
|
+
6. Run the motion control grid scan.
|
|
59
|
+
7. Wait for the grid scan to end.
|
|
60
|
+
8. Retrieve the X-ray centering results from ``Zocalo`` (which will be gathered in the background).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Code Map
|
|
2
|
+
==================================
|
|
3
|
+
|
|
4
|
+
Explanation of the structure of the codebase
|
|
5
|
+
|
|
6
|
+
.. grid:: 2
|
|
7
|
+
:gutter: 2
|
|
8
|
+
|
|
9
|
+
.. grid-item-card:: :material-regular:`code;3em`
|
|
10
|
+
|
|
11
|
+
.. toctree::
|
|
12
|
+
:caption: Grid Detect Then Xray Centre
|
|
13
|
+
:maxdepth: 1
|
|
14
|
+
|
|
15
|
+
grid_detect_xrc
|
|
16
|
+
|
|
17
|
+
+++
|
|
@@ -77,7 +77,7 @@ GridParamUpdate --> HyperionThreeDGridScan : combines with GridScanWithEdgeDetec
|
|
|
77
77
|
|
|
78
78
|
class experiment_plans {
|
|
79
79
|
grid_detect_then_xray_centre()
|
|
80
|
-
|
|
80
|
+
common_flyscan_xray_centre()
|
|
81
81
|
create_parameters_for_flyscan_xray_centre(GridScanWithEdgeDetect, GridParamUpdate) -> HyperionThreeDGridScan
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# hyperion
|
|
2
2
|
|
|
3
|
-
 [](https://codecov.io/gh/DiamondLightSource/hyperion)
|
|
4
|
-
|
|
5
3
|
Repository for the Hyperion project to implement Unattended Data Collections on the Diamond MX beamlines using the [BlueSky](https://nsls-ii.github.io/bluesky/) / Ophyd framework from BNL.
|
|
6
4
|
|
|
7
5
|
Currently the software is able to:
|
|
@@ -27,9 +25,14 @@ Note that because Hyperion makes heavy use of [Dodal](https://github.com/Diamond
|
|
|
27
25
|
|
|
28
26
|
## Starting the bluesky runner
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
The bluesky runner is (re)started in production by GDA when it invokes `run_hyperion.sh`.
|
|
29
|
+
|
|
30
|
+
If you wish to attempt to run from a developer machine, then (if you are able to connect all devices)
|
|
31
|
+
you may `run_hyperion.sh --dev --beamline=<beamline>`, which will give you a running instance albeit with
|
|
32
|
+
read-only devices. The `--dev` flag ensures that logging will not be sent to the production Graylog/output folders.
|
|
31
33
|
|
|
32
|
-
This script will determine
|
|
34
|
+
This script will determine which beamline you are on based on the `BEAMLINE` environment variable. If on a
|
|
35
|
+
beamline Hyperion will run with `INFO` level logging, sending its logs to both production graylog and to the beamline/log/bluesky/hyperion.log on the shared file system.
|
|
33
36
|
|
|
34
37
|
If in a dev environment Hyperion will log to a local graylog instance instead and into a file at `./tmp/dev/hyperion.log`. A local instance of graylog will need to be running for this to work correctly. To set this up and run up the containers on your local machine run the `setup_graylog.sh` script.
|
|
35
38
|
|
|
@@ -43,17 +46,9 @@ The hyperion python module can also be run directly without the startup script.
|
|
|
43
46
|
python -m hyperion --dev --verbose-event-logging
|
|
44
47
|
```
|
|
45
48
|
|
|
46
|
-
Lastly, you can choose to skip running the hardware connection scripts on startup with the flag
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
python -m hyperion --skip-startup-connection
|
|
50
|
-
```
|
|
51
|
-
|
|
52
49
|
## Testing
|
|
53
50
|
|
|
54
|
-
Unit tests can be run with `
|
|
55
|
-
|
|
56
|
-
To be able to run the system tests, or a complete fake scan, we need the simulated S03 beamline. This can be found at: https://gitlab.diamond.ac.uk/controls/python3/s03_utils
|
|
51
|
+
Unit tests can be run with `pytest --random-order`. To see log output from tests you can turn on logging with the `--logging` command line option and then use the `-s` command line option to print logs into the console. So to run the unit tests such that all logs are at printed to the terminal, you can use `python -m pytest --random-order --logging -s`. Note that this will likely overrun your terminal buffer, so you can narrow the selection of tests with the `-k "<test name pattern>"` option.
|
|
57
52
|
|
|
58
53
|
To fake interaction and processing with Zocalo, you can run `fake_zocalo/dls_start_fake_zocalo.sh`, and make sure to run `module load dials/latest` before starting hyperion (in the same terminal).
|
|
59
54
|
|
|
@@ -53,3 +53,15 @@ Documentation is split general and topic-specific sections. Each section is spli
|
|
|
53
53
|
+++
|
|
54
54
|
|
|
55
55
|
Documentation relating to integrating the murko image recognition system
|
|
56
|
+
|
|
57
|
+
.. grid-item-card:: :material-regular:`code;3em`
|
|
58
|
+
|
|
59
|
+
.. toctree::
|
|
60
|
+
:caption: Code Map
|
|
61
|
+
:maxdepth: 1
|
|
62
|
+
|
|
63
|
+
code-map/index
|
|
64
|
+
|
|
65
|
+
+++
|
|
66
|
+
|
|
67
|
+
Code map explaining the structure of the codebase
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
=================================
|
|
2
|
+
PMAC-run operations on I24 serial
|
|
3
|
+
=================================
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Several operations in a fixed target (FT) collection are run vie the PMAC, by sending a command to the ``PMAC_STRING`` PV.
|
|
7
|
+
|
|
8
|
+
Among these:
|
|
9
|
+
|
|
10
|
+
- Stage moves
|
|
11
|
+
- Kickoff data collection
|
|
12
|
+
- Laser control
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
For reference, see also the PMAC device implementation in dodal: `PMAC docs <https://diamondlightsource.github.io/dodal/main/reference/generated/dodal.devices.i24.pmac.html>`_
|
|
16
|
+
|
|
17
|
+
|
|
1
18
|
Stage motor moves using the PMAC device
|
|
2
19
|
---------------------------------------
|
|
3
20
|
|
|
@@ -18,6 +35,8 @@ to motors. The axes allocations defined for the chip stages set up are:
|
|
|
18
35
|
|
|
19
36
|
When an X-axis move is executed, the #1 motor will make the move.
|
|
20
37
|
|
|
38
|
+
It should be noted that the PMAC coordinate system used by I24 serial is number 2, which can be specified in a PMAC string by starting the command with ``&2``.
|
|
39
|
+
|
|
21
40
|
When running chip collections, the stage motors are moved via the `PMAC
|
|
22
41
|
device <https://github.com/DiamondLightSource/dodal/blob/main/src/dodal/devices/i24/pmac.py>`__
|
|
23
42
|
in a couple of different ways.
|
|
@@ -28,19 +47,31 @@ in a couple of different ways.
|
|
|
28
47
|
- Using a JOG command ``J:{const}``, to jog the motor a specified
|
|
29
48
|
distance from the current position. For example, this will move
|
|
30
49
|
motor Y by 10 motor steps:
|
|
31
|
-
|
|
50
|
+
|
|
51
|
+
.. code:: python
|
|
52
|
+
|
|
53
|
+
yield from bps.abs_set(pmac.pmac_string, "#2J:10")
|
|
54
|
+
|
|
32
55
|
|
|
33
56
|
- The ``hmz`` strings are homing commands which will reset the
|
|
34
57
|
encoders counts to 0 for the axis. All three motors are homed by
|
|
35
58
|
sending the string: ``#1hmz#2hmz#3hmz``. In the plans this is done
|
|
36
59
|
by triggering the home move:
|
|
37
|
-
|
|
60
|
+
|
|
61
|
+
.. code:: python
|
|
62
|
+
|
|
63
|
+
yield from bps.trigger(pmac.home)
|
|
64
|
+
|
|
38
65
|
|
|
39
66
|
- Another pmac_string that can start a move has the format
|
|
40
67
|
``!x..y..``. This is a command designed to blend any ongoing move
|
|
41
68
|
into a new position. A common one through the serial collection
|
|
42
69
|
code is ``!x0y0z0``, which will start a move to 0 for all motors.
|
|
43
|
-
|
|
70
|
+
|
|
71
|
+
.. code:: python
|
|
72
|
+
|
|
73
|
+
yield from bps.trigger(pmac.to_xyz_zero)
|
|
74
|
+
|
|
44
75
|
|
|
45
76
|
2. The stage motors can also be moved directly through the existing PVs
|
|
46
77
|
``ME14E-MO-CHIP-01:{X,Y,Z}``, for example:
|
|
@@ -49,6 +80,7 @@ in a couple of different ways.
|
|
|
49
80
|
|
|
50
81
|
yield from bps.mv(pmac.x, 0, pmac.y, 1)
|
|
51
82
|
|
|
83
|
+
|
|
52
84
|
Notes on the coordinate system for a fixed-target collection
|
|
53
85
|
============================================================
|
|
54
86
|
|
|
@@ -81,7 +113,7 @@ Theory for this computation
|
|
|
81
113
|
|
|
82
114
|
The plan needs information stored in a few files:
|
|
83
115
|
|
|
84
|
-
* The motor directions are stored in ``src/mx_bluesky/i24/serial/parameters/fixed_target/cs/
|
|
116
|
+
* The motor directions are stored in ``src/mx_bluesky/i24/serial/parameters/fixed_target/cs/motor_direction.txt.`` The motor number multiplied by the motor direction should give the positive chip direction.
|
|
85
117
|
* The scale values for x,y,z, the skew value and the sign of Sx, Sy, Sz are all stored in ``src/mx_bluesky/i24/serial/parameters/fixed_target/cs/cs_maker.json``
|
|
86
118
|
* The fiducials 1 and 2 positions are written to file when selecting the fiducials (Setting fiducial 0 instead sends a homing command directly to the pmac_string PV)
|
|
87
119
|
|
|
@@ -106,3 +138,78 @@ the following pmac_strings:
|
|
|
106
138
|
"#1->10000X+0Y+0Z"
|
|
107
139
|
"#2->+0X-10000Y+0Z"
|
|
108
140
|
"#3->0X+0Y-10000Z"
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
Data collection via the PMAC
|
|
146
|
+
----------------------------
|
|
147
|
+
|
|
148
|
+
The data collection for a FT experiment is kicked off by sending a PMAC_STRING with the program number of the motion program the PMAC should run.
|
|
149
|
+
|
|
150
|
+
Two P-variables - general purpose variables that can be used to store information on the PMAC - have been set aside to monitor the collection run:
|
|
151
|
+
|
|
152
|
+
::
|
|
153
|
+
|
|
154
|
+
P2401 is the "scan_status" variable. It goes to 1 once the motion program starts and will go back to 0 at the very end of the collection
|
|
155
|
+
P2402 is the "counter" variable. It keeps count of how many images have been acquired so far in the collection.
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
The program number is chosen depending on the input collection parameters:
|
|
159
|
+
|
|
160
|
+
::
|
|
161
|
+
|
|
162
|
+
11 -> Custom, Mini and PSI type chip collections, as well as Oxford chips with mapping set to "None" (full chip collections)
|
|
163
|
+
12 -> Oxford Chips with Lite mapping (only some blocks collected)
|
|
164
|
+
13 -> In the past was used for "Full Mapping". **CURRENTLY DISABLED**
|
|
165
|
+
14 -> Any Pump Probe collection, with any chip type. **WARNING** Assumes Lite mapping for Oxford chips.
|
|
166
|
+
|
|
167
|
+
To do this, the PMAC device in dodal implements a Flyable device (``ProgramRunner``) and a soft signal (``program_number``).
|
|
168
|
+
The ``kickoff_and_complete_collection_plan`` first sets up the PMAC by setting the program_number signal and calculating the expected duration of the collection, and then triggers the collection by:
|
|
169
|
+
|
|
170
|
+
.. code:: python
|
|
171
|
+
|
|
172
|
+
yield from bps.kickoff(pmac.run_program, wait=True)
|
|
173
|
+
yield from bps.complete(pmac.run_program, wait=True)
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
The ``kickoff`` method works out the pmac_string to send from the program number in the following way:
|
|
177
|
+
|
|
178
|
+
::
|
|
179
|
+
|
|
180
|
+
"&2b{prog_num}r" where
|
|
181
|
+
- &2 is the coordinate system in use
|
|
182
|
+
- b sets the motion program to run
|
|
183
|
+
- r runs it
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
and then waits for the scan status P-variable to go to 1.
|
|
187
|
+
The ``complete`` method instead monitors the scan status variable and waits for it to go back to 0.
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
In the event of an aborted data collection, an additional Triggerable signal has been added to the PMAC device to be able to reset the PMAC.
|
|
191
|
+
The abort plan for FT will call:
|
|
192
|
+
|
|
193
|
+
.. code:: python
|
|
194
|
+
|
|
195
|
+
yield from bps.trigger(pmac.abort_program)
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
which first sends a ``A`` command to the PMAC to tell it to abort the motion program being currently run and then resets the ``P2041`` variable to 0.
|
|
199
|
+
There is no need to reset the ``P2402`` variable as it's automatically reset once the new motion program starts.
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
Laser control
|
|
204
|
+
-------------
|
|
205
|
+
|
|
206
|
+
The ``laser_control`` plan switches a laser on and off by sending PMAC_STRINGS that set a pair of M-variables.
|
|
207
|
+
M-variables point to a location in memory and are usually used for user access or I/O operations - in this case they have to do with position compare settings.
|
|
208
|
+
|
|
209
|
+
The M-variables used here are M712/M711 for laser1 and M812/M811 for laser2.
|
|
210
|
+
M711 and M811 are set to 1, while and the value set to M712/M812 indicates when the triggering happens, eg:
|
|
211
|
+
|
|
212
|
+
::
|
|
213
|
+
|
|
214
|
+
M712 = 0 if triggering on the falling edge -> laser off
|
|
215
|
+
M712 = 1 if triggering on the rising edge -> laser on
|
{mx_bluesky-1.4.7 → mx_bluesky-1.4.8}/docs/developer/serial-crystallography-on-i24/index.rst
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
I24 Serial Crystallography
|
|
1
|
+
I24 Serial Crystallography
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
4
|
Documentation is split into four categories, and each is also accessible from links in the side-bar.
|
|
5
5
|
|
|
6
6
|
.. grid:: 2
|
|
7
7
|
:gutter: 2
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
.. grid-item-card:: :material-regular:`map;3em`
|
|
10
10
|
|
|
11
11
|
.. toctree::
|
|
@@ -26,7 +26,7 @@ Documentation is split into four categories, and each is also accessible from li
|
|
|
26
26
|
|
|
27
27
|
how-to/environment-setup
|
|
28
28
|
how-to/run-a-collection
|
|
29
|
-
how-to/
|
|
29
|
+
how-to/pmac-docs
|
|
30
30
|
|
|
31
31
|
+++
|
|
32
32
|
|
|
@@ -62,4 +62,4 @@ Documentation is split into four categories, and each is also accessible from li
|
|
|
62
62
|
|
|
63
63
|
+++
|
|
64
64
|
|
|
65
|
-
Tutorials for getting up and running as a developer.
|
|
65
|
+
Tutorials for getting up and running as a developer.
|
|
@@ -4,42 +4,49 @@ Roadmap
|
|
|
4
4
|
For a closer look at the ongoing work: `I24ssx
|
|
5
5
|
board <https://github.com/orgs/DiamondLightSource/projects/10/views/2>`__
|
|
6
6
|
|
|
7
|
-
Ongoing list of TODOs
|
|
7
|
+
Ongoing list of TODOs (Updated 04/2025)
|
|
8
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
zooms.
|
|
10
|
+
**Bluesky**:
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
1. Set up blueapi and run mx-bluesky on the beamline kubernetes cluster. I24 should be due to get one in shutdown 4 2024.
|
|
13
|
+
|
|
14
|
+
2. Improve/fix the issues with the PMAC ProgramRunner: it should monitor the counter PV as well as the status PV.
|
|
13
15
|
|
|
14
|
-
2. Refactor and fix the logger.
|
|
15
16
|
3. Use callbacks for file IO, eg. to write parameter and map files, nexus writer and ispyb deposition.
|
|
16
|
-
4. Solution for enabling users to run mx-bluesky instead of old scripts: blocked by permission issues.
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
- The preferred permanent solution is to run mx-bluesky on the beamline kubernetes cluster. I24 should be due to get on in shutdown 4 2024.
|
|
20
|
-
- Other possibility is to run the ``blueapi`` server on procServ. An example of this has now been set up on ws002 on the beamline and is being tested.
|
|
21
|
-
- A temporary workaround in place for beamline staff, who should be starting to run this for testing/in house beamtimes. Staff have started using this set up in September 24.
|
|
18
|
+
- Improve nexgen-server use
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
4. Convert detector set up to use bluesky plans and ophyd_async devices.
|
|
24
21
|
|
|
25
22
|
- Eiger device in dodal needs to be converted to ophyd_async and updated to work with different Eigers on several beamlines. This work is dependent on other work out of the scope of this project, see `Dodal#700 <https://github.com/DiamondLightSource/dodal/issues/700>`__ and linked issues.
|
|
23
|
+
- Update JF code for serial, move devices into dodal and merge it.
|
|
26
24
|
- Investigate using the existing Pilatus in ophyd_async which writes HDF5 instead of CBFs, but we may want to make a CBF-writing Pilatus. However, the Pilatus detector is due to be removed soon.
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- Prepare generic react components to match the features in the edms.
|
|
31
|
-
- Components for things currently managed by general purpose PVs (eg. map).
|
|
32
|
-
- OAV viewer.
|
|
26
|
+
5. Start integrating Panda, at least for fixed-target collections.
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
8. Implementation of serial tools to be used at XFELS.
|
|
28
|
+
6. Implementation of serial tools to be used at XFELS.
|
|
36
29
|
|
|
37
30
|
- Reinstate removed code from sacla and move it to bluesky.
|
|
38
31
|
- Add any plans/devices that might be needed for other locations.
|
|
39
|
-
|
|
40
|
-
9. Reinstate full mapping code using bluesky.
|
|
41
32
|
|
|
42
|
-
|
|
33
|
+
7. Reinstate full mapping code using bluesky.
|
|
34
|
+
|
|
35
|
+
**React UI**:
|
|
36
|
+
|
|
37
|
+
1. Prepare generic react components to match the features in the edms.
|
|
38
|
+
|
|
39
|
+
- Components for things currently managed by general purpose PVs (eg. mapping, pump probe).
|
|
40
|
+
- Set up collection parameters
|
|
41
|
+
- Move hardware: eg. detector stage
|
|
42
|
+
- Monitor beamline state
|
|
43
|
+
2. Move the moveonclick to the wbe UI
|
|
44
|
+
|
|
45
|
+
- Component for the OAV viewer on the UI.
|
|
46
|
+
- Components to set the zoom and move the backlight using bluesky plans.
|
|
47
|
+
- Look into drawing the crosshair in epics.
|
|
48
|
+
- Refactor moveonclick code.
|
|
49
|
+
|
|
43
50
|
|
|
44
51
|
|
|
45
52
|
.. list-table:: Rough Roadmap
|
|
@@ -49,11 +56,11 @@ Ongoing list of TODOs:
|
|
|
49
56
|
* - Work Ongoing
|
|
50
57
|
- Rough Timeline
|
|
51
58
|
- Completed
|
|
52
|
-
* -
|
|
53
|
-
-
|
|
59
|
+
* - PMAC ProgramRunner updates/fixes
|
|
60
|
+
- Apr. 24
|
|
54
61
|
- :material-regular:`pending;2em`
|
|
55
|
-
* -
|
|
56
|
-
-
|
|
62
|
+
* - Update/improve coordinate system maker on the PMAC
|
|
63
|
+
- Apr. /May 25
|
|
57
64
|
- :material-regular:`pending;2em`
|
|
58
65
|
* - Convert the current detector set up code to bluesky plans using the device
|
|
59
66
|
- Dependent on `FastCS Eiger issues <https://github.com/bluesky/ophyd-async/issues?q=is%3Aissue+is%3Aopen+eiger>`__ being completed
|
|
@@ -64,24 +71,30 @@ Ongoing list of TODOs:
|
|
|
64
71
|
* - Set up callback for ispyb deposition
|
|
65
72
|
- Dec. 24
|
|
66
73
|
- :material-regular:`pending;2em`
|
|
67
|
-
* -
|
|
68
|
-
- Dec. 24
|
|
74
|
+
* - Prepare first React components to switch from EDM to a web GUI
|
|
75
|
+
- Dec. 24 / Jan. 25
|
|
76
|
+
- :material-regular:`check;2em`
|
|
77
|
+
* - Move the OAV viewer to a web GUI
|
|
78
|
+
- May / Jun. 25
|
|
79
|
+
- :material-regular:`pending;2em`
|
|
80
|
+
* - Deploy a first basic version of the web UI
|
|
81
|
+
- May 25
|
|
69
82
|
- :material-regular:`pending;2em`
|
|
83
|
+
* - Fully test extruder collections
|
|
84
|
+
- Nov. 24
|
|
85
|
+
- :material-regular:`check;2em`
|
|
86
|
+
* - Fix permissions and allow for user collections
|
|
87
|
+
- Dec. 24 / Jan. 25
|
|
88
|
+
- :material-regular:`check;2em`
|
|
70
89
|
* - Refactor logger
|
|
71
90
|
- Nov. 24
|
|
72
|
-
- :material-regular:`
|
|
73
|
-
* - Improve current alignment (moveonclick)
|
|
91
|
+
- :material-regular:`check;2em`
|
|
92
|
+
* - Improve current alignment - use multiple zooms (moveonclick)
|
|
74
93
|
- Nov. 24
|
|
75
|
-
- :material-regular:`
|
|
94
|
+
- :material-regular:`check;2em`
|
|
76
95
|
* - Set up a PV backend, eg. ``pvws``, for web GUI on the beamline.
|
|
77
96
|
- Jan. 25
|
|
78
|
-
- :material-regular:`
|
|
79
|
-
* - Prepare React components to switch from EDM to a web GUI
|
|
80
|
-
- Dec. 24 / Jan. 25
|
|
81
|
-
- :material-regular:`pending;2em`
|
|
82
|
-
* - Move the OAV viewer to a web GUI
|
|
83
|
-
- Jan. 25 / Feb. 25
|
|
84
|
-
- :material-regular:`pending;2em`
|
|
97
|
+
- :material-regular:`check;2em`
|
|
85
98
|
|
|
86
99
|
|
|
87
100
|
Experiment types required
|
|
@@ -110,8 +123,8 @@ Experiment types required
|
|
|
110
123
|
Details of zebra settings for each type:
|
|
111
124
|
https://confluence.diamond.ac.uk/display/MXTech/Zebra+settings+I24
|
|
112
125
|
|
|
113
|
-
Note that most of the set up for the fixed target is actually done
|
|
114
|
-
the PMAC via PMAC strings.
|
|
126
|
+
Note that most of the set up for the fixed target is actually done internally
|
|
127
|
+
by the PMAC, via sending PMAC strings.
|
|
115
128
|
|
|
116
129
|
|
|
117
130
|
|
|
@@ -43,10 +43,10 @@ dependencies = [
|
|
|
43
43
|
#
|
|
44
44
|
"blueapi >= 0.5.0",
|
|
45
45
|
"daq-config-server >= 0.1.1",
|
|
46
|
-
"ophyd
|
|
47
|
-
"ophyd-async >= 0.
|
|
46
|
+
"ophyd >= 1.10.5",
|
|
47
|
+
"ophyd-async >= 0.10.0a2",
|
|
48
48
|
"bluesky >= 1.13.1",
|
|
49
|
-
"dls-dodal == 1.
|
|
49
|
+
"dls-dodal == 1.47.0",
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
|
|
@@ -75,6 +75,7 @@ dev = [
|
|
|
75
75
|
"pytest-asyncio",
|
|
76
76
|
"pytest-cov",
|
|
77
77
|
"pytest-random-order",
|
|
78
|
+
"pytest-timeout",
|
|
78
79
|
"pytest",
|
|
79
80
|
"ruff",
|
|
80
81
|
"sphinx-autobuild",
|
|
@@ -115,8 +116,8 @@ reportMissingImports = false # Ignore missing stubs in imported modules
|
|
|
115
116
|
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
|
|
116
117
|
asyncio_mode = "auto"
|
|
117
118
|
asyncio_default_fixture_loop_scope = "function"
|
|
119
|
+
timeout = 1
|
|
118
120
|
markers = [
|
|
119
|
-
"s03: marks tests as requiring the s03 simulator running (deselect with '-m \"not s03\"')",
|
|
120
121
|
"dlstbx: marks tests as requiring dlstbx (deselect with '-m \"not dlstbx\"')",
|
|
121
122
|
"skip_log_setup: marks tests so that loggers are not setup before the test.",
|
|
122
123
|
"skip_in_pycharm: marks test as not working in pycharm testrunner",
|
|
@@ -174,27 +175,43 @@ legacy_tox_ini = """
|
|
|
174
175
|
[tox]
|
|
175
176
|
skipsdist=True
|
|
176
177
|
|
|
177
|
-
[testenv
|
|
178
|
+
[testenv]
|
|
178
179
|
# Don't create a virtualenv for the command, requires tox-direct plugin
|
|
179
180
|
direct = True
|
|
180
181
|
passenv = *
|
|
181
|
-
setenv =
|
|
182
|
-
systemtests: DODAL_TEST_MODE=true
|
|
183
182
|
allowlist_externals =
|
|
184
183
|
pytest
|
|
185
184
|
pre-commit
|
|
186
185
|
pyright
|
|
187
186
|
sphinx-build
|
|
188
187
|
sphinx-autobuild
|
|
188
|
+
|
|
189
|
+
[testenv:{pre-commit,type-checking,tests,docs}]
|
|
189
190
|
commands =
|
|
190
191
|
pre-commit: pre-commit run --all-files --show-diff-on-failure {posargs}
|
|
191
192
|
type-checking: pyright src tests {posargs}
|
|
192
193
|
tests: pytest --cov=mx_bluesky --cov-report term --cov-report xml:cov.xml {posargs}
|
|
193
194
|
docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html
|
|
194
|
-
systemtests: pytest --junit-xml=systemtests_output.xml -m system_test tests/system_tests
|
|
195
195
|
commands_pre =
|
|
196
196
|
docs: /usr/bin/bash -c "{toxinidir}/utility_scripts/generate_plantuml.py > \
|
|
197
197
|
docs/developer/hyperion/reference/param_hierarchy.puml"
|
|
198
|
+
|
|
199
|
+
# Runs the system tests in CI
|
|
200
|
+
[testenv:systemtests]
|
|
201
|
+
setenv =
|
|
202
|
+
DODAL_TEST_MODE=true
|
|
203
|
+
commands =
|
|
204
|
+
pytest --junit-xml=systemtests_output.xml -m system_test --timeout=60 tests/system_tests
|
|
205
|
+
|
|
206
|
+
# Runs the system tests locally
|
|
207
|
+
[testenv:localsystemtests]
|
|
208
|
+
setenv =
|
|
209
|
+
DOCKER=podman
|
|
210
|
+
DODAL_TEST_MODE=true
|
|
211
|
+
ISPYB_CONFIG_PATH={toxinidir}/tests/test_data/ispyb-test-credentials.cfg
|
|
212
|
+
ZOCALO_CONFIG={toxinidir}/tests/test_data/zocalo-test-configuration.yaml
|
|
213
|
+
commands =
|
|
214
|
+
pytest -m system_test --timeout=60 tests/system_tests
|
|
198
215
|
"""
|
|
199
216
|
|
|
200
217
|
[tool.ruff]
|