|
7 | 7 | import yaml |
8 | 8 | from dotenv import dotenv_values, load_dotenv |
9 | 9 | from loguru import logger |
10 | | -from pydantic import Field, field_validator |
| 10 | +from pydantic import Field |
11 | 11 | from pydantic_settings import ( |
12 | 12 | BaseSettings, |
13 | 13 | PydanticBaseSettingsSource, |
@@ -180,22 +180,15 @@ class Config(BaseSettings): |
180 | 180 | PERPLEXITY_API_KEY: str | None = None |
181 | 181 | GEMINI_API_KEY: str | None = None |
182 | 182 |
|
183 | | - # Runtime environment (computed) |
184 | | - is_local: bool = Field(default=False) |
185 | | - running_on: str = Field(default="") |
186 | | - |
187 | | - @field_validator("is_local", mode="before") |
188 | | - @classmethod |
189 | | - def set_is_local(cls, v: Any) -> bool: |
190 | | - """Set is_local based on GITHUB_ACTIONS env var.""" |
191 | | - return os.getenv("GITHUB_ACTIONS") != "true" |
192 | | - |
193 | | - @field_validator("running_on", mode="before") |
194 | | - @classmethod |
195 | | - def set_running_on(cls, v: Any) -> str: |
196 | | - """Set running_on based on is_local.""" |
197 | | - is_local = os.getenv("GITHUB_ACTIONS") != "true" |
198 | | - return "🖥️ local" if is_local else "☁️ CI" |
| 183 | + # Runtime environment (computed via default_factory) |
| 184 | + is_local: bool = Field( |
| 185 | + default_factory=lambda: os.getenv("GITHUB_ACTIONS") != "true" |
| 186 | + ) |
| 187 | + running_on: str = Field( |
| 188 | + default_factory=lambda: "🖥️ local" |
| 189 | + if os.getenv("GITHUB_ACTIONS") != "true" |
| 190 | + else "☁️ CI" |
| 191 | + ) |
199 | 192 |
|
200 | 193 | @classmethod |
201 | 194 | def settings_customise_sources( |
|
0 commit comments