Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

Commit

Permalink
Update PR and fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
olliesilvester committed Apr 26, 2024
1 parent 94982a3 commit a3cb801
Show file tree
Hide file tree
Showing 18 changed files with 107 additions and 85 deletions.
6 changes: 3 additions & 3 deletions src/hyperion/experiment_plans/experiment_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from typing import Callable, TypedDict, Union

from dodal.devices.fast_grid_scan import GridScanParams, PandAGridScanParams
from dodal.devices.fast_grid_scan import PandAGridScanParams, ZebraGridScanParams
from dodal.parameters.experiment_parameter_base import AbstractExperimentWithBeamParams

import hyperion.experiment_plans.flyscan_xray_centre_plan as flyscan_xray_centre_plan
Expand Down Expand Up @@ -61,7 +61,7 @@ class ExperimentRegistryEntry(TypedDict):
callbacks_factory: CallbacksFactory


EXPERIMENT_TYPES = Union[GridScanParams, RotationScanParams]
EXPERIMENT_TYPES = Union[ZebraGridScanParams, RotationScanParams]
PLAN_REGISTRY: dict[str, ExperimentRegistryEntry] = {
"panda_flyscan_xray_centre": {
"setup": panda_flyscan_xray_centre_plan.create_devices,
Expand All @@ -72,7 +72,7 @@ class ExperimentRegistryEntry(TypedDict):
"flyscan_xray_centre": {
"setup": flyscan_xray_centre_plan.create_devices,
"internal_param_type": ThreeDGridScan,
"experiment_param_type": GridScanParams,
"experiment_param_type": ZebraGridScanParams,
"callbacks_factory": create_gridscan_callbacks,
},
"grid_detect_then_xray_centre": {
Expand Down
7 changes: 4 additions & 3 deletions src/hyperion/experiment_plans/flyscan_xray_centre_plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from dodal.devices.fast_grid_scan import (
FastGridScanCommon,
PandAFastGridScan,
ZebraFastGridScan,
)
from dodal.devices.fast_grid_scan import set_fast_grid_scan_params as set_flyscan_params
from dodal.devices.flux import Flux
Expand Down Expand Up @@ -65,7 +66,7 @@
from hyperion.utils.context import device_composite_from_context

if TYPE_CHECKING:
PandaOrZebraGridscan = FastGridScan | PandAFastGridScan
PandaOrZebraGridscan = ZebraFastGridScan | PandAFastGridScan
from scanspec.core import AxesPoints, Axis


Expand All @@ -78,7 +79,7 @@ class FlyScanXRayCentreComposite:
backlight: Backlight
dcm: DCM
eiger: EigerDetector
fast_grid_scan: FastGridScan
zebra_fast_grid_scan: ZebraFastGridScan
flux: Flux
s4_slit_gaps: S4SlitGaps
smargon: Smargon
Expand Down Expand Up @@ -239,7 +240,7 @@ def run_gridscan(
)
yield from read_hardware_for_nexus_writer(fgs_composite.eiger)

fgs_motors = fgs_composite.fast_grid_scan
fgs_motors = fgs_composite.zebra_fast_grid_scan

LOGGER.info("Setting fgs params")
yield from set_flyscan_params(fgs_motors, parameters.experiment_params)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
from hyperion.parameters.gridscan import GridScanWithEdgeDetect
from hyperion.parameters.plan_specific.gridscan_internal_params import (
GridscanInternalParameters,
GridScanParams,
ZebraGridScanParams,
)
from hyperion.parameters.plan_specific.panda.panda_gridscan_internal_params import (
PandAGridscanInternalParameters,
Expand All @@ -75,7 +75,7 @@ class GridDetectThenXRayCentreComposite:
dcm: DCM
detector_motion: DetectorMotion
eiger: EigerDetector
fast_grid_scan: ZebraFastGridScan
zebra_fast_grid_scan: ZebraFastGridScan
flux: Flux
oav: OAV
pin_tip_detection: PinTipDetection
Expand Down Expand Up @@ -103,7 +103,7 @@ def create_devices(context: BlueskyContext) -> GridDetectThenXRayCentreComposite

def create_parameters_for_flyscan_xray_centre(
grid_scan_with_edge_params: GridScanWithEdgeDetect,
grid_parameters: GridScanParams,
grid_parameters: ZebraGridScanParams,
) -> GridscanInternalParameters:
old_params = grid_scan_with_edge_params.old_parameters()
params_json = json.loads(old_params.json())
Expand Down Expand Up @@ -203,7 +203,7 @@ def run_grid_detection_plan(
zebra=composite.zebra,
zocalo=composite.zocalo,
panda=composite.panda,
fast_grid_scan=composite.fast_grid_scan,
zebra_fast_grid_scan=composite.zebra_fast_grid_scan,
dcm=composite.dcm,
robot=composite.robot,
)
Expand Down
4 changes: 2 additions & 2 deletions src/hyperion/experiment_plans/robot_load_then_centre_plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from dodal.devices.detector.det_resolution import resolution
from dodal.devices.detector.detector_motion import DetectorMotion
from dodal.devices.eiger import EigerDetector
from dodal.devices.fast_grid_scan import FastGridScan, PandAFastGridScan
from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
from dodal.devices.flux import Flux
from dodal.devices.focusing_mirror import FocusingMirror, VFMMirrorVoltages
from dodal.devices.oav.oav_detector import OAV
Expand Down Expand Up @@ -68,7 +68,7 @@ class RobotLoadThenCentreComposite:
backlight: Backlight
detector_motion: DetectorMotion
eiger: EigerDetector
fast_grid_scan: FastGridScan
zebra_fast_grid_scan: ZebraFastGridScan
flux: Flux
oav: OAV
pin_tip_detection: PinTipDetection
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import numpy as np
from bluesky.callbacks import CallbackBase
from dodal.devices.fast_grid_scan import GridScanParams, PandAGridScanParams
from dodal.devices.fast_grid_scan import PandAGridScanParams, ZebraGridScanParams
from dodal.devices.oav.oav_detector import OAVConfigParams
from event_model.documents import Event

Expand Down Expand Up @@ -61,8 +61,8 @@ def event(self, doc: Event):
self.z_step_size_mm = box_width_px * self.oav_params.micronsPerYPixel / 1000
return doc

def get_grid_parameters(self) -> GridScanParams:
return GridScanParams(
def get_grid_parameters(self) -> ZebraGridScanParams:
return ZebraGridScanParams(
transmission_fraction=1.0,
dwell_time_ms=self.exposure_time * 1000,
x_start=self.start_positions[0][0],
Expand Down
7 changes: 3 additions & 4 deletions src/hyperion/parameters/gridscan.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

import numpy as np
from dodal.devices.detector import DetectorDistanceToBeamXYConverter, DetectorParams
from dodal.devices.fast_grid_scan import GridScanParams
from dodal.devices.panda_fast_grid_scan import PandAGridScanParams
from dodal.devices.fast_grid_scan import PandAGridScanParams, ZebraGridScanParams
from pydantic import Field
from scanspec.core import Path as ScanPath
from scanspec.specs import Line, Static
Expand Down Expand Up @@ -205,8 +204,8 @@ class ThreeDGridScan(SpecifiedGridScan, SplitScan):
z_steps: int = Field(gt=0)

@property
def FGS_params(self) -> GridScanParams:
return GridScanParams(
def FGS_params(self) -> ZebraGridScanParams:
return ZebraGridScanParams(
x_steps=self.x_steps,
y_steps=self.y_steps,
z_steps=self.z_steps,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import numpy as np
from dodal.devices.detector import DetectorParams, TriggerMode
from dodal.devices.fast_grid_scan import GridAxis, GridScanParams
from dodal.devices.fast_grid_scan import GridAxis, ZebraGridScanParams
from pydantic import validator
from scanspec.core import Path as ScanPath
from scanspec.specs import Line
Expand Down Expand Up @@ -40,7 +40,7 @@ class Config:


class GridscanInternalParameters(InternalParameters):
experiment_params: GridScanParams
experiment_params: ZebraGridScanParams
hyperion_params: GridscanHyperionParameters

class Config:
Expand All @@ -64,11 +64,11 @@ def _preprocess_experiment_params(
cls,
experiment_params: dict[str, Any],
):
if isinstance(experiment_params, GridScanParams):
if isinstance(experiment_params, ZebraGridScanParams):
return experiment_params
return GridScanParams(
return ZebraGridScanParams(
**extract_experiment_params_from_flat_dict(
GridScanParams, experiment_params
ZebraGridScanParams, experiment_params
)
)

Expand All @@ -78,7 +78,7 @@ def _preprocess_hyperion_params(
):
if isinstance(all_params.get("hyperion_params"), GridscanHyperionParameters):
return all_params["hyperion_params"]
experiment_params: GridScanParams = values["experiment_params"]
experiment_params: ZebraGridScanParams = values["experiment_params"]
all_params["num_images"] = experiment_params.get_num_images()
all_params["position"] = np.array(all_params["position"])
all_params["omega_increment"] = 0
Expand Down
7 changes: 4 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import asyncio
import json
import logging
import sys
Expand Down Expand Up @@ -580,7 +581,7 @@ async def fake_fgs_composite(
dcm=dcm,
# We don't use the eiger fixture here because .unstage() is used in some tests
eiger=i03.eiger(fake_with_ophyd_sim=True),
fast_grid_scan=i03.fast_grid_scan(fake_with_ophyd_sim=True),
zebra_fast_grid_scan=i03.zebra_fast_grid_scan(fake_with_ophyd_sim=True),
flux=i03.flux(fake_with_ophyd_sim=True),
s4_slit_gaps=i03.s4_slit_gaps(fake_with_ophyd_sim=True),
smargon=smargon,
Expand Down Expand Up @@ -636,8 +637,8 @@ async def mock_complete(result):
side_effect=partial(mock_complete, test_result)
) # type: ignore
fake_composite.zocalo.timeout_s = 3
set_sim_value(fake_composite.fast_grid_scan.scan_invalid, False)
set_sim_value(fake_composite.fast_grid_scan.position_counter, 0)
set_sim_value(fake_composite.zebra_fast_grid_scan.scan_invalid, False)
set_sim_value(fake_composite.zebra_fast_grid_scan.position_counter, 0)
fake_composite.smargon.x.max_velocity.sim_put(10) # type: ignore

set_sim_value(fake_composite.robot.barcode.bare_signal, ["BARCODE"])
Expand Down
10 changes: 5 additions & 5 deletions tests/system_tests/experiment_plans/test_fgs_plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ async def fxc_composite():
backlight=i03.backlight(),
dcm=i03.dcm(fake_with_ophyd_sim=True),
eiger=i03.eiger(),
fast_grid_scan=i03.fast_grid_scan(),
zebra_fast_grid_scan=i03.zebra_fast_grid_scan(),
flux=i03.flux(fake_with_ophyd_sim=True),
robot=i03.robot(fake_with_ophyd_sim=True),
panda=i03.panda(fake_with_ophyd_sim=True),
Expand Down Expand Up @@ -308,8 +308,8 @@ def test_complete_xray_centre_plan_with_no_callbacks_falls_back_to_centre(
callbacks,
done_status,
):
fxc_composite.fast_grid_scan.kickoff = MagicMock(return_value=done_status)
fxc_composite.fast_grid_scan.complete = MagicMock(return_value=done_status)
fxc_composite.zebra_fast_grid_scan.kickoff = MagicMock(return_value=done_status)
fxc_composite.zebra_fast_grid_scan.complete = MagicMock(return_value=done_status)

params.hyperion_params.detector_params.directory = "./tmp"
params.hyperion_params.detector_params.prefix = str(uuid.uuid1())
Expand Down Expand Up @@ -346,8 +346,8 @@ def test_complete_xray_centre_plan_with_callbacks_moves_to_centre(
callbacks,
done_status,
):
fxc_composite.fast_grid_scan.kickoff = MagicMock(return_value=done_status)
fxc_composite.fast_grid_scan.complete = MagicMock(return_value=done_status)
fxc_composite.zebra_fast_grid_scan.kickoff = MagicMock(return_value=done_status)
fxc_composite.zebra_fast_grid_scan.complete = MagicMock(return_value=done_status)

params.hyperion_params.detector_params.directory = "./tmp"
params.hyperion_params.detector_params.prefix = str(uuid.uuid1())
Expand Down
6 changes: 5 additions & 1 deletion tests/unit_tests/device_setup_plans/test_setup_panda.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import numpy as np
import pytest
from bluesky.plan_stubs import null
from bluesky.run_engine import RunEngine
from dodal.devices.fast_grid_scan import PandAGridScanParams
from ophyd_async.panda import SeqTrigger

Expand Down Expand Up @@ -177,7 +179,9 @@ def assert_set_table_has_been_waited_on(*args, **kwargs):
), patch(
"hyperion.device_setup_plans.setup_panda.bps.wait",
MagicMock(side_effect=handle_wait),
), patch("hyperion.device_setup_plans.setup_panda.load_device"), patch(
), patch(
"hyperion.device_setup_plans.setup_panda.load_device"
), patch(
"hyperion.device_setup_plans.setup_panda.bps.abs_set"
):
RE(
Expand Down
6 changes: 3 additions & 3 deletions tests/unit_tests/experiment_plans/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import pytest
from bluesky.utils import Msg
from dodal.devices.fast_grid_scan import FastGridScan
from dodal.devices.fast_grid_scan import ZebraFastGridScan
from dodal.devices.oav.oav_detector import OAVConfigParams
from dodal.devices.synchrotron import SynchrotronMode
from dodal.devices.zocalo import ZocaloResults, ZocaloTrigger
Expand Down Expand Up @@ -165,8 +165,8 @@ def simple_beamline(detector_motion, oav, smargon, synchrotron, test_config_file
magic_mock.detector_motion = detector_motion
magic_mock.zocalo = make_fake_device(ZocaloResults)()
magic_mock.dcm = dcm
scan = make_fake_device(FastGridScan)("prefix", name="fake_fgs")
magic_mock.fast_grid_scan = scan
scan = make_fake_device(ZebraFastGridScan)("prefix", name="fake_fgs")
magic_mock.zebra_fast_grid_scan = scan
magic_mock.synchrotron = synchrotron
oav.zoom_controller.frst.set("7.5x")
oav.parameters = OAVConfigParams(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
EIGER_TYPE_EIGER2_X_4M,
EIGER_TYPE_EIGER2_X_16M,
)
from dodal.devices.fast_grid_scan import FastGridScan
from dodal.devices.fast_grid_scan import ZebraFastGridScan
from dodal.devices.synchrotron import SynchrotronMode
from dodal.devices.zocalo import ZocaloStartInfo
from ophyd.status import Status
Expand Down Expand Up @@ -489,8 +489,8 @@ def test_waits_for_motion_program(
done_status,
):
fake_fgs_composite.eiger.unstage = MagicMock(return_value=done_status)
clear_device("fast_grid_scan")
fgs = i03.fast_grid_scan(fake_with_ophyd_sim=True)
clear_device("zebra_fast_grid_scan")
fgs = i03.zebra_fast_grid_scan(fake_with_ophyd_sim=True)
fgs.KICKOFF_TIMEOUT = 0.1
fgs.complete = MagicMock(return_value=done_status)
set_sim_value(fgs.motion_program.running, 1)
Expand Down Expand Up @@ -523,7 +523,7 @@ def test_waits_for_motion_program(
)
)
assert res.exit_status == "success"
clear_device("fast_grid_scan")
clear_device("zebra_fast_grid_scan")

@patch(
"hyperion.experiment_plans.flyscan_xray_centre_plan.run_gridscan", autospec=True
Expand Down Expand Up @@ -669,7 +669,7 @@ def wrapped_gridscan_and_move():
def test_GIVEN_scan_already_valid_THEN_wait_for_GRIDSCAN_returns_immediately(
self, patch_sleep: MagicMock, RE: RunEngine
):
test_fgs: FastGridScan = i03.fast_grid_scan(fake_with_ophyd_sim=True)
test_fgs: ZebraFastGridScan = i03.zebra_fast_grid_scan(fake_with_ophyd_sim=True)

set_sim_value(test_fgs.position_counter, 0)
set_sim_value(test_fgs.scan_invalid, False)
Expand All @@ -684,7 +684,7 @@ def test_GIVEN_scan_already_valid_THEN_wait_for_GRIDSCAN_returns_immediately(
def test_GIVEN_scan_not_valid_THEN_wait_for_GRIDSCAN_raises_and_sleeps_called(
self, patch_sleep: MagicMock, RE: RunEngine
):
test_fgs: FastGridScan = i03.fast_grid_scan(fake_with_ophyd_sim=True)
test_fgs: ZebraFastGridScan = i03.zebra_fast_grid_scan(fake_with_ophyd_sim=True)

set_sim_value(test_fgs.scan_invalid, True)
set_sim_value(test_fgs.position_counter, 0)
Expand Down Expand Up @@ -860,7 +860,7 @@ def test_kickoff_and_complete_gridscan_triggers_zocalo(
RE.subscribe(ispyb_cb)
RE(
kickoff_and_complete_gridscan(
fake_fgs_composite.fast_grid_scan,
fake_fgs_composite.zebra_fast_grid_scan,
fake_fgs_composite.eiger,
fake_fgs_composite.synchrotron,
zocalo_env,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def grid_detect_devices(aperture_scatterguard, backlight, detector_motion):
backlight=backlight,
detector_motion=detector_motion,
eiger=MagicMock(),
fast_grid_scan=MagicMock(),
zebra_fast_grid_scan=MagicMock(),
flux=MagicMock(),
oav=MagicMock(),
pin_tip_detection=MagicMock(),
Expand Down
Loading

0 comments on commit a3cb801

Please sign in to comment.