46 lines
903 B
Python
46 lines
903 B
Python
|
from pydantic import BaseModel
|
||
|
from pydantic_settings import (
|
||
|
BaseSettings,
|
||
|
SettingsConfigDict,
|
||
|
)
|
||
|
|
||
|
from pathlib import Path
|
||
|
|
||
|
import logging
|
||
|
|
||
|
|
||
|
BASE_DIR = Path(__file__)
|
||
|
|
||
|
|
||
|
class RunConfig(BaseModel):
|
||
|
host: str = "0.0.0.0"
|
||
|
port: int = 8000
|
||
|
reload: bool = True
|
||
|
|
||
|
|
||
|
class Settings(BaseSettings):
|
||
|
model_config = SettingsConfigDict(
|
||
|
env_file=(
|
||
|
BASE_DIR / ".env-template",
|
||
|
BASE_DIR / ".env",
|
||
|
),
|
||
|
case_sensitive=False,
|
||
|
env_nested_delimiter="__",
|
||
|
env_prefix="NETADM_CONFIG__",
|
||
|
)
|
||
|
run: RunConfig = RunConfig()
|
||
|
|
||
|
|
||
|
settings = Settings()
|
||
|
|
||
|
|
||
|
def config_logging(level=logging.INFO):
|
||
|
logging.basicConfig(
|
||
|
level=level,
|
||
|
datefmt="%Y-%m-%d %H:%M:%S",
|
||
|
format="[%(asctime)s.%(msecs)03d] %(module)-25s:%(lineno)4d | %(funcName)-20s| %(levelname)-8s | %(message)s",
|
||
|
)
|
||
|
|
||
|
|
||
|
config_logging(level=logging.INFO)
|