Skip to content

Commit f83cd30

Browse files
authored
Improve module structure (#88)
Update to FastCS 0.11.2
1 parent 1e77b28 commit f83cd30

15 files changed

+98
-33
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ classifiers = [
1212
description = "FastCS support for the Odin detector software framework"
1313
dependencies = [
1414
"aiohttp",
15-
"fastcs[epicsca]~=0.11.1",
15+
"fastcs[epicsca]~=0.11.2",
1616
]
1717
dynamic = ["version"]
1818
license.file = "LICENSE"

src/fastcs_odin/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from fastcs.transports.epics.ca.ioc import EpicsIOCOptions
99
from fastcs.transports.epics.ca.transport import EpicsCATransport, EpicsGUIOptions
1010

11-
from fastcs_odin.odin_controller import OdinController
11+
from fastcs_odin.controllers import OdinController
1212

1313
from . import __version__
1414

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from .odin_controller import OdinController as OdinController
2+
from .odin_controller import OdinParameter as OdinParameter
3+
from .odin_data.frame_processor import (
4+
FrameProcessorAdapterController as FrameProcessorAdapterController,
5+
)
6+
from .odin_data.frame_processor import (
7+
FrameProcessorController as FrameProcessorController,
8+
)
9+
from .odin_data.frame_processor import (
10+
FrameProcessorDatasetController as FrameProcessorDatasetController,
11+
)
12+
from .odin_data.frame_processor import (
13+
FrameProcessorPluginController as FrameProcessorPluginController,
14+
)
15+
from .odin_data.frame_receiver import (
16+
FrameReceiverAdapterController as FrameReceiverAdapterController,
17+
)
18+
from .odin_data.frame_receiver import FrameReceiverController as FrameReceiverController
19+
from .odin_data.meta_writer import (
20+
MetaWriterAdapterController as MetaWriterAdapterController,
21+
)
22+
from .odin_data.odin_data_adapter import (
23+
OdinDataAdapterController as OdinDataAdapterController,
24+
)
25+
from .odin_subcontroller import OdinSubController as OdinSubController

src/fastcs_odin/odin_controller.py renamed to src/fastcs_odin/controllers/odin_controller.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@
22
from fastcs.connections.ip_connection import IPConnectionSettings
33
from fastcs.controllers import BaseController, Controller
44

5-
from fastcs_odin.frame_processor import FrameProcessorAdapterController
6-
from fastcs_odin.frame_receiver import FrameReceiverAdapterController
5+
from fastcs_odin.controllers.odin_data.frame_processor import (
6+
FrameProcessorAdapterController,
7+
)
8+
from fastcs_odin.controllers.odin_data.frame_receiver import (
9+
FrameReceiverAdapterController,
10+
)
11+
from fastcs_odin.controllers.odin_data.meta_writer import MetaWriterAdapterController
12+
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
713
from fastcs_odin.http_connection import HTTPConnection
814
from fastcs_odin.io.config_fan_sender_attribute_io import ConfigFanAttributeIO
915
from fastcs_odin.io.parameter_attribute_io import ParameterTreeAttributeIO
1016
from fastcs_odin.io.status_summary_attribute_io import (
1117
StatusSummaryAttributeIO,
1218
initialise_summary_attributes,
1319
)
14-
from fastcs_odin.meta_writer import MetaWriterAdapterController
15-
from fastcs_odin.odin_subcontroller import OdinSubController
16-
from fastcs_odin.util import AdapterType, OdinParameter, create_odin_parameters
17-
18-
REQUEST_METADATA_HEADER = {"Accept": "application/json;metadata=true"}
20+
from fastcs_odin.util import (
21+
REQUEST_METADATA_HEADER,
22+
AdapterType,
23+
OdinParameter,
24+
create_odin_parameters,
25+
)
1926

2027

2128
class OdinController(Controller):

src/fastcs_odin/controllers/odin_data/__init__.py

Whitespace-only changes.

src/fastcs_odin/frame_processor.py renamed to src/fastcs_odin/controllers/odin_data/frame_processor.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
from fastcs.methods import Command, command
1010
from pydantic import ValidationError
1111

12+
from fastcs_odin.controllers.odin_data.odin_data_adapter import (
13+
OdinDataAdapterController,
14+
)
15+
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
1216
from fastcs_odin.io.status_summary_attribute_io import (
1317
StatusSummaryAttributeIORef,
1418
_filter_sub_controllers,
1519
)
16-
from fastcs_odin.odin_data import OdinDataAdapterController
17-
from fastcs_odin.odin_subcontroller import OdinSubController
1820
from fastcs_odin.util import (
1921
AllowedCommandsResponse,
2022
OdinParameter,
@@ -80,6 +82,8 @@ def __parameter_in_plugin(
8082

8183

8284
class FrameProcessorAdapterController(OdinDataAdapterController):
85+
"""Controller for a frame processor adapter"""
86+
8387
frames_written: AttrR = AttrR(
8488
Int(),
8589
io_ref=StatusSummaryAttributeIORef(
@@ -145,7 +149,7 @@ async def stop_writing(self) -> None:
145149

146150

147151
class FrameProcessorPluginController(OdinSubController):
148-
"""SubController for a plugin in a frameProcessor application."""
152+
"""Controller for a plugin in a frameProcessor application."""
149153

150154
async def initialise(self):
151155
await self._create_commands()
@@ -208,6 +212,8 @@ async def submit_command() -> None:
208212

209213

210214
class FrameProcessorDatasetController(OdinSubController):
215+
"""Controller for datasets in the HDF plugin of a frameProcessor application"""
216+
211217
async def initialise(self):
212218
for parameter in self.parameters:
213219
parameter.set_path(parameter.uri[3:])

src/fastcs_odin/frame_receiver.py renamed to src/fastcs_odin/controllers/odin_data/frame_receiver.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
from fastcs_odin.odin_data import OdinDataAdapterController
2-
from fastcs_odin.odin_subcontroller import OdinSubController
1+
from fastcs_odin.controllers.odin_data.odin_data_adapter import (
2+
OdinDataAdapterController,
3+
)
4+
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
35
from fastcs_odin.util import create_attribute, remove_metadata_fields_paths
46

57

68
class FrameReceiverController(OdinSubController):
9+
"""Controller for a frameReceiver application"""
10+
711
async def initialise(self):
812
self.parameters = remove_metadata_fields_paths(self.parameters)
913

@@ -24,6 +28,8 @@ async def initialise(self):
2428

2529

2630
class FrameReceiverAdapterController(OdinDataAdapterController):
31+
"""Controller for a frame receiver adapter in an odin control serve."""
32+
2733
_subcontroller_label = "FR"
2834
_subcontroller_cls = FrameReceiverController
2935
_unique_config = [

src/fastcs_odin/meta_writer.py renamed to src/fastcs_odin/controllers/odin_data/meta_writer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
from fastcs.datatypes import Bool, Int, String
33
from fastcs.methods import command
44

5-
from fastcs_odin.io.parameter_attribute_io import ParameterTreeAttributeIORef
6-
from fastcs_odin.odin_subcontroller import OdinSubController
7-
from fastcs_odin.util import create_attribute
5+
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
6+
from fastcs_odin.util import ParameterTreeAttributeIORef, create_attribute
87

98

109
class MetaWriterAdapterController(OdinSubController):

src/fastcs_odin/odin_data.py renamed to src/fastcs_odin/controllers/odin_data/odin_data_adapter.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
from fastcs.controllers import ControllerVector
66
from fastcs.datatypes import DType_T
77

8+
from fastcs_odin.controllers.odin_subcontroller import OdinSubController
89
from fastcs_odin.http_connection import HTTPConnection
9-
from fastcs_odin.io.config_fan_sender_attribute_io import ConfigFanAttributeIORef
10-
from fastcs_odin.io.status_summary_attribute_io import initialise_summary_attributes
11-
from fastcs_odin.odin_subcontroller import OdinSubController
10+
from fastcs_odin.io import ConfigFanAttributeIORef, initialise_summary_attributes
1211
from fastcs_odin.util import (
1312
OdinParameter,
1413
create_attribute,
@@ -18,7 +17,7 @@
1817

1918

2019
class OdinDataAdapterController(ControllerVector):
21-
"""Sub controller for the frame processor adapter in an odin control server."""
20+
"""Base class for frame processor and frame receiver adapter controllers"""
2221

2322
_unique_config: list[str] = []
2423
_subcontroller_label: str = "OD"

src/fastcs_odin/odin_subcontroller.py renamed to src/fastcs_odin/controllers/odin_subcontroller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
class OdinSubController(Controller):
12-
"""Base class for exposing parameters from an odin control adapter."""
12+
"""Base sub controller for exposing parameters from an odin control server"""
1313

1414
def __init__(
1515
self,

0 commit comments

Comments
 (0)