taskcluster 91.0.1__tar.gz → 96.0.0__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.
- taskcluster-96.0.0/.gitignore +84 -0
- taskcluster-96.0.0/CODE_OF_CONDUCT.md +15 -0
- taskcluster-96.0.0/CONTRIBUTING.md +27 -0
- taskcluster-96.0.0/Makefile +44 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/PKG-INFO +20 -34
- taskcluster-96.0.0/lint.sh +12 -0
- taskcluster-96.0.0/pyproject.toml +96 -0
- taskcluster-96.0.0/release.sh +36 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/__init__.py +8 -5
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/__init__.py +5 -3
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/asyncclient.py +92 -86
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/asyncutils.py +50 -32
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/download.py +63 -32
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/reader_writer.py +5 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/retry.py +3 -3
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/upload.py +45 -21
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/client.py +266 -227
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/download.py +5 -1
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/exceptions.py +32 -7
- taskcluster-96.0.0/taskcluster/generated/_client_importer.py +19 -0
- taskcluster-96.0.0/taskcluster/generated/aio/_client_importer.py +19 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/auth.py +269 -241
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/authevents.py +56 -48
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/github.py +99 -101
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/githubevents.py +77 -69
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/hooks.py +125 -111
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/hooksevents.py +38 -30
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/index.py +91 -79
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/notify.py +89 -77
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/notifyevents.py +29 -21
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/object.py +71 -63
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/purgecache.py +63 -53
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/queue.py +469 -345
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/queueevents.py +343 -213
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/secrets.py +64 -56
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/workermanager.py +259 -192
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/workermanagerevents.py +230 -222
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/auth.py +239 -231
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/authevents.py +56 -48
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/github.py +96 -100
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/githubevents.py +77 -69
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/hooks.py +116 -108
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/hooksevents.py +38 -30
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/index.py +85 -77
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/notify.py +86 -76
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/notifyevents.py +29 -21
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/object.py +71 -63
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/purgecache.py +60 -52
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/queue.py +422 -330
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/queueevents.py +343 -213
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/secrets.py +64 -56
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/workermanager.py +229 -182
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/workermanagerevents.py +230 -222
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/helper.py +27 -22
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/retry.py +2 -2
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/upload.py +2 -1
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/utils.py +105 -88
- taskcluster-96.0.0/test/aio/__init__.py +0 -0
- taskcluster-96.0.0/test/aio/test_client.py +63 -0
- taskcluster-96.0.0/test/aio/test_reader_writer.py +83 -0
- taskcluster-96.0.0/test/aio/test_upload_download.py +417 -0
- taskcluster-96.0.0/test/aio/test_upload_download_real.py +166 -0
- taskcluster-96.0.0/test/base.py +105 -0
- taskcluster-96.0.0/test/conftest.py +22 -0
- taskcluster-96.0.0/test/public.key +30 -0
- taskcluster-96.0.0/test/secret.key +57 -0
- taskcluster-96.0.0/test/test_client.py +1118 -0
- taskcluster-96.0.0/test/test_exceptions.py +37 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/test/test_imports.py +1 -2
- {taskcluster-91.0.1 → taskcluster-96.0.0}/test/test_upload_download.py +69 -58
- {taskcluster-91.0.1 → taskcluster-96.0.0}/test/test_upload_download_real.py +34 -29
- taskcluster-96.0.0/test/test_utils.py +518 -0
- taskcluster-96.0.0/test.sh +3 -0
- taskcluster-96.0.0/uv.lock +1923 -0
- taskcluster-91.0.1/setup.cfg +0 -11
- taskcluster-91.0.1/setup.py +0 -98
- taskcluster-91.0.1/taskcluster/generated/_client_importer.py +0 -20
- taskcluster-91.0.1/taskcluster/generated/aio/_client_importer.py +0 -20
- taskcluster-91.0.1/taskcluster.egg-info/PKG-INFO +0 -593
- taskcluster-91.0.1/taskcluster.egg-info/SOURCES.txt +0 -102
- taskcluster-91.0.1/taskcluster.egg-info/dependency_links.txt +0 -1
- taskcluster-91.0.1/taskcluster.egg-info/not-zip-safe +0 -1
- taskcluster-91.0.1/taskcluster.egg-info/requires.txt +0 -23
- taskcluster-91.0.1/taskcluster.egg-info/top_level.txt +0 -1
- taskcluster-91.0.1/test/test_client.py +0 -1031
- taskcluster-91.0.1/test/test_utils.py +0 -434
- {taskcluster-91.0.1 → taskcluster-96.0.0}/LICENSE +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/README.md +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/auth.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/authevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/awsprovisioner.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/ec2manager.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/github.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/githubevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/hooks.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/hooksevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/index.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/login.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/notify.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/notifyevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/purgecache.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/queue.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/queueevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/secrets.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/workermanager.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/aio/workermanagerevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/auth.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/authevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/awsprovisioner.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/ec2manager.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/__init__.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/generated/aio/__init__.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/github.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/githubevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/hooks.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/hooksevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/index.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/login.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/notify.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/notifyevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/purgecache.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/queue.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/queueevents.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/secrets.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/workermanager.py +0 -0
- {taskcluster-91.0.1 → taskcluster-96.0.0}/taskcluster/workermanagerevents.py +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# This project's things
|
|
2
|
+
docs/client.rst
|
|
3
|
+
env-*
|
|
4
|
+
*.tar.gz
|
|
5
|
+
*.tar.bz2
|
|
6
|
+
*.tar
|
|
7
|
+
*.tar.xz
|
|
8
|
+
|
|
9
|
+
# Vim
|
|
10
|
+
[._]*.s[a-w][a-z]
|
|
11
|
+
[._]s[a-w][a-z]
|
|
12
|
+
*.un~
|
|
13
|
+
Session.vim
|
|
14
|
+
.netrwhist
|
|
15
|
+
*~
|
|
16
|
+
|
|
17
|
+
# Node downloads
|
|
18
|
+
node-v*/
|
|
19
|
+
node_modules/
|
|
20
|
+
|
|
21
|
+
# Byte-compiled / optimized / DLL files
|
|
22
|
+
__pycache__/
|
|
23
|
+
*.py[cod]
|
|
24
|
+
*$py.class
|
|
25
|
+
|
|
26
|
+
# C extensions
|
|
27
|
+
*.so
|
|
28
|
+
|
|
29
|
+
# Distribution / packaging
|
|
30
|
+
.Python
|
|
31
|
+
env/
|
|
32
|
+
build/
|
|
33
|
+
develop-eggs/
|
|
34
|
+
dist/
|
|
35
|
+
downloads/
|
|
36
|
+
eggs/
|
|
37
|
+
lib/
|
|
38
|
+
lib64/
|
|
39
|
+
parts/
|
|
40
|
+
sdist/
|
|
41
|
+
var/
|
|
42
|
+
*.egg-info/
|
|
43
|
+
.installed.cfg
|
|
44
|
+
*.egg
|
|
45
|
+
.eggs/
|
|
46
|
+
|
|
47
|
+
# PyInstaller
|
|
48
|
+
# Usually these files are written by a python script from a template
|
|
49
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
50
|
+
*.manifest
|
|
51
|
+
*.spec
|
|
52
|
+
|
|
53
|
+
# Installer logs
|
|
54
|
+
pip-log.txt
|
|
55
|
+
pip-delete-this-directory.txt
|
|
56
|
+
|
|
57
|
+
# Unit test / coverage reports
|
|
58
|
+
htmlcov/
|
|
59
|
+
.venv/
|
|
60
|
+
.coverage
|
|
61
|
+
.cache
|
|
62
|
+
nosetests.xml
|
|
63
|
+
coverage.xml
|
|
64
|
+
.pytest_cache/
|
|
65
|
+
|
|
66
|
+
# Translations
|
|
67
|
+
*.mo
|
|
68
|
+
*.pot
|
|
69
|
+
|
|
70
|
+
# Django stuff:
|
|
71
|
+
*.log
|
|
72
|
+
|
|
73
|
+
# Sphinx documentation
|
|
74
|
+
docs/_build/
|
|
75
|
+
|
|
76
|
+
# PyBuilder
|
|
77
|
+
target/
|
|
78
|
+
# hypothesis cache
|
|
79
|
+
.hypothesis/
|
|
80
|
+
|
|
81
|
+
# vim's python-mode plugin
|
|
82
|
+
.ropeproject
|
|
83
|
+
|
|
84
|
+
.release/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Community Participation Guidelines
|
|
2
|
+
|
|
3
|
+
This repository is governed by Mozilla's code of conduct and etiquette guidelines.
|
|
4
|
+
For more details, please read the
|
|
5
|
+
[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
|
|
6
|
+
|
|
7
|
+
## How to Report
|
|
8
|
+
For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page.
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
## Project Specific Etiquette
|
|
12
|
+
|
|
13
|
+
In some cases, there will be additional project etiquette i.e.: (https://bugzilla.mozilla.org/page.cgi?id=etiquette.html).
|
|
14
|
+
Please update for your project.
|
|
15
|
+
-->
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# How to Contribute
|
|
2
|
+
|
|
3
|
+
We welcome pull requests from everyone. We do expect everyone to adhere to the [Mozilla Community Participation Guidelines][participation].
|
|
4
|
+
|
|
5
|
+
If you're trying to figure out what to work on, here are some places to find suitable projects:
|
|
6
|
+
* [Good first bugs][goodfirstbug]: these are scoped to make it easy for first-time contributors to get their feet wet with Taskcluster code.
|
|
7
|
+
* [Mentored bugs][bugsahoy]: these are slightly more involved projects that may require insight or guidance from someone on the Taskcluster team.
|
|
8
|
+
* [Full list of open issues][issues]: everything else
|
|
9
|
+
|
|
10
|
+
If the project you're interested in working on isn't covered by a bug or issue, or you're unsure about how to proceed on an existing issue, it's a good idea to talk to someone on the Taskcluster team before you go too far down a particular path. You can find us in the #taskcluster channel on [Mozilla's IRC server][irc] to discuss. You can also simply add a comment to the issue or bug.
|
|
11
|
+
|
|
12
|
+
Once you've found an issue to work on and written a patch, submit a pull request. Some things that will increase the chance that your pull request is accepted:
|
|
13
|
+
|
|
14
|
+
* Follow our [best practices][bestpractices].
|
|
15
|
+
* This includes [writing or updating tests][testing].
|
|
16
|
+
* Write a [good commit message][commit].
|
|
17
|
+
|
|
18
|
+
Welcome to the team!
|
|
19
|
+
|
|
20
|
+
[participation]: https://www.mozilla.org/en-US/about/governance/policies/participation/
|
|
21
|
+
[issues]: ../../issues
|
|
22
|
+
[bugsahoy]: https://www.joshmatthews.net/bugsahoy/?taskcluster=1
|
|
23
|
+
[goodfirstbug]: http://www.joshmatthews.net/bugsahoy/?taskcluster=1&simple=1
|
|
24
|
+
[irc]: https://wiki.mozilla.org/IRC
|
|
25
|
+
[bestpractices]: https://docs.taskcluster.net/docs/manual/design/devel/best-practices
|
|
26
|
+
[testing]: https://docs.taskcluster.net/docs/manual/design/devel/best-practices/testing
|
|
27
|
+
[commit]: https://docs.taskcluster.net/docs/manual/design/devel/best-practices/commits
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
VENV := .venv
|
|
2
|
+
PYTHON := $(VENV)/bin/python
|
|
3
|
+
APIS_JSON=$(PWD)/apis.json
|
|
4
|
+
UV := $(shell which uv)
|
|
5
|
+
|
|
6
|
+
.PHONY: test
|
|
7
|
+
test: devel
|
|
8
|
+
$(UV) run pytest
|
|
9
|
+
|
|
10
|
+
.PHONY: lint
|
|
11
|
+
lint: devel
|
|
12
|
+
$(UV) run ruff check taskcluster test
|
|
13
|
+
|
|
14
|
+
.PHONY: format
|
|
15
|
+
format: devel
|
|
16
|
+
$(UV) run ruff format taskcluster test
|
|
17
|
+
|
|
18
|
+
.PHONY: update
|
|
19
|
+
update: docs
|
|
20
|
+
|
|
21
|
+
.PHONY: clean
|
|
22
|
+
clean:
|
|
23
|
+
rm -rf .venv htmlcov .coverage nosetests.xml
|
|
24
|
+
rm -rf *.egg *.egg-info .eggs/ dist/ build/
|
|
25
|
+
find . -name "*.py?" -exec rm {} +
|
|
26
|
+
find . -type d -name __pycache__ -exec rm -rf {} +
|
|
27
|
+
find . -type d -name .hypothesis -exec rm -rf {} +
|
|
28
|
+
|
|
29
|
+
.PHONY: docs
|
|
30
|
+
docs: devel
|
|
31
|
+
$(UV) run --with grip grip --export README.md
|
|
32
|
+
@echo "Now, upload README.html wherever docs go!"
|
|
33
|
+
|
|
34
|
+
.PHONY: devel
|
|
35
|
+
devel:
|
|
36
|
+
@if ! command -v uv >/dev/null 2>&1; then \
|
|
37
|
+
echo "uv not found, installing..."; \
|
|
38
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh; \
|
|
39
|
+
fi
|
|
40
|
+
$(UV) sync --all-extras
|
|
41
|
+
|
|
42
|
+
.PHONY: install
|
|
43
|
+
install:
|
|
44
|
+
$(UV) pip install -e .
|
|
@@ -1,49 +1,35 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taskcluster
|
|
3
|
-
Version:
|
|
3
|
+
Version: 96.0.0
|
|
4
4
|
Summary: Python client for Taskcluster
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Project-URL: Homepage, https://github.com/taskcluster/taskcluster
|
|
6
|
+
Project-URL: Repository, https://github.com/taskcluster/taskcluster
|
|
7
|
+
Project-URL: Documentation, https://docs.taskcluster.net
|
|
8
|
+
Project-URL: Changelog, https://github.com/taskcluster/taskcluster/blob/main/CHANGELOG.md
|
|
9
|
+
Project-URL: Issues, https://github.com/taskcluster/taskcluster/issues
|
|
10
|
+
Author-email: Mozilla Taskcluster and Release Engineering <release+python@mozilla.com>
|
|
11
|
+
License: MPL-2.0
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: api,client,taskcluster
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
17
|
Classifier: Programming Language :: Python :: 3.9
|
|
9
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
10
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Requires-
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: aiohttp>=3.7.4
|
|
26
|
+
Requires-Dist: async-timeout>=2.0.0
|
|
16
27
|
Requires-Dist: mohawk>=0.3.4
|
|
17
28
|
Requires-Dist: python-dateutil>=2.8.2
|
|
29
|
+
Requires-Dist: requests>=2.4.3
|
|
18
30
|
Requires-Dist: slugid>=2
|
|
19
31
|
Requires-Dist: taskcluster-urls>=12.1.0
|
|
20
|
-
|
|
21
|
-
Requires-Dist: async_timeout>=2.0.0
|
|
22
|
-
Provides-Extra: test
|
|
23
|
-
Requires-Dist: pytest; extra == "test"
|
|
24
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
25
|
-
Requires-Dist: pytest-mock; extra == "test"
|
|
26
|
-
Requires-Dist: pytest-asyncio; extra == "test"
|
|
27
|
-
Requires-Dist: httmock; extra == "test"
|
|
28
|
-
Requires-Dist: mock; extra == "test"
|
|
29
|
-
Requires-Dist: setuptools-lint; extra == "test"
|
|
30
|
-
Requires-Dist: flake8; extra == "test"
|
|
31
|
-
Requires-Dist: psutil; extra == "test"
|
|
32
|
-
Requires-Dist: hypothesis; extra == "test"
|
|
33
|
-
Requires-Dist: tox; extra == "test"
|
|
34
|
-
Requires-Dist: coverage; extra == "test"
|
|
35
|
-
Requires-Dist: aiofiles; extra == "test"
|
|
36
|
-
Requires-Dist: httptest; extra == "test"
|
|
37
|
-
Dynamic: author
|
|
38
|
-
Dynamic: author-email
|
|
39
|
-
Dynamic: classifier
|
|
40
|
-
Dynamic: description
|
|
41
|
-
Dynamic: description-content-type
|
|
42
|
-
Dynamic: home-page
|
|
43
|
-
Dynamic: license-file
|
|
44
|
-
Dynamic: provides-extra
|
|
45
|
-
Dynamic: requires-dist
|
|
46
|
-
Dynamic: summary
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
47
33
|
|
|
48
34
|
# Taskcluster Client for Python
|
|
49
35
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
# Lint using ruff
|
|
4
|
+
# Note: Generated files have special rules applied
|
|
5
|
+
|
|
6
|
+
echo "Running ruff check..."
|
|
7
|
+
uv run ruff check taskcluster test
|
|
8
|
+
|
|
9
|
+
echo "Running ruff format check..."
|
|
10
|
+
uv run ruff format --check taskcluster test
|
|
11
|
+
|
|
12
|
+
echo "Linting complete!"
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "taskcluster"
|
|
7
|
+
version = "96.0.0"
|
|
8
|
+
description = "Python client for Taskcluster"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = {text = "MPL-2.0"}
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Mozilla Taskcluster and Release Engineering", email = "release+python@mozilla.com"},
|
|
14
|
+
]
|
|
15
|
+
keywords = ["taskcluster", "api", "client"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.9",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Programming Language :: Python :: 3.14",
|
|
24
|
+
"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
dependencies = [
|
|
30
|
+
"requests>=2.4.3",
|
|
31
|
+
"mohawk>=0.3.4",
|
|
32
|
+
"python-dateutil>=2.8.2",
|
|
33
|
+
"slugid>=2",
|
|
34
|
+
"taskcluster-urls>=12.1.0",
|
|
35
|
+
"aiohttp>=3.7.4",
|
|
36
|
+
"async_timeout>=2.0.0",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
[dependency-groups]
|
|
40
|
+
dev = [
|
|
41
|
+
"pytest",
|
|
42
|
+
"pytest-cov",
|
|
43
|
+
"pytest-mock",
|
|
44
|
+
"pytest-asyncio",
|
|
45
|
+
"httmock",
|
|
46
|
+
"mock",
|
|
47
|
+
"flake8",
|
|
48
|
+
"psutil",
|
|
49
|
+
"hypothesis",
|
|
50
|
+
"coverage",
|
|
51
|
+
"aiofiles",
|
|
52
|
+
"httptest",
|
|
53
|
+
"ruff",
|
|
54
|
+
"grip",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[project.urls]
|
|
58
|
+
Homepage = "https://github.com/taskcluster/taskcluster"
|
|
59
|
+
Repository = "https://github.com/taskcluster/taskcluster"
|
|
60
|
+
Documentation = "https://docs.taskcluster.net"
|
|
61
|
+
Changelog = "https://github.com/taskcluster/taskcluster/blob/main/CHANGELOG.md"
|
|
62
|
+
Issues = "https://github.com/taskcluster/taskcluster/issues"
|
|
63
|
+
|
|
64
|
+
[tool.hatch.build.targets.wheel]
|
|
65
|
+
packages = ["taskcluster"]
|
|
66
|
+
|
|
67
|
+
[tool.pytest.ini_options]
|
|
68
|
+
addopts = "--tb=native"
|
|
69
|
+
testpaths = ["test"]
|
|
70
|
+
|
|
71
|
+
[tool.coverage.run]
|
|
72
|
+
source = ["taskcluster"]
|
|
73
|
+
branch = true
|
|
74
|
+
|
|
75
|
+
[tool.coverage.report]
|
|
76
|
+
show_missing = true
|
|
77
|
+
skip_covered = false
|
|
78
|
+
|
|
79
|
+
[tool.ruff]
|
|
80
|
+
line-length = 88
|
|
81
|
+
target-version = "py39"
|
|
82
|
+
|
|
83
|
+
[tool.ruff.lint]
|
|
84
|
+
select = [
|
|
85
|
+
"E", # pycodestyle errors
|
|
86
|
+
"W", # pycodestyle warnings
|
|
87
|
+
"F", # pyflakes
|
|
88
|
+
"I", # isort
|
|
89
|
+
"UP", # pyupgrade
|
|
90
|
+
]
|
|
91
|
+
ignore = [
|
|
92
|
+
"E501", # line too long (handled by formatter)
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
[tool.ruff.lint.isort]
|
|
96
|
+
known-first-party = ["taskcluster"]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script is used to generate releases of the python taskcluster client in
|
|
4
|
+
# a uniform way and upload it to pypi. It should be the only way that releases
|
|
5
|
+
# are created.
|
|
6
|
+
|
|
7
|
+
# Note that the VERSION in pyproject.toml should be updated before release!
|
|
8
|
+
|
|
9
|
+
REPOSITORY_URL=https://test.pypi.org/legacy/
|
|
10
|
+
if [ "$1" = "--real" ]; then
|
|
11
|
+
REPOSITORY_URL=https://upload.pypi.org/legacy/
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# step into directory containing this script
|
|
15
|
+
cd "$(dirname "${0}")"
|
|
16
|
+
|
|
17
|
+
# exit in case of bad exit code
|
|
18
|
+
set -e
|
|
19
|
+
|
|
20
|
+
# begin making the distribution
|
|
21
|
+
rm -rf dist/
|
|
22
|
+
rm -rf build/
|
|
23
|
+
|
|
24
|
+
# Build and publish using uv
|
|
25
|
+
# Install uv if not already available
|
|
26
|
+
if ! command -v uv &> /dev/null; then
|
|
27
|
+
echo "uv not found, installing..."
|
|
28
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
29
|
+
source $HOME/.local/bin/env
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Build the package using uv
|
|
33
|
+
uv build
|
|
34
|
+
|
|
35
|
+
# Publish to PyPI using uv
|
|
36
|
+
uv publish --publish-url $REPOSITORY_URL
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
"""
|
|
2
|
-
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
1
|
+
"""Python client for Taskcluster"""
|
|
3
2
|
|
|
4
3
|
import logging
|
|
5
4
|
import os
|
|
6
|
-
|
|
7
|
-
from .client import createTemporaryCredentials # NOQA
|
|
8
|
-
from taskcluster.utils import * # NOQA
|
|
5
|
+
|
|
9
6
|
from taskcluster.exceptions import * # NOQA
|
|
10
7
|
from taskcluster.generated._client_importer import * # NOQA
|
|
8
|
+
from taskcluster.utils import * # NOQA
|
|
9
|
+
|
|
10
|
+
from .client import (
|
|
11
|
+
createSession, # NOQA
|
|
12
|
+
createTemporaryCredentials, # NOQA
|
|
13
|
+
)
|
|
11
14
|
|
|
12
15
|
log = logging.getLogger(__name__)
|
|
13
16
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Python client for Taskcluster"""
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
|
-
|
|
6
|
-
from taskcluster.utils import * # NOQA
|
|
5
|
+
|
|
7
6
|
from taskcluster.exceptions import * # NOQA
|
|
7
|
+
from taskcluster.utils import * # NOQA
|
|
8
|
+
|
|
8
9
|
from ..generated.aio._client_importer import * # NOQA
|
|
10
|
+
from .asyncclient import createSession # NOQA
|
|
9
11
|
|
|
10
12
|
log = logging.getLogger(__name__)
|
|
11
13
|
|