from pydantic_settings import BaseSettings, SettingsConfigDict from pydantic import PositiveInt, computed_field, MySQLDsn from pydantic_core import Url class Configs(BaseSettings): HOST: str PORT: PositiveInt DATABASE: str USERNAME: str PASSWORD: str @computed_field def DB_URI(self) -> MySQLDsn: return Url( f"mysql+aiomysql://{self.USERNAME}:{self.PASSWORD}@{self.HOST}:{self.PORT}/{self.DATABASE}?charset=utf8mb4" ) model_config = SettingsConfigDict(env_file='.env', env_file_encoding='utf-8') configs = Configs()