Metadata-Version: 2.1
Name: patent-client
Version: 2.2.0
Summary: A set of ORM-style clients for publicly available intellectual property data
Home-page: https://github.com/parkerhancock/patent_client
Author: Parker Douglas Hancock
Author-email: parkerhancock@users.noreply.github.com
License: Apache Software License 2.0
Keywords: patents,uspto,epo,united states patent office,trademark,intellectual property,inpadoc,open patent services
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Utilities
Requires-Dist: PyPDF2 (~=1.26)
Requires-Dist: requests (~=2.19)
Requires-Dist: requests-cache (~=0.4)
Requires-Dist: lxml (~=4.2)
Requires-Dist: python-dateutil (~=2.7)
Requires-Dist: inflection (~=0.3)
Requires-Dist: dataclasses (~=0.6)
Requires-Dist: marshmallow (~=3.3)
Requires-Dist: xmltodict (~=0.12)
Requires-Dist: beautifulsoup4 (~=4.9)

.. image:: https://travis-ci.org/parkerhancock/patent_client.svg?branch=master
    :target: https://travis-ci.org/parkerhancock/patent_client

.. image:: https://codecov.io/gh/parkerhancock/patent_client/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/parkerhancock/patent_client

.. image:: https://img.shields.io/pypi/v/patent_client.svg
    :alt: PyPI Package latest release
    :target: https://pypi.python.org/pypi/patent_client

.. image:: https://img.shields.io/pypi/wheel/patent_client.svg
    :alt: PyPI Wheel
    :target: https://pypi.python.org/pypi/patent_client

.. image:: https://img.shields.io/pypi/pyversions/patent_client.svg
    :alt: Supported versions
    :target: https://pypi.python.org/pypi/patent_client

Overview
========

A set of Django-ORM-Style accessors to publicly available intellectual property data.

Currently supports:

* `United States Patent & Trademark Office <USPTO>`_

  * `Patent Full Text Databases <PATFT>`_ - Full Support
  * `Patent Examination Data <PEDS>`_ - Full Support (**Including File History Documents!**)
  * `Patent Assignment Data <Assignment>`_ - Lookup Support
  * `Patent Trial & Appeal Board API v2 <PTAB>`_ - Supports Proceedings, Decisions, and Documents

* `United States International Trade Commission <ITC>`_

  * `Electronic Document Information System (EDIS) API <EDIS>`_ - Partial Support (no document downloads)

* `European Patent Office - Open Patent Services <OPS>`_

  * Inpadoc - Full Support
  * EPO Register - No Support (in progress)
  * Classification - No Support

.. _OPS: http://ops.epo.org
.. _USPTO: http://developer.uspto.gov
.. _PATFT: http://http://patft.uspto.gov/
.. _PEDS: https://developer.uspto.gov/api-catalog/ped
.. _Assignment: https://developer.uspto.gov/api-catalog/patent-assignment-search-beta
.. _PTAB: https://developer.uspto.gov/api-catalog/ptab-api-v2
.. _ITC: https://www.usitc.gov/
.. _EDIS: https://edis.usitc.gov/external/

* 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 <http://patent-client.readthedocs.io>`_.

Documentation
=============

The easiest way to get started is with `Patent Client Examples <https://github.com/parkerhancock/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 <http://patent-client.readthedocs.io>`_.

SUPER QUICK START
-----------------

To use the project:

.. code-block:: python

    # 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 <https://github.com/parkerhancock/patent_client_js>`_ - ES6 Javascript (PEDS / PTAB / Assignments support (ASYNC!))
* `patent_client_java <https://github.com/parkerhancock/patent_client_java>`_ - Java (Ptab API only)
* `patent_client_scala <https://github.com/parkerhancock/patent_client_scala>`_ - Scala (Ptab API only)
* `patent_client_ruby <https://github.com/parkerhancock/patent_client_ruby>`_ - Ruby (Nothing Works Yet)

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>`_


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)


