Metadata-Version: 2.4
Name: epopy
Version: 0.1.0
Summary: Async Python client for EPO OPS API
Project-URL: Homepage, https://github.com/tu-po/epopy
Project-URL: Repository, https://github.com/tu-po/epopy
Project-URL: Documentation, https://github.com/tu-po/epopy#readme
Author-email: Quik <quinten@daskju.com>
License-Expression: AGPL-3.0-only
License-File: LICENSE
Keywords: api,async,epo,ops,patent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27.0
Requires-Dist: lxml>=5.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pypdf>=6.6.2
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: xmltodict>=0.13.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: respx>=0.20.0; extra == 'dev'
Requires-Dist: types-lxml>=2026.1.1; extra == 'dev'
Description-Content-Type: text/markdown

# epopy

Async Python client for the EPO Open Patent Services (OPS) API.

## Installation

```bash
pip install epopy
```

For development:

```bash
pip install epopy[dev]
```

## Usage

```python
import asyncio
from epopy import AsyncClient

async def main():
    async with AsyncClient(consumer_key="YOUR_KEY", consumer_secret="YOUR_SECRET") as client:
        # Search patents
        results = await client.search_patents("ti=solar AND pa=siemens")
        
        # Get a specific patent
        patent = client.get_patent("EP1234567")
        biblio = await patent.biblio()
        
        # Download documents
        pdf_bytes = await patent.download_document("FullDocument")

asyncio.run(main())
```

## Features

- Async/await API using `httpx`
- Patent search via CQL queries
- Bibliographic data retrieval
- Document and image downloads
- EPO Boards of Appeal decisions parsing

## Requirements

- Python 3.12+
- EPO OPS API credentials ([register here](https://developers.epo.org/))

## License

AGPL-3.0-only
