diyalgo/diyalgo/config.py

23 lines
650 B
Python

from pathlib import Path
from typing import Optional
from pydantic import BaseSettings, AnyHttpUrl, EmailStr
class Config(BaseSettings):
MASTO_URL:AnyHttpUrl
MASTO_TOKEN: Optional[str] = None
LOGDIR:Path = Path().home() / '.diyalgo'
DB:Optional[Path] = Path().home() / '.diyalgo' / 'diyalgo.db'
"""
Optional, if set to ``None`` , use the in-memory sqlite DB
"""
@property
def sqlite_path(self) -> str:
if self.DB is None:
return 'sqlite://'
else:
return f'sqlite:///{str(self.DB.resolve())}'
class Config:
env_file = '.env'
env_file_encoding = 'utf-8'