- --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
13 lines
605 B
Python
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"
|