Source code for lephare.magSvc

# ruff: noqa: N999

from lephare import GalMag, QSOMag, StarMag, keyword, read_config

__all__ = [
    "MagSvc",
]


[docs] class MagSvc: """Magnitude service to return magnitudes of a single SED.""" @classmethod
[docs] def from_config(cls, objtype, config_file): """Load config and return magnitudes Parameters ---------- objtype : `str` The type of object galaxy, star, or qso based on case insensitive first letter of string. config_file : `str` Path to config file. """ keywords = [ "COSMOLOGY", "FILTER_FILE", "MAGTYPE", "EXTINC_LAW", "EB_V", "MOD_EXTINC", "ZGRID_TYPE", "Z_STEP", "LIB_ASCII", "VERBOSE", "ADD_DUSTEM", ] if objtype[0].upper() == "G": keywords += ["GAL_LIB_IN", "GAL_LIB_OUT", "EM_LINES", "EM_DISPERSION", "ADD_DUSTEM"] instance = GalMag elif objtype[0].upper() == "Q": keywords += ["QSO_LIB_IN", "QSO_LIB_OUT"] instance = QSOMag elif objtype[0].upper() == "S": keywords += ["STAR_LIB_IN", "STAR_LIB_OUT"] instance = StarMag else: raise ValueError(f"Unknown objtype: {objtype}") keymap = read_config(config_file) keymap["t"] = keyword("t", objtype) keymap["c"] = keyword("c", config_file) return instance(keymap)