import logging
from dataclasses import dataclass
from enum import IntEnum, Enum
# from .catalog_structure import Catalogs, PublicDataServer
# from .fitting_structure import BayesianDefault, MLEDefault
# from .plotting_structure import GenericPlotting, ModelPlotting
# from .plugin_structure import Plugins, TimeSeries
# from .point_source_structure import PointSourceDefaults
# logging
[docs]class LoggingLevel(IntEnum):
DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
ERROR = logging.ERROR
CRITICAL = logging.CRITICAL
[docs]@dataclass
class Logging:
path: str = "~/.astromodels/log"
developer: bool = 'off'
usr: bool = 'on'
console: bool = 'on'
level: LoggingLevel = LoggingLevel.INFO
startup_warnings: bool = 'on'
info_style: str = "medium_spring_green"
warn_style: str = "medium_orchid"
error_style: str = "blink bold bright_red"
debug_style: str = "blue_violet"
message_style: str = "bold grey78"
[docs]class AbsTables(Enum):
WILM = "WILM"
ASPL = "ASPL"
AG89 = "AG89"
[docs]class EBLTable(Enum):
franceschini = "franceschini"
kneiske = "kneiske"
dominguez = "dominguez"
inuoe = "inuoe"
gilmore = "gilmore"
[docs]@dataclass
class AbsorptionModels:
tbabs_table: AbsTables = AbsTables.WILM
phabs_table: AbsTables = AbsTables.AG89
ebl_table: EBLTable = EBLTable.dominguez
[docs]@dataclass
class Modeling:
use_memoization: bool = True
use_parameter_transforms: bool = True
ignore_parameter_bounds: bool = False
[docs]@dataclass
class Config:
logging: Logging = Logging()
absorption_models: AbsorptionModels = AbsorptionModels()
modeling: Modeling = Modeling()