pyUSPTO 0.5.1__tar.gz → 0.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/workflows/publish-docs.yaml +1 -1
  2. {pyuspto-0.5.1 → pyuspto-0.5.2}/CONTRIBUTING.md +1 -1
  3. {pyuspto-0.5.1 → pyuspto-0.5.2}/PKG-INFO +14 -3
  4. {pyuspto-0.5.1 → pyuspto-0.5.2}/README.md +11 -0
  5. pyuspto-0.5.2/docs/source/about.rst +58 -0
  6. pyuspto-0.5.2/docs/source/api/clients/bulk_data.rst +268 -0
  7. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/conf.py +8 -0
  8. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/index.rst +2 -1
  9. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/enriched_citations_example.py +6 -9
  10. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/patent_data_example.py +7 -0
  11. {pyuspto-0.5.1 → pyuspto-0.5.2}/pyproject.toml +12 -2
  12. {pyuspto-0.5.1 → pyuspto-0.5.2}/requirements-dev.txt +11 -36
  13. {pyuspto-0.5.1 → pyuspto-0.5.2}/requirements.txt +6 -4
  14. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/patent_data.py +69 -7
  15. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/PKG-INFO +14 -3
  16. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/SOURCES.txt +1 -0
  17. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/requires.txt +2 -2
  18. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_patent_data_clients.py +97 -0
  19. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_petition_decision_models.py +58 -27
  20. pyuspto-0.5.1/docs/source/api/clients/bulk_data.rst +0 -7
  21. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  22. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  23. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/ISSUE_TEMPLATE/documentation-updates.yml +0 -0
  24. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  25. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  26. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/dependabot.yml +0 -0
  27. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/workflows/codeql.yml +0 -0
  28. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/workflows/publish-to-test-pypi.yml +0 -0
  29. {pyuspto-0.5.1 → pyuspto-0.5.2}/.github/workflows/python-tests.yml +0 -0
  30. {pyuspto-0.5.1 → pyuspto-0.5.2}/.gitignore +0 -0
  31. {pyuspto-0.5.1 → pyuspto-0.5.2}/.readthedocs.yaml +0 -0
  32. {pyuspto-0.5.1 → pyuspto-0.5.2}/ADVANCED.md +0 -0
  33. {pyuspto-0.5.1 → pyuspto-0.5.2}/CHANGELOG.md +0 -0
  34. {pyuspto-0.5.1 → pyuspto-0.5.2}/CODE_OF_CONDUCT.md +0 -0
  35. {pyuspto-0.5.1 → pyuspto-0.5.2}/LICENSE +0 -0
  36. {pyuspto-0.5.1 → pyuspto-0.5.2}/_version.pyi +0 -0
  37. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/Makefile +0 -0
  38. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/_static/.gitkeep +0 -0
  39. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/advanced.rst +0 -0
  40. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/enriched_citations.rst +0 -0
  41. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/index.rst +0 -0
  42. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/oa_actions.rst +0 -0
  43. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/oa_citations.rst +0 -0
  44. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/oa_rejections.rst +0 -0
  45. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/patent_data.rst +0 -0
  46. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/petition_decisions.rst +0 -0
  47. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/ptab_appeals.rst +0 -0
  48. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/ptab_interferences.rst +0 -0
  49. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/clients/ptab_trials.rst +0 -0
  50. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/config/config.rst +0 -0
  51. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/config/http_config.rst +0 -0
  52. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/config/index.rst +0 -0
  53. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/exceptions.rst +0 -0
  54. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/index.rst +0 -0
  55. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/base.rst +0 -0
  56. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/bulk_data.rst +0 -0
  57. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/enriched_citations.rst +0 -0
  58. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/index.rst +0 -0
  59. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/oa_actions.rst +0 -0
  60. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/oa_citations.rst +0 -0
  61. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/oa_rejections.rst +0 -0
  62. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/patent_data.rst +0 -0
  63. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/petition_decisions.rst +0 -0
  64. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/ptab.rst +0 -0
  65. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/models/utils.rst +0 -0
  66. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/api/warnings.rst +0 -0
  67. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/configuration.rst +0 -0
  68. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/development.rst +0 -0
  69. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/bulk_data.rst +0 -0
  70. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/enriched_citations.rst +0 -0
  71. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/ifw_example.rst +0 -0
  72. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/index.rst +0 -0
  73. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/oa_actions.rst +0 -0
  74. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/oa_citations.rst +0 -0
  75. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/oa_rejections.rst +0 -0
  76. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/patent_data.rst +0 -0
  77. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/petition_decisions.rst +0 -0
  78. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/ptab_appeals.rst +0 -0
  79. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/ptab_interferences.rst +0 -0
  80. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/examples/ptab_trials.rst +0 -0
  81. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/installation.rst +0 -0
  82. {pyuspto-0.5.1 → pyuspto-0.5.2}/docs/source/quickstart.rst +0 -0
  83. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/bulk_data_example.py +0 -0
  84. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/error_handling_example.py +0 -0
  85. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/ifw_example.py +0 -0
  86. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/oa_actions_example.py +0 -0
  87. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/oa_citations_example.py +0 -0
  88. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/oa_rejections_example.py +0 -0
  89. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/petition_decisions_example.py +0 -0
  90. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/ptab_appeals_example.py +0 -0
  91. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/ptab_interferences_example.py +0 -0
  92. {pyuspto-0.5.1 → pyuspto-0.5.2}/examples/ptab_trials_example.py +0 -0
  93. {pyuspto-0.5.1 → pyuspto-0.5.2}/pyUSPTO.code-workspace +0 -0
  94. {pyuspto-0.5.1 → pyuspto-0.5.2}/setup.cfg +0 -0
  95. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/__init__.py +0 -0
  96. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/__init__.py +0 -0
  97. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/base.py +0 -0
  98. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/bulk_data.py +0 -0
  99. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/enriched_citations.py +0 -0
  100. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/oa_actions.py +0 -0
  101. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/oa_citations.py +0 -0
  102. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/oa_rejections.py +0 -0
  103. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/petition_decisions.py +0 -0
  104. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/ptab_appeals.py +0 -0
  105. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/ptab_interferences.py +0 -0
  106. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/clients/ptab_trials.py +0 -0
  107. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/config.py +0 -0
  108. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/exceptions.py +0 -0
  109. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/http_config.py +0 -0
  110. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/__init__.py +0 -0
  111. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/base.py +0 -0
  112. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/bulk_data.py +0 -0
  113. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/enriched_citations.py +0 -0
  114. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/oa_actions.py +0 -0
  115. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/oa_citations.py +0 -0
  116. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/oa_rejections.py +0 -0
  117. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/patent_data.py +0 -0
  118. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/petition_decisions.py +0 -0
  119. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/ptab.py +0 -0
  120. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/models/utils.py +0 -0
  121. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/py.typed +0 -0
  122. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/utils/__init__.py +0 -0
  123. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO/warnings.py +0 -0
  124. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/dependency_links.txt +0 -0
  125. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/top_level.txt +0 -0
  126. {pyuspto-0.5.1 → pyuspto-0.5.2}/src/pyUSPTO.egg-info/zip-safe +0 -0
  127. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/__init__.py +0 -0
  128. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/__init__.py +0 -0
  129. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_base.py +0 -0
  130. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_bulk_data_clients.py +0 -0
  131. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_enriched_citation_clients.py +0 -0
  132. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_oa_actions_clients.py +0 -0
  133. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_oa_citations_clients.py +0 -0
  134. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_oa_rejections_clients.py +0 -0
  135. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_petition_decision_clients.py +0 -0
  136. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_ptab_appeals_client.py +0 -0
  137. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_ptab_interferences_client.py +0 -0
  138. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/clients/test_ptab_trials_client.py +0 -0
  139. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/conftest.py +0 -0
  140. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/__init__.py +0 -0
  141. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/conftest.py +0 -0
  142. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_bulk_data_integration.py +0 -0
  143. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_enriched_citations_integration.py +0 -0
  144. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_oa_actions_integration.py +0 -0
  145. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_oa_citations_integration.py +0 -0
  146. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_oa_rejections_integration.py +0 -0
  147. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_patent_data_integration.py +0 -0
  148. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_petition_decisions_integration.py +0 -0
  149. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_ptab_appeals_integration.py +0 -0
  150. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_ptab_interferences_integration.py +0 -0
  151. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/integration/test_ptab_trials_integration.py +0 -0
  152. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/__init__.py +0 -0
  153. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_bulk_data_models.py +0 -0
  154. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_enriched_citation_models.py +0 -0
  155. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_oa_actions_models.py +0 -0
  156. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_oa_citations_models.py +0 -0
  157. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_oa_rejections_models.py +0 -0
  158. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_patent_data_models.py +0 -0
  159. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_ptab_models.py +0 -0
  160. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/models/test_utils.py +0 -0
  161. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_config.py +0 -0
  162. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_edge_cases.py +0 -0
  163. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_exceptions.py +0 -0
  164. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_http_config.py +0 -0
  165. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_init.py +0 -0
  166. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/test_version.py +0 -0
  167. {pyuspto-0.5.1 → pyuspto-0.5.2}/tests/utils/__init__.py +0 -0
  168. {pyuspto-0.5.1 → pyuspto-0.5.2}/tox.ini +0 -0
@@ -19,7 +19,7 @@ jobs:
19
19
  - name: Set up Python
20
20
  uses: actions/setup-python@v6
21
21
  with:
22
- python-version: "3.10"
22
+ python-version: "3.14"
23
23
  - name: Install dependencies
24
24
  run: |
25
25
  python -m pip install --upgrade pip
@@ -1,6 +1,6 @@
1
1
  # Contributing to pyUSPTO
2
2
 
3
- We welcome contributions from the community! pyUSPTO is designed to be a useful tool for interacting with USPTO APIs, and your input helps make it better for everyone.
3
+ We welcome contributions from the community! pyUSPTO is designed to be a useful tool for interacting with USPTO APIs, and your input helps make it better for everyone. The repository is hosted on [GitHub](https://github.com/DunlapCoddingPC/pyUSPTO).
4
4
 
5
5
  ## Ways to Contribute
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyUSPTO
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: A Modern Python client for accessing the United States Patent and Trademark Office (USPTO) Open Data Portal (ODP) APIs.
5
5
  Author-email: Andrew Piechocki <apiechocki@dunlapcodding.com>
6
6
  License-Expression: MIT
@@ -42,7 +42,8 @@ Description-Content-Type: text/markdown
42
42
  License-File: LICENSE
43
43
  Requires-Dist: requests>=2.32.5
44
44
  Requires-Dist: typing-extensions>=4.15.0; python_version < "3.11"
45
- Requires-Dist: tzdata>=2025.3
45
+ Requires-Dist: tzdata>=2026.1
46
+ Requires-Dist: urllib3>=2.0.0
46
47
  Provides-Extra: test
47
48
  Requires-Dist: pytest>=9.0.2; extra == "test"
48
49
  Requires-Dist: pytest-cov>=7.0.0; extra == "test"
@@ -51,7 +52,6 @@ Requires-Dist: typing_extensions>=4.15.0; extra == "test"
51
52
  Provides-Extra: docs
52
53
  Requires-Dist: sphinx>=9.1.0; extra == "docs"
53
54
  Requires-Dist: sphinx-rtd-theme>=3.1.0; extra == "docs"
54
- Requires-Dist: sphinx_immaterial>=0.13.9; extra == "docs"
55
55
  Requires-Dist: sphinx-autodoc-typehints>=3.9.5; extra == "docs"
56
56
  Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
57
57
  Requires-Dist: myst-parser>=5.0.0; extra == "docs"
@@ -165,6 +165,17 @@ config = USPTOConfig(api_key="your_api_key_here")
165
165
  > [!TIP]
166
166
  > For comprehensive examples with detailed explanations, see the [`examples/`](examples/) directory.
167
167
 
168
+ 1. [Patent Data API](#patent-data-api)
169
+ 2. [Bulk Data API](#bulk-data-api)
170
+ 3. [Final Petition Decisions API](#final-petition-decisions-api)
171
+ 4. [PTAB Trials API](#ptab-trials-api)
172
+ 5. [PTAB Appeals API](#ptab-appeals-api)
173
+ 6. [PTAB Interferences API](#ptab-interferences-api)
174
+ 7. [Enriched Citations API](#enriched-citations-api)
175
+ 8. [Office Action Text Retrieval API](#office-action-text-retrieval-api)
176
+ 9. [Office Action Rejections API](#office-action-rejections-api)
177
+ 10. [Office Action Citations API](#office-action-citations-api)
178
+
168
179
  ### Patent Data API
169
180
 
170
181
  ```python
@@ -98,6 +98,17 @@ config = USPTOConfig(api_key="your_api_key_here")
98
98
  > [!TIP]
99
99
  > For comprehensive examples with detailed explanations, see the [`examples/`](examples/) directory.
100
100
 
101
+ 1. [Patent Data API](#patent-data-api)
102
+ 2. [Bulk Data API](#bulk-data-api)
103
+ 3. [Final Petition Decisions API](#final-petition-decisions-api)
104
+ 4. [PTAB Trials API](#ptab-trials-api)
105
+ 5. [PTAB Appeals API](#ptab-appeals-api)
106
+ 6. [PTAB Interferences API](#ptab-interferences-api)
107
+ 7. [Enriched Citations API](#enriched-citations-api)
108
+ 8. [Office Action Text Retrieval API](#office-action-text-retrieval-api)
109
+ 9. [Office Action Rejections API](#office-action-rejections-api)
110
+ 10. [Office Action Citations API](#office-action-citations-api)
111
+
101
112
  ### Patent Data API
102
113
 
103
114
  ```python
@@ -0,0 +1,58 @@
1
+ About pyUSPTO
2
+ =============
3
+
4
+ pyUSPTO is a Python client library for interacting with the `USPTO Open Data Portal (ODP) <https://data.uspto.gov/home>`_ APIs.
5
+ The library handles authentication, HTTP session management, pagination, and response deserialization,
6
+ so you can work directly with typed Python objects instead of raw JSON.
7
+
8
+ The source code for the pyUSPTO library is available on `GitHub <https://github.com/DunlapCoddingPC/pyUSPTO>`_ and is licensed under the MIT License. Contributions are welcome! Please see the :doc:`contributing guidelines <development>`.
9
+
10
+ What is the USPTO Open Data Portal?
11
+ ------------------------------------
12
+
13
+ The USPTO Open Data Portal is the United States Patent and Trademark Office's primary API platform
14
+ for publicly available patent and trademark data. It provides programmatic access to patent applications,
15
+ grants, bulk data downloads, PTAB proceedings, Office Actions, and more.
16
+
17
+ .. note::
18
+
19
+ An API key is required to use the ODP APIs. You can register for one at the
20
+ `USPTO Open Data Portal <https://data.uspto.gov/myodp/landing>`_.
21
+
22
+ Available Clients
23
+ -----------------
24
+
25
+ pyUSPTO provides the following clients:
26
+
27
+ .. list-table::
28
+ :header-rows: 1
29
+ :widths: 35 65
30
+
31
+ * - Client
32
+ - Description
33
+ * - :class:`~pyUSPTO.PatentDataClient`
34
+ - Search patent applications and grants, retrieve file wrappers and Image File Wrapper (IFW) documents, and download individual documents and publications.
35
+ * - :class:`~pyUSPTO.BulkDataClient`
36
+ - Search and download bulk data products from the ODP Bulk Dataset Directory, including patent grants, applications, assignments, and research datasets.
37
+ * - :class:`~pyUSPTO.FinalPetitionDecisionsClient`
38
+ - Search and retrieve Final Petition Decisions issued by the USPTO Director.
39
+ * - :class:`~pyUSPTO.PTABTrialsClient`
40
+ - Search PTAB trial proceedings (IPR, PGR, CBM, and derivation), documents, and decisions.
41
+ * - :class:`~pyUSPTO.PTABAppealsClient`
42
+ - Search PTAB ex parte appeal decisions by application number, technology center, examiner, and more.
43
+ * - :class:`~pyUSPTO.PTABInterferencesClient`
44
+ - Search PTAB interference decisions.
45
+ * - :class:`~pyUSPTO.EnrichedCitationsClient`
46
+ - Search enriched citation data linking cited references to the specific claims and rejections they support.
47
+ * - :class:`~pyUSPTO.OAActionsClient`
48
+ - Full-text search of Office Action documents, including body text and structured section data.
49
+ * - :class:`~pyUSPTO.OARejectionsClient`
50
+ - Search rejection-level data from Office Actions, including rejection type, claims, and examiner metadata.
51
+ * - :class:`~pyUSPTO.OACitationsClient`
52
+ - Search citation data from Office Actions derived from Form PTO-892, Form PTO-1449, and Office Action text.
53
+
54
+ Requirements
55
+ ------------
56
+
57
+ - Python 3.10 or higher
58
+ - A USPTO Open Data Portal API key
@@ -0,0 +1,268 @@
1
+ Bulk Data Client
2
+ ================
3
+
4
+ .. automodule:: pyUSPTO.clients.bulk_data
5
+ :members:
6
+ :undoc-members:
7
+ :show-inheritance:
8
+
9
+ .. _bulk-data-product-identifiers:
10
+
11
+ Bulk Data Product Identifiers
12
+ ------------------------------
13
+
14
+ The table below lists all product identifiers available in the USPTO Open Data Portal Bulk Dataset Directory.
15
+ Pass these identifiers to :meth:`~pyUSPTO.BulkDataClient.get_product_by_id` or use them as a filter
16
+ when calling :meth:`~pyUSPTO.BulkDataClient.search_products`.
17
+
18
+ .. note::
19
+
20
+ This table reflects the Bulk Dataset Directory as of 2026-Mar-30 (47 products).
21
+ Source: `2026 Bulk Data Product Descriptions <https://data.uspto.gov/documents/documents/2026BulkDataProductDescriptions.xlsx>`_.
22
+ USPTO adds new products over time; use :meth:`~pyUSPTO.BulkDataClient.search_products`
23
+ without filters to retrieve the current full list.
24
+
25
+ .. list-table::
26
+ :header-rows: 1
27
+ :widths: 10 25 15 8 42
28
+
29
+ * - Identifier
30
+ - Name
31
+ - Dates Available
32
+ - File Types
33
+ - Description
34
+ * - OACT
35
+ - Office Actions Weekly Archives
36
+ - 2023-Dec-18 – Present
37
+ - JSON
38
+ - Full-text of public Office Actions bundled as JSON in downloadable weekly ZIP files. Data covers 2020-01-06 to present.
39
+ * - PTFWPRD
40
+ - Patent File Wrapper (Bulk Datasets) – Daily
41
+ - 2026-Mar-23 – Present
42
+ - JSON
43
+ - Bibliographic and assignment static patent data as daily delta increments.
44
+ * - PTFWPRE
45
+ - Patent File Wrapper (Bulk Datasets) – Weekly
46
+ - 2001-Jan-01 – Present
47
+ - JSON
48
+ - Bibliographic and assignment static patent data as weekly datasets in 10-year increments.
49
+ * - TRTDXFAP
50
+ - Trademark Full Text XML Data (No Images) – Daily Applications
51
+ - 2025-Jan-01 – Present
52
+ - XML
53
+ - Pending and registered trademark text data (no images) for the current calendar year per the U.S. Trademark Applications Version 2.3 DTD.
54
+ * - TTABTDXF
55
+ - Trademark Full Text XML Data (No Images) – Daily TTAB
56
+ - 2025-Jan-01 – Present
57
+ - XML
58
+ - TTAB text data (no images) for the current calendar year per the TTAB Version 1.0 DTD.
59
+ * - PTGRMP2
60
+ - Patent Grant Multi-page PDF Images
61
+ - 1790-Jul-31 – Present
62
+ - PDF
63
+ - Multi-page PDF images of each patent grant issued weekly (Tuesdays) from 1790 to present. Includes Certificates-of-Correction and rescanned older grants.
64
+ * - APPXML
65
+ - Patent Application Full-Text Data (No Images)
66
+ - 2001-Mar-15 – Present
67
+ - XML
68
+ - Concatenated full-text XML of non-provisional utility and plant patent applications published weekly (Thursdays).
69
+ * - APPMP2
70
+ - Patent Application Multi-Page PDF Images
71
+ - 2001-Mar-15 – Present
72
+ - PDF
73
+ - Multi-page PDF images of non-provisional utility and plant patent applications published weekly (Thursdays).
74
+ * - APPBLXML
75
+ - Patent Application Bibliographic (Front Page) Data
76
+ - 2001-Mar-15 – Present
77
+ - XML
78
+ - Concatenated bibliographic (front page) text of patent applications published weekly (Thursdays); excludes images. Subset of APPXML.
79
+ * - APPDT
80
+ - Patent Application Full Text Data with Embedded TIFF Images
81
+ - 2001-Mar-15 – Present
82
+ - XML
83
+ - Full text, images/drawings, and complex work units (tables, math, chemical structures, genetic sequences) of patent applications published weekly (Thursdays).
84
+ * - PTMNFEE2
85
+ - Patent Maintenance Fee Events
86
+ - 2026-Jan-06 – Present
87
+ - ASCII
88
+ - Cumulative weekly file of recorded maintenance fee events for patents granted from 1981-Sep-01 to present.
89
+ * - PTGRDT
90
+ - Patent Grant Full Text Data with Embedded TIFF Images (Grant Red Book / WIPO ST.36)
91
+ - 2002-Jan-01 – Present
92
+ - XML
93
+ - Full text, images/drawings, and complex work units of patent grants issued weekly (Tuesdays).
94
+ * - GZLST
95
+ - Patent Official Gazettes
96
+ - 2002-Jul-02 – Present
97
+ - HTML
98
+ - Weekly bibliographic information, representative claim, and drawing for each patent grant, plus USPTO Notices.
99
+ * - PTGRXML
100
+ - Patent Grant Full-Text Data (No Images)
101
+ - 2002-Jan-01 – Present
102
+ - ASCII, XML
103
+ - Concatenated full-text of patent grant documents issued weekly (Tuesdays); excludes images.
104
+ * - PTBLXML
105
+ - Patent Grant Bibliographic (Front Page) Text Data
106
+ - 2002-Jan-01 – Present
107
+ - ASCII, XML
108
+ - Concatenated bibliographic (front page) text of patent grant documents issued weekly (Tuesdays); excludes images. Subset of PTGRXML.
109
+ * - CPCMCPT
110
+ - CPC Master Classification Files for U.S. Patent Grants
111
+ - 2025-Jun-17 – Present
112
+ - TXT, XML
113
+ - CPC classification data for all U.S. patent grants from 1790-Jul-31 to present, updated monthly.
114
+ * - CPCMCAPP
115
+ - CPC Master Classification Files for U.S. Patent Applications
116
+ - 2025-Jun-17 – Present
117
+ - TXT, XML
118
+ - CPC classification data for all U.S. patent applications published from 2001-Mar-15 to present, updated monthly.
119
+ * - PVPGPUBTXT
120
+ - PatentsView Pre-Grant Publication Long Text Data
121
+ - 2001-Mar-15 – Present
122
+ - TSV
123
+ - Annual files of long-text fields (Brief Summary, Claims, Detail Description, Drawing Description) for pre-grant publications from 2001 to present.
124
+ * - PVGPATTXT
125
+ - PatentsView Granted Patent Long Text Data
126
+ - 1976-Jan-01 – Present
127
+ - TSV
128
+ - Annual files of long-text fields (Brief Summary, Claims, Detail Description, Drawing Description) for granted patents from 1976 to present.
129
+ * - PVPGPUBDIS
130
+ - PatentsView Pre-Grant Publication Disambiguated Data
131
+ - 2001-Mar-15 – Present
132
+ - TSV
133
+ - 25 files for pre-grant publications from 2001 to present, including disambiguated applicants, assignees, inventors, locations, technology categories, and government interest statements.
134
+ * - PVGPATDIS
135
+ - PatentsView Granted Patent Disambiguated Data
136
+ - 1976-Jan-01 – Present
137
+ - TSV
138
+ - 35 files for granted patents from 1976 to present, including disambiguated assignees, inventors, locations, cited prior art, examiner name, and government interest statements.
139
+ * - PVSORTED
140
+ - PatentsView Sorted Data (Beta)
141
+ - 1976-Jan-01 – Present
142
+ - TSV
143
+ - Reorganized bibliographic data correcting inventor/applicant/assignee ordering inconsistencies introduced by the Leahy-Smith America Invents Act.
144
+ * - PVANNUAL
145
+ - PatentsView Annualized Patent Data
146
+ - 1976-Jan-01 – Present
147
+ - CSV
148
+ - Small annual CSV files derived from PatentsView Granted Patent Disambiguated Data, including inventor gender attribution.
149
+ * - TRTYRAP
150
+ - Trademark Full Text XML Data (No Images) – Annual Applications
151
+ - 1884-Apr-07 – Present
152
+ - XML
153
+ - Backfile of pending and registered trademark text data (no images) from 1884-Apr through 2025-Dec per the U.S. Trademark Applications Version 2.3 DTD.
154
+ * - TRTDXFAG
155
+ - Trademark Full Text XML Data (No Images) – Daily Assignments
156
+ - 2025-Jan-01 – Present
157
+ - XML
158
+ - Trademark assignment text data (no images) for the current calendar year per the Trademark Assignments Version 0.4 DTD.
159
+ * - PASDL
160
+ - Patent Assignment XML (Ownership) Text – Daily
161
+ - 2025-Jan-01 – Present
162
+ - XML
163
+ - Daily patent assignment text (no images) for the current calendar year derived from USPTO assignment recordations.
164
+ * - PASYR
165
+ - Patent Assignment XML (Ownership) Text – Annual
166
+ - 1980-Jan-01 – Present
167
+ - XML
168
+ - Annual backfile of patent assignment text (no images) from 1980-Aug through 2025-Dec.
169
+ * - ECOPATAI
170
+ - Artificial Intelligence Patent Dataset (AIPD)
171
+ - 2021-Jul-30 – 2026-Feb-03
172
+ - DTA, TSV
173
+ - AI patent landscape data classifying 13.2M granted patents and PGPubs from 1976–2020 across eight AI component technologies using machine learning models.
174
+ * - TRTYRAG
175
+ - Trademark Full Text XML Data (No Images) – Annual Assignments
176
+ - 1951-Oct-02 – Present
177
+ - XML
178
+ - Backfile of trademark assignment text data from 1955-Jan-03 through 2025-Dec per the Trademark Assignments Version 0.4 DTD.
179
+ * - TTABYR
180
+ - Trademark Full Text XML Data (No Images) – Annual TTAB
181
+ - 1951-Oct-02 – Present
182
+ - XML
183
+ - Backfile of TTAB text data from 1951-Oct-02 through 2025-Dec per the TTAB Version 1.0 DTD.
184
+ * - PEDSJSON
185
+ - Patent Examination Data System (Bulk Datasets) – JSON
186
+ - 1900-Jan-01 – 2000-Dec-31
187
+ - JSON
188
+ - Static snapshot (created 2025-Mar-17) of patent application data from 1900–2000, migrated from the retired PEDS system, in 20-year increment downloads.
189
+ * - PEDSXML
190
+ - Patent Examination Data System (Bulk Datasets) – XML
191
+ - 1900-Jan-01 – 2000-Dec-31
192
+ - XML
193
+ - Static snapshot (created 2025-Mar-16) of patent application data from 1900–2000, migrated from the retired PEDS system, in 20-year increment downloads.
194
+ * - ECORSEXC
195
+ - Patent Assignment Data for Academia and Researchers
196
+ - 2015-Aug-05 – 2024-Apr-19
197
+ - DTA, TSV
198
+ - ~10M patent assignments and transactions recorded at USPTO since 1970, covering ~17.8M patents and applications.
199
+ * - TRASECO
200
+ - Trademark Assignment Data for Academia and Researchers
201
+ - 2014-Apr-18 – 2024-Apr-01
202
+ - CSV, DTA
203
+ - 1.29M trademark assignments and transactions recorded at USPTO between 1952 and 2023, covering 2.28M unique trademark properties.
204
+ * - TRCFECO2
205
+ - Trademark Case File Data for Academia and Researchers
206
+ - 2013-Jan-02 – 2024-Mar-27
207
+ - CSV, DTA
208
+ - 12.1M trademark applications filed with or registrations issued by USPTO between 1870 and January 2023.
209
+ * - PTLITIG
210
+ - Patent Litigation Docket Report Data Files for Academia and Researchers
211
+ - 2016-Dec-29 – 2024-Mar-27
212
+ - CSV, DTA
213
+ - U.S. District Court patent litigation data on 81,350 unique cases filed 1963–2020, sourced from PACER and RECAP, including parties, cause of action, court location, key dates, and 5M+ docket documents.
214
+ * - ECOPAIR
215
+ - Patent Examination Research Dataset (PatEx)
216
+ - 2015-Dec-02 – 2023-Sep-26
217
+ - CSV, DTA
218
+ - 13M+ publicly viewable patent applications and 1M+ PCT applications through June 2023, including prosecution history, continuation history, foreign priority claims, and PTA history.
219
+ * - PTAPOATH
220
+ - Patent and Patent Application Oath Signature Dataset
221
+ - 2022-Sep-30 – 2022-Sep-30
222
+ - JPEG, JSON
223
+ - 883,811 signature images extracted from patent inventor oath documents from 1998-Sep to 2022-Sep, broken into 8 ZIP files by series code (12–17, 29, 35). 40.5 GB total.
224
+ * - PTOFFACT
225
+ - Patent Application Office Actions Research Dataset
226
+ - 2017-Nov-29 – 2017-Nov-29
227
+ - CSV, DTA
228
+ - 4.4M Office actions mailed 2008–June 2017 for 2.2M publicly viewable applications, including grounds for rejection, claims, and pertinent prior art.
229
+ * - PTGRAPS
230
+ - Patent Grant Full-Text Data (No Images) – APS
231
+ - 1976-Jan-06 – Present
232
+ - ASCII, XML
233
+ - Concatenated full-text of patent grants issued weekly (Tuesdays) from 1976-Jan-01 to 2001-Dec-25; excludes images.
234
+ * - PTBLAPS
235
+ - Patent Grant Bibliographic (Front Page) Text Data – APS
236
+ - 1976-Jan-01 – Present
237
+ - ASCII, XML
238
+ - Concatenated bibliographic (front page) text of patent grants issued weekly (Tuesdays) from 1976-Jan-01 to 2000-Dec-26; excludes images. Subset of PTGRAPS.
239
+ * - PTAPPCLM
240
+ - Patent and Patent Application Claims Research Dataset
241
+ - 2016-Oct-07 – 2016-Oct-11
242
+ - CSV, DTA
243
+ - Claims data for U.S. patents granted 1976–2014 and applications published 2001–2014, including individual claim text, dependency relationships, claim-level and document-level statistics.
244
+ * - MOONSHOT
245
+ - Cancer Moonshot Patent Data Files
246
+ - 2016-Aug-19 – 2016-Aug-19
247
+ - CSV
248
+ - 269,353 patent documents from 1976–2016 curated to identify R&D in diagnostics, therapeutics, data analytics, and model biological systems.
249
+ * - HISTEXC
250
+ - Historical Patent Data Files for Academia and Researchers
251
+ - 2015-Jun-25 – 2015-Jul-02
252
+ - CSV, DTA
253
+ - Four NBER research datasets with time-series and micro-level data by technology sub-category spanning two centuries of patent applications, grants, and in-force patents.
254
+ * - PTBLSGM
255
+ - Patent Grant Bibliographic (Front Page) Text Data – SGML
256
+ - 2001-Jan-02 – Present
257
+ - ASCII, XML
258
+ - Concatenated bibliographic (front page) text of patent grants issued weekly (Tuesdays) from 2001-Jan-02 to 2001-Dec-25; excludes images. Subset of PTGRDSGM.
259
+ * - PTGRDSGM
260
+ - Patent Grant Full Text Data with Embedded TIFF Images (Grant Red Book / WIPO ST.36) – SGML
261
+ - 2001-Jan-02 – Present
262
+ - XML
263
+ - Full text, images/drawings, and complex work units of patent grants issued weekly (Tuesdays) from 2001-Jan-02 to 2001-Dec-25.
264
+ * - PTGRSGM
265
+ - Patent Grant Full-Text Data (No Images) – SGML
266
+ - 2001-Jan-02 – Present
267
+ - ASCII, XML
268
+ - Concatenated full-text of patent grants issued weekly (Tuesdays) from 2001-Jan-02 to 2001-Dec-25; excludes images.
@@ -52,6 +52,14 @@ language = "en"
52
52
  html_theme = "sphinx_rtd_theme"
53
53
  html_static_path = ["_static"]
54
54
 
55
+ html_context = {
56
+ "display_github": True,
57
+ "github_user": "DunlapCoddingPC",
58
+ "github_repo": "pyUSPTO",
59
+ "github_version": "main",
60
+ "conf_py_path": "/docs/source/",
61
+ }
62
+
55
63
  # -- Extension configuration -------------------------------------------------
56
64
  napoleon_google_docstring = True
57
65
  napoleon_numpy_docstring = False
@@ -1,10 +1,11 @@
1
- Welcome to pyUSPTO's documentation!
1
+ pyUSPTO documentation
2
2
  ===================================
3
3
 
4
4
  .. toctree::
5
5
  :maxdepth: 2
6
6
  :caption: Contents:
7
7
 
8
+ about
8
9
  installation
9
10
  quickstart
10
11
  configuration
@@ -12,9 +12,7 @@ from pyUSPTO import EnrichedCitationsClient, USPTOConfig
12
12
  # --- Client Initialization ---
13
13
  api_key = os.environ.get("USPTO_API_KEY", "YOUR_API_KEY_HERE")
14
14
  if api_key == "YOUR_API_KEY_HERE":
15
- raise ValueError(
16
- "API key is not set. Set the USPTO_API_KEY environment variable."
17
- )
15
+ raise ValueError("API key is not set. Set the USPTO_API_KEY environment variable.")
18
16
  config = USPTOConfig(api_key=api_key)
19
17
  client = EnrichedCitationsClient(config=config)
20
18
 
@@ -72,9 +70,7 @@ response = client.search_citations(
72
70
  examiner_cited_q=True,
73
71
  rows=5,
74
72
  )
75
- print(
76
- f"Found {response.num_found} examiner-cited 'Y' citations in tech center 2800."
77
- )
73
+ print(f"Found {response.num_found} examiner-cited 'Y' citations in tech center 2800.")
78
74
  for citation in response.docs:
79
75
  print(
80
76
  f" App {citation.patent_application_number}: "
@@ -111,9 +107,10 @@ print("-" * 40)
111
107
 
112
108
  max_items = 30
113
109
  count = 0
114
- for _ in client.paginate_citations(
115
- tech_center_q="2800", rows=10
116
- ):
110
+ for citation in client.paginate_citations(tech_center_q="2800", rows=10):
111
+ print(
112
+ f" App {citation.patent_application_number}: {citation.cited_document_identifier}"
113
+ )
117
114
  count += 1
118
115
  if count >= max_items:
119
116
  print(f" ... (stopping at {max_items} items)")
@@ -154,6 +154,13 @@ if patent_wrapper_detail:
154
154
  overwrite=True,
155
155
  )
156
156
  print(f"Downloaded document to: {downloaded_path}")
157
+
158
+ print("\nStreaming same document to memory...")
159
+ with client.stream_document(
160
+ document=document_to_download, format="PDF"
161
+ ) as response:
162
+ content = response.content
163
+ print(f"Streamed {len(content)} bytes")
157
164
  else:
158
165
  print(
159
166
  "No downloadable formats available for the first document or document identifier missing."
@@ -46,7 +46,8 @@ keywords = ["uspto", "patent", "odp", "client", "bulk data", "patent data"]
46
46
  dependencies = [
47
47
  "requests>=2.32.5",
48
48
  "typing-extensions>=4.15.0; python_version < '3.11'",
49
- "tzdata>=2025.3",
49
+ "tzdata>=2026.1",
50
+ "urllib3>=2.0.0",
50
51
  ]
51
52
  dynamic = ["version"]
52
53
 
@@ -60,7 +61,6 @@ test = [
60
61
  docs = [
61
62
  "sphinx>=9.1.0",
62
63
  "sphinx-rtd-theme>=3.1.0",
63
- "sphinx_immaterial>=0.13.9",
64
64
  "sphinx-autodoc-typehints>=3.9.5",
65
65
  "sphinx-copybutton>=0.5.2",
66
66
  "myst-parser>=5.0.0",
@@ -172,3 +172,13 @@ warn_unreachable = false
172
172
  [[tool.mypy.overrides]]
173
173
  module = ["pytest.*", "pytest", "requests.*", "urllib3.*"]
174
174
  ignore_missing_imports = true
175
+
176
+ [tool.deptry.per_rule_ignores]
177
+ DEP002 = [
178
+ "tzdata",
179
+ "pytest", "pytest-cov", "pytest-mock",
180
+ "sphinx", "sphinx-rtd-theme", "sphinx-autodoc-typehints",
181
+ "sphinx-copybutton", "myst-parser",
182
+ "mypy", "types-requests",
183
+ "ruff",
184
+ ]
@@ -6,15 +6,11 @@
6
6
  #
7
7
  alabaster==1.0.0
8
8
  # via sphinx
9
- annotated-types==0.7.0
10
- # via pydantic
11
- appdirs==1.4.4
12
- # via sphinx-immaterial
13
9
  babel==2.18.0
14
10
  # via sphinx
15
11
  certifi==2026.2.25
16
12
  # via requests
17
- charset-normalizer==3.4.6
13
+ charset-normalizer==3.4.7
18
14
  # via requests
19
15
  colorama==0.4.6
20
16
  # via
@@ -37,27 +33,25 @@ jinja2==3.1.6
37
33
  # via
38
34
  # myst-parser
39
35
  # sphinx
40
- librt==0.8.1
36
+ librt==0.9.0
41
37
  # via mypy
42
38
  markdown-it-py==4.0.0
43
39
  # via
44
40
  # mdit-py-plugins
45
41
  # myst-parser
46
42
  markupsafe==3.0.3
47
- # via
48
- # jinja2
49
- # sphinx-immaterial
43
+ # via jinja2
50
44
  mdit-py-plugins==0.5.0
51
45
  # via myst-parser
52
46
  mdurl==0.1.2
53
47
  # via markdown-it-py
54
- mypy==1.19.1
48
+ mypy==1.20.1
55
49
  # via pyuspto
56
50
  mypy-extensions==1.1.0
57
51
  # via mypy
58
52
  myst-parser==5.0.0
59
53
  # via pyuspto
60
- packaging==26.0
54
+ packaging==26.1
61
55
  # via
62
56
  # pytest
63
57
  # sphinx
@@ -67,19 +61,11 @@ pluggy==1.6.0
67
61
  # via
68
62
  # pytest
69
63
  # pytest-cov
70
- pydantic==2.12.5
71
- # via
72
- # pydantic-extra-types
73
- # sphinx-immaterial
74
- pydantic-core==2.44.0
75
- # via pydantic
76
- pydantic-extra-types==2.11.1
77
- # via sphinx-immaterial
78
64
  pygments==2.20.0
79
65
  # via
80
66
  # pytest
81
67
  # sphinx
82
- pytest==9.0.2
68
+ pytest==9.0.3
83
69
  # via
84
70
  # pytest-cov
85
71
  # pytest-mock
@@ -90,15 +76,14 @@ pytest-mock==3.15.1
90
76
  # via pyuspto
91
77
  pyyaml==6.0.3
92
78
  # via myst-parser
93
- requests==2.33.0
79
+ requests==2.33.1
94
80
  # via
95
81
  # pyUSPTO (pyproject.toml)
96
82
  # pyuspto
97
83
  # sphinx
98
- # sphinx-immaterial
99
84
  roman-numerals==4.1.0
100
85
  # via sphinx
101
- ruff==0.15.8
86
+ ruff==0.15.11
102
87
  # via pyuspto
103
88
  snowballstemmer==3.0.1
104
89
  # via sphinx
@@ -108,15 +93,12 @@ sphinx==9.1.0
108
93
  # pyuspto
109
94
  # sphinx-autodoc-typehints
110
95
  # sphinx-copybutton
111
- # sphinx-immaterial
112
96
  # sphinx-rtd-theme
113
97
  # sphinxcontrib-jquery
114
- sphinx-autodoc-typehints==3.9.11
98
+ sphinx-autodoc-typehints==3.10.2
115
99
  # via pyuspto
116
100
  sphinx-copybutton==0.5.2
117
101
  # via pyuspto
118
- sphinx-immaterial==0.13.9
119
- # via pyuspto
120
102
  sphinx-rtd-theme==3.1.0
121
103
  # via pyuspto
122
104
  sphinxcontrib-applehelp==2.0.0
@@ -133,20 +115,13 @@ sphinxcontrib-qthelp==2.0.0
133
115
  # via sphinx
134
116
  sphinxcontrib-serializinghtml==2.0.0
135
117
  # via sphinx
136
- types-requests==2.33.0.20260327
118
+ types-requests==2.33.0.20260408
137
119
  # via pyuspto
138
120
  typing-extensions==4.15.0
139
121
  # via
140
122
  # mypy
141
- # pydantic
142
- # pydantic-core
143
- # pydantic-extra-types
144
123
  # pyuspto
145
- # sphinx-immaterial
146
- # typing-inspection
147
- typing-inspection==0.4.2
148
- # via pydantic
149
- tzdata==2025.3
124
+ tzdata==2026.1
150
125
  # via
151
126
  # pyUSPTO (pyproject.toml)
152
127
  # pyuspto
@@ -6,13 +6,15 @@
6
6
  #
7
7
  certifi==2026.2.25
8
8
  # via requests
9
- charset-normalizer==3.4.6
9
+ charset-normalizer==3.4.7
10
10
  # via requests
11
11
  idna==3.11
12
12
  # via requests
13
- requests==2.33.0
13
+ requests==2.33.1
14
14
  # via pyUSPTO (pyproject.toml)
15
- tzdata==2025.3
15
+ tzdata==2026.1
16
16
  # via pyUSPTO (pyproject.toml)
17
17
  urllib3==2.6.3
18
- # via requests
18
+ # via
19
+ # pyUSPTO (pyproject.toml)
20
+ # requests