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.

host: str = 'localhost'
port: int = 8080
name: str = 'hail mary'
forward_from: str = '*'
fuzz_threshold: int = 80
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.

host: str = 'localhost'
port: int = 3306
username: str = 'hail-mary'
password: str = ''
database: str = 'hail-mary'
pool_size: int = 20
max_overflow: int = 10
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.

token_exparation: int = 432000
root_username: str = ''
root_password: str = ''
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.

rules_path: pathlib.Path = PosixPath('/opt/hostedtoolcache/Python/3.14.3/x64/lib/python3.14/site-packages/internal/settings/badges_rules.yaml')
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.

url_port: str = ''
access_key: str = ''
secret_key: str = ''
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='')