from __future__ import annotations import dataclasses import tomllib import typing @dataclasses.dataclass(eq=False, frozen=True, slots=True) class Config: username: str fio_api_key: str market: MarketConfig supply: SupplyConfig def __init__(self) -> None: with open('config.toml', 'rb') as f: config = tomllib.load(f) for k, v in config.items(): match k: case 'market': v = MarketConfig(**v) case 'supply': v = SupplyConfig(**v) object.__setattr__(self, k, v) @dataclasses.dataclass(eq=False, frozen=True, slots=True) class MarketConfig: ignore_warehouses: typing.Sequence[str] @dataclasses.dataclass(eq=False, frozen=True, slots=True) class SupplyConfig: ignore_materials: typing.Sequence[str] config = Config()