Metadata-Version: 2.4
Name: patent-searcher
Version: 0.1.0
Summary: A simplified wrapper for the EPO OPS API that makes patent searching easy and returns ranked, relevant results in JSON format
Project-URL: Homepage, https://github.com/atrineo/patent-searcher
Project-URL: Repository, https://github.com/atrineo/patent-searcher
Project-URL: Issues, https://github.com/atrineo/patent-searcher/issues
Author-email: Atrineo AG <tr@atrineo.com>
Maintainer-email: Thor Rodrigues <tr@atrineo.com>
License: Apache-2.0
License-File: LICENSE
Keywords: EPO,European Patent Office,OPS,patent,search
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: colorlog>=6.10.1
Requires-Dist: python-epo-ops-client>=4.2.1
Provides-Extra: dev
Requires-Dist: pytest>=8.4.2; extra == 'dev'
Description-Content-Type: text/markdown

# Patent Searcher

A simplified Python wrapper for the EPO OPS (European Patent Office Open Patent Service) API that makes patent searching easy and intuitive.

Patent Searcher is a patent search orchestrator designed to abstract away the complexity of the EPO OPS API. Instead of dealing with complicated XML responses and verbose API calls, you get a simple, clean interface that returns ranked, relevant results in JSON format.

## Quickstart

Here's a simple example to retrieve information about a specific patent:

```python
from patent_searcher import PatentSearcher

# Provide credentials directly
client = PatentSearcher(
    consumer_key="your_consumer_key",
    secret_key="your_secret_key"
)

result = client.match("EP4318332A1")
```

## Getting Started

### Prerequisites

- Python >= 3.11

### Installation

Install the library from PyPI:

```bash
pip install patent-searcher
```

## Features

### Get patent data using Match

Retrieve comprehensive information about a patent by its publication number.

**Basic Usage:**
```python
# Get core patent data (title, abstract, inventors, dates, classifications, family, status)
result = client.match("EP4318332A1")

# Include optional fields as needed
result = client.match("EP4318332A1", 
                     citations=True,      # Include patent and non-patent references
                     claims=True,         # Include patent claims
                     description=True,    # Include full technical description
                     multi_language=True) # Include all available languages
```

**[→ Full .match() Documentation](docs/MATCH.md)** — Detailed field descriptions, parameter options, and examples

### Search for patents using the Find method

Search for patents using keywords with intelligent ranking and deduplication.

**Basic Usage:**
```python
# Simple keyword search
results = client.find("quantum computing")
print(f"Found {len(results)} patents")
print(f"Top result: {results[0]['title']}")

# Advanced search with reference patent and custom parameters
results = client.find(
    keywords="machine learning neural networks",
    max_results=50,                    # Limit results (default: 100)
    reference_patent="EP4318332A1",    # Use CPC classes from reference
    deduplicate_families=True,         # Remove family duplicates (default: True)
    jurisdictions=["EP", "WO", "US"]  # Jurisdiction priority
)
```

**[→ Full .find() Documentation](docs/FIND.md)** — Detailed parameters, scoring system, best practices, and use cases

## Architecture

Patent Searcher uses a modular, opt-in architecture designed for efficiency, flexibility, and LLM compatibility.

**[→ Full Architecture Documentation](docs/ARCHITECTURE.md)** — Design principles, benefits, use cases, and rationale

## Contribute

If you want to contribute or modify the library, clone the repository and install in development mode:

**Using `uv` (recommended)**

`uv` provides faster dependency resolution and better environment management. [Installation guide](https://docs.astral.sh/uv/)

```bash
# Install library and dependencies
uv sync

# For development (includes pytest and python-dotenv)
uv sync --extra dev
```

**Using `pip`**

```bash
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install library in editable mode
pip install -e .

# For development (includes pytest and python-dotenv)
pip install -e ".[dev]"
```

## Licence

This project is licenced under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.

Copyright © 2025 Atrineo AG
