web-fetcher/web_fetcher/__init__.py
tegwick 96fe5b022b Release 0.2.0: replay, source enforcement, period rule, selective retry (WEBFETCH-WP-0002)
- --replay DIR / replay_dir: offline replay from the cache, hash-verified
- ok values without source become error; Last-Modified recorded as published
- latest period by parsed order (web_fetcher/periods.py); mixed formats refused
- non-numeric values not_found unless value_type: string
- retry only connection errors, timeouts, 429/5xx; honour Retry-After
- opt-in live smoke test; 18 offline tests
- CHANGELOG, README install docs, SCOPE update, capability D2/A3/C2/R2
- WEBFETCH-WP-0003 (repo hygiene) added

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 153021@bnt-lap001
Assistant-Session: 46917be4-6400-4106-b8b7-61953a0caf24
2026-10-19 14:08:35 +02:00

13 lines
605 B
Python

"""web-fetcher: reusable, provenance-first fetching of web and API data for research.
Every fetch returns Observation records that say where a value came from
(URL), when it was retrieved, and a hash of the raw payload, so downstream
research can cite and re-verify it. Values are never estimated: a fetch either
yields a sourced value or an explicit `not_found` / `error` record.
"""
from web_fetcher.core import Observation, fetch_bytes
from web_fetcher.registry import ADAPTERS, run_spec, run_specs
__all__ = ["Observation", "fetch_bytes", "ADAPTERS", "run_spec", "run_specs"]
__version__ = "0.2.0"