Skip to content

Commit

Permalink
Re-factored to use the new beamline object, and removed unused plans.
Browse files Browse the repository at this point in the history
  • Loading branch information
canismarko committed Oct 4, 2024
1 parent 749b4a4 commit a3dc79e
Show file tree
Hide file tree
Showing 50 changed files with 216 additions and 1,474 deletions.
10 changes: 2 additions & 8 deletions src/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
from haven._iconfig import beamline_connected as _beamline_connected
from haven.catalog import Catalog
from haven.devices.aps import ApsMachine
from haven.devices.beamline_manager import BeamlineManager, IOCManager
from haven.devices.area_detector import AravisDetector
from haven.devices.beamline_manager import BeamlineManager, IOCManager
from haven.devices.dxp import DxpDetector
from haven.devices.dxp import add_mcas as add_dxp_mcas
from haven.devices.ion_chamber import IonChamber
Expand All @@ -35,10 +35,6 @@
haven_dir = top_dir / "haven"


def pytest_configure():
haven.registry.auto_register = False


# Specify the configuration files to use for testing
os.environ["HAVEN_CONFIG_FILES"] = ",".join(
[
Expand All @@ -57,17 +53,15 @@ def beamline_connected():
@pytest.fixture()
def sim_registry(monkeypatch):
# Save the registry so we can restore it later
registry = haven.registry
registry = haven.beamline.registry
objects_by_name = registry._objects_by_name
objects_by_label = registry._objects_by_label
registry.clear()
registry.auto_register = True
# Run the test
try:
yield registry
finally:
# Restore the previous registry components
registry.auto_register = False
registry.clear()
registry._objects_by_name = objects_by_name
registry._objects_by_label = objects_by_label
Expand Down
15 changes: 2 additions & 13 deletions src/haven/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,10 @@
# from .catalog import load_catalog, load_data, load_result, tiled_client # noqa: F401
from .catalog import load_catalog, tiled_client # noqa: F401
from .constants import edge_energy # noqa: F401
from .devices import ( # noqa: F401
InstrumentRegistry,
IonChamber,
Monochromator,
Robot,
ion_chamber,
registry,
)
from .devices import IonChamber, Monochromator, Robot, ion_chamber # noqa: F401
from .devices.motor import HavenMotor # noqa: F401
from .energy_ranges import ERange, KRange, merge_ranges # noqa: F401
from .instrument import Instrument # noqa: F401
from .load_instrument import load_instrument # noqa: F401
from .instrument import beamline # noqa: F401
from .motor_position import ( # noqa: F401
get_motor_position,
list_current_motor_positions,
Expand All @@ -65,8 +57,6 @@
from .plans.beam_properties import knife_scan # noqa: F401
from .plans.energy_scan import energy_scan # noqa: F401
from .plans.fly import fly_scan, grid_fly_scan # noqa: F401
from .plans.mono_gap_calibration import calibrate_mono_gap # noqa: F401
from .plans.mono_ID_calibration import mono_ID_calibration # noqa: F401
from .plans.record_dark_current import record_dark_current # noqa: F401
from .plans.robot_transfer_sample import robot_transfer_sample # noqa: F401
from .plans.set_energy import set_energy # noqa: F401
Expand All @@ -80,7 +70,6 @@
)
from .progress_bar import ProgressBar # noqa: F401
from .run_engine import run_engine # noqa: F401
from .xdi_writer import XDIWriter # noqa: F401

# -----------------------------------------------------------------------------
# :author: Mark Wolfman
Expand Down
1 change: 0 additions & 1 deletion src/haven/devices/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from .instrument_registry import InstrumentRegistry, registry # noqa: F401
from .ion_chamber import IonChamber # noqa: F401
from .monochromator import Monochromator # noqa: F401
from .motor import HavenMotor, Motor # noqa: F401
Expand Down
5 changes: 0 additions & 5 deletions src/haven/devices/aerotech.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import logging
from typing import List, Mapping

import numpy as np
import pint
from ophyd_async.core import Device

from .._iconfig import load_config
from ..device import connect_devices
from .instrument_registry import InstrumentRegistry
from .instrument_registry import registry as default_registry
from .motor import Motor

log = logging.getLogger(__name__)
Expand Down
3 changes: 0 additions & 3 deletions src/haven/devices/aps.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
from ophyd import Component as Cpt
from ophyd import EpicsSignalRO

from .._iconfig import load_config
from ..device import make_device

log = logging.getLogger(__name__)


Expand Down
7 changes: 3 additions & 4 deletions src/haven/devices/area_detector.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
import pandas as pd
from apstools.devices import CamMixin_V34, SingleTrigger_V34
from ophyd import ADComponent as ADCpt
from ophyd import CamBase
from ophyd import Component as Cpt
from ophyd import DetectorBase as OphydDetectorBase
from ophyd import (
CamBase,
Device,
EigerDetectorCam,
EpicsSignal,
Expand Down Expand Up @@ -44,12 +44,11 @@
from ophyd.areadetector.plugins import StatsPlugin_V34 as OphydStatsPlugin_V34
from ophyd.areadetector.plugins import TIFFPlugin_V31, TIFFPlugin_V34
from ophyd.flyers import FlyerInterface
from ophyd.status import Status, StatusBase, SubscriptionStatus
from ophyd.sim import make_fake_device
from ophyd.status import Status, StatusBase, SubscriptionStatus

from .. import exceptions
from .._iconfig import load_config
from ..device import make_device

log = logging.getLogger(__name__)

Expand Down Expand Up @@ -543,7 +542,7 @@ class AravisDetector(SingleImageModeTrigger, DetectorBase):
# tiff = ADCpt(TIFFFilePlugin, "TIFF1:", kind=Kind.normal)


def make_area_detector(prefix:str, name: str, device_class: str, mock=True) -> Device:
def make_area_detector(prefix: str, name: str, device_class: str, mock=True) -> Device:
# Create the area detectors defined in the configuration
try:
DeviceClass = globals().get(device_class)
Expand Down
7 changes: 3 additions & 4 deletions src/haven/devices/beamline_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
from ophyd import DynamicDeviceComponent as DCpt
from ophyd import EpicsSignal, EpicsSignalRO

from .._iconfig import load_config
from ..device import make_device


class BSSEsaf(EpicsEsafDevice):
user_PIs = Cpt(EpicsSignal, "userPIs", string=True)
Expand Down Expand Up @@ -78,5 +75,7 @@ def __new__(
new_cls = type("BeamlineManager", (cls,), comps)
return object.__new__(new_cls)

def __init__(self, prefix: str, *, name: str, iocs={}, labels={"beamline_manager"}, **kwargs):
def __init__(
self, prefix: str, *, name: str, iocs={}, labels={"beamline_manager"}, **kwargs
):
super().__init__(name=name, prefix=prefix, labels=labels, **kwargs)
15 changes: 6 additions & 9 deletions src/haven/devices/dxp.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
from ophyd.status import StatusBase, SubscriptionStatus

from .. import exceptions
from .._iconfig import load_config
from ..device import make_device
from .fluorescence_detector import (
MCASumMixin,
ROIMixin,
Expand All @@ -22,7 +20,7 @@
add_roi_sums,
)

__all__ = ["DxpDetector", "load_dxp_detectors"]
__all__ = ["DxpDetector"]


NUM_ROIS = 32
Expand Down Expand Up @@ -408,13 +406,12 @@ def make_dxp_device(name, prefix, num_elements):
),
}
# Create a dynamic subclass with the MCAs
class_name = device_name.title().replace("_", "")
class_name = name.title().replace("_", "")
parent_classes = (DxpDetector,)
Cls = type(class_name, parent_classes, attrs)
return make_device(
Cls,
prefix=f"{prefix}:",
name=device_name,
Cls = type(name, parent_classes, attrs)
return Cls(
prefix=prefix,
name=name,
labels={"xrf_detectors", "fluorescence_detectors", "detectors"},
)

Expand Down
4 changes: 1 addition & 3 deletions src/haven/devices/energy_positioner.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@
from ophyd import PVPositionerPC
from pcdsdevices.signal import MultiDerivedSignal

from .._iconfig import load_config
from ..device import make_device
from .monochromator import Monochromator
from .xray_source import PlanarUndulator

log = logging.getLogger(__name__)


__all__ = ["EnergyPositioner", "load_energy_positioner"]
__all__ = ["EnergyPositioner"]


class EnergyPositioner(PVPositionerPC):
Expand Down
1 change: 0 additions & 1 deletion src/haven/devices/heater.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from ophyd import Component as Cpt
from ophyd import EpicsSignal, EpicsSignalRO, EpicsSignalWithRBV, PVPositioner


log = logging.getLogger(__name__)


Expand Down
37 changes: 0 additions & 37 deletions src/haven/devices/instrument_registry.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/haven/devices/lerix.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
from ophyd import PseudoPositioner, PseudoSingle
from ophyd.pseudopos import pseudo_position_argument, real_position_argument

from .._iconfig import load_config
from ..device import make_device

log = logging.getLogger(__name__)

um_per_mm = 1000
Expand Down
4 changes: 2 additions & 2 deletions src/haven/devices/motor.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
from ophyd_async.epics.motor import Motor as MotorBase
from ophyd_async.epics.signal import epics_signal_r, epics_signal_rw
from ophyd_async.epics.signal._signal import _epics_signal_backend
from ophydregistry import Registry

from .instrument_registry import InstrumentRegistry
from .motor_flyer import MotorFlyer

log = logging.getLogger(__name__)
Expand Down Expand Up @@ -166,7 +166,7 @@ def load_motors(
prefix: str,
num_motors: int,
auto_name: bool = True,
registry: InstrumentRegistry | None = None,
registry: Registry | None = None,
) -> list:
"""Load generic hardware motors from IOCs.
Expand Down
11 changes: 9 additions & 2 deletions src/haven/devices/power_supply.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from ophyd import Device, EpicsSignal, EpicsSignalRO
from ophyd import FormattedComponent as FCpt


log = logging.getLogger(__name__)


Expand All @@ -29,7 +28,15 @@ class NHQ203MChannel(Device):
)
status = FCpt(EpicsSignalRO, name="status", suffix="{prefix}:ModStatus{ch_num}_rbv")

def __init__(self, prefix: str, ch_num: int, name: str, labels={"power_supplies"}, *args, **kwargs):
def __init__(
self,
prefix: str,
ch_num: int,
name: str,
labels={"power_supplies"},
*args,
**kwargs,
):
self.ch_num = ch_num
super().__init__(prefix=prefix, name=name, labels=labels, *args, **kwargs)

Expand Down
3 changes: 0 additions & 3 deletions src/haven/devices/robot.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
from ophyd import DynamicDeviceComponent as DCpt
from ophyd import EpicsMotor, EpicsSignal, EpicsSignalRO

from .._iconfig import load_config
from ..device import make_device

log = logging.getLogger(__name__)


Expand Down
4 changes: 0 additions & 4 deletions src/haven/devices/scaler.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@
from ophyd_async.core import ConfigSignal, DeviceVector, HintedSignal, StandardReadable
from ophyd_async.epics.signal import epics_signal_r, epics_signal_rw, epics_signal_x

from .._iconfig import load_config
from ..device import connect_devices
from ..typing import StrEnum
from .instrument_registry import InstrumentRegistry
from .instrument_registry import registry as default_registry


def num_to_char(num):
Expand Down
11 changes: 7 additions & 4 deletions src/haven/devices/shutter.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
from pcdsdevices.signal import MultiDerivedSignal
from pcdsdevices.type_hints import SignalToValue

from .._iconfig import load_config
from ..device import make_device

# from apstools.devices.shutters import ApsPssShutterWithStatus as Shutter


Expand All @@ -32,7 +29,13 @@ class PssShutter(PVPositionerIsClose):
allow_close: bool

def __init__(
self, prefix: str, name: str, allow_open: bool = True, allow_close: bool = True, labels={"shutters"}, **kwargs
self,
prefix: str,
name: str,
allow_open: bool = True,
allow_close: bool = True,
labels={"shutters"},
**kwargs,
):
self.allow_open = allow_open
self.allow_close = allow_close
Expand Down
3 changes: 0 additions & 3 deletions src/haven/devices/slits.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@
from ophyd import DerivedSignal, Device, EpicsSignal
from ophyd import FormattedComponent as FCpt

from .. import exceptions
from .._iconfig import load_config
from ..device import make_device
from .motor import HavenMotor

log = logging.getLogger(__name__)
Expand Down
7 changes: 1 addition & 6 deletions src/haven/devices/stage.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
import logging
from typing import Mapping

from ophyd_async.core import Device

from .._iconfig import load_config
from ..device import connect_devices
from .instrument_registry import InstrumentRegistry
from .instrument_registry import registry as default_registry
from .motor import Motor

__all__ = ["XYStage", "load_stages"]
__all__ = ["XYStage"]


log = logging.getLogger(__name__)
Expand Down
Loading

0 comments on commit a3dc79e

Please sign in to comment.