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.
- pyuspto-0.1.2/.github/ISSUE_TEMPLATE/bug-report.yml +59 -0
- pyuspto-0.1.2/.github/ISSUE_TEMPLATE/config.yml +8 -0
- pyuspto-0.1.2/.github/ISSUE_TEMPLATE/documentation-updates.yml +69 -0
- pyuspto-0.1.2/.github/ISSUE_TEMPLATE/feature-request.yml +32 -0
- pyuspto-0.1.2/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- pyuspto-0.1.2/.github/dependabot.yml +12 -0
- pyuspto-0.1.2/.github/workflows/publish-to-test-pypi.yml +89 -0
- pyuspto-0.1.2/.github/workflows/python-tests.yml +71 -0
- pyuspto-0.1.2/.gitignore +17 -0
- pyuspto-0.1.2/CHANGELOG.md +18 -0
- pyuspto-0.1.2/CODE_OF_CONDUCT.md +29 -0
- pyuspto-0.1.2/CONTRIBUTING.md +173 -0
- pyuspto-0.1.2/LICENSE +21 -0
- pyuspto-0.1.2/PKG-INFO +129 -0
- pyuspto-0.1.2/README.md +104 -0
- pyuspto-0.1.2/_version.pyi +2 -0
- pyuspto-0.1.2/docs/Makefile +20 -0
- pyuspto-0.1.2/docs/build/html/.buildinfo +4 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/api/clients.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/api/config.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/api/exceptions.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/api/index.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/api/models.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/development.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/environment.pickle +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/examples/bulk_data.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/examples/index.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/examples/patent_data.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/index.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/installation.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/.doctrees/quickstart.doctree +0 -0
- pyuspto-0.1.2/docs/build/html/_modules/index.html +113 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/clients/bulk_data.html +436 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/clients/patent_data.html +814 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/config.html +168 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/exceptions.html +153 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/models/bulk_data.html +270 -0
- pyuspto-0.1.2/docs/build/html/_modules/pyUSPTO/models/patent_data.html +1118 -0
- pyuspto-0.1.2/docs/build/html/_sources/api/clients.rst.txt +12 -0
- pyuspto-0.1.2/docs/build/html/_sources/api/config.rst.txt +7 -0
- pyuspto-0.1.2/docs/build/html/_sources/api/exceptions.rst.txt +7 -0
- pyuspto-0.1.2/docs/build/html/_sources/api/index.rst.txt +10 -0
- pyuspto-0.1.2/docs/build/html/_sources/api/models.rst.txt +12 -0
- pyuspto-0.1.2/docs/build/html/_sources/development.rst.txt +20 -0
- pyuspto-0.1.2/docs/build/html/_sources/examples/bulk_data.rst.txt +6 -0
- pyuspto-0.1.2/docs/build/html/_sources/examples/index.rst.txt +8 -0
- pyuspto-0.1.2/docs/build/html/_sources/examples/patent_data.rst.txt +6 -0
- pyuspto-0.1.2/docs/build/html/_sources/index.rst.txt +19 -0
- pyuspto-0.1.2/docs/build/html/_sources/installation.rst.txt +14 -0
- pyuspto-0.1.2/docs/build/html/_sources/quickstart.rst.txt +40 -0
- pyuspto-0.1.2/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
- pyuspto-0.1.2/docs/build/html/_static/basic.css +906 -0
- pyuspto-0.1.2/docs/build/html/_static/check-solid.svg +4 -0
- pyuspto-0.1.2/docs/build/html/_static/clipboard.min.js +7 -0
- pyuspto-0.1.2/docs/build/html/_static/copy-button.svg +5 -0
- pyuspto-0.1.2/docs/build/html/_static/copybutton.css +94 -0
- pyuspto-0.1.2/docs/build/html/_static/copybutton.js +248 -0
- pyuspto-0.1.2/docs/build/html/_static/copybutton_funcs.js +73 -0
- pyuspto-0.1.2/docs/build/html/_static/css/badge_only.css +1 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/css/theme.css +4 -0
- pyuspto-0.1.2/docs/build/html/_static/doctools.js +149 -0
- pyuspto-0.1.2/docs/build/html/_static/documentation_options.js +13 -0
- pyuspto-0.1.2/docs/build/html/_static/file.png +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- pyuspto-0.1.2/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- pyuspto-0.1.2/docs/build/html/_static/jquery.js +2 -0
- pyuspto-0.1.2/docs/build/html/_static/js/badge_only.js +1 -0
- pyuspto-0.1.2/docs/build/html/_static/js/theme.js +1 -0
- pyuspto-0.1.2/docs/build/html/_static/js/versions.js +228 -0
- pyuspto-0.1.2/docs/build/html/_static/language_data.js +192 -0
- pyuspto-0.1.2/docs/build/html/_static/minus.png +0 -0
- pyuspto-0.1.2/docs/build/html/_static/plus.png +0 -0
- pyuspto-0.1.2/docs/build/html/_static/pygments.css +75 -0
- pyuspto-0.1.2/docs/build/html/_static/searchtools.js +635 -0
- pyuspto-0.1.2/docs/build/html/_static/sphinx_highlight.js +154 -0
- pyuspto-0.1.2/docs/build/html/api/clients.html +694 -0
- pyuspto-0.1.2/docs/build/html/api/config.html +168 -0
- pyuspto-0.1.2/docs/build/html/api/exceptions.html +159 -0
- pyuspto-0.1.2/docs/build/html/api/index.html +172 -0
- pyuspto-0.1.2/docs/build/html/api/models.html +1845 -0
- pyuspto-0.1.2/docs/build/html/development.html +133 -0
- pyuspto-0.1.2/docs/build/html/examples/bulk_data.html +121 -0
- pyuspto-0.1.2/docs/build/html/examples/index.html +126 -0
- pyuspto-0.1.2/docs/build/html/examples/patent_data.html +121 -0
- pyuspto-0.1.2/docs/build/html/genindex.html +937 -0
- pyuspto-0.1.2/docs/build/html/index.html +150 -0
- pyuspto-0.1.2/docs/build/html/installation.html +125 -0
- pyuspto-0.1.2/docs/build/html/objects.inv +0 -0
- pyuspto-0.1.2/docs/build/html/py-modindex.html +157 -0
- pyuspto-0.1.2/docs/build/html/quickstart.html +154 -0
- pyuspto-0.1.2/docs/build/html/search.html +127 -0
- pyuspto-0.1.2/docs/build/html/searchindex.js +1 -0
- pyuspto-0.1.2/docs/source/api/clients.rst +12 -0
- pyuspto-0.1.2/docs/source/api/config.rst +7 -0
- pyuspto-0.1.2/docs/source/api/exceptions.rst +7 -0
- pyuspto-0.1.2/docs/source/api/index.rst +10 -0
- pyuspto-0.1.2/docs/source/api/models.rst +12 -0
- pyuspto-0.1.2/docs/source/conf.py +72 -0
- pyuspto-0.1.2/docs/source/development.rst +20 -0
- pyuspto-0.1.2/docs/source/examples/bulk_data.rst +6 -0
- pyuspto-0.1.2/docs/source/examples/index.rst +8 -0
- pyuspto-0.1.2/docs/source/examples/patent_data.rst +6 -0
- pyuspto-0.1.2/docs/source/index.rst +19 -0
- pyuspto-0.1.2/docs/source/installation.rst +14 -0
- pyuspto-0.1.2/docs/source/quickstart.rst +40 -0
- pyuspto-0.1.2/examples/bulk_data_example.py +127 -0
- pyuspto-0.1.2/examples/ifw_example.py +76 -0
- pyuspto-0.1.2/examples/patent_data_example.py +314 -0
- pyuspto-0.1.2/pyproject.toml +108 -0
- pyuspto-0.1.2/requirements-dev.txt +17 -0
- pyuspto-0.1.2/requirements.txt +7 -0
- pyuspto-0.1.2/setup.cfg +4 -0
- pyuspto-0.1.2/src/pyUSPTO/__init__.py +51 -0
- pyuspto-0.1.2/src/pyUSPTO/clients/__init__.py +13 -0
- pyuspto-0.1.2/src/pyUSPTO/clients/base.py +232 -0
- pyuspto-0.1.2/src/pyUSPTO/clients/bulk_data.py +302 -0
- pyuspto-0.1.2/src/pyUSPTO/clients/patent_data.py +678 -0
- pyuspto-0.1.2/src/pyUSPTO/config.py +51 -0
- pyuspto-0.1.2/src/pyUSPTO/exceptions.py +250 -0
- pyuspto-0.1.2/src/pyUSPTO/models/__init__.py +21 -0
- pyuspto-0.1.2/src/pyUSPTO/models/base.py +31 -0
- pyuspto-0.1.2/src/pyUSPTO/models/bulk_data.py +135 -0
- pyuspto-0.1.2/src/pyUSPTO/models/patent_data.py +1774 -0
- pyuspto-0.1.2/src/pyUSPTO/utils/__init__.py +12 -0
- pyuspto-0.1.2/src/pyUSPTO/utils/http.py +53 -0
- pyuspto-0.1.2/src/pyUSPTO.egg-info/PKG-INFO +129 -0
- pyuspto-0.1.2/src/pyUSPTO.egg-info/SOURCES.txt +186 -0
- pyuspto-0.1.2/src/pyUSPTO.egg-info/dependency_links.txt +1 -0
- pyuspto-0.1.2/src/pyUSPTO.egg-info/requires.txt +1 -0
- pyuspto-0.1.2/src/pyUSPTO.egg-info/top_level.txt +1 -0
- pyuspto-0.1.2/tests/__init__.py +0 -0
- pyuspto-0.1.2/tests/clients/__init__.py +0 -0
- pyuspto-0.1.2/tests/clients/test_bulk_data_clients.py +750 -0
- pyuspto-0.1.2/tests/clients/test_patent_data_clients.py +2168 -0
- pyuspto-0.1.2/tests/conftest.py +270 -0
- pyuspto-0.1.2/tests/integration/__init__.py +0 -0
- pyuspto-0.1.2/tests/integration/conftest.py +63 -0
- pyuspto-0.1.2/tests/integration/test_bulk_data_integration.py +95 -0
- pyuspto-0.1.2/tests/integration/test_patent_data_integration.py +638 -0
- pyuspto-0.1.2/tests/models/__init__.py +0 -0
- pyuspto-0.1.2/tests/models/test_bulk_data_models.py +87 -0
- pyuspto-0.1.2/tests/models/test_patent_data_models.py +2419 -0
- pyuspto-0.1.2/tests/test_base.py +510 -0
- pyuspto-0.1.2/tests/test_edge_cases.py +58 -0
- pyuspto-0.1.2/tests/test_exceptions.py +294 -0
- pyuspto-0.1.2/tests/test_init.py +110 -0
- pyuspto-0.1.2/tests/test_version.py +5 -0
- pyuspto-0.1.2/tests/utils/__init__.py +0 -0
- 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
|
+
|
pyuspto-0.1.2/.gitignore
ADDED
|
@@ -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.
|