Source code for litsync.config
from __future__ import annotations
import dataclasses
from pathlib import Path
from typing import Optional
DEFAULT_WORKERS = 4
[docs]
@dataclasses.dataclass
class Config:
data_root: Path
email: str
sources: tuple[str, ...]
pmc_groups: tuple[str, ...]
pmc_formats: tuple[str, ...]
workers: int = DEFAULT_WORKERS
max_retries: int = 5
backoff_base: float = 2.0
timeout: int = 60
dry_run: bool = False
reverify: bool = False
prune: bool = False
count_articles: bool = False
fda_endpoints: Optional[tuple[str, ...]] = None
verbose: bool = False
@property
def state_dir(self) -> Path:
return self.data_root / "_state"
@property
def db_path(self) -> Path:
return self.state_dir / "state.sqlite"
@property
def lock_path(self) -> Path:
return self.state_dir / "litsync.lock"
@property
def log_dir(self) -> Path:
return self.state_dir / "logs"