rumine-api-wrapper/config.py

32 lines
837 B
Python
Raw Normal View History

2024-03-07 14:06:53 +01:00
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import PositiveInt, computed_field, MySQLDsn
from pydantic_core import Url
2024-04-15 13:18:31 +02:00
import httpx
2024-03-07 14:06:53 +01:00
class Configs(BaseSettings):
HOST: str
PORT: PositiveInt
DATABASE: str
USERNAME: str
PASSWORD: str
2024-04-15 13:18:31 +02:00
HOST_DS: str
PORT_DS: PositiveInt
TOKEN_DS: str
2024-03-07 14:06:53 +01:00
@computed_field
def DB_URI(self) -> MySQLDsn:
return Url(
f"mysql+aiomysql://{self.USERNAME}:{self.PASSWORD}@{self.HOST}:{self.PORT}/{self.DATABASE}?charset=utf8mb4"
)
2024-04-15 13:18:31 +02:00
@computed_field
def DS_URL(self) -> httpx.URL:
return httpx.URL(
f"http://{self.HOST_DS}:{self.PORT_DS}/force-assign-role"
)
2024-03-07 14:06:53 +01:00
model_config = SettingsConfigDict(env_file='.env', env_file_encoding='utf-8')
configs = Configs()