mx-bluesky 1.2.0__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.copier-answers.yml +3 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.devcontainer/Dockerfile +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/CONTRIBUTING.md +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/pages/make_switcher.py +8 -6
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_pypi.yml +2 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_release.yml +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/ci.yml +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.gitignore +1 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.pre-commit-config.yaml +8 -0
- mx_bluesky-1.4.0/.vscode/mxb-with-core-dependencies.code-workspace +23 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/Dockerfile +4 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/PKG-INFO +4 -2
- mx_bluesky-1.4.0/docs/_api.rst +16 -0
- mx_bluesky-1.4.0/docs/_templates/custom-module-template.rst +37 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/conf.py +14 -5
- mx_bluesky-1.4.0/docs/developer/general/how-to/deploy-a-release.rst +57 -0
- mx_bluesky-1.4.0/docs/developer/general/how-to/profile-tests.rst +84 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/index.rst +1 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/hyperion/deploying-hyperion.rst +10 -10
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/user/index.rst +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/helmchart/templates/deployment.yaml +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/code.yml +6 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/test_data/setup.cfg +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/pyproject.toml +38 -9
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/run_hyperion.sh +8 -10
- mx_bluesky-1.4.0/src/mx_bluesky/__init__.py +11 -0
- mx_bluesky-1.4.0/src/mx_bluesky/__main__.py +24 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/_version.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i04/callbacks/murko_callback.py +14 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i04/thawing_plan.py +48 -10
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/__init__.py +3 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +68 -90
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +104 -126
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +139 -162
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Mapping_py3v1.py +25 -36
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +24 -34
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +14 -11
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/log.py +58 -49
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +3 -3
- mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +44 -0
- mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +46 -0
- mx_bluesky-1.4.0/src/mx_bluesky/beamlines/i24/serial/run_serial.py +52 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py +0 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +8 -18
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +2 -2
- mx_bluesky-1.4.0/src/mx_bluesky/common/device_setup_plans/read_hardware_for_setup.py +14 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.0/src/mx_bluesky/common}/parameters/components.py +16 -49
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.0/src/mx_bluesky/common}/parameters/constants.py +43 -68
- mx_bluesky-1.4.0/src/mx_bluesky/common/plans/__init__.py +1 -0
- mx_bluesky-1.4.0/src/mx_bluesky/common/plans/do_fgs.py +121 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.0/src/mx_bluesky/common/utils}/log.py +38 -21
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion → mx_bluesky-1.4.0/src/mx_bluesky/common/utils}/tracing.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/__main__.py +11 -9
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +31 -26
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/read_hardware_for_setup.py +6 -12
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/setup_oav.py +6 -12
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/setup_panda.py +1 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/setup_zebra.py +48 -17
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/smargon.py +6 -6
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/utils.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/xbpm_feedback.py +4 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/flyscan_xray_centre_plan.py +25 -83
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/grid_detect_then_xray_centre_plan.py +7 -5
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/oav_grid_detection_plan.py +19 -18
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/oav_snapshot_plan.py +8 -5
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py +4 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/pin_tip_centring_plan.py +17 -17
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +15 -11
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +6 -3
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +6 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +3 -3
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__main__.py +1 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/ispyb_mapping.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/grid_detection_callback.py +18 -13
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/ispyb_callback_base.py +29 -12
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/log_uid_tag_callback.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/robot_load/ispyb_callback.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +4 -3
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_callback.py +23 -18
- mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/config_server.py +47 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_store.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/nexus/nexus_utils.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/nexus/write_nexus.py +1 -1
- mx_bluesky-1.4.0/src/mx_bluesky/hyperion/log.py +15 -0
- mx_bluesky-1.4.0/src/mx_bluesky/hyperion/parameters/components.py +12 -0
- mx_bluesky-1.4.0/src/mx_bluesky/hyperion/parameters/constants.py +62 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/gridscan.py +13 -9
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/load_centre_collect.py +3 -3
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/robot_load.py +3 -3
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/rotation.py +9 -5
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/utils/utils.py +17 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/utils/validation.py +5 -6
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/PKG-INFO +4 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/SOURCES.txt +20 -9
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/requires.txt +3 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/conftest.py +65 -52
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/conftest.py +15 -26
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/experiment_plans/test_fgs_plan.py +3 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/experiment_plans/test_plan_system.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/conftest.py +3 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_ispyb_dev_connection.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_load_centre_collect_full_plan.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_zocalo_system.py +9 -5
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/example_load_centre_collect_params.json +1 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_grid_with_edge_detect_parameters.json +0 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_load_centre_collect_params.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_multi_rotation_scan_parameters.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_parameters.json +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_pin_centre_then_xray_centre_parameters.json +0 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_robot_load_and_centre_params.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_robot_load_params.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/good_test_rotation_scan_parameters_nomove.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/ispyb_gridscan_system_test_parameters.json +0 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/test_gridscan_param_defaults.json +0 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_beamline_vfm_lat_converter.txt +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i04/callbacks/test_murko_callback.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i04/test_thawing.py +139 -30
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/conftest.py +8 -10
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/extruder/test_extruder_collect.py +40 -24
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_manager.py +111 -64
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_chip_startup.py +17 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_ft_collect.py +52 -7
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/test_moveonclick.py +34 -11
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_detector.py +1 -2
- mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/test_log.py +104 -0
- mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/test_run_serial.py +47 -0
- mx_bluesky-1.4.0/tests/unit_tests/common/device_setup_plans/test_read_hardware_for_setup.py +36 -0
- mx_bluesky-1.4.0/tests/unit_tests/common/plan_stubs/test_do_fgs.py +169 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log → mx_bluesky-1.4.0/tests/unit_tests/common/utils}/test_log.py +77 -21
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/conftest.py +0 -13
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/conftest.py +24 -20
- mx_bluesky-1.4.0/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +155 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_oav.py +1 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_setup_panda.py +16 -13
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_utils.py +9 -6
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_zebra_setup.py +36 -9
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/conftest.py +64 -10
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_experiment_registry.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_flyscan_xray_centre_plan.py +34 -40
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_grid_detect_then_xray_centre_plan.py +48 -101
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_grid_detection_plan.py +104 -130
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_load_centre_collect_full_plan.py +37 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_oav_snapshot_plan.py +12 -13
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +16 -15
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_pin_tip_centring.py +53 -16
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_and_change_energy.py +5 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +17 -8
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_set_energy_plan.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/conftest.py +23 -8
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/robot_load/test_robot_load_ispyb_callback.py +2 -2
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/rotation/test_ispyb_callback.py +5 -1
- mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +299 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_callback.py +21 -26
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/conftest.py +2 -11
- mx_bluesky-1.4.0/tests/unit_tests/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/parameters/test_parameter_model.py +33 -1
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/test_utils.py +19 -0
- mx_bluesky-1.4.0/tests/unit_tests/hyperion/utils/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/deploy/create_venv.py +10 -6
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/deploy/deploy_hyperion_to_k8s.sh +10 -10
- mx_bluesky-1.2.0/utility_scripts/deploy/deploy_hyperion.py → mx_bluesky-1.4.0/utility_scripts/deploy/deploy_mx_bluesky.py +151 -84
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/docker/entrypoint.sh +4 -4
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/docker/i03-compose.yml +2 -2
- mx_bluesky-1.4.0/utility_scripts/procserv_ioc_start.sh +19 -0
- mx_bluesky-1.2.0/docs/developer/general/how-to/deploy-a-release.rst +0 -84
- mx_bluesky-1.2.0/docs/user/reference/api.rst +0 -14
- mx_bluesky-1.2.0/src/mx_bluesky/__init__.py +0 -6
- mx_bluesky-1.2.0/src/mx_bluesky/__main__.py +0 -19
- mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_extruder.sh +0 -19
- mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +0 -22
- mx_bluesky-1.2.0/src/mx_bluesky/beamlines/i24/serial/run_serial.py +0 -36
- mx_bluesky-1.2.0/src/mx_bluesky/example.py +0 -19
- mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/config_server.py +0 -35
- mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/test_log.py +0 -68
- mx_bluesky-1.2.0/tests/unit_tests/hyperion/device_setup_plans/test_dcm_pitch_roll_mirror_adjuster.py +0 -244
- mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks/test_rotation_callbacks.py +0 -420
- mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log/conftest.py +0 -13
- mx_bluesky-1.2.0/tests/unit_tests/test_example.py +0 -16
- mx_bluesky-1.2.0/utility_scripts/deploy/deploy_mxbluesky.py +0 -189
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.coveragerc +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.devcontainer/devcontainer.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.dockerignore +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/actions/install_requirements/action.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/actions/verify-nexus/Dockerfile +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/actions/verify-nexus/action.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/actions/verify-nexus/entrypoint.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/dependabot.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/pages/index.html +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_check.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_container.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_dist.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_docs.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_test.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/_tox.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/periodic.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.github/workflows/publish_docker_image.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.vscode/extensions.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.vscode/launch.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.vscode/mx-bluesky.code-workspace +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.vscode/settings.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/.vscode/tasks.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/Dockerfile.release +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/LICENSE +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/README.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/catalog-info.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/codecov.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/conftest.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/explanations/decisions/0002-repository-structure.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/explanations/decisions/0003-python-version-support.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/explanations/decisions.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/build-docs.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/contribute.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/create-a-release.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/get-started.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/lint.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/run-tests.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/static-analysis.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/how-to/update-tools.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/reference/standards.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/general/tutorials/dev-install.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/hyperion/index.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/hyperion/reference/param-hierarchy.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/hyperion/reference/param_hierarchy.puml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/hyperion/reference/readme.md +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/index.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/murko-integration/explanations/architecture.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/murko-integration/images/murko_setup.drawio.png +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/murko-integration/index.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/explanations/decisions/0001-record-architecture-decisions.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/explanations/decisions.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/how-to/environment-setup.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/how-to/run-a-collection.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/how-to/stage-pmac-moves.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/index.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/developer/serial-crystallography-on-i24/project-planning/roadmap.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/genindex.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/images/dls-favicon.ico +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/images/dls-logo.svg +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/index.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/user/explanations/docs-structure.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/user/how-to/run-container.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/docs/user/tutorials/installation.rst +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/helmchart/Chart.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/helmchart/templates/ingress.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/helmchart/templates/service.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/helmchart/values.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/add_assignee_when_pr_opened.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/assigned_issues_to_in_progress.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/container_tests.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/get_issue_from_pr.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/get_project_data_and_move_column.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/linkcheck.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/open_prs_to_review.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/opened_issues_to_backlog.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/pin_versions.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/pre_release_workflow.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/rework_prs_to_in_progress.yml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/test_data/pip_freeze.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/test_data/setup.cfg.pinned +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/test_data/setup.cfg.unpinned +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/hyperion_other/workflows/test_pin_versions.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/run_hyperion_in_podman.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/setup.cfg +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i04/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/dcid.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/extruder/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/parameters/utils.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/run_ssx.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/start_blueapi.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/beamlines/i24/serial/write_nexus.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/device_setup_plans → mx_bluesky-1.4.0/src/mx_bluesky/common}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/__init__.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/common → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/manipulate_sample.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/device_setup_plans/position_detector.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/exceptions.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/aperture_change_callback.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/callbacks/common}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/logging_callback.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/plan_reactive_callback.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/ispyb → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/ispyb_mapping.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/xray_centre/nexus_callback.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/callbacks/zocalo_callback.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/exceptions.py +0 -0
- {mx_bluesky-1.2.0/src/mx_bluesky/hyperion/external_interaction/nexus → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/ispyb}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/ispyb/data_model.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/ispyb/exp_eye_store.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/external_interaction/ispyb/ispyb_utils.py +0 -0
- {mx_bluesky-1.2.0/tests → mx_bluesky-1.4.0/src/mx_bluesky/hyperion/external_interaction/nexus}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/parameters/cli.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/resources/panda/panda-gridscan.yaml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/hyperion/utils/context.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky/jupyter_example.ipynb +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/dependency_links.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/entry_points.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/src/mx_bluesky.egg-info/top_level.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/start_jupyter.sh +0 -0
- {mx_bluesky-1.2.0/tests/system_tests → mx_bluesky-1.4.0/tests}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/system_tests/hyperion → mx_bluesky-1.4.0/tests/system_tests}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/system_tests/hyperion/experiment_plans → mx_bluesky-1.4.0/tests/system_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/system_tests/hyperion/external_interaction → mx_bluesky-1.4.0/tests/system_tests/hyperion/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/system_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests → mx_bluesky-1.4.0/tests/system_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_config_service.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_exp_eye_dev.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/external_interaction/test_nexgen.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/test_aperturescatterguard_system.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/system_tests/hyperion/test_device_setups_and_cleanups.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/README.md +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/fake_data.h5 +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation/ins_8_5.nxs +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5.nxs +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_expected_output.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/nexus_files/rotation_unicode_metafile/ins_8_5_meta.h5.gz +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/parameter_json_files/test_oav_snapshot_params.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/scratch/README +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_OAVCentring.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_beamline_dcm_pitch_converter.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_config.cfg +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_daq_configuration/domain/beamlineParameters +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_display.configuration +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_jCameraManZoomLevels.xml +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_lookup_table.txt +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/test_data/test_mirror_focus.json +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/beamlines → mx_bluesky-1.4.0/tests/unit_tests}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial → mx_bluesky-1.4.0/tests/unit_tests/beamlines}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/extruder → mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/fixed_target → mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/extruder}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/beamlines/i24/serial/setup_beamline → mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/fixed_target}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/fixed_target/conftest.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/parameters/test_utils.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion → mx_bluesky-1.4.0/tests/unit_tests/beamlines/i24/serial/setup_beamline}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_pv_abstract.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_setup_beamline.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/setup_beamline/test_zebra_plans.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/beamlines/i24/serial/test_dcid.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/device_setup_plans → mx_bluesky-1.4.0/tests/unit_tests/common}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/experiment_plans → mx_bluesky-1.4.0/tests/unit_tests/common/utils}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction → mx_bluesky-1.4.0/tests/unit_tests/hyperion}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks → mx_bluesky-1.4.0/tests/unit_tests/hyperion/device_setup_plans}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/device_setup_plans/test_xbpm_feedback.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation → mx_bluesky-1.4.0/tests/unit_tests/hyperion/experiment_plans}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_multi_rotation_scan_plan.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_optimise_attenuation_plan.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/experiment_plans/test_robot_load_then_centre.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/ispyb → mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/external_interaction/nexus → mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks}/__init__.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/parameters → mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/callbacks/rotation}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_external_callbacks.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_plan_reactive_callback.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/test_zocalo_handler.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/conftest.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_handler.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_ispyb_mapping.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/callbacks/xray_centre/test_nexus_handler.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/test_log → mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/ispyb}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/ispyb/conftest.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_expeye_interaction.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_gridscan_ispyb_store_3d.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/ispyb/test_rotation_ispyb_store.py +0 -0
- {mx_bluesky-1.2.0/tests/unit_tests/hyperion/utils → mx_bluesky-1.4.0/tests/unit_tests/hyperion/external_interaction/nexus}/__init__.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/nexus/test_compare_nexus_to_gda_exhaustively.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/nexus/test_nexus_utils.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/nexus/test_write_nexus.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000001.h5 +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000002.h5 +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/test_data/dummy_1_000003.h5 +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/test_ispyb_utils.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/external_interaction/test_write_rotation_nexus.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/test_exceptions.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/test_main_system.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/utils/test_callback_sim.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/hyperion/utils/test_context.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/tests/unit_tests/test_cli.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/beam_off_trickery.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/build_docker_image.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/build_imginfo.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/deploy/deploy_edm_for_ssx.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/deploy/test_deploy.py +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/dev_jaeger_container.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/dls_dev_env.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/docker/healthcheck.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/graylog/Dockerfile +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/graylog/tcp_input.json +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/run_imginfo.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/setup_graylog.sh +0 -0
- {mx_bluesky-1.2.0 → mx_bluesky-1.4.0}/utility_scripts/strip_metafile.py +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier
|
|
2
|
-
_commit: 2.
|
|
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
|
|
@@ -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.
|
|
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"{
|
|
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
|
)
|
|
@@ -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@
|
|
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"
|
|
24
|
+
python-version: ["3.11", "3.12"]
|
|
25
25
|
fail-fast: false
|
|
26
26
|
uses: ./.github/workflows/_test.yml
|
|
27
27
|
with:
|
|
@@ -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.
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mx-bluesky
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Bluesky tools for MX Beamlines at DLS
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -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
|
|
@@ -238,12 +239,13 @@ Requires-Dist: daq-config-server>=0.1.1
|
|
|
238
239
|
Requires-Dist: ophyd==1.9.0
|
|
239
240
|
Requires-Dist: ophyd-async>=0.3a5
|
|
240
241
|
Requires-Dist: bluesky>=1.13.0a4
|
|
241
|
-
Requires-Dist: dls-dodal==1.
|
|
242
|
+
Requires-Dist: dls-dodal==1.35.0
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
|
@@ -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,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 ``
|
|
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.
|
|
@@ -28,6 +28,12 @@ jobs:
|
|
|
28
28
|
- name: Run ruff
|
|
29
29
|
run: ruff check .
|
|
30
30
|
|
|
31
|
+
- name: Install import linter
|
|
32
|
+
run: pip install import-linter
|
|
33
|
+
|
|
34
|
+
- name: Run import linter
|
|
35
|
+
run: lint-imports
|
|
36
|
+
|
|
31
37
|
tests:
|
|
32
38
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
|
|
33
39
|
runs-on: ubuntu-latest
|
|
@@ -29,7 +29,7 @@ install_requires =
|
|
|
29
29
|
opentelemetry-exporter-jaeger
|
|
30
30
|
ophyd
|
|
31
31
|
semver
|
|
32
|
-
dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@
|
|
32
|
+
dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@0176e590554f2c6d8883bd922d02d3c2d7c27ad1
|
|
33
33
|
pydantic<2.0 # See https://github.com/DiamondLightSource/hyperion/issues/774
|
|
34
34
|
scipy
|
|
35
35
|
pyzmq
|
|
@@ -14,7 +14,7 @@ description = "Bluesky tools for MX Beamlines at DLS"
|
|
|
14
14
|
dependencies = [
|
|
15
15
|
#
|
|
16
16
|
# If a constraint is not set here or if the dependency is pinned to a hash
|
|
17
|
-
# it will be auto-pinned to the latest release version by the pre-release workflow
|
|
17
|
+
# it will be auto-pinned to the latest release version by the pre-release workflow
|
|
18
18
|
#
|
|
19
19
|
"annotated_types",
|
|
20
20
|
"caproto",
|
|
@@ -25,10 +25,11 @@ dependencies = [
|
|
|
25
25
|
"matplotlib",
|
|
26
26
|
"nexgen",
|
|
27
27
|
"numpy",
|
|
28
|
-
"opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
|
|
28
|
+
"opencv-python", # Needed for I24 ssx moveonclick. To be changed to headless once this is moved to separate ui.
|
|
29
29
|
"opentelemetry-distro",
|
|
30
30
|
"opentelemetry-exporter-otlp",
|
|
31
31
|
"pydantic",
|
|
32
|
+
"pydantic-extra-types",
|
|
32
33
|
"pyepics",
|
|
33
34
|
"pyzmq",
|
|
34
35
|
"requests",
|
|
@@ -39,13 +40,13 @@ dependencies = [
|
|
|
39
40
|
#
|
|
40
41
|
# These dependencies may be issued as pre-release versions and should have a pin constraint
|
|
41
42
|
# as by default pip-install will not upgrade to a pre-release.
|
|
42
|
-
#
|
|
43
|
+
#
|
|
43
44
|
"blueapi >= 0.5.0",
|
|
44
45
|
"daq-config-server >= 0.1.1",
|
|
45
46
|
"ophyd == 1.9.0",
|
|
46
47
|
"ophyd-async >= 0.3a5",
|
|
47
48
|
"bluesky >= 1.13.0a4",
|
|
48
|
-
"dls-dodal == 1.
|
|
49
|
+
"dls-dodal == 1.35.0",
|
|
49
50
|
]
|
|
50
51
|
|
|
51
52
|
|
|
@@ -62,6 +63,7 @@ dev = [
|
|
|
62
63
|
# "copier",
|
|
63
64
|
"diff-cover",
|
|
64
65
|
"GitPython",
|
|
66
|
+
"import-linter",
|
|
65
67
|
"ipython",
|
|
66
68
|
"mypy",
|
|
67
69
|
"myst-parser",
|
|
@@ -105,11 +107,13 @@ name = "Dominic Oram"
|
|
|
105
107
|
version_file = "src/mx_bluesky/_version.py"
|
|
106
108
|
|
|
107
109
|
[tool.pyright]
|
|
108
|
-
|
|
110
|
+
typeCheckingMode = "standard"
|
|
111
|
+
reportMissingImports = false # Ignore missing stubs in imported modules
|
|
109
112
|
|
|
110
113
|
[tool.pytest.ini_options]
|
|
111
114
|
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
|
|
112
115
|
asyncio_mode = "auto"
|
|
116
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
113
117
|
markers = [
|
|
114
118
|
"s03: marks tests as requiring the s03 simulator running (deselect with '-m \"not s03\"')",
|
|
115
119
|
"dlstbx: marks tests as requiring dlstbx (deselect with '-m \"not dlstbx\"')",
|
|
@@ -122,8 +126,6 @@ addopts = """
|
|
|
122
126
|
# https://iscinumpy.gitlab.io/post/bound-version-constraints/#watch-for-warnings
|
|
123
127
|
filterwarnings = [
|
|
124
128
|
"error",
|
|
125
|
-
# Ignore incorrect errors from bluesky (remove when https://github.com/bluesky/bluesky/issues/1797 is released)
|
|
126
|
-
"ignore:((.|\n)*)was never iterated.*:RuntimeWarning",
|
|
127
129
|
# Ignore deprecation warning from sqlalchemy
|
|
128
130
|
"ignore::sqlalchemy.exc.MovedIn20Warning",
|
|
129
131
|
# Ignore deprecation warning from setuptools_dso (remove when https://github.com/epics-base/setuptools_dso/issues/36 is released)
|
|
@@ -134,10 +136,17 @@ filterwarnings = [
|
|
|
134
136
|
"ignore:(.*)unclosed file(.*)name='(.*)dodal.log'(.*):ResourceWarning",
|
|
135
137
|
"ignore:(.*)unclosed <socket(.*):ResourceWarning",
|
|
136
138
|
"ignore:(.*)unclosed event loop(.*):ResourceWarning",
|
|
137
|
-
# Ignore pydantic 2 issues from blueapi, see https://github.com/DiamondLightSource/blueapi/issues/622
|
|
138
|
-
"ignore::DeprecationWarning:blueapi",
|
|
139
139
|
# Ignore deprecation warning from python-workflows https://github.com/DiamondLightSource/python-workflows/issues/180
|
|
140
140
|
"ignore:.*pkg_resources.*:DeprecationWarning",
|
|
141
|
+
# Ignore deprecation warning that gets promoted to SystemError from somewhere
|
|
142
|
+
# in protobuf https://github.com/protocolbuffers/protobuf/issues/12186
|
|
143
|
+
# SystemError: <class 'DeprecationWarning'> returned a result with an exception set"
|
|
144
|
+
# The fix for this is in https://github.com/protocolbuffers/protobuf/pull/15999
|
|
145
|
+
# But this fix exists only in 3.27.0<=protobuf<4 and protobuf>=v5, not in 4.x that we depend on
|
|
146
|
+
# https://github.com/open-telemetry/opentelemetry-python/pull/4206/commits addresses this but is not yet in a release
|
|
147
|
+
"ignore:.*custom tp_new.*:DeprecationWarning",
|
|
148
|
+
# Ignore warning about deprecated throw() call https://github.com/bluesky/bluesky/issues/1817
|
|
149
|
+
"ignore:.*signature of throw\\(\\) is deprecated.*:DeprecationWarning",
|
|
141
150
|
]
|
|
142
151
|
# Doctest python code in docs, python code in src docstrings, test functions in tests
|
|
143
152
|
testpaths = "docs src tests/unit_tests"
|
|
@@ -198,3 +207,23 @@ lint.extend-ignore = [
|
|
|
198
207
|
|
|
199
208
|
[tool.mypy]
|
|
200
209
|
plugins = ["pydantic.mypy"]
|
|
210
|
+
|
|
211
|
+
[tool.importlinter]
|
|
212
|
+
root_package = "mx_bluesky"
|
|
213
|
+
|
|
214
|
+
[[tool.importlinter.contracts]]
|
|
215
|
+
name = "Common does not import from apps"
|
|
216
|
+
type = "forbidden"
|
|
217
|
+
source_modules = "mx_bluesky.common"
|
|
218
|
+
forbidden_modules = ["mx_bluesky.beamlines", "mx_bluesky.hyperion"]
|
|
219
|
+
|
|
220
|
+
[[tool.importlinter.contracts]]
|
|
221
|
+
name = "Beamlines do not import from each other"
|
|
222
|
+
type = "independence"
|
|
223
|
+
modules = "mx_bluesky.beamlines.*"
|
|
224
|
+
|
|
225
|
+
[[tool.importlinter.contracts]]
|
|
226
|
+
name = "Beamlines do not import from hyperion"
|
|
227
|
+
type = "forbidden"
|
|
228
|
+
source_modules = "mx_bluesky.beamlines.*"
|
|
229
|
+
forbidden_modules = "mx_bluesky.hyperion"
|