pyUSPTO 0.1.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 (188) hide show
  1. pyuspto-0.1.2/.github/ISSUE_TEMPLATE/bug-report.yml +59 -0
  2. pyuspto-0.1.2/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. pyuspto-0.1.2/.github/ISSUE_TEMPLATE/documentation-updates.yml +69 -0
  4. pyuspto-0.1.2/.github/ISSUE_TEMPLATE/feature-request.yml +32 -0
  5. pyuspto-0.1.2/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  6. pyuspto-0.1.2/.github/dependabot.yml +12 -0
  7. pyuspto-0.1.2/.github/workflows/publish-to-test-pypi.yml +89 -0
  8. pyuspto-0.1.2/.github/workflows/python-tests.yml +71 -0
  9. pyuspto-0.1.2/.gitignore +17 -0
  10. pyuspto-0.1.2/CHANGELOG.md +18 -0
  11. pyuspto-0.1.2/CODE_OF_CONDUCT.md +29 -0
  12. pyuspto-0.1.2/CONTRIBUTING.md +173 -0
  13. pyuspto-0.1.2/LICENSE +21 -0
  14. pyuspto-0.1.2/PKG-INFO +129 -0
  15. pyuspto-0.1.2/README.md +104 -0
  16. pyuspto-0.1.2/_version.pyi +2 -0
  17. pyuspto-0.1.2/docs/Makefile +20 -0
  18. pyuspto-0.1.2/docs/build/html/.buildinfo +4 -0
  19. pyuspto-0.1.2/docs/build/html/.doctrees/api/clients.doctree +0 -0
  20. pyuspto-0.1.2/docs/build/html/.doctrees/api/config.doctree +0 -0
  21. pyuspto-0.1.2/docs/build/html/.doctrees/api/exceptions.doctree +0 -0
  22. pyuspto-0.1.2/docs/build/html/.doctrees/api/index.doctree +0 -0
  23. pyuspto-0.1.2/docs/build/html/.doctrees/api/models.doctree +0 -0
  24. pyuspto-0.1.2/docs/build/html/.doctrees/development.doctree +0 -0
  25. pyuspto-0.1.2/docs/build/html/.doctrees/environment.pickle +0 -0
  26. pyuspto-0.1.2/docs/build/html/.doctrees/examples/bulk_data.doctree +0 -0
  27. pyuspto-0.1.2/docs/build/html/.doctrees/examples/index.doctree +0 -0
  28. pyuspto-0.1.2/docs/build/html/.doctrees/examples/patent_data.doctree +0 -0
  29. pyuspto-0.1.2/docs/build/html/.doctrees/index.doctree +0 -0
  30. pyuspto-0.1.2/docs/build/html/.doctrees/installation.doctree +0 -0
  31. pyuspto-0.1.2/docs/build/html/.doctrees/quickstart.doctree +0 -0
  32. pyuspto-0.1.2/docs/build/html/_modules/index.html +113 -0
  33. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/clients/bulk_data.html +436 -0
  34. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/clients/patent_data.html +814 -0
  35. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/config.html +168 -0
  36. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/exceptions.html +153 -0
  37. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/models/bulk_data.html +270 -0
  38. pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/models/patent_data.html +1118 -0
  39. pyuspto-0.1.2/docs/build/html/_sources/api/clients.rst.txt +12 -0
  40. pyuspto-0.1.2/docs/build/html/_sources/api/config.rst.txt +7 -0
  41. pyuspto-0.1.2/docs/build/html/_sources/api/exceptions.rst.txt +7 -0
  42. pyuspto-0.1.2/docs/build/html/_sources/api/index.rst.txt +10 -0
  43. pyuspto-0.1.2/docs/build/html/_sources/api/models.rst.txt +12 -0
  44. pyuspto-0.1.2/docs/build/html/_sources/development.rst.txt +20 -0
  45. pyuspto-0.1.2/docs/build/html/_sources/examples/bulk_data.rst.txt +6 -0
  46. pyuspto-0.1.2/docs/build/html/_sources/examples/index.rst.txt +8 -0
  47. pyuspto-0.1.2/docs/build/html/_sources/examples/patent_data.rst.txt +6 -0
  48. pyuspto-0.1.2/docs/build/html/_sources/index.rst.txt +19 -0
  49. pyuspto-0.1.2/docs/build/html/_sources/installation.rst.txt +14 -0
  50. pyuspto-0.1.2/docs/build/html/_sources/quickstart.rst.txt +40 -0
  51. pyuspto-0.1.2/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  52. pyuspto-0.1.2/docs/build/html/_static/basic.css +906 -0
  53. pyuspto-0.1.2/docs/build/html/_static/check-solid.svg +4 -0
  54. pyuspto-0.1.2/docs/build/html/_static/clipboard.min.js +7 -0
  55. pyuspto-0.1.2/docs/build/html/_static/copy-button.svg +5 -0
  56. pyuspto-0.1.2/docs/build/html/_static/copybutton.css +94 -0
  57. pyuspto-0.1.2/docs/build/html/_static/copybutton.js +248 -0
  58. pyuspto-0.1.2/docs/build/html/_static/copybutton_funcs.js +73 -0
  59. pyuspto-0.1.2/docs/build/html/_static/css/badge_only.css +1 -0
  60. pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  61. pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  62. pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  63. pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  64. pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  65. pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  66. pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  67. pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  68. pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  69. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  70. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  71. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  72. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  73. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  74. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  75. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  76. pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  77. pyuspto-0.1.2/docs/build/html/_static/css/theme.css +4 -0
  78. pyuspto-0.1.2/docs/build/html/_static/doctools.js +149 -0
  79. pyuspto-0.1.2/docs/build/html/_static/documentation_options.js +13 -0
  80. pyuspto-0.1.2/docs/build/html/_static/file.png +0 -0
  81. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  82. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  83. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  84. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  85. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  86. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  87. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  88. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  89. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  90. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  91. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  92. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  93. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  94. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  95. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  96. pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  97. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  98. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  99. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  100. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  101. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  102. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  103. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  104. pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  105. pyuspto-0.1.2/docs/build/html/_static/jquery.js +2 -0
  106. pyuspto-0.1.2/docs/build/html/_static/js/badge_only.js +1 -0
  107. pyuspto-0.1.2/docs/build/html/_static/js/theme.js +1 -0
  108. pyuspto-0.1.2/docs/build/html/_static/js/versions.js +228 -0
  109. pyuspto-0.1.2/docs/build/html/_static/language_data.js +192 -0
  110. pyuspto-0.1.2/docs/build/html/_static/minus.png +0 -0
  111. pyuspto-0.1.2/docs/build/html/_static/plus.png +0 -0
  112. pyuspto-0.1.2/docs/build/html/_static/pygments.css +75 -0
  113. pyuspto-0.1.2/docs/build/html/_static/searchtools.js +635 -0
  114. pyuspto-0.1.2/docs/build/html/_static/sphinx_highlight.js +154 -0
  115. pyuspto-0.1.2/docs/build/html/api/clients.html +694 -0
  116. pyuspto-0.1.2/docs/build/html/api/config.html +168 -0
  117. pyuspto-0.1.2/docs/build/html/api/exceptions.html +159 -0
  118. pyuspto-0.1.2/docs/build/html/api/index.html +172 -0
  119. pyuspto-0.1.2/docs/build/html/api/models.html +1845 -0
  120. pyuspto-0.1.2/docs/build/html/development.html +133 -0
  121. pyuspto-0.1.2/docs/build/html/examples/bulk_data.html +121 -0
  122. pyuspto-0.1.2/docs/build/html/examples/index.html +126 -0
  123. pyuspto-0.1.2/docs/build/html/examples/patent_data.html +121 -0
  124. pyuspto-0.1.2/docs/build/html/genindex.html +937 -0
  125. pyuspto-0.1.2/docs/build/html/index.html +150 -0
  126. pyuspto-0.1.2/docs/build/html/installation.html +125 -0
  127. pyuspto-0.1.2/docs/build/html/objects.inv +0 -0
  128. pyuspto-0.1.2/docs/build/html/py-modindex.html +157 -0
  129. pyuspto-0.1.2/docs/build/html/quickstart.html +154 -0
  130. pyuspto-0.1.2/docs/build/html/search.html +127 -0
  131. pyuspto-0.1.2/docs/build/html/searchindex.js +1 -0
  132. pyuspto-0.1.2/docs/source/api/clients.rst +12 -0
  133. pyuspto-0.1.2/docs/source/api/config.rst +7 -0
  134. pyuspto-0.1.2/docs/source/api/exceptions.rst +7 -0
  135. pyuspto-0.1.2/docs/source/api/index.rst +10 -0
  136. pyuspto-0.1.2/docs/source/api/models.rst +12 -0
  137. pyuspto-0.1.2/docs/source/conf.py +72 -0
  138. pyuspto-0.1.2/docs/source/development.rst +20 -0
  139. pyuspto-0.1.2/docs/source/examples/bulk_data.rst +6 -0
  140. pyuspto-0.1.2/docs/source/examples/index.rst +8 -0
  141. pyuspto-0.1.2/docs/source/examples/patent_data.rst +6 -0
  142. pyuspto-0.1.2/docs/source/index.rst +19 -0
  143. pyuspto-0.1.2/docs/source/installation.rst +14 -0
  144. pyuspto-0.1.2/docs/source/quickstart.rst +40 -0
  145. pyuspto-0.1.2/examples/bulk_data_example.py +127 -0
  146. pyuspto-0.1.2/examples/ifw_example.py +76 -0
  147. pyuspto-0.1.2/examples/patent_data_example.py +314 -0
  148. pyuspto-0.1.2/pyproject.toml +108 -0
  149. pyuspto-0.1.2/requirements-dev.txt +17 -0
  150. pyuspto-0.1.2/requirements.txt +7 -0
  151. pyuspto-0.1.2/setup.cfg +4 -0
  152. pyuspto-0.1.2/src/pyUSPTO/__init__.py +51 -0
  153. pyuspto-0.1.2/src/pyUSPTO/clients/__init__.py +13 -0
  154. pyuspto-0.1.2/src/pyUSPTO/clients/base.py +232 -0
  155. pyuspto-0.1.2/src/pyUSPTO/clients/bulk_data.py +302 -0
  156. pyuspto-0.1.2/src/pyUSPTO/clients/patent_data.py +678 -0
  157. pyuspto-0.1.2/src/pyUSPTO/config.py +51 -0
  158. pyuspto-0.1.2/src/pyUSPTO/exceptions.py +250 -0
  159. pyuspto-0.1.2/src/pyUSPTO/models/__init__.py +21 -0
  160. pyuspto-0.1.2/src/pyUSPTO/models/base.py +31 -0
  161. pyuspto-0.1.2/src/pyUSPTO/models/bulk_data.py +135 -0
  162. pyuspto-0.1.2/src/pyUSPTO/models/patent_data.py +1774 -0
  163. pyuspto-0.1.2/src/pyUSPTO/utils/__init__.py +12 -0
  164. pyuspto-0.1.2/src/pyUSPTO/utils/http.py +53 -0
  165. pyuspto-0.1.2/src/pyUSPTO.egg-info/PKG-INFO +129 -0
  166. pyuspto-0.1.2/src/pyUSPTO.egg-info/SOURCES.txt +186 -0
  167. pyuspto-0.1.2/src/pyUSPTO.egg-info/dependency_links.txt +1 -0
  168. pyuspto-0.1.2/src/pyUSPTO.egg-info/requires.txt +1 -0
  169. pyuspto-0.1.2/src/pyUSPTO.egg-info/top_level.txt +1 -0
  170. pyuspto-0.1.2/tests/__init__.py +0 -0
  171. pyuspto-0.1.2/tests/clients/__init__.py +0 -0
  172. pyuspto-0.1.2/tests/clients/test_bulk_data_clients.py +750 -0
  173. pyuspto-0.1.2/tests/clients/test_patent_data_clients.py +2168 -0
  174. pyuspto-0.1.2/tests/conftest.py +270 -0
  175. pyuspto-0.1.2/tests/integration/__init__.py +0 -0
  176. pyuspto-0.1.2/tests/integration/conftest.py +63 -0
  177. pyuspto-0.1.2/tests/integration/test_bulk_data_integration.py +95 -0
  178. pyuspto-0.1.2/tests/integration/test_patent_data_integration.py +638 -0
  179. pyuspto-0.1.2/tests/models/__init__.py +0 -0
  180. pyuspto-0.1.2/tests/models/test_bulk_data_models.py +87 -0
  181. pyuspto-0.1.2/tests/models/test_patent_data_models.py +2419 -0
  182. pyuspto-0.1.2/tests/test_base.py +510 -0
  183. pyuspto-0.1.2/tests/test_edge_cases.py +58 -0
  184. pyuspto-0.1.2/tests/test_exceptions.py +294 -0
  185. pyuspto-0.1.2/tests/test_init.py +110 -0
  186. pyuspto-0.1.2/tests/test_version.py +5 -0
  187. pyuspto-0.1.2/tests/utils/__init__.py +0 -0
  188. pyuspto-0.1.2/tests/utils/test_http.py +75 -0
@@ -0,0 +1,59 @@
1
+ name: 🐞 Bug Report
2
+ description: File a bug report.
3
+ title: "[Bug]: "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to fill out this bug report! Please fill out as much information as you can to help make sure the issue is resolved.
10
+ - type: input
11
+ id: version
12
+ attributes:
13
+ label: Version
14
+ description: What version of pyUSPTO are you running?
15
+ placeholder: 0.x.y
16
+ validations:
17
+ required: true
18
+ - type: textarea
19
+ id: what-happened
20
+ attributes:
21
+ label: What Happened?
22
+ description: A clear and concise description of what the bug is. Also tell us, what step can reproduce the bug?
23
+ placeholder: Tell us what you see!
24
+ value: "A bug happened!"
25
+ validations:
26
+ required: true
27
+ - type: textarea
28
+ id: what-expected
29
+ attributes:
30
+ label: What did you expect to happen?
31
+ description: Also tell us, do you have an idea why?
32
+ placeholder: Tell us what you see!
33
+ validations:
34
+ required: false
35
+ - type: textarea
36
+ id: mre
37
+ attributes:
38
+ label: Minimal Reproducible Code
39
+ description: |
40
+ Please provide a minimal reproducible example of code causing the error.
41
+ NOTE: This input will be automatically formatted into code, so no need for backticks.
42
+ render: python
43
+ placeholder: "from pyUSPTO import PatentDataClient"
44
+ validations:
45
+ required: false
46
+ - type: textarea
47
+ id: logs
48
+ attributes:
49
+ label: Relevant log output, if any.
50
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
51
+ render: shell
52
+ - type: checkboxes
53
+ id: terms
54
+ attributes:
55
+ label: Code of Conduct
56
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
57
+ options:
58
+ - label: I agree to follow this project's Code of Conduct
59
+ required: true
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 📚 Documentation
4
+ url: https://github.com/DunlapCoddingPC/pyUSPTO/blob/main/README.md
5
+ about: Check the documentation for usage examples and API reference
6
+ - name: 💬 Discussions
7
+ url: https://github.com/DunlapCoddingPC/pyUSPTO/discussions
8
+ about: Ask questions and discuss ideas with the community
@@ -0,0 +1,69 @@
1
+ name: 📝 Documentation Update
2
+ description: Suggest improvements to documentation
3
+ title: "[DOCS] "
4
+ labels: ["documentation"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: Thanks for taking the time to help us update our Documentation!
9
+ - type: dropdown
10
+ id: issue-type
11
+ attributes:
12
+ label: What type of documentation issue are you seeing?
13
+ multiple: true
14
+ options:
15
+ - Outdated information
16
+ - Missing documentation
17
+ - Unclear/confusing content
18
+ - Broken links or formatting
19
+ - Example code not working
20
+ - API reference incorrect
21
+ - Typos or grammar issues
22
+ validations:
23
+ required: false
24
+ - type: dropdown
25
+ id: issue-location
26
+ attributes:
27
+ label: Where is the documentation issue located?
28
+ multiple: true
29
+ options:
30
+ - README.md
31
+ - Code examples (specify which file)
32
+ - API docstrings (specify module/class/method)
33
+ - Sphinx documentation (specify page)
34
+ - CONTRIBUTING.md
35
+ - Other (please specify)
36
+ validations:
37
+ required: false
38
+ - type: input
39
+ id: issue-type-specifics
40
+ attributes:
41
+ label: Issue Type Specifics. You can insert a link to the problem area as well.
42
+ description: Provide requested specifics.
43
+ placeholder: ex. `CODE_OF_CONDUCT.md`
44
+ validations:
45
+ required: false
46
+ - type: textarea
47
+ id: current-problem
48
+ attributes:
49
+ label: What is the problem with the documentation?
50
+ description: Also tell us, what should be changed, added, or clarified??
51
+ validations:
52
+ required: true
53
+ - type: textarea
54
+ id: anything-else
55
+ attributes:
56
+ label: Anything else?
57
+ description: |
58
+ Links? References? Anything that will give us more context about the issue you are encountering!
59
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
60
+ validations:
61
+ required: false
62
+ - type: checkboxes
63
+ id: pr-willing
64
+ attributes:
65
+ label: Willing to Submit Pull Request
66
+ description: Are you willing to submit a PR to fix this?
67
+ options:
68
+ - label: I am willing to submit a PR to fix this.
69
+ required: false
@@ -0,0 +1,32 @@
1
+ name: 🎯 Feature Request
2
+ description: Suggest an idea for this project
3
+ title: "[FEAT] "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: textarea
7
+ attributes:
8
+ label: Problem Related
9
+ description: |
10
+ Is your feature request related to a problem? Please describe.
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+ If this is related to an issue, please add the issue number.
13
+ validations:
14
+ required: false
15
+ - type: textarea
16
+ attributes:
17
+ label: Expected Solution
18
+ description: A clear and concise description of what you want to happen.
19
+ validations:
20
+ required: false
21
+ - type: textarea
22
+ attributes:
23
+ label: Alternatives
24
+ description: A clear and concise description of any alternative solutions or features you've considered.
25
+ validations:
26
+ required: false
27
+ - type: textarea
28
+ attributes:
29
+ label: Additional Context
30
+ description: Add any other context or screenshots about the feature request here.
31
+ validations:
32
+ required: false
@@ -0,0 +1,28 @@
1
+ ## Description
2
+ Brief description of what this PR does.
3
+
4
+ ## Type of Change
5
+ - [ ] Bug fix (non-breaking change which fixes an issue)
6
+ - [ ] New feature (non-breaking change which adds functionality)
7
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
8
+ - [ ] Documentation update
9
+ - [ ] Code refactoring
10
+
11
+ ## Testing
12
+ - [ ] I have added tests that prove my fix is effective or that my feature works
13
+ - [ ] New and existing unit tests pass locally with my changes
14
+ - [ ] I have tested this manually (if applicable)
15
+
16
+ ## Checklist
17
+ - [ ] My code follows the project's style guidelines
18
+ - [ ] I have performed a self-review of my own code
19
+ - [ ] I have commented my code, particularly in hard-to-understand areas
20
+ - [ ] I have made corresponding changes to the documentation
21
+ - [ ] My changes generate no new warnings
22
+ - [ ] Any dependent changes have been merged and published
23
+
24
+ ## Related Issues
25
+ Closes #(issue number)
26
+
27
+ ## Additional Notes
28
+ Any additional information that reviewers should know.
@@ -0,0 +1,12 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "pip" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+
@@ -0,0 +1,89 @@
1
+ name: Publish Python distribution to PyPI and TestPyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_run:
8
+ workflows: ["Python Tests"]
9
+ types:
10
+ - completed
11
+ branches: [main]
12
+
13
+ jobs:
14
+ build:
15
+ name: Build distribution 📦
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ with:
21
+ persist-credentials: false
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.x"
26
+ - name: Install pypa/build
27
+ run: >-
28
+ python3 -m
29
+ pip install
30
+ build
31
+ --user
32
+ - name: Build a binary wheel and a source tarball
33
+ run: python3 -m build
34
+ - name: Store the distribution packages
35
+ uses: actions/upload-artifact@v4
36
+ with:
37
+ name: python-package-distributions
38
+ path: dist/
39
+
40
+ publish-to-pypi:
41
+ name: >-
42
+ Publish Python distribution to PyPI
43
+ # only publish to PyPI on tag pushes and not tests
44
+ if: startsWith(github.ref, 'refs/tags/v') && !startsWith(github.ref, 'test-')
45
+ needs:
46
+ - build
47
+ runs-on: ubuntu-latest
48
+ environment:
49
+ name: pypi
50
+ url: https://pypi.org/p/pyUSPTO
51
+ permissions:
52
+ id-token: write
53
+
54
+ steps:
55
+ - name: Download all the dists
56
+ uses: actions/download-artifact@v4
57
+ with:
58
+ name: python-package-distributions
59
+ path: dist/
60
+ - name: Publish distribution to PyPI
61
+ uses: pypa/gh-action-pypi-publish@release/v1
62
+
63
+ publish-to-testpypi:
64
+ name: Publish Python distribution to TestPyPI
65
+ if: startsWith(github.ref, 'refs/tags/test-v')
66
+ needs:
67
+ - build
68
+ runs-on: ubuntu-latest
69
+
70
+ environment:
71
+ name: testpypi
72
+ url: https://test.pypi.org/p/pyUSPTO
73
+
74
+ permissions:
75
+ id-token: write
76
+
77
+ steps:
78
+ - name: Download all the dists
79
+ uses: actions/download-artifact@v4
80
+ with:
81
+ name: python-package-distributions
82
+ path: dist/
83
+ - name: Publish distribution to TestPyPI
84
+ uses: pypa/gh-action-pypi-publish@release/v1
85
+ with:
86
+ repository-url: https://test.pypi.org/legacy/
87
+ attestations: true
88
+ skip-existing: true
89
+ verbose: true
@@ -0,0 +1,71 @@
1
+ name: Python Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v4
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install -r requirements.txt
28
+ pip install -r requirements-dev.txt
29
+ pip install -e .
30
+
31
+ - name: Run tests
32
+ run: |
33
+ pytest tests/ --cov=src/pyUSPTO
34
+
35
+ - name: Upload coverage report
36
+ uses: codecov/codecov-action@v3
37
+ with:
38
+ fail_ci_if_error: false
39
+
40
+ lint:
41
+ runs-on: ubuntu-latest
42
+
43
+ steps:
44
+ - uses: actions/checkout@v3
45
+
46
+ - name: Set up Python
47
+ uses: actions/setup-python@v4
48
+ with:
49
+ python-version: "3.10"
50
+
51
+ - name: Install dependencies
52
+ run: |
53
+ python -m pip install --upgrade pip
54
+ pip install flake8 black isort mypy
55
+
56
+ - name: Lint with flake8
57
+ run: |
58
+ flake8 src/pyUSPTO --count --select=E9,F63,F7,F82 --show-source --statistics
59
+
60
+ - name: Check formatting with black
61
+ run: |
62
+ black --check src/
63
+
64
+ - name: Check imports with isort
65
+ run: |
66
+ isort --check-only --profile black src/
67
+
68
+ - name: Type check with mypy
69
+ run: |
70
+ mypy src/pyUSPTO
71
+
@@ -0,0 +1,17 @@
1
+ USPTO.code-workspace
2
+ .vscode/
3
+ downloads/
4
+ .venv/
5
+ *.egg-info/
6
+ __pycache__
7
+ mypy-guide.md
8
+ docs-setup-guide.md
9
+ PubPlan.md
10
+ notes/*
11
+ info/ODP-API-Query-Spec.pdf
12
+ *.coverage
13
+ .mypy_cache/
14
+ .pytest_cache/
15
+ src/pyUSPTO/_version.py
16
+ download-example/*
17
+ dist/
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+
3
+ All notable changes to the pyUSPTO package will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - TBD
11
+
12
+ ### Added
13
+
14
+ - Initial release of pyUSPTO
15
+ - Object Oriented Support for USPTO Patent Data API
16
+ - Basic Support for USPTO Bulk Data API
17
+ - Full type annotations and docstrings
18
+ - Comprehensive test suite
@@ -0,0 +1,29 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Standards
4
+
5
+ We are committed to providing a welcoming and inclusive experience for everyone. We expect all contributors to:
6
+
7
+ - Be respectful and considerate in communications
8
+ - Focus on constructive feedback and collaboration
9
+ - Respect differing viewpoints and experiences
10
+ - Show empathy towards other community members
11
+
12
+ ## Unacceptable Behavior
13
+
14
+ Examples of unacceptable behavior include:
15
+
16
+ - Harassment, discrimination, or intimidation
17
+ - Offensive comments or personal attacks
18
+ - Trolling or deliberately disruptive behavior
19
+ - Publishing others' private information without permission
20
+
21
+ ## Enforcement
22
+
23
+ Instances of unacceptable behavior may be reported by contacting **apiechocki@dunlapcodding.com**. All complaints will be reviewed and investigated promptly and fairly.
24
+
25
+ Project maintainers have the right to remove, edit, or reject contributions that do not align with this Code of Conduct.
26
+
27
+ ## Attribution
28
+
29
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.
@@ -0,0 +1,173 @@
1
+ # Contributing to pyUSPTO
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.
4
+
5
+ ## Ways to Contribute
6
+
7
+ - **Code Contributions**: Implement new features, fix bugs, or improve performance
8
+ - **Documentation**: Improve or expand documentation, add examples, fix typos
9
+ - **Bug Reports**: Report bugs or suggest improvements
10
+ - **Feature Requests**: Suggest new features or enhancements
11
+ - **Community Support**: Help answer questions and support other users
12
+
13
+ ## Getting Started with Contributing
14
+
15
+ ### Fork the Repository
16
+
17
+ ```bash
18
+ # Fork the repository on GitHub, then clone your fork
19
+ git clone https://github.com/your-username/pyUSPTO.git
20
+ cd pyUSPTO
21
+ ```
22
+
23
+ ### Set Up Development Environment
24
+
25
+ ```bash
26
+ # Create and activate a virtual environment
27
+ python -m venv venv
28
+ source venv/bin/activate # On Windows: venv\Scripts\activate
29
+
30
+ # Install development dependencies
31
+ pip install -r requirements.txt
32
+ pip install -r requirements-dev.txt
33
+ pip install -e .
34
+ ```
35
+
36
+ ### Create a Branch
37
+
38
+ ```bash
39
+ # Create a branch for your contribution
40
+ git checkout -b feature/your-feature-name
41
+ ```
42
+
43
+ ### Make Your Changes
44
+
45
+ - Follow the code style guidelines
46
+ - Add tests for new functionality
47
+ - Update documentation as needed
48
+
49
+ ### Run Tests
50
+
51
+ ```bash
52
+ # Run the test suite
53
+ python -m pytest tests/ --cov=pyUSPTO --cov-report=term --cov-report=term-missing -vv
54
+
55
+ # Run linting and type checking
56
+ flake8 src/pyUSPTO --count --select=E9,F63,F7,F82,D100,D101,D102,D103 --show-source --statistics
57
+ mypy ./src/
58
+
59
+ # Correct Formatting
60
+ black .
61
+
62
+
63
+ ```
64
+
65
+ ### Submit a Pull Request
66
+
67
+ - Push your changes to your fork
68
+ - Submit a pull request from your branch to our main branch
69
+ - Provide a clear description of the changes and any related issues
70
+
71
+ ## Code Style Guidelines
72
+
73
+ - Follow PEP 8 for Python code style
74
+ - Use type hints for all function parameters and return values
75
+ - Write comprehensive docstrings for all functions, classes, and modules
76
+ - Keep functions focused
77
+ - Use meaningful variable and function names
78
+ - Follow existing patterns in the codebase
79
+
80
+ ## Documentation Guidelines
81
+
82
+ - Use docstrings for all public modules, functions, classes, and methods
83
+ - Include type information in docstrings (already captured by type hints)
84
+ - Document parameters, return values, and raised exceptions
85
+ - Add examples where appropriate
86
+
87
+ ## Commit Message Guidelines
88
+
89
+ We follow the Conventional Commits specification:
90
+
91
+ ```
92
+ <type>(<scope>): <description>
93
+
94
+ [optional body]
95
+
96
+ [optional footer(s)]
97
+ ```
98
+
99
+ Types include:
100
+
101
+ - **feat**: A new feature
102
+ - **fix**: A bug fix
103
+ - **docs**: Documentation changes
104
+ - **style**: Code style changes (formatting, etc.)
105
+ - **refactor**: Code changes that neither fix bugs nor add features
106
+ - **test**: Adding or modifying tests
107
+ - **chore**: Changes to the build process or auxiliary tools
108
+
109
+ ## Pull Request Process
110
+
111
+ 1. Update the README.md or documentation with details of changes if appropriate
112
+ 2. Update the CHANGELOG.md with details of changes
113
+ 3. The PR should work for Python 3.10 and above
114
+ 4. PRs require approval from at least one maintainer
115
+ 5. Once approved, a maintainer will merge your PR
116
+
117
+ ## Testing
118
+
119
+ The library includes unit and integration tests using pytest.
120
+
121
+ ### Running Tests
122
+
123
+ 1. **Run all tests (excluding integration tests)**:
124
+
125
+ ```bash
126
+ python -m pytest pyUSPTO/tests/
127
+ ```
128
+
129
+ 2. **Run tests with verbose output**:
130
+
131
+ ```bash
132
+ python -m pytest pyUSPTO/tests/ -v
133
+ ```
134
+
135
+ 3. **Run specific test files**:
136
+
137
+ ```bash
138
+ python -m pytest pyUSPTO/tests/test_base_client.py
139
+ python -m pytest pyUSPTO/tests/test_bulk_data.py
140
+ python -m pytest pyUSPTO/tests/test_patent_data.py
141
+ ```
142
+
143
+ 4. **Run specific test classes or methods**:
144
+
145
+ ```bash
146
+ python -m pytest pyUSPTO/tests/test_bulk_data.py::TestBulkDataClient
147
+ python -m pytest pyUSPTO/tests/test_bulk_data.py::TestBulkDataClient::test_download_file
148
+ ```
149
+
150
+ 5. **Run integration tests** (these are skipped by default):
151
+
152
+ ```bash
153
+ # On Windows
154
+ set ENABLE_INTEGRATION_TESTS=true
155
+ python -m pytest pyUSPTO/tests/test_integration.py -v
156
+
157
+ # On Unix/Linux/macOS
158
+ ENABLE_INTEGRATION_TESTS=true python -m pytest pyUSPTO/tests/test_integration.py -v
159
+ ```
160
+
161
+ 6. **Run tests with coverage report**:
162
+ ```bash
163
+ python -m pytest pyUSPTO/tests/ --cov=pyUSPTO
164
+ ```
165
+
166
+ The tests are designed to use mocking to avoid making real API calls, making them fast and reliable. The integration tests are optional and will make real API calls to the USPTO API if enabled.
167
+
168
+ ## Versioning
169
+
170
+ The project uses setuptools-scm for version management:
171
+
172
+ - Versions are derived from git tags
173
+ - When making releases, the maintainers will handle the versioning
pyuspto-0.1.2/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Dunlap Codding, PC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.