- Merge all configuration into settings.py with PRY_* env var prefix. - Add legacy env aliases (PROXY_URL, TOR_ENABLED, MAX_RETRIES, etc.) for migration. - Load and persist runtime overrides from JSON config file (default /app/config.json). - Update scraper.py, deps.py, routers/config.py to use unified settings. - Add resolved_proxy_chain and resolved_proxy_url properties. - Replace tests/test_mconfig.py with tests/test_settings.py (9 tests). - Update .env.example with new PRY_* options. - All 500 tests pass; ruff clean.
32 lines
958 B
Python
32 lines
958 B
Python
"""Shared global instances for Pry API.
|
|
|
|
This module initializes the singleton instances used by all API routers
|
|
and should be imported by both api.py and any router module that needs
|
|
direct access to shared state.
|
|
|
|
Usage:
|
|
from deps import scraper, cache, automator, ...
|
|
"""
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
# Copyright (c) 2026 Rug Munch Media LLC
|
|
from __future__ import annotations
|
|
|
|
from advanced import PryAdvanced
|
|
from automator import PryAutomator
|
|
from cache import ResponseCache
|
|
from extractor import SchemaExtractor
|
|
from jobqueue import JobQueue
|
|
from parser import DocumentParser
|
|
from ratelimit import RateLimiter
|
|
from scraper import PryScraper
|
|
from settings import settings
|
|
|
|
scraper = PryScraper()
|
|
automator = PryAutomator()
|
|
parser = DocumentParser()
|
|
extractor = SchemaExtractor()
|
|
cache = ResponseCache(capacity=1000)
|
|
ratelimiter = RateLimiter(default_rpm=settings.rate_limit_rpm, burst=200)
|
|
queue = JobQueue()
|
|
advanced = PryAdvanced(cache=cache)
|