Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ description = "Eiger control system integration with FastCS"
dependencies = [
"aiohttp",
"fastcs[epicsca]~=0.11.3",
"fastcs-odin @ git+https://github.com/DiamondLightSource/fastcs-odin.git",
"fastcs-odin @ git+https://github.com/DiamondLightSource/fastcs-odin.git@0.7.0",
"numpy",
"pillow",
"typer",
Expand Down
4 changes: 2 additions & 2 deletions src/fastcs_eiger/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from fastcs.transports.epics.ca.transport import EpicsCATransport

from fastcs_eiger import __version__
from fastcs_eiger.eiger_controller import EigerController
from fastcs_eiger.eiger_odin_controller import EigerOdinController
from fastcs_eiger.controllers.eiger_controller import EigerController
from fastcs_eiger.controllers.odin.eiger_odin_controller import EigerOdinController

__all__ = ["main"]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
from fastcs.logging import bind_logger
from fastcs.methods import scan

from fastcs_eiger.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.eiger_monitor_controller import EigerMonitorController
from fastcs_eiger.controllers.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.controllers.eiger_monitor_controller import EigerMonitorController
from fastcs_eiger.controllers.eiger_stream_controller import EigerStreamController
from fastcs_eiger.controllers.eiger_subsystem_controller import EigerSubsystemController
from fastcs_eiger.eiger_parameter import EIGER_PARAMETER_SUBSYSTEMS
from fastcs_eiger.eiger_stream_controller import EigerStreamController
from fastcs_eiger.eiger_subsystem_controller import EigerSubsystemController
from fastcs_eiger.http_connection import HTTPConnection, HTTPRequestError


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from fastcs.datatypes import Float
from fastcs.methods import command

from fastcs_eiger.eiger_subsystem_controller import EigerSubsystemController
from fastcs_eiger.controllers.eiger_subsystem_controller import EigerSubsystemController


def command_uri(key: str) -> str:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from fastcs.methods import scan
from PIL import Image

from fastcs_eiger.eiger_subsystem_controller import EigerSubsystemController
from fastcs_eiger.controllers.eiger_subsystem_controller import EigerSubsystemController


class EigerMonitorController(EigerSubsystemController):
Expand Down
5 changes: 5 additions & 0 deletions src/fastcs_eiger/controllers/eiger_stream_controller.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from fastcs_eiger.controllers.eiger_subsystem_controller import EigerSubsystemController


class EigerStreamController(EigerSubsystemController):
_subsystem = "stream"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from fastcs.attributes import AttrR
from fastcs.datatypes import Bool
from fastcs_odin.io.status_summary_attribute_io import StatusSummaryAttributeIORef
from fastcs_odin.odin_subcontroller import OdinSubController
from fastcs_odin.controllers import OdinSubController
from fastcs_odin.io import StatusSummaryAttributeIORef
from fastcs_odin.util import create_attribute


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from fastcs.connections import IPConnectionSettings

from fastcs_eiger.eiger_controller import EigerController
from fastcs_eiger.odin.odin_controller import OdinController
from fastcs_eiger.controllers.eiger_controller import EigerController
from fastcs_eiger.controllers.odin.odin_controller import OdinController


class EigerOdinController(EigerController):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from fastcs.attributes import AttrR
from fastcs.controllers import BaseController
from fastcs.datatypes import Bool
from fastcs_odin.controllers import OdinController as _OdinController
from fastcs_odin.http_connection import HTTPConnection
from fastcs_odin.io.status_summary_attribute_io import StatusSummaryAttributeIORef
from fastcs_odin.odin_controller import OdinController as _OdinController
from fastcs_odin.io import StatusSummaryAttributeIORef
from fastcs_odin.util import OdinParameter

from fastcs_eiger.odin.eiger_fan import EigerFanAdapterController
from fastcs_eiger.controllers.odin.eiger_fan import EigerFanAdapterController


class OdinController(_OdinController):
Expand Down
5 changes: 0 additions & 5 deletions src/fastcs_eiger/eiger_stream_controller.py

This file was deleted.

2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from fastcs.connections import IPConnectionSettings
from pytest_mock import MockerFixture

from fastcs_eiger.eiger_controller import EigerController
from fastcs_eiger.controllers.eiger_controller import EigerController

# Prevent pytest from catching exceptions when debugging in vscode so that break on
# exception works correctly (see: https://github.com/pytest-dev/pytest/issues/7409)
Expand Down
22 changes: 13 additions & 9 deletions tests/system/test_eiger_introspection.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
from pydantic import ValidationError
from pytest_mock import MockerFixture

from fastcs_eiger.eiger_controller import EigerController
from fastcs_eiger.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.eiger_monitor_controller import EigerMonitorController
from fastcs_eiger.eiger_parameter import EigerParameterRef, EigerParameterResponse
from fastcs_eiger.eiger_stream_controller import EigerStreamController
from fastcs_eiger.eiger_subsystem_controller import (
from fastcs_eiger.controllers.eiger_controller import EigerController
from fastcs_eiger.controllers.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.controllers.eiger_monitor_controller import EigerMonitorController
from fastcs_eiger.controllers.eiger_stream_controller import EigerStreamController
from fastcs_eiger.controllers.eiger_subsystem_controller import (
IGNORED_KEYS,
MISSING_KEYS,
EigerSubsystemController,
)
from fastcs_eiger.eiger_parameter import EigerParameterRef, EigerParameterResponse

HERE = Path(__file__).parent

Expand Down Expand Up @@ -156,7 +156,7 @@ async def test_threshold_mode_api_inconsistency_handled(
@pytest.mark.parametrize("sim_eiger", [str(HERE / "eiger.yaml")], indirect=True)
async def test_fetch_before_returning_parameters(sim_eiger, mocker: MockerFixture):
# Need to mock @scan to spy controller.update()
with patch("fastcs_eiger.eiger_controller.scan"):
with patch("fastcs_eiger.controllers.eiger_controller.scan"):
controller = EigerController(IPConnectionSettings("127.0.0.1", 8081))
await controller.initialise()

Expand Down Expand Up @@ -330,9 +330,13 @@ async def test_if_min_value_provided_then_prec_set_correctly(
]

with (
patch("fastcs_eiger.eiger_controller.EIGER_PARAMETER_SUBSYSTEMS", ["detector"]),
patch(
"fastcs_eiger.eiger_subsystem_controller.EIGER_PARAMETER_MODES", ["status"]
"fastcs_eiger.controllers.eiger_controller.EIGER_PARAMETER_SUBSYSTEMS",
["detector"],
),
patch(
"fastcs_eiger.controllers.eiger_subsystem_controller.EIGER_PARAMETER_MODES",
["status"],
),
):
await eiger_controller.initialise()
Expand Down
2 changes: 1 addition & 1 deletion tests/test_eiger_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from fastcs.attributes import AttrRW
from pytest_mock import MockerFixture

from fastcs_eiger.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.controllers.eiger_detector_controller import EigerDetectorController
from fastcs_eiger.eiger_parameter import EigerParameterRef, EigerParameterResponse


Expand Down
5 changes: 2 additions & 3 deletions tests/test_eiger_fan_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@
from pathlib import Path

import pytest
from fastcs_odin.io.parameter_attribute_io import ParameterTreeAttributeIO
from fastcs_odin.io.status_summary_attribute_io import StatusSummaryAttributeIO
from fastcs_odin.io import ParameterTreeAttributeIO, StatusSummaryAttributeIO
from fastcs_odin.util import (
OdinParameter,
OdinParameterMetadata,
create_odin_parameters,
)
from pytest_mock import MockerFixture

from fastcs_eiger.odin.eiger_fan import EigerFanAdapterController
from fastcs_eiger.controllers.odin.eiger_fan import EigerFanAdapterController

HERE = Path(__file__).parent

Expand Down
6 changes: 3 additions & 3 deletions tests/test_eiger_odin_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from fastcs.connections import IPConnectionSettings
from pytest_mock import MockerFixture

from fastcs_eiger.eiger_odin_controller import EigerOdinController
from fastcs_eiger.odin.odin_controller import OdinController
from fastcs_eiger.controllers.odin.eiger_odin_controller import EigerOdinController
from fastcs_eiger.controllers.odin.odin_controller import OdinController


@pytest.mark.asyncio
Expand All @@ -17,7 +17,7 @@ async def test_eiger_odin_controller(mocker: MockerFixture):
assert isinstance(controller.OD, OdinController)

eiger_initialise_mock = mocker.patch(
"fastcs_eiger.eiger_controller.EigerController.initialise"
"fastcs_eiger.controllers.eiger_controller.EigerController.initialise"
)
odin_initialise_mock = mocker.patch.object(controller.OD, "initialise")

Expand Down
6 changes: 3 additions & 3 deletions tests/test_odin_controller.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import pytest
from fastcs.connections import IPConnectionSettings
from fastcs_odin.meta_writer import MetaWriterAdapterController
from fastcs_odin.controllers import MetaWriterAdapterController
from fastcs_odin.util import OdinParameter, OdinParameterMetadata
from pytest_mock import MockerFixture

from fastcs_eiger.odin.eiger_fan import EigerFanAdapterController
from fastcs_eiger.odin.odin_controller import OdinController
from fastcs_eiger.controllers.odin.eiger_fan import EigerFanAdapterController
from fastcs_eiger.controllers.odin.odin_controller import OdinController


@pytest.mark.asyncio
Expand Down
Loading