pyzotero 1.6.11__tar.gz → 1.6.14__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.
- {pyzotero-1.6.11 → pyzotero-1.6.14}/PKG-INFO +46 -56
- {pyzotero-1.6.11 → pyzotero-1.6.14}/README.md +1 -1
- {pyzotero-1.6.11 → pyzotero-1.6.14}/pyproject.toml +18 -19
- {pyzotero-1.6.11 → pyzotero-1.6.14}/src/pyzotero/zotero.py +10 -12
- pyzotero-1.6.11/.coveragerc +0 -3
- pyzotero-1.6.11/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
- pyzotero-1.6.11/.github/ISSUE_TEMPLATE/usage_question.md +0 -15
- pyzotero-1.6.11/.github/dependabot.yml +0 -16
- pyzotero-1.6.11/.github/pull_request_template.md +0 -23
- pyzotero-1.6.11/.github/workflows/tests.yml +0 -115
- pyzotero-1.6.11/.gitignore +0 -6
- pyzotero-1.6.11/.readthedocs.yaml +0 -26
- pyzotero-1.6.11/AUTHORS +0 -2
- pyzotero-1.6.11/CITATION.cff +0 -16
- pyzotero-1.6.11/CONTRIBUTING.md +0 -100
- pyzotero-1.6.11/CONTRIBUTORS.md +0 -22
- pyzotero-1.6.11/__init__.py +0 -0
- pyzotero-1.6.11/doc/Makefile +0 -130
- pyzotero-1.6.11/doc/_templates/layout.html +0 -23
- pyzotero-1.6.11/doc/cat.png +0 -0
- pyzotero-1.6.11/doc/conf.py +0 -273
- pyzotero-1.6.11/doc/index.rst +0 -1111
- pyzotero-1.6.11/dump_contributors.py +0 -13
- pyzotero-1.6.11/example/.gitignore +0 -3
- pyzotero-1.6.11/example/local_base_use.py +0 -7
- pyzotero-1.6.11/example/local_copy_pdf.py +0 -63
- pyzotero-1.6.11/example/local_get_item_detail.py +0 -68
- pyzotero-1.6.11/example/local_search_title.py +0 -43
- pyzotero-1.6.11/setup.cfg +0 -4
- pyzotero-1.6.11/setup.py +0 -12
- pyzotero-1.6.11/src/_version.py +0 -21
- pyzotero-1.6.11/src/pyzotero.egg-info/PKG-INFO +0 -163
- pyzotero-1.6.11/src/pyzotero.egg-info/SOURCES.txt +0 -59
- pyzotero-1.6.11/src/pyzotero.egg-info/dependency_links.txt +0 -1
- pyzotero-1.6.11/src/pyzotero.egg-info/requires.txt +0 -12
- pyzotero-1.6.11/src/pyzotero.egg-info/top_level.txt +0 -2
- pyzotero-1.6.11/tests/api_responses/__init__.py +0 -0
- pyzotero-1.6.11/tests/api_responses/attachments_doc.json +0 -54
- pyzotero-1.6.11/tests/api_responses/citation_doc.xml +0 -21
- pyzotero-1.6.11/tests/api_responses/collection_doc.json +0 -19
- pyzotero-1.6.11/tests/api_responses/collection_tags.json +0 -53
- pyzotero-1.6.11/tests/api_responses/collection_versions.json +0 -4
- pyzotero-1.6.11/tests/api_responses/collections_doc.json +0 -564
- pyzotero-1.6.11/tests/api_responses/creation_doc.json +0 -7
- pyzotero-1.6.11/tests/api_responses/groups_doc.json +0 -33
- pyzotero-1.6.11/tests/api_responses/item_doc.json +0 -105
- pyzotero-1.6.11/tests/api_responses/item_fields.json +0 -406
- pyzotero-1.6.11/tests/api_responses/item_file.pdf +0 -1
- pyzotero-1.6.11/tests/api_responses/item_template.json +0 -13
- pyzotero-1.6.11/tests/api_responses/item_types.json +0 -106
- pyzotero-1.6.11/tests/api_responses/item_versions.json +0 -4
- pyzotero-1.6.11/tests/api_responses/items_doc.json +0 -1690
- pyzotero-1.6.11/tests/api_responses/keys_doc.txt +0 -10
- pyzotero-1.6.11/tests/api_responses/tags_doc.json +0 -19
- pyzotero-1.6.11/tests/test_async.py +0 -24
- pyzotero-1.6.11/tests/test_zotero.py +0 -751
- pyzotero-1.6.11/uv.lock +0 -590
- {pyzotero-1.6.11 → pyzotero-1.6.14}/LICENSE.md +0 -0
- {pyzotero-1.6.11 → pyzotero-1.6.14}/src/pyzotero/__init__.py +0 -0
- {pyzotero-1.6.11 → pyzotero-1.6.14}/src/pyzotero/filetransport.py +0 -0
- {pyzotero-1.6.11 → pyzotero-1.6.14}/src/pyzotero/zotero_errors.py +0 -0
|
@@ -1,48 +1,45 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: pyzotero
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.14
|
|
4
4
|
Summary: Python wrapper for the Zotero API
|
|
5
|
+
Keywords: Zotero,DH
|
|
6
|
+
Author: Stephan Hügel
|
|
5
7
|
Author-email: Stephan Hügel <urschrei@gmail.com>
|
|
6
8
|
License: # Blue Oak Model License
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
Project-URL: Repository, https://github.com/urschrei/pyzotero
|
|
43
|
-
Project-URL: Tracker, https://github.com/urschrei/pyzotero/issues
|
|
44
|
-
Project-URL: documentation, https://pyzotero.readthedocs.org
|
|
45
|
-
Keywords: Zotero,DH
|
|
9
|
+
|
|
10
|
+
Version 1.0.0
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
This license gives everyone as much permission to work with this software as possible, while protecting contributors from liability.
|
|
15
|
+
|
|
16
|
+
## Acceptance
|
|
17
|
+
|
|
18
|
+
In order to receive this license, you must agree to its rules. The rules of this license are both obligations under that agreement and conditions to your license. You must not do anything with this software that triggers a rule that you cannot or will not follow.
|
|
19
|
+
|
|
20
|
+
## Copyright
|
|
21
|
+
|
|
22
|
+
Each contributor licenses you to do everything with this software that would otherwise infringe that contributor's copyright in it.
|
|
23
|
+
|
|
24
|
+
## Notices
|
|
25
|
+
|
|
26
|
+
You must ensure that everyone who gets a copy of any part of this software from you, with or without changes, also gets the text of this license or a link to <https://blueoakcouncil.org/license/1.0.0>.
|
|
27
|
+
|
|
28
|
+
## Excuse
|
|
29
|
+
|
|
30
|
+
If anyone notifies you in writing that you have not complied with [Notices](#notices), you can keep your license by taking all practical steps to comply within 30 days after the notice. If you do not do so, your license ends immediately.
|
|
31
|
+
|
|
32
|
+
## Patent
|
|
33
|
+
|
|
34
|
+
Each contributor licenses you to do everything with this software that would otherwise infringe any patent claims they can license or become able to license.
|
|
35
|
+
|
|
36
|
+
## Reliability
|
|
37
|
+
|
|
38
|
+
No contributor can revoke this license.
|
|
39
|
+
|
|
40
|
+
## No Liability
|
|
41
|
+
|
|
42
|
+
***As far as the law allows, this software comes as is, without any warranty or condition, and no contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim.***
|
|
46
43
|
Classifier: Programming Language :: Python
|
|
47
44
|
Classifier: Programming Language :: Python :: 3.9
|
|
48
45
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -56,22 +53,15 @@ Classifier: Intended Audience :: Education
|
|
|
56
53
|
Classifier: License :: OSI Approved :: Blue Oak Model License (BlueOak-1.0.0)
|
|
57
54
|
Classifier: Operating System :: OS Independent
|
|
58
55
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
56
|
+
Requires-Dist: feedparser>=6.0.12
|
|
57
|
+
Requires-Dist: bibtexparser>=1.4.3,<2.0.0
|
|
58
|
+
Requires-Dist: httpx>=0.28.1
|
|
59
|
+
Requires-Dist: whenever>=0.8.8
|
|
59
60
|
Requires-Python: >=3.9
|
|
61
|
+
Project-URL: Repository, https://github.com/urschrei/pyzotero
|
|
62
|
+
Project-URL: Tracker, https://github.com/urschrei/pyzotero/issues
|
|
63
|
+
Project-URL: documentation, https://pyzotero.readthedocs.org
|
|
60
64
|
Description-Content-Type: text/markdown
|
|
61
|
-
License-File: LICENSE.md
|
|
62
|
-
License-File: AUTHORS
|
|
63
|
-
Requires-Dist: feedparser>=6.0.11
|
|
64
|
-
Requires-Dist: pytz
|
|
65
|
-
Requires-Dist: bibtexparser
|
|
66
|
-
Requires-Dist: httpx>=0.28.1
|
|
67
|
-
Provides-Extra: test
|
|
68
|
-
Requires-Dist: pytest>=7.4.2; extra == "test"
|
|
69
|
-
Requires-Dist: httpretty; extra == "test"
|
|
70
|
-
Requires-Dist: python-dateutil; extra == "test"
|
|
71
|
-
Requires-Dist: ipython; extra == "test"
|
|
72
|
-
Requires-Dist: pytest-asyncio; extra == "test"
|
|
73
|
-
Requires-Dist: pytest-cov>=6.0.0; extra == "test"
|
|
74
|
-
Dynamic: license-file
|
|
75
65
|
|
|
76
66
|
[](https://pypi.python.org/pypi/Pyzotero/) [](http://pyzotero.readthedocs.org/en/latest/?badge=latest) [](https://pypi.python.org/pypi/Pyzotero) [](https://anaconda.org/conda-forge/pyzotero) [](https://pepy.tech/project/pyzotero)
|
|
77
67
|
|
|
@@ -79,7 +69,7 @@ Dynamic: license-file
|
|
|
79
69
|
|
|
80
70
|
# Quickstart
|
|
81
71
|
|
|
82
|
-
1. `pip install pyzotero` **or** `conda
|
|
72
|
+
1. `uv add pyzotero` **or** `pip install pyzotero` **or** `conda install conda-forge::pyzotero`
|
|
83
73
|
2. You'll need the ID of the personal or group library you want to access:
|
|
84
74
|
- Your **personal library ID** is available [here](https://www.zotero.org/settings/keys), in the section `Your userID for use in API calls`
|
|
85
75
|
- For **group libraries**, the ID can be found by opening the group's page: `https://www.zotero.org/groups/groupname`, and hovering over the `group settings` link. The ID is the integer after `/groups/`
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Quickstart
|
|
6
6
|
|
|
7
|
-
1. `pip install pyzotero` **or** `conda
|
|
7
|
+
1. `uv add pyzotero` **or** `pip install pyzotero` **or** `conda install conda-forge::pyzotero`
|
|
8
8
|
2. You'll need the ID of the personal or group library you want to access:
|
|
9
9
|
- Your **personal library ID** is available [here](https://www.zotero.org/settings/keys), in the section `Your userID for use in API calls`
|
|
10
10
|
- For **group libraries**, the ID can be found by opening the group's page: `https://www.zotero.org/groups/groupname`, and hovering over the `group settings` link. The ID is the integer after `/groups/`
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pyzotero"
|
|
3
|
-
|
|
3
|
+
version = "1.6.14"
|
|
4
4
|
description = "Python wrapper for the Zotero API"
|
|
5
|
+
readme = "README.md"
|
|
5
6
|
requires-python = ">=3.9"
|
|
6
7
|
dependencies = [
|
|
7
|
-
"feedparser >= 6.0.
|
|
8
|
-
"
|
|
9
|
-
"bibtexparser",
|
|
8
|
+
"feedparser >= 6.0.12",
|
|
9
|
+
"bibtexparser>=1.4.3,<2.0.0",
|
|
10
10
|
"httpx>=0.28.1",
|
|
11
|
+
"whenever>=0.8.8",
|
|
11
12
|
]
|
|
12
13
|
authors = [{ name = "Stephan Hügel", email = "urschrei@gmail.com" }]
|
|
13
14
|
license = {file = "LICENSE.md"}
|
|
@@ -32,28 +33,28 @@ Repository = "https://github.com/urschrei/pyzotero"
|
|
|
32
33
|
Tracker = "https://github.com/urschrei/pyzotero/issues"
|
|
33
34
|
documentation = "https://pyzotero.readthedocs.org"
|
|
34
35
|
|
|
35
|
-
[
|
|
36
|
-
|
|
37
|
-
"pytest >=
|
|
38
|
-
"
|
|
36
|
+
[dependency-groups]
|
|
37
|
+
dev = [
|
|
38
|
+
"pytest >= 8.4.2",
|
|
39
|
+
"pytz>=2025.2",
|
|
40
|
+
"httpretty >= 1.1.4",
|
|
39
41
|
"python-dateutil",
|
|
40
42
|
"ipython",
|
|
41
43
|
"pytest-asyncio",
|
|
42
44
|
"pytest-cov>=6.0.0",
|
|
45
|
+
"tzdata>=2025.2"
|
|
46
|
+
]
|
|
47
|
+
doc = [
|
|
48
|
+
"sphinx",
|
|
49
|
+
"sphinx-rtd-theme"
|
|
43
50
|
]
|
|
44
|
-
|
|
45
|
-
[tool.setuptools.dynamic]
|
|
46
|
-
readme = {file = "README.md", content-type = "text/markdown"}
|
|
47
51
|
|
|
48
52
|
[build-system]
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"setuptools >= 45",
|
|
52
|
-
"setuptools-scm[toml] >= 6.2",
|
|
53
|
-
]
|
|
53
|
+
requires = ["uv_build>=0.8.14,<0.9.0"]
|
|
54
|
+
build-backend = "uv_build"
|
|
54
55
|
|
|
55
56
|
[tool.pytest.ini_options]
|
|
56
|
-
minversion = "
|
|
57
|
+
minversion = "8.3.0"
|
|
57
58
|
addopts = [
|
|
58
59
|
"--import-mode=importlib", "--cov=pyzotero", "--cov-report=xml",
|
|
59
60
|
]
|
|
@@ -63,8 +64,6 @@ testpaths = [
|
|
|
63
64
|
asyncio_mode = "strict"
|
|
64
65
|
asyncio_default_fixture_loop_scope = "function"
|
|
65
66
|
|
|
66
|
-
[tool.setuptools_scm]
|
|
67
|
-
write_to = "src/_version.py"
|
|
68
67
|
|
|
69
68
|
[tool.ruff]
|
|
70
69
|
exclude = [
|
|
@@ -7,7 +7,6 @@ __author__ = "Stephan Hügel"
|
|
|
7
7
|
__api_version__ = "3"
|
|
8
8
|
|
|
9
9
|
import copy
|
|
10
|
-
import datetime
|
|
11
10
|
import hashlib
|
|
12
11
|
import io
|
|
13
12
|
import json
|
|
@@ -33,7 +32,7 @@ from urllib.parse import (
|
|
|
33
32
|
import bibtexparser
|
|
34
33
|
import feedparser
|
|
35
34
|
import httpx
|
|
36
|
-
import
|
|
35
|
+
import whenever
|
|
37
36
|
from httpx import Request
|
|
38
37
|
|
|
39
38
|
import pyzotero as pz
|
|
@@ -361,6 +360,11 @@ class Zotero:
|
|
|
361
360
|
if c := self.client:
|
|
362
361
|
c.close()
|
|
363
362
|
|
|
363
|
+
@property
|
|
364
|
+
def __version__(self):
|
|
365
|
+
"""Return the version of the pyzotero library"""
|
|
366
|
+
return pz.__version__
|
|
367
|
+
|
|
364
368
|
def _check_for_component(self, url, component):
|
|
365
369
|
"""Check a url path query fragment for a specific query parameter"""
|
|
366
370
|
return bool(parse_qs(url).get(component))
|
|
@@ -419,13 +423,9 @@ class Zotero:
|
|
|
419
423
|
"""
|
|
420
424
|
# cache template and retrieval time for subsequent calls
|
|
421
425
|
try:
|
|
422
|
-
thetime =
|
|
423
|
-
tzinfo=pytz.timezone("GMT"),
|
|
424
|
-
)
|
|
426
|
+
thetime = whenever.ZonedDateTime.now("Europe/London").py_datetime()
|
|
425
427
|
except AttributeError:
|
|
426
|
-
thetime =
|
|
427
|
-
tzinfo=pytz.timezone("GMT"),
|
|
428
|
-
)
|
|
428
|
+
thetime = whenever.ZonedDateTime.now("Europe/London").py_datetime()
|
|
429
429
|
self.templates[key] = {"tmplt": response.json(), "updated": thetime}
|
|
430
430
|
return copy.deepcopy(response.json())
|
|
431
431
|
|
|
@@ -470,7 +470,7 @@ class Zotero:
|
|
|
470
470
|
params = {}
|
|
471
471
|
if not self.url_params:
|
|
472
472
|
self.url_params = {}
|
|
473
|
-
merged_params = params
|
|
473
|
+
merged_params = {**params, **self.url_params}
|
|
474
474
|
# our incoming url might be from the "links" dict, in which case it will contain url parameters.
|
|
475
475
|
# Unfortunately, httpx doesn't like to merge query paramaters in the url string and passed params
|
|
476
476
|
# so we strip the url params, combining them with our existing url_params
|
|
@@ -545,9 +545,7 @@ class Zotero:
|
|
|
545
545
|
# If the template is more than an hour old, try a 304
|
|
546
546
|
if (
|
|
547
547
|
abs(
|
|
548
|
-
|
|
549
|
-
tzinfo=pytz.timezone("GMT"),
|
|
550
|
-
)
|
|
548
|
+
whenever.ZonedDateTime.now("Europe/London").py_datetime()
|
|
551
549
|
- self.templates[template]["updated"],
|
|
552
550
|
).seconds
|
|
553
551
|
> ONE_HOUR
|
pyzotero-1.6.11/.coveragerc
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Found a bug in Pyzotero?
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: urschrei
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Note
|
|
11
|
-
This issue tracker is for bug reports. Please don't ask about how to use the library here – the docs are comprehensive and include examples: https://pyzotero.readthedocs.io.
|
|
12
|
-
|
|
13
|
-
You can also ask questions on the forum: https://forums.zotero.org/discussions
|
|
14
|
-
|
|
15
|
-
# Reporting Bugs
|
|
16
|
-
If at all possible, provide a [MVCE](https://stackoverflow.com/help/minimal-reproducible-example). If this is inappropriate (e.g. it's obviously a bug), just fill in the below:
|
|
17
|
-
|
|
18
|
-
Platform:
|
|
19
|
-
Python version:
|
|
20
|
-
Pyzotero version:
|
|
21
|
-
|
|
22
|
-
# Problem Description
|
|
23
|
-
- What were you trying to do?
|
|
24
|
-
- What API call did it involve
|
|
25
|
-
- What error was raised?
|
|
26
|
-
|
|
27
|
-
# More Details
|
|
28
|
-
If possible, paste the full traceback in a code block below, and fill in the summary
|
|
29
|
-
<details>
|
|
30
|
-
<summary>Traceback</summary>
|
|
31
|
-
|
|
32
|
-
code goes here, indented with four spaces
|
|
33
|
-
|
|
34
|
-
</details>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Usage question
|
|
3
|
-
about: How do I use the library and API?
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees:
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Note
|
|
11
|
-
This issue tracker is for **bug reports**. Please don't ask about how to use the library here – the docs are comprehensive and include examples: https://pyzotero.readthedocs.io.
|
|
12
|
-
|
|
13
|
-
You can also ask questions on the forum: https://forums.zotero.org/discussions
|
|
14
|
-
|
|
15
|
-
A guide to the Zotero API itself is here: https://www.zotero.org/support/dev/web_api/v3/start
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
version: 2
|
|
2
|
-
updates:
|
|
3
|
-
- package-ecosystem: "pip"
|
|
4
|
-
directory: "/"
|
|
5
|
-
schedule:
|
|
6
|
-
interval: "weekly"
|
|
7
|
-
open-pull-requests-limit: 20
|
|
8
|
-
groups:
|
|
9
|
-
# Specify a name for the group, which will be used in pull request titles
|
|
10
|
-
# and branch names
|
|
11
|
-
python-dependencies:
|
|
12
|
-
# Define patterns to include dependencies in the group (based on
|
|
13
|
-
# dependency name)
|
|
14
|
-
applies-to: version-updates # Applies the group rule to version updates
|
|
15
|
-
patterns:
|
|
16
|
-
- "*"
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<!-- Thanks for opening a PR. Please read the following:
|
|
2
|
-
|
|
3
|
-
- **Base your changes on the `main` branch**
|
|
4
|
-
- If necessary, rebase against `main` before opening a pull request
|
|
5
|
-
- This codebase uses Ruff. PRs that reformat code will not be accepted.
|
|
6
|
-
- Ensure that all methods added have a proper docstring. **Please do not use Doctest**
|
|
7
|
-
- If at all possible, don't add dependencies
|
|
8
|
-
- If it is unavoidable, you must ensure that the dependency is maintained, and supported
|
|
9
|
-
- Ensure that you add your dependency to [pyproject.toml](pyproject.toml)
|
|
10
|
-
- Run the tests and ensure that they pass. If you are adding a feature **you must add tests that exercise it**
|
|
11
|
-
- If your pull request is a feature **document the feature**
|
|
12
|
-
- One feature per pull request
|
|
13
|
-
- [squash](http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) your commits before opening a pull request unless it makes no sense to do so
|
|
14
|
-
- If in doubt, comment your code.
|
|
15
|
-
|
|
16
|
-
## License of Contributed Code
|
|
17
|
-
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed under the Blua Oak Model License 1.0, without any additional terms or conditions.
|
|
18
|
-
Please note that pull requests with licenses that are more restrictive than or otherwise incompatible with the license will not be accepted. -->
|
|
19
|
-
|
|
20
|
-
Description of changes:
|
|
21
|
-
Issue reference (if applicable):
|
|
22
|
-
|
|
23
|
-
- [ ] I have read [the CONTRIBUTING doc](CONTRIBUTING.md)
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
name: Build wheel, release and publish on new tag
|
|
2
|
-
|
|
3
|
-
on: [push, pull_request]
|
|
4
|
-
|
|
5
|
-
jobs:
|
|
6
|
-
lint:
|
|
7
|
-
name: run Ruff
|
|
8
|
-
runs-on: ubuntu-latest
|
|
9
|
-
steps:
|
|
10
|
-
- uses: actions/checkout@v4
|
|
11
|
-
with:
|
|
12
|
-
fetch-depth: 0 # Optional, use if you use setuptools_scm
|
|
13
|
-
submodules: false # Optional, use if you have submodules
|
|
14
|
-
name: Check out repo
|
|
15
|
-
- uses: astral-sh/ruff-action@v3
|
|
16
|
-
with:
|
|
17
|
-
args: "check --verbose"
|
|
18
|
-
|
|
19
|
-
build:
|
|
20
|
-
name: Build and test
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
strategy:
|
|
23
|
-
matrix:
|
|
24
|
-
python-version: [3.9, 3.10.9, 3.11, 3.12, 3.13]
|
|
25
|
-
|
|
26
|
-
steps:
|
|
27
|
-
- name: check out repo
|
|
28
|
-
uses: actions/checkout@v4
|
|
29
|
-
with:
|
|
30
|
-
fetch-depth: 0 # Optional, use if you use setuptools_scm
|
|
31
|
-
submodules: false # Optional, use if you have submodules
|
|
32
|
-
|
|
33
|
-
- name: Install uv and set the python version
|
|
34
|
-
uses: astral-sh/setup-uv@v5
|
|
35
|
-
with:
|
|
36
|
-
python-version: ${{ matrix.python-version }}
|
|
37
|
-
|
|
38
|
-
- name: Install the project and deps
|
|
39
|
-
run: uv sync --all-extras --dev
|
|
40
|
-
|
|
41
|
-
- name: Run tests
|
|
42
|
-
run: uv run pytest
|
|
43
|
-
|
|
44
|
-
- name: Build wheel
|
|
45
|
-
run: uv build --no-sources --wheel -o dist
|
|
46
|
-
|
|
47
|
-
- uses: actions/upload-artifact@v4
|
|
48
|
-
name: Upload wheel as artifact
|
|
49
|
-
with:
|
|
50
|
-
name: wheels-${{ strategy.job-index }}
|
|
51
|
-
path: |
|
|
52
|
-
./dist/*.whl
|
|
53
|
-
|
|
54
|
-
make_sdist:
|
|
55
|
-
name: Make SDist
|
|
56
|
-
runs-on: ubuntu-latest
|
|
57
|
-
steps:
|
|
58
|
-
- uses: actions/checkout@v4
|
|
59
|
-
with:
|
|
60
|
-
fetch-depth: 0 # Optional, use if you use setuptools_scm
|
|
61
|
-
submodules: true # Optional, use if you have submodules
|
|
62
|
-
|
|
63
|
-
- name: Install uv
|
|
64
|
-
uses: astral-sh/setup-uv@v5
|
|
65
|
-
|
|
66
|
-
- name: Build SDist
|
|
67
|
-
run: uv build --no-sources --sdist -o dist
|
|
68
|
-
|
|
69
|
-
- uses: actions/upload-artifact@v4
|
|
70
|
-
with:
|
|
71
|
-
path: dist/*.tar.gz
|
|
72
|
-
|
|
73
|
-
status_check:
|
|
74
|
-
name: All Checks
|
|
75
|
-
needs: [lint, build]
|
|
76
|
-
runs-on: ubuntu-latest
|
|
77
|
-
if: always()
|
|
78
|
-
steps:
|
|
79
|
-
- name: Check status
|
|
80
|
-
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
|
|
81
|
-
run: exit 1
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
release_artifacts:
|
|
85
|
-
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
|
|
86
|
-
name: Release repaired and tested wheels
|
|
87
|
-
needs: [status_check, make_sdist]
|
|
88
|
-
runs-on: ubuntu-latest
|
|
89
|
-
environment: release
|
|
90
|
-
permissions:
|
|
91
|
-
# IMPORTANT: this permission is mandatory for trusted publishing
|
|
92
|
-
id-token: write
|
|
93
|
-
contents: write
|
|
94
|
-
|
|
95
|
-
steps:
|
|
96
|
-
- uses: actions/checkout@v4
|
|
97
|
-
|
|
98
|
-
- name: Download compressed artifacts
|
|
99
|
-
id: download
|
|
100
|
-
uses: actions/download-artifact@v4
|
|
101
|
-
with:
|
|
102
|
-
path: ./artifacts
|
|
103
|
-
merge-multiple: true
|
|
104
|
-
|
|
105
|
-
- name: Create release and upload wheels
|
|
106
|
-
uses: ncipollo/release-action@v1
|
|
107
|
-
with:
|
|
108
|
-
allowUpdates: true
|
|
109
|
-
artifacts: "${{ steps.download.outputs.download-path }}/*.whl,${{ steps.download.outputs.download-path }}/*.gz,${{ steps.download.outputs.download-path }}/*.so,${{ steps.download.outputs.download-path }}/*.dylib,${{ steps.download.outputs.download-path }}/*.lib,${{ steps.download.outputs.download-path }}/*.dll"
|
|
110
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
111
|
-
|
|
112
|
-
- name: PyPI Publish
|
|
113
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
114
|
-
with:
|
|
115
|
-
packages-dir: ${{ steps.download.outputs.download-path }}
|
pyzotero-1.6.11/.gitignore
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# .readthedocs.yaml
|
|
2
|
-
# Read the Docs configuration file
|
|
3
|
-
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
4
|
-
|
|
5
|
-
# Required
|
|
6
|
-
version: 2
|
|
7
|
-
|
|
8
|
-
# Set the version of Python and other tools you might need
|
|
9
|
-
build:
|
|
10
|
-
os: ubuntu-22.04
|
|
11
|
-
tools:
|
|
12
|
-
python: "3.11"
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
post_create_environment:
|
|
16
|
-
- python -m pip install sphinx_rtd_theme
|
|
17
|
-
|
|
18
|
-
python:
|
|
19
|
-
install:
|
|
20
|
-
- method: pip
|
|
21
|
-
path: .
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
# Build documentation in the docs/ directory with Sphinx
|
|
25
|
-
sphinx:
|
|
26
|
-
configuration: doc/conf.py
|
pyzotero-1.6.11/AUTHORS
DELETED
pyzotero-1.6.11/CITATION.cff
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
cff-version: 1.1.0
|
|
2
|
-
message: "If you use this software, please cite it using these metadata."
|
|
3
|
-
abstract: "Pyzotero: a Python client for the Zotero API"
|
|
4
|
-
authors:
|
|
5
|
-
-
|
|
6
|
-
family-names: "Hügel"
|
|
7
|
-
given-names: Stephan
|
|
8
|
-
orcid: "https://orcid.org/0000-0003-4379-2450"
|
|
9
|
-
title: "Pyzotero"
|
|
10
|
-
date-released: 2019-05-18
|
|
11
|
-
doi: "10.5281/zenodo.2917290"
|
|
12
|
-
keywords:
|
|
13
|
-
- zotero
|
|
14
|
-
license: BlueOak-1.0.0
|
|
15
|
-
repository-code: "https://github.com/urschrei/pyzotero"
|
|
16
|
-
version: "1.3.15"
|
pyzotero-1.6.11/CONTRIBUTING.md
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
Contributions are welcome. Please bear the following in mind:
|
|
3
|
-
|
|
4
|
-
- **Base your changes on the `main` branch**
|
|
5
|
-
- If necessary, rebase against `main` before opening a pull request
|
|
6
|
-
- This codebase uses Ruff, and PRs are gated on `ruff check` passing. Run `ruff check` locally before opening a PR
|
|
7
|
-
- PRs that reformat code will not be accepted.
|
|
8
|
-
- Ensure that all methods added have a proper docstring. **Please do not use Doctest**
|
|
9
|
-
- If at all possible, don't add dependencies
|
|
10
|
-
- If it is unavoidable, you must ensure that the dependency is maintained, and supported
|
|
11
|
-
- Ensure that you add your dependency to [pyproject.toml](pyproject.toml)
|
|
12
|
-
- Run the tests and ensure that they pass. If you are adding a feature **you must add tests that exercise it**
|
|
13
|
-
- If your pull request is a feature **document the feature**
|
|
14
|
-
- One feature per pull request
|
|
15
|
-
- [squash](http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) your commits before opening a pull request unless it makes no sense to do so
|
|
16
|
-
- If in doubt, comment your code.
|
|
17
|
-
|
|
18
|
-
# License of Contributed Code
|
|
19
|
-
Contributions are licensed under the Blue Oak Contributor Licence 1.0.0. See below
|
|
20
|
-
|
|
21
|
-
# Blue Oak Contributor License
|
|
22
|
-
|
|
23
|
-
Version 1.0.0
|
|
24
|
-
|
|
25
|
-
## Purpose
|
|
26
|
-
|
|
27
|
-
This license gives the steward of a software project
|
|
28
|
-
the legal rights and assurances it needs to accept
|
|
29
|
-
contributions covered by intellectual property rights.
|
|
30
|
-
|
|
31
|
-
## Copyright
|
|
32
|
-
|
|
33
|
-
The contributor licenses the steward to do everything with
|
|
34
|
-
their contributions that would otherwise infringe their
|
|
35
|
-
copyrights in them.
|
|
36
|
-
|
|
37
|
-
## Patent
|
|
38
|
-
|
|
39
|
-
The contributor licenses the steward to do everything with
|
|
40
|
-
their contributions that would otherwise infringe any patent
|
|
41
|
-
claims they can license or become able to license.
|
|
42
|
-
|
|
43
|
-
## Sublicensing
|
|
44
|
-
|
|
45
|
-
The steward can license the contributions to others in
|
|
46
|
-
turn, under whatever terms it chooses.
|
|
47
|
-
|
|
48
|
-
## Reliability
|
|
49
|
-
|
|
50
|
-
The contributor cannot revoke this license.
|
|
51
|
-
|
|
52
|
-
## Termination
|
|
53
|
-
|
|
54
|
-
The contributor can stop this license from covering
|
|
55
|
-
contributions submitted in the future by writing the steward
|
|
56
|
-
through one of the channels it uses to receive contributions.
|
|
57
|
-
Contributions the contributor submitted before remain under
|
|
58
|
-
this license.
|
|
59
|
-
|
|
60
|
-
## Awareness
|
|
61
|
-
|
|
62
|
-
The contributor is aware that because of legal rules and
|
|
63
|
-
contracts, they may need to get someone else's permission to
|
|
64
|
-
submit contributions, even of their own work. For example,
|
|
65
|
-
"work made for hire" rules can make employers and clients
|
|
66
|
-
the owners of copyrights in the contributor's work.
|
|
67
|
-
Contracts with clients, or to form new companies, may make
|
|
68
|
-
them the owners of copyrights in the contributor's work.
|
|
69
|
-
|
|
70
|
-
## Rights
|
|
71
|
-
|
|
72
|
-
All work in contributions the contributor submits for
|
|
73
|
-
inclusion in the project will be either:
|
|
74
|
-
|
|
75
|
-
- their own work, which they own the copyrights in or
|
|
76
|
-
have permission to submit
|
|
77
|
-
|
|
78
|
-
- work licensed by others under permissive license
|
|
79
|
-
terms that Blue Oak Council rates "bronze" or better at
|
|
80
|
-
<https://blueoakcouncil.org/list>
|
|
81
|
-
|
|
82
|
-
## Notices
|
|
83
|
-
|
|
84
|
-
The contributor promises to copy copyright notices,
|
|
85
|
-
license terms, and other licensing-related notices for
|
|
86
|
-
work licensed by others in their contributions, so the
|
|
87
|
-
steward can tell what work is licensed by others under
|
|
88
|
-
what terms and follow their notice requirements.
|
|
89
|
-
|
|
90
|
-
## No Liability
|
|
91
|
-
|
|
92
|
-
***As far as the law allows, contributions under this
|
|
93
|
-
license come as is, without any warranty or condition,
|
|
94
|
-
except those under "Rights" above.***
|
|
95
|
-
|
|
96
|
-
***As far as the law allows, the contributor will not be
|
|
97
|
-
liable to anyone for any damages related to contributions
|
|
98
|
-
under this license, under any kind of legal claim, except
|
|
99
|
-
for claims under "Rights" above.***
|
|
100
|
-
|
pyzotero-1.6.11/CONTRIBUTORS.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# This is the list of people (as distinct from [AUTHORS](AUTHORS)) who have contributed code to Pyzotero.
|
|
2
|
-
|
|
3
|
-
| **Commits** | **Contributor**<br/> |
|
|
4
|
-
| --- |--- |
|
|
5
|
-
| 13 | [TruePath](https://github.com/urschrei/pyzotero/commits?author=TruePath) |
|
|
6
|
-
| 5 | [patrickfournier](https://github.com/urschrei/pyzotero/commits?author=patrickfournier) |
|
|
7
|
-
| 3 | [davidlesieur](https://github.com/urschrei/pyzotero/commits?author=davidlesieur) |
|
|
8
|
-
| 2 | [ptgolden](https://github.com/urschrei/pyzotero/commits?author=ptgolden) |
|
|
9
|
-
| 2 | [bemuzie](https://github.com/urschrei/pyzotero/commits?author=bemuzie) |
|
|
10
|
-
| 2 | [skybristol](https://github.com/urschrei/pyzotero/commits?author=skybristol) |
|
|
11
|
-
| 1 | [akx](https://github.com/urschrei/pyzotero/commits?author=akx) |
|
|
12
|
-
| 1 | [alee](https://github.com/urschrei/pyzotero/commits?author=alee) |
|
|
13
|
-
| 1 | [avram](https://github.com/urschrei/pyzotero/commits?author=avram) |
|
|
14
|
-
| 1 | [christianbrodbeck](https://github.com/urschrei/pyzotero/commits?author=christianbrodbeck) |
|
|
15
|
-
| 1 | [egh](https://github.com/urschrei/pyzotero/commits?author=egh) |
|
|
16
|
-
| 1 | [fmagin](https://github.com/urschrei/pyzotero/commits?author=fmagin) |
|
|
17
|
-
| 1 | [pnb](https://github.com/urschrei/pyzotero/commits?author=pnb) |
|
|
18
|
-
| 1 | [porduna](https://github.com/urschrei/pyzotero/commits?author=porduna) |
|
|
19
|
-
| 1 | [stakats](https://github.com/urschrei/pyzotero/commits?author=stakats) |
|
|
20
|
-
| 1 | [epistemery](https://github.com/urschrei/pyzotero/commits?author=epistemery) |
|
|
21
|
-
| 1 | [tnajdek](https://github.com/urschrei/pyzotero/commits?author=tnajdek) |
|
|
22
|
-
| 1 | [jghauser](https://github.com/urschrei/pyzotero/commits?author=jghauser) |
|
pyzotero-1.6.11/__init__.py
DELETED
|
File without changes
|