Source code for hostedpi.settings

from pydantic import AnyHttpUrl, Field, SecretStr, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict


[docs] class Settings(BaseSettings): """ This model handles the configuration settings for the Mythic Beasts Hosted Pi API. :type id: str :param id: Your API ID. Required to authenticate with the API. :type secret: str :param secret: Your API secret key. Required to authenticate with the API. :type auth_url: str :param auth_url: The authentication URL for the API. This is used to log in and obtain an access token. Defaults to "https://auth.mythic-beasts.com/login". :type api_url: str :param api_url: The base URL for the API. This is used to make requests to the API endpoints. Defaults to "https://api.mythic-beasts.com/beta/pi/". :raises pydantic_core.ValidationError: If the provided settings are invalid or missing required fields. """ model_config = SettingsConfigDict(env_prefix="hostedpi_", env_file=".env", extra="ignore") id: str = Field(description="Your API ID") secret: SecretStr = Field(description="Your API secret key") auth_url: AnyHttpUrl = Field( default="https://auth.mythic-beasts.com/login", description="The authentication URL", ) api_url: AnyHttpUrl = Field( default="https://api.mythic-beasts.com/beta/pi/", description="The API URL", ) @field_validator("api_url", mode="before") @classmethod def ensure_trailing_slash(cls, v): if not v.endswith("/"): v += "/" return v