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

1from pathlib import Path 

2from typing import Annotated, Sequence, Union 

3 

4from pydantic import Field, HttpUrl, SecretStr 

5from pydantic_settings import BaseSettings, SettingsConfigDict 

6 

7 

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

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

10 

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

15 

16 http_timeout: int = 30 

17 """Timeout for HTTP requests in seconds""" 

18 

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 } 

24 

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

29 

30 

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