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