Source code for Galaxia_ananke.photometry.InterfaceSvoFpsDriver

#!/usr/bin/env python
"""
Docstring
"""
from __future__ import annotations
from typing import TYPE_CHECKING, List, Dict
from functools import cached_property

from .._constants import *
from .SvoFpsDriver import SvoFpsDriver

if TYPE_CHECKING:
    from .PhotoSystem import PhotoSystem

__all__ = ['InterfaceSvoFpsDriver']


[docs] class InterfaceSvoFpsDriver: """ InterfaceSvoFpsDriver """ _plus_in_isochrone_name: str = '+' _special_cases: Dict[str, str] = { 'DCMC': 'DENIS+2MASS', 'Euclid': 'Euclid__NISP0+Euclid__VIS', 'GAIA__0': 'GAIA__GAIA0', 'GAIA__DR2': 'GAIA__GAIA2r', 'Generic__Johnson_UBVRIJHK': 'Generic__Johnson_UBVRIJHKL', 'Generic__Stroemgren': 'Generic__Stromgren', 'LSST_DP0': 'LSST', 'Pan_STARRS1': 'PAN-STARRS', 'HST__WFC3': 'HST__WFC3_UVIS1+HST__WFC3_UVIS2+HST__WFC3_IR' }
[docs] def __init__(self, photosystem: PhotoSystem) -> None: self.__photosystem: PhotoSystem = photosystem self.__svofpsdrivers: List[SvoFpsDriver] = [SvoFpsDriver(self, i) for i in range(len(self.list_of_instruments))]
@classmethod def _special_cases_formatter(cls, name: str) -> str: return cls._special_cases.get(name, name) @property def _photosystem(self) -> PhotoSystem: return self.__photosystem @cached_property def list_of_instruments(self) -> List[str]: return self._plus_in_isochrone_name.join( map(self._special_cases_formatter, self._special_cases_formatter(self.name).split(self._plus_in_isochrone_name)) ).split(self._plus_in_isochrone_name) @property def svofpsdrivers(self) -> List[SvoFpsDriver]: return self.__svofpsdrivers @property def name(self) -> str: return self._photosystem.name @property def mag_names(self) -> List[str]: return self._photosystem.mag_names
if __name__ == '__main__': raise NotImplementedError()