Source code for atomscale.timeseries.registry
from __future__ import annotations
from atomscale.similarity.provider import SimilarityTrajectoryProvider
from .metrology import MetrologyProvider
from .optical import OpticalProvider
from .provider import TimeseriesProvider
from .rheed import RHEEDProvider
_PROVIDER_CLASSES: dict[str, type[TimeseriesProvider]] = {
RHEEDProvider.TYPE: RHEEDProvider,
OpticalProvider.TYPE: OpticalProvider,
MetrologyProvider.TYPE: MetrologyProvider,
SimilarityTrajectoryProvider.TYPE: SimilarityTrajectoryProvider,
}
[docs]
def get_provider(data_type: str) -> TimeseriesProvider:
try:
return _PROVIDER_CLASSES[data_type]() # type: ignore[call-arg]
except KeyError:
raise ValueError(f"Unsupported timeseries type: '{data_type}'") # noqa: B904