numistalib Documentation ======================== A Python caching API wrapper for the Numista numismatic database with RFC 9111-compliant HTTP caching, intelligent rate limiting, and resilient retry logic. **Includes an optional command-line interface with rich terminal output and sixel image support.** .. image:: https://github.com/wells01440/numistalib/actions/workflows/test.yml/badge.svg :target: https://github.com/wells01440/numistalib/actions/workflows/test.yml :alt: Tests .. image:: https://readthedocs.org/projects/numistalib/badge/?version=latest :target: https://numistalib.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. image:: https://img.shields.io/pypi/v/numistalib :target: https://pypi.org/project/numistalib/ :alt: PyPI .. image:: https://img.shields.io/badge/License-MIT-yellow.svg :target: https://opensource.org/licenses/MIT :alt: License Features -------- **Core API Features** * **RFC 9111-Compliant HTTP Caching**: Persistent SQLite cache with configurable TTL and LRU eviction * **Intelligent Rate Limiting**: Transport-level throttling with configurable limits (respects Numista quotas) * **Resilient Retry Logic**: Exponential backoff with jitter for network failures and rate limit errors * **Complete Type Safety**: Full Pydantic v2 models with strict validation for all API entities * **Sync & Async Support**: Both synchronous and asynchronous client implementations * **Cache Indicators**: Visual feedback (💾/🌐) for cache hits/misses in responses **Optional CLI Features** * **Rich Terminal UI**: Beautiful tables, panels, and formatted output * **Sixel Image Support**: Display coin images directly in terminal (Kitty, WezTerm, iTerm2, mlterm, foot, yaft) * **Flexible Display Modes**: Table or panel mode for different output preferences * **Command Aliases**: Short and long form commands Getting Started --------------- See the following sections to get started: .. toctree:: :maxdepth: 2 :caption: User Guide installation quickstart python_api_guide cli_guide configuration advanced_usage .. toctree:: :maxdepth: 2 :caption: API Reference api/client api/services api/models api/cli .. toctree:: :maxdepth: 1 :caption: Additional Information architecture contributing CHANGELOG license About ----- **Built With** This project leverages excellent open-source libraries: * `httpx `_ — Modern HTTP client with sync/async support * `hishel `_ — RFC 9111-compliant HTTP caching * `pydantic `_ — Data validation and settings management * `pyrate-limiter `_ — Sophisticated rate limiting * `tenacity `_ — Retry logic with exponential backoff * `click `_ — CLI framework * `rich `_ — Terminal UI and formatting * `textual-image `_ — Sixel protocol image display **Legal & Attribution** This project is an unofficial wrapper and is not affiliated with Numista. When using data from Numista, provide appropriate attribution and comply with Numista's terms: * `Conditions of use `_ * `Legal information `_ * `Pricing API terms `_ Respect Numista's rate limits and any restrictions on caching or redistribution, particularly for pricing data. Indices and Tables ------------------ * :ref:`genindex` * :ref:`modindex` * :ref:`search`