diff --git a/src/backscattering_experimental_data/factory/__init__.py b/src/backscattering_experimental_data/factory/__init__.py index 9de359e..9801e03 100644 --- a/src/backscattering_experimental_data/factory/__init__.py +++ b/src/backscattering_experimental_data/factory/__init__.py @@ -1,6 +1,10 @@ from ..factory.component import ComponentFactory from ..factory.scatterer import ScattererFactory from ..factory.measurement import MeasurementFactory +from ..factory.initializer import ( + InitializerComponent, + InitializerScatterer, +) __all__ = [ "ComponentFactory", diff --git a/src/backscattering_experimental_data/factory/initializer.py b/src/backscattering_experimental_data/factory/initializer.py new file mode 100644 index 0000000..8a2b7dc --- /dev/null +++ b/src/backscattering_experimental_data/factory/initializer.py @@ -0,0 +1,28 @@ +from astropy.units import Quantity +from typing import NamedTuple +from astropy.units.physical import length, electrical_potential +from ..metadata.injection import ( + Injection, +) + + +class InitializerComponent(NamedTuple): + """ + Class to store metadata before knowing the data associated to the + component + """ + + name: str + calibration_factor: Quantity[length / electrical_potential] + + +class InitializerScatterer(NamedTuple): + """ + Class to store metadata before knowing the data associated to the + scatterer (the scatterer metadata contains component data). + """ + + name: str + calibration_factor: Quantity[length / electrical_potential] + associated_component: InitializerComponent | None + injection: Injection | None diff --git a/src/backscattering_experimental_data/factory/measurement.py b/src/backscattering_experimental_data/factory/measurement.py index aefb7b4..9045e34 100644 --- a/src/backscattering_experimental_data/factory/measurement.py +++ b/src/backscattering_experimental_data/factory/measurement.py @@ -1,18 +1,14 @@ -from typing import NamedTuple from astropy.units import ( Quantity, W, # pyright: ignore[reportAttributeAccessIssue] mW, # pyright: ignore[reportAttributeAccessIssue] Unit, ) -from astropy.units.physical import time, length, electrical_potential +from astropy.units.physical import time from gwpy.time import Time from ..component import Component from ..lockingstate import LockingState -from ..metadata.injection import ( - Injection, -) from ..measurement import Measurement from ..scatterer import Scatterer from ..utils import download_dicttimeseries, download_timeseries @@ -23,28 +19,9 @@ from ..metadata.scatterer import Scatterer as MetadataScatterer from ..factory.component import ComponentFactory from ..factory.scatterer import ScattererFactory - - -class InitializerComponent(NamedTuple): - """ - Class to store metadata before knowing the data associated to the - component - """ - - name: str - calibration_factor: Quantity[length / electrical_potential] - - -class InitializerScatterer(NamedTuple): - """ - Class to store metadata before knowing the data associated to the - scatterer (the scatterer metadata contains component data). - """ - - name: str - calibration_factor: Quantity[length / electrical_potential] - associated_component: InitializerComponent | None - injection: Injection | None +from ..factory.initializer import ( + InitializerScatterer, +) class MeasurementFactory: