internal.settings.env
Loaded settings from environment.
1"""Loaded settings from environment.""" 2 3from pathlib import Path 4 5from pydantic_settings import BaseSettings, SettingsConfigDict 6 7BASE_DIR = Path(__file__).resolve().parents[2] 8SETTINGS_BASE_DIR = Path(__file__).parent 9 10 11class HostSettings(BaseSettings): 12 """Settings for main server module.""" 13 14 host: str = "localhost" 15 port: int = 8080 16 name: str = "hail mary" 17 forward_from: str = "*" 18 fuzz_threshold: int = 80 19 20 model_config = SettingsConfigDict( 21 env_prefix="HOST_", 22 case_sensitive=False, 23 env_file=BASE_DIR / ".env", 24 extra="ignore", 25 ) 26 27 28class DatabaseSettings(BaseSettings): 29 """Settings for database connection.""" 30 31 host: str = "localhost" 32 port: int = 3306 33 username: str = "hail-mary" 34 password: str = "" 35 database: str = "hail-mary" 36 pool_size: int = 20 37 max_overflow: int = 10 38 39 model_config = SettingsConfigDict( 40 env_prefix="DATABASE_", 41 case_sensitive=False, 42 env_file=BASE_DIR / ".env", 43 extra="ignore", 44 ) 45 46 47class AuthSettings(BaseSettings): 48 """Settings for authentication hardness.""" 49 50 token_exparation: int = 432000 # 5 days 51 root_username: str = "" 52 root_password: str = "" 53 54 model_config = SettingsConfigDict( 55 env_prefix="AUTH_", 56 case_sensitive=False, 57 env_file=BASE_DIR / ".env", 58 extra="ignore", 59 ) 60 61 62class BadgesSettings(BaseSettings): 63 """Settings for badges.""" 64 65 rules_path: Path = Path(__file__).parent / "badges_rules.yaml" 66 67 model_config = SettingsConfigDict( 68 env_prefix="BADGES", 69 case_sensitive=False, 70 env_file=BASE_DIR / ".env", 71 extra="ignore", 72 ) 73 74 75class BlockSettings(BaseSettings): 76 """Settings for block storage.""" 77 78 url_port: str = "" 79 access_key: str = "" 80 secret_key: str = "" 81 82 model_config = SettingsConfigDict( 83 env_prefix="BLOCK_", 84 case_sensitive=False, 85 env_file=BASE_DIR / ".env", 86 extra="ignore", 87 ) 88 89 90host_settings = HostSettings() 91database_settings = DatabaseSettings() 92auth_settings = AuthSettings() 93badges_settings = BadgesSettings() 94block_settings = BlockSettings()
BASE_DIR =
PosixPath('/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages')
SETTINGS_BASE_DIR =
PosixPath('/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/internal/settings')
class
HostSettings(pydantic_settings.main.BaseSettings):
12class HostSettings(BaseSettings): 13 """Settings for main server module.""" 14 15 host: str = "localhost" 16 port: int = 8080 17 name: str = "hail mary" 18 forward_from: str = "*" 19 fuzz_threshold: int = 80 20 21 model_config = SettingsConfigDict( 22 env_prefix="HOST_", 23 case_sensitive=False, 24 env_file=BASE_DIR / ".env", 25 extra="ignore", 26 )
Settings for main server module.
class
DatabaseSettings(pydantic_settings.main.BaseSettings):
29class DatabaseSettings(BaseSettings): 30 """Settings for database connection.""" 31 32 host: str = "localhost" 33 port: int = 3306 34 username: str = "hail-mary" 35 password: str = "" 36 database: str = "hail-mary" 37 pool_size: int = 20 38 max_overflow: int = 10 39 40 model_config = SettingsConfigDict( 41 env_prefix="DATABASE_", 42 case_sensitive=False, 43 env_file=BASE_DIR / ".env", 44 extra="ignore", 45 )
Settings for database connection.
class
AuthSettings(pydantic_settings.main.BaseSettings):
48class AuthSettings(BaseSettings): 49 """Settings for authentication hardness.""" 50 51 token_exparation: int = 432000 # 5 days 52 root_username: str = "" 53 root_password: str = "" 54 55 model_config = SettingsConfigDict( 56 env_prefix="AUTH_", 57 case_sensitive=False, 58 env_file=BASE_DIR / ".env", 59 extra="ignore", 60 )
Settings for authentication hardness.
class
BadgesSettings(pydantic_settings.main.BaseSettings):
63class BadgesSettings(BaseSettings): 64 """Settings for badges.""" 65 66 rules_path: Path = Path(__file__).parent / "badges_rules.yaml" 67 68 model_config = SettingsConfigDict( 69 env_prefix="BADGES", 70 case_sensitive=False, 71 env_file=BASE_DIR / ".env", 72 extra="ignore", 73 )
Settings for badges.
class
BlockSettings(pydantic_settings.main.BaseSettings):
76class BlockSettings(BaseSettings): 77 """Settings for block storage.""" 78 79 url_port: str = "" 80 access_key: str = "" 81 secret_key: str = "" 82 83 model_config = SettingsConfigDict( 84 env_prefix="BLOCK_", 85 case_sensitive=False, 86 env_file=BASE_DIR / ".env", 87 extra="ignore", 88 )
Settings for block storage.
host_settings =
HostSettings(host='localhost', port=8080, name='hail mary', forward_from='*', fuzz_threshold=80)
database_settings =
DatabaseSettings(host='localhost', port=3306, username='hail-mary', password='', database='hail-mary', pool_size=20, max_overflow=10)
auth_settings =
AuthSettings(token_exparation=432000, root_username='', root_password='')
badges_settings =
BadgesSettings(rules_path=PosixPath('/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/internal/settings/badges_rules.yaml'))
block_settings =
BlockSettings(url_port='', access_key='', secret_key='')