athena-client v1.0.29 — Async reliability, ConceptExplorer docs, and example fixes
-
Fix: async requests 403 on public OHDSI Athena
- Async client now sends browser-like headers (Referer, Accept-Language, realistic User-Agent).
- Fallback across multiple User-Agents for non-JSON/403 responses.
- Do not retry on network errors with different User-Agents.
- Anonymous usage against https://athena.ohdsi.org/api/v1 works out-of-the-box.
- Reference: Issue #12 and PR #13. See: PR #13
-
Improvement: ConceptExplorer time-limit handling
- Honors tight time budgets by skipping heavy steps when remaining time is small.
- Early return for very small budgets; tests added/adjusted.
-
Documentation
- README: Clarified ConceptExplorer is async-only; example updated to use
AthenaAsyncClient. - Concept Exploration Guide: Added explicit async setup; reiterated anonymous access on public server.
- Examples:
examples/concept_exploration_demo.pyimports fixed;examples/test.pyprints exploration stats, mappings, and suggestions.
- README: Clarified ConceptExplorer is async-only; example updated to use
-
Quality and tests
- New tests assert async default headers and auth/default header merge.
- Tests verify fallback UA behavior and network error handling.
- Full suite: 360 tests passing locally; pre-commit checks green.
Upgrade notes
- No breaking API changes.
- If you use ConceptExplorer, switch to
AthenaAsyncClient. - Public OHDSI Athena requires no token; private instances may still require
ATHENA_TOKEN.
Thanks
- Community report and feedback that helped identify and validate the fix: Issue #12.