Coverage for src/backoffice/_settings.py: 0%
16 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-12 10:26 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-12 10:26 +0000
1from pathlib import Path
2from typing import Annotated, Sequence, Union
4from pydantic import Field, HttpUrl, SecretStr
5from pydantic_settings import BaseSettings, SettingsConfigDict
8class Settings(BaseSettings, extra="ignore"):
9 model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8")
11 hypha_api_token: SecretStr
12 hypha_base_url: str = "https://hypha.aicell.io"
13 summaries: Path = Path("summaries")
14 tools: Sequence[str] = ("biapy", "bioimageio.core", "careamics", "ilastik")
16 http_timeout: int = 30
17 """Timeout for HTTP requests in seconds"""
19 def get_hypha_headers(self):
20 return {
21 "Authorization": f"Bearer {self.hypha_api_token.get_secret_value()}",
22 "Content-Type": "application/json",
23 }
25 collection_config: Annotated[
26 Union[HttpUrl, Path], Field(union_mode="left_to_right")
27 ] = Path(__file__).parent / "../../bioimageio_collection_config.json"
28 """collection config"""
31settings = Settings() # pyright: ignore[reportCallIssue]