A set of ORM-style clients for publicly available intellectual property data
Project description
Overview
A set of Django-ORM-Style accessors to publicly available intellectual property data.
Currently supports:
United States Patent & Trademark Office
Patent Full Text Databases - Full Support
Patent Examination Data - Full Support (Including File History Documents!)
Patent Assignment Data - Lookup Support
Patent Trial & Appeal Board API v2 - Supports Proceedings, Decisions, and Documents
United States International Trade Commission
Electronic Document Information System (EDIS) API - Partial Support (no document downloads)
European Patent Office - Open Patent Services
Inpadoc - Full Support
EPO Register - No Support (in progress)
Classification - No Support
Free software: Apache Software License 2.0
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.
Documentation
The easiest way to get started is with Patent Client Examples. The examples repository has a list of Jupyter notebooks showing application examples of the patent_client library.
Docs, including a fulsome Getting Started are available on Read the Docs.
SUPER QUICK START
To use the project:
# Import the model classes you need
>>> from patent_client import Inpadoc, Assignment, USApplication, Patent
# Fetch US Patents with the word "tennis" in their title issued in 2010
>>> pats = Patent.objects.filter(title="tennis", issue_date="2010-01-01->2010-12-31")
>>> len(pats) > 10
True
# Look at the first one
>>> pats[0].publication
Patent(publication_number=7841958, publication_date=2010-11-30, title=Modular table tennis game)
# 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'
# Fetch from EPO Register (NOTE: This is broken right now :( )
#>>> epo = Epo.objects.get('EP3082535A1')
#>>> epo.title
#'AUTOMATIC FLUID DISPENSER'
#>>> epo.status
#[{'description': 'Examination is in progress', 'code': '14', 'date': '20180615'}]
Other Languages
Merely as a way to explore other languages and technologies, I have built a few (partial) ports of this library to other languages:
patent_client_js - ES6 Javascript (PEDS / PTAB / Assignments support (ASYNC!))
patent_client_java - Java (Ptab API only)
patent_client_scala - Scala (Ptab API only)
patent_client_ruby - Ruby (Nothing Works Yet)
Development
To run the all tests run:
pytest
A developer guide is provided in the Documentation. Pull requests welcome!
Changelog
2.1.3 (2020-11-12)
Added support for USPTO’s Full Text databases
Added corresponding documentation
2.1.0 (2021-03-23)
Add support for document downloads from the USPTO PEDS interface
Fix flakey tests
Update dependencies
2.0.3 (2020-10-14)
Merge pull request ensuring that INPADOC produces consistent typing (PR #37)
Update dev dependencies in Pipfile
2.0.2 (2020-04-13)
Added foreign priority support back to PEDS API
Revised and simplified documentation to match v.2, including using Sphinx Autodoc
Added doctest support to documentation to confirm examples still work
Added docstrings throughout
Labeled some broken things as broken
2.0.1 (2020-03-12)
Fixed problem where Inpadoc was indexing improperly
2.0.0 (2020-03-11)
Major update with breaking API changes
Refactored all API’s to use requests_cache rather than custom caching scheme
Uses Marshmallow for data validation, and memory-efficient dataclasses for all objects
As part of the above, all API’s now re-use the same requests.Session() object
Deleted a ton of unnecessary code (Deleted code == debugged code)
NOTE: Documentation not yet up-to-date. That is the next project
0.4.0 (2019-01-30)
Renewed commitment to adhere to semantic versioning
Added several new synthetic data attributes, including expiration date calculations
General updates and improvements, including an overhaul of the base Manager and Model classes
0.2.3 (2018-11-02)
Added parser for Inpadoc claims so they have an object repesentation
0.1.5 (2018-10-25)
Massive refactor of OPS client
0.1.4 (2018-10-24)
Support for USPTO Applications, Assignments, and PTAB documents
Support for EPO Inpadoc and EPO Register
Initial Installation and Getting Started Documentation
0.0.1 (2018-10-15)
First release on PyPI.
Support for EPO OPS (except Classification data)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file patent_client-2.2.0.tar.gz
.
File metadata
- Download URL: patent_client-2.2.0.tar.gz
- Upload date:
- Size: 157.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | adc22400e5ed0cb9c2a83878890281e8ddcbf409087f83d60dedcae6c7e778f2 |
|
MD5 | 39834806f903c7dc3667521775450f75 |
|
BLAKE2b-256 | 079d8ef7e72f2e0f93b16a67374af6677d1ce9c00790ed5cb096d7d9ef9fa375 |
File details
Details for the file patent_client-2.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: patent_client-2.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 158.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e8dc640516e9ae090844b80b7131809b1b7be29b8dd814287266acb9bfa92e |
|
MD5 | 7be2759fd9f36099c8ef5e5fd4e5c6b1 |
|
BLAKE2b-256 | 4e3b048a6deed1fb491beb1719845b73a959f4579573e5fdcc85f2e9c856fcbf |