Config
config
¶
Handling the configuration
PYTANIS_CFG_PATH: str = '.pytanis/config.toml'
module-attribute
¶
Path within $HOME to the configuration file of Pytanis
PYTANIS_ENV: str = 'PYTANIS_CONFIG'
module-attribute
¶
Name of the environment variable to look up the path for the config
Config
¶
Main configuration object
Google: GoogleCfg
instance-attribute
¶
HelpDesk: HelpDeskCfg
instance-attribute
¶
Pretalx: PretalxCfg
instance-attribute
¶
cfg_path: FilePath
instance-attribute
¶
convert_json_path(v: GoogleCfg, info: ValidationInfo) -> GoogleCfg
classmethod
¶
Source code in src/pytanis/config.py
@field_validator('Google')
@classmethod
def convert_json_path(cls, v: GoogleCfg, info: ValidationInfo) -> GoogleCfg:
def make_rel_path_abs(entry):
if entry is not None and not entry.is_absolute():
entry = info.data['cfg_path'].parent / entry
return entry
v.client_secret_json = make_rel_path_abs(v.client_secret_json)
v.token_json = make_rel_path_abs(v.token_json)
return v
GoogleCfg
¶
HelpDeskCfg
¶
PretalxCfg
¶
Configuration related to the Pretalx API
api_token: str | None = None
class-attribute
instance-attribute
¶
get_cfg() -> Config
¶
Returns the configuration as an object
Source code in src/pytanis/config.py
def get_cfg() -> Config:
"""Returns the configuration as an object"""
cfg_path = get_cfg_file()
with open(cfg_path, 'rb') as fh:
cfg_dict = tomli.load(fh)
# add config path to later resolve relative paths of config values
cfg_dict['cfg_path'] = cfg_path
return Config.model_validate(cfg_dict)
get_cfg_file() -> Path
¶
Determines the path of the config file
Source code in src/pytanis/config.py
def get_cfg_file() -> Path:
"""Determines the path of the config file"""
path_str = os.environ.get(PYTANIS_ENV, None)
path = Path.home() / Path(PYTANIS_CFG_PATH) if path_str is None else Path(path_str)
return path