[![patent_client_logo](https://raw.githubusercontent.com/parkerhancock/patent_client/master/docs/_static/patent_client_logo.svg)](https://patent-client.readthedocs.io)
[![Build](https://github.com/parkerhancock/patent_client/actions/workflows/build.yaml/badge.svg)](https://github.com/parkerhancock/patent_client/actions/workflows/build.yaml)
[![codecov](https://codecov.io/gh/parkerhancock/patent_client/branch/master/graph/badge.svg?token=pWsiQLHi6r)](https://codecov.io/gh/parkerhancock/patent_client)
[![Documentation](https://img.shields.io/readthedocs/patent-client/stable)](https://patent-client.readthedocs.io/en/stable/)
[![PyPI](https://img.shields.io/pypi/v/patent-client?color=blue)](https://pypi.org/project/patent-client)
[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/patent-client)](https://pypi.org/project/patent-client)
[![Downloads](https://static.pepy.tech/badge/patent_client/month)](https://pepy.tech/project/patent_client)
[![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](https://pydantic.dev)
# Summary
A powerful library for accessing intellectual property, featuring:
- 🍰 **Ease of use:** All sources use a simple unified API inspired by [Django-ORM][DORM].
- 🐼 **Pandas Integration:** Results are easily castable to [Pandas Dataframes and Series][PANDAS].
- 🚀 **Performance:** Fetched data is retrieved using the [httpx][httpx] library with native HTTP/2 and asyncio support, and cached using the [hishel][hishel] library for super-fast queries, and [yankee][yankee] for data extraction.
- 🌐 **Async/Await Support:** All API's (optionally!) support the async/await syntax.
- 🔮 **Pydantic v2 Support:** All models retrieved are [Pydantic v2 models][pydantic] with all the goodness that comes with them!
Docs, including a fulsome Getting Started and User Guide are available on [Read the Docs](http://patent-client.readthedocs.io). The Examples folder includes examples of using `patent_client` for
many common IP tasks
## ⭐ New in v5 ⭐
Version 5 brings a new and more reliable way to provide synchronous and asynchronous access to the various APIs.
In version 5, like in version 3, you can just `from patent_client import [Model]` and get a synchronous version
of the model. No asynchronous methods or functionality at all. Or you can do `from patent_client._async import [Model]`
and get an asynchronous version of the model.
Version 5 also brings support for the USPTO's new [Open Data Portal](https://beta-data.uspto.gov/home), a system currently in beta that is scheduled to replace the current Patent Examination Data System in late 2024.
## Coverage
- [United States Patent & Trademark Office][USPTO]
- [Patent Examination Data][PEDS] - Full Support
- [Open Data Portal][ODP] - Full Support
- [Global Dossier][GD] - Full Support
- [Patent Assignment Data][Assignment] - Lookup Support
- [Patent Trial & Appeal Board API v2][PTAB] - Supports Proceedings, Decisions, and Documents
- [Patent Public Search][PPS] - Full Support
- [Bulk Data Storage System][BDSS] - Full Support
- [European Patent Office - Open Patent Services][OPS]
- Inpadoc - Full Support
- EPO Register - No Support (in progress)
- Classification - No Support
* Free software: Apache Software License 2.0
[DORM]: https://docs.djangoproject.com/en/4.0/topics/db/queries/
[PANDAS]: https://pandas.pydata.org/docs/
[httpx]: https://www.python-httpx.org/
[hishel]: https://hishel.com/
[yankee]: https://github.com/parkerhancock/yankee
[Assignment]: user_guide/assignments.html
[OPS]: https://patent-client.readthedocs.io/en/latest/user_guide/epo.html
[PPS]: https://patent-client.readthedocs.io/en/latest/user_guide/fulltext.html
[PEDS]: https://patent-client.readthedocs.io/en/latest/user_guide/peds.html
[PTAB]: https://patent-client.readthedocs.io/en/latest/user_guide/ptab.html
[USPTO]: http://developer.uspto.gov
[BDSS]: https://patent-client.readthedocs.io/en/latest/user_guide/bulk_data.html
[GD]: https://patent-client.readthedocs.io/en/latest/user_guide/global_dossier.html
[pydantic]: https://docs.pydantic.dev/latest/
[ODP]: https://patent-client.readthedocs.io/en/latest/user_guide/open_data_portal.html
## Installation
```
pip install patent_client
```
If you only want access to USPTO resources, you're done!
However, additional setup is necessary to access EPO Inpadoc and EPO Register resources. See the [Docs](http://patent-client.readthedocs.io).
## Quick Start
To use the project:
```python
# Import the model classes you need
>>> from patent_client import Inpadoc, Assignment, USApplication
# Fetch US Applications
>>> app = USApplication.objects.get('15710770')
>>> app.patent_title
'Camera Assembly with Concave-Shaped Front Face'
# Fetch from USPTO Assignments
>>> assignments = Assignment.objects.filter(assignee='Google')
>>> len(assignments) > 23000
True
>>> assignment = Assignment.objects.get('47086-788')
>>> assignment.conveyance_text
'ASSIGNMENT OF ASSIGNORS INTEREST'
# Fetch from INPADOC
>>> pub = Inpadoc.objects.get('EP3082535A1')
>>> pub.biblio.title
'AUTOMATIC FLUID DISPENSER'
```
## Async Quick Start
To use async with Patent Client, just import the classes you need from the async module. All methods
and iterators that access data or create a network request are asynchronous.
```python
from patent_client._async import USApplication
apps = list()
async for app in USApplication.objects.filter(first_named_applicant="Google"):
apps.append(app)
app = await USApplication.objects.aget("16123456")
```
<!-- RTD-IGNORE -->
## Documentation
Docs, including a fulsome Getting Started are available on [Read the Docs](http://patent-client.readthedocs.io).
<!-- END-RTD-IGNORE -->
# Development
To run the all tests run:
```
pytest
```
A developer guide is provided in the [Documentation](http://patent-client.readthedocs.io).
Pull requests welcome!
# Related projects
- [Python EPO OPS Client](https://github.com/55minutes/python-epo-ops-client)
- [Google Public Patent Data](https://github.com/google/patents-public-data)
- [PatentsView API Wrapper](https://github.com/mikeym88/PatentsView-API-Wrapper)
- [USPTO Scrapy Scraper](https://github.com/blazers08/USPTO)
Raw data
{
"_id": null,
"home_page": "https://github.com/parkerhancock/patent_client",
"name": "patent-client",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9",
"maintainer_email": null,
"keywords": "patent, intellectual property, usitc, epo, ops, trademark, inpadoc, 337",
"author": "Parker Hancock",
"author_email": "633163+parkerhancock@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/2a/72/ba96b3b0349fab7b7af840afad2dd5931f5de7fdf42a0efcd9fd7d43ad63/patent_client-5.0.18.tar.gz",
"platform": null,
"description": "[![patent_client_logo](https://raw.githubusercontent.com/parkerhancock/patent_client/master/docs/_static/patent_client_logo.svg)](https://patent-client.readthedocs.io)\n\n[![Build](https://github.com/parkerhancock/patent_client/actions/workflows/build.yaml/badge.svg)](https://github.com/parkerhancock/patent_client/actions/workflows/build.yaml)\n[![codecov](https://codecov.io/gh/parkerhancock/patent_client/branch/master/graph/badge.svg?token=pWsiQLHi6r)](https://codecov.io/gh/parkerhancock/patent_client)\n[![Documentation](https://img.shields.io/readthedocs/patent-client/stable)](https://patent-client.readthedocs.io/en/stable/)\n\n\n[![PyPI](https://img.shields.io/pypi/v/patent-client?color=blue)](https://pypi.org/project/patent-client)\n[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/patent-client)](https://pypi.org/project/patent-client)\n[![Downloads](https://static.pepy.tech/badge/patent_client/month)](https://pepy.tech/project/patent_client)\n[![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](https://pydantic.dev)\n\n# Summary\n\nA powerful library for accessing intellectual property, featuring:\n\n- \ud83c\udf70 **Ease of use:** All sources use a simple unified API inspired by [Django-ORM][DORM].\n- \ud83d\udc3c **Pandas Integration:** Results are easily castable to [Pandas Dataframes and Series][PANDAS].\n- \ud83d\ude80 **Performance:** Fetched data is retrieved using the [httpx][httpx] library with native HTTP/2 and asyncio support, and cached using the [hishel][hishel] library for super-fast queries, and [yankee][yankee] for data extraction.\n- \ud83c\udf10 **Async/Await Support:** All API's (optionally!) support the async/await syntax.\n- \ud83d\udd2e **Pydantic v2 Support:** All models retrieved are [Pydantic v2 models][pydantic] with all the goodness that comes with them!\n\nDocs, including a fulsome Getting Started and User Guide are available on [Read the Docs](http://patent-client.readthedocs.io). The Examples folder includes examples of using `patent_client` for\nmany common IP tasks\n\n## \u2b50 New in v5 \u2b50\n\nVersion 5 brings a new and more reliable way to provide synchronous and asynchronous access to the various APIs.\nIn version 5, like in version 3, you can just `from patent_client import [Model]` and get a synchronous version\nof the model. No asynchronous methods or functionality at all. Or you can do `from patent_client._async import [Model]`\nand get an asynchronous version of the model.\n\nVersion 5 also brings support for the USPTO's new [Open Data Portal](https://beta-data.uspto.gov/home), a system currently in beta that is scheduled to replace the current Patent Examination Data System in late 2024.\n\n## Coverage\n\n- [United States Patent & Trademark Office][USPTO]\n\n - [Patent Examination Data][PEDS] - Full Support\n - [Open Data Portal][ODP] - Full Support\n - [Global Dossier][GD] - Full Support\n - [Patent Assignment Data][Assignment] - Lookup Support\n - [Patent Trial & Appeal Board API v2][PTAB] - Supports Proceedings, Decisions, and Documents\n - [Patent Public Search][PPS] - Full Support\n - [Bulk Data Storage System][BDSS] - Full Support\n\n\n- [European Patent Office - Open Patent Services][OPS]\n\n - Inpadoc - Full Support\n - EPO Register - No Support (in progress)\n - Classification - No Support\n\n* Free software: Apache Software License 2.0\n\n[DORM]: https://docs.djangoproject.com/en/4.0/topics/db/queries/\n[PANDAS]: https://pandas.pydata.org/docs/\n[httpx]: https://www.python-httpx.org/\n[hishel]: https://hishel.com/\n[yankee]: https://github.com/parkerhancock/yankee\n[Assignment]: user_guide/assignments.html\n[OPS]: https://patent-client.readthedocs.io/en/latest/user_guide/epo.html\n[PPS]: https://patent-client.readthedocs.io/en/latest/user_guide/fulltext.html\n[PEDS]: https://patent-client.readthedocs.io/en/latest/user_guide/peds.html\n[PTAB]: https://patent-client.readthedocs.io/en/latest/user_guide/ptab.html\n[USPTO]: http://developer.uspto.gov\n[BDSS]: https://patent-client.readthedocs.io/en/latest/user_guide/bulk_data.html\n[GD]: https://patent-client.readthedocs.io/en/latest/user_guide/global_dossier.html\n[pydantic]: https://docs.pydantic.dev/latest/\n[ODP]: https://patent-client.readthedocs.io/en/latest/user_guide/open_data_portal.html\n\n\n## Installation\n\n```\npip install patent_client\n```\n\nIf you only want access to USPTO resources, you're done!\nHowever, additional setup is necessary to access EPO Inpadoc and EPO Register resources. See the [Docs](http://patent-client.readthedocs.io).\n\n\n## Quick Start\n\nTo use the project:\n\n```python\n# Import the model classes you need\n>>> from patent_client import Inpadoc, Assignment, USApplication\n\n# Fetch US Applications\n>>> app = USApplication.objects.get('15710770')\n>>> app.patent_title\n'Camera Assembly with Concave-Shaped Front Face'\n\n# Fetch from USPTO Assignments\n>>> assignments = Assignment.objects.filter(assignee='Google')\n>>> len(assignments) > 23000\nTrue\n>>> assignment = Assignment.objects.get('47086-788')\n>>> assignment.conveyance_text\n'ASSIGNMENT OF ASSIGNORS INTEREST'\n\n# Fetch from INPADOC\n>>> pub = Inpadoc.objects.get('EP3082535A1')\n>>> pub.biblio.title\n'AUTOMATIC FLUID DISPENSER'\n\n```\n\n## Async Quick Start\n\nTo use async with Patent Client, just import the classes you need from the async module. All methods\nand iterators that access data or create a network request are asynchronous.\n\n```python\nfrom patent_client._async import USApplication\n\napps = list()\nasync for app in USApplication.objects.filter(first_named_applicant=\"Google\"):\n apps.append(app)\n\napp = await USApplication.objects.aget(\"16123456\")\n\n```\n\n<!-- RTD-IGNORE -->\n\n## Documentation\n\nDocs, including a fulsome Getting Started are available on [Read the Docs](http://patent-client.readthedocs.io).\n\n<!-- END-RTD-IGNORE -->\n\n# Development\n\nTo run the all tests run:\n\n```\npytest\n```\n\nA developer guide is provided in the [Documentation](http://patent-client.readthedocs.io).\nPull requests welcome!\n\n# Related projects\n\n- [Python EPO OPS Client](https://github.com/55minutes/python-epo-ops-client)\n- [Google Public Patent Data](https://github.com/google/patents-public-data)\n- [PatentsView API Wrapper](https://github.com/mikeym88/PatentsView-API-Wrapper)\n- [USPTO Scrapy Scraper](https://github.com/blazers08/USPTO)\n\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "A set of ORM-style clients for publicly available intellectual property data",
"version": "5.0.18",
"project_urls": {
"Documentation": "https://patent-client.readthedocs.io",
"Homepage": "https://github.com/parkerhancock/patent_client",
"Repository": "https://github.com/parkerhancock/patent_client"
},
"split_keywords": [
"patent",
" intellectual property",
" usitc",
" epo",
" ops",
" trademark",
" inpadoc",
" 337"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bf62a2b021aa4e0df2e0bb653b8cbf56047288ea9f44445268045428ba628b1e",
"md5": "020cb5ae1c0f4e95e3b56fd43c60014c",
"sha256": "126dd99fed90142d5671b800092edd51356d27600632ae6e4948ee1e5b9d1f55"
},
"downloads": -1,
"filename": "patent_client-5.0.18-py3-none-any.whl",
"has_sig": false,
"md5_digest": "020cb5ae1c0f4e95e3b56fd43c60014c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9",
"size": 4847881,
"upload_time": "2024-11-04T16:19:57",
"upload_time_iso_8601": "2024-11-04T16:19:57.314730Z",
"url": "https://files.pythonhosted.org/packages/bf/62/a2b021aa4e0df2e0bb653b8cbf56047288ea9f44445268045428ba628b1e/patent_client-5.0.18-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2a72ba96b3b0349fab7b7af840afad2dd5931f5de7fdf42a0efcd9fd7d43ad63",
"md5": "87b64fa7a88071f6e83cb7fe41085703",
"sha256": "f4b308a847fa24674b4256a5f58a0dde104eef6d1b890481ecf6e25c5f78acb0"
},
"downloads": -1,
"filename": "patent_client-5.0.18.tar.gz",
"has_sig": false,
"md5_digest": "87b64fa7a88071f6e83cb7fe41085703",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9",
"size": 4643430,
"upload_time": "2024-11-04T16:19:59",
"upload_time_iso_8601": "2024-11-04T16:19:59.659864Z",
"url": "https://files.pythonhosted.org/packages/2a/72/ba96b3b0349fab7b7af840afad2dd5931f5de7fdf42a0efcd9fd7d43ad63/patent_client-5.0.18.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-04 16:19:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "parkerhancock",
"github_project": "patent_client",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "patent-client"
}