Source code for houndcore.api.dependencies
from fastapi import Depends
from typing import Annotated
from logging import Logger
from houndcore.app.scanners import Scanner, SubscriptionScanner
from houndcore.logger import get_logger
from houndcore.config import Config
scanner: Scanner = None
[docs]
def get_config() -> Config:
return Config.from_env()
[docs]
async def get_scanner() -> SubscriptionScanner:
global scanner
config = get_config()
if not scanner:
if config.MODE == "fast":
scanner = SubscriptionScanner(config=config)
if not await scanner.is_connected:
await scanner.connect()
return scanner
DependsScanner = Annotated[Scanner, Depends(get_scanner)]
DependsLogger = Annotated[Logger, Depends(get_logger)]