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

1from __future__ import annotations 

2 

3from collections.abc import Sequence 

4from pathlib import Path 

5from typing import Annotated 

6 

7from pydantic import Field, HttpUrl, SecretStr 

8from pydantic_settings import BaseSettings, SettingsConfigDict 

9 

10 

11class Settings(BaseSettings, extra="ignore"): 

12 model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8") 

13 

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") 

18 

19 http_timeout: int = 30 

20 """Timeout for HTTP requests in seconds""" 

21 

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 } 

27 

28 collection_config: Annotated[ 

29 HttpUrl | Path, Field(union_mode="left_to_right") 

30 ] = Path(__file__).parent / "../../bioimageio_collection_config.json" 

31 """collection config""" 

32 

33 

34settings = Settings() # pyright: ignore[reportCallIssue]