vws-python 2025.3.10.1__tar.gz → 2026.2.21__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.
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.github/workflows/ci.yml +19 -11
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.github/workflows/dependabot-merge.yml +0 -1
- vws_python-2026.2.21/.github/workflows/lint.yml +59 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.github/workflows/release.yml +12 -6
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.pre-commit-config.yaml +142 -48
- vws_python-2026.2.21/.prettierrc +11 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/CHANGELOG.rst +10 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/LICENSE +7 -5
- vws_python-2026.2.21/PKG-INFO +146 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/README.rst +1 -3
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/conftest.py +5 -9
- vws_python-2026.2.21/docs/source/__init__.py +1 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/api-reference.rst +4 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/conf.py +4 -3
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/contributing.rst +7 -7
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/index.rst +3 -3
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/pyproject.toml +138 -147
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/spelling_private_dict.txt +2 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/__init__.py +3 -3
- vws_python-2026.2.21/src/vws/_vws_request.py +85 -0
- vws_python-2026.2.21/src/vws/exceptions/__init__.py +1 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/exceptions/base_exceptions.py +5 -10
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/exceptions/cloud_reco_exceptions.py +7 -10
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/exceptions/custom_exceptions.py +9 -17
- vws_python-2026.2.21/src/vws/exceptions/vws_exceptions.py +204 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/include_target_data.py +1 -3
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/query.py +15 -14
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/reports.py +2 -6
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/response.py +3 -6
- vws_python-2026.2.21/src/vws/vumark_accept.py +18 -0
- vws_python-2026.2.21/src/vws/vumark_service.py +143 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/vws.py +39 -101
- vws_python-2026.2.21/src/vws_python.egg-info/PKG-INFO +146 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws_python.egg-info/SOURCES.txt +5 -3
- vws_python-2026.2.21/src/vws_python.egg-info/requires.txt +51 -0
- vws_python-2026.2.21/tests/__init__.py +1 -0
- vws_python-2026.2.21/tests/conftest.py +96 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/tests/test_cloud_reco_exceptions.py +13 -12
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/tests/test_query.py +126 -36
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/tests/test_vws.py +194 -84
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/tests/test_vws_exceptions.py +100 -30
- vws_python-2026.2.21/zizmor.yml +12 -0
- vws_python-2025.3.10.1/.github/workflows/lint.yml +0 -43
- vws_python-2025.3.10.1/Makefile +0 -12
- vws_python-2025.3.10.1/PKG-INFO +0 -162
- vws_python-2025.3.10.1/codecov.yaml +0 -7
- vws_python-2025.3.10.1/docs/Makefile +0 -20
- vws_python-2025.3.10.1/docs/source/__init__.py +0 -3
- vws_python-2025.3.10.1/src/vws/exceptions/__init__.py +0 -3
- vws_python-2025.3.10.1/src/vws/exceptions/vws_exceptions.py +0 -191
- vws_python-2025.3.10.1/src/vws_python.egg-info/PKG-INFO +0 -162
- vws_python-2025.3.10.1/src/vws_python.egg-info/requires.txt +0 -47
- vws_python-2025.3.10.1/tests/__init__.py +0 -3
- vws_python-2025.3.10.1/tests/conftest.py +0 -79
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.git_archival.txt +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.gitattributes +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.github/dependabot.yml +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.github/workflows/publish-site.yml +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.gitignore +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.vscode/extensions.json +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/.vscode/settings.json +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/CODE_OF_CONDUCT.rst +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/changelog.rst +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/exceptions.rst +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/docs/source/release-process.rst +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/setup.cfg +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws/py.typed +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws_python.egg-info/dependency_links.txt +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws_python.egg-info/not-zip-safe +0 -0
- {vws_python-2025.3.10.1 → vws_python-2026.2.21}/src/vws_python.egg-info/top_level.txt +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
name: Test
|
|
4
3
|
|
|
5
4
|
on:
|
|
@@ -12,21 +11,24 @@ on:
|
|
|
12
11
|
# Run at 1:00 every day
|
|
13
12
|
- cron: 0 1 * * *
|
|
14
13
|
|
|
14
|
+
permissions: {}
|
|
15
|
+
|
|
15
16
|
jobs:
|
|
16
17
|
build:
|
|
17
|
-
|
|
18
18
|
strategy:
|
|
19
19
|
matrix:
|
|
20
|
-
python-version: ['3.13']
|
|
20
|
+
python-version: ['3.13', '3.14']
|
|
21
21
|
platform: [ubuntu-latest, windows-latest]
|
|
22
22
|
|
|
23
23
|
runs-on: ${{ matrix.platform }}
|
|
24
24
|
|
|
25
25
|
steps:
|
|
26
|
-
- uses: actions/checkout@
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
with:
|
|
28
|
+
persist-credentials: false
|
|
27
29
|
|
|
28
30
|
- name: Install uv
|
|
29
|
-
uses: astral-sh/setup-uv@
|
|
31
|
+
uses: astral-sh/setup-uv@v7
|
|
30
32
|
with:
|
|
31
33
|
enable-cache: true
|
|
32
34
|
cache-dependency-glob: '**/pyproject.toml'
|
|
@@ -35,10 +37,16 @@ jobs:
|
|
|
35
37
|
run: |
|
|
36
38
|
# We run tests against "." and not the tests directory as we test the README
|
|
37
39
|
# and documentation.
|
|
38
|
-
uv run --extra=dev --python=${{ matrix.python-version }} pytest -s -vvv --cov-fail-under 100 --cov=src/ --cov=tests/ .
|
|
40
|
+
uv run --extra=dev --python=${{ matrix.python-version }} pytest -s -vvv --cov-fail-under 100 --cov=src/ --cov=tests/ .
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
completion-ci:
|
|
43
|
+
needs: build
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
if: always() # Run even if one matrix job fails
|
|
46
|
+
steps:
|
|
47
|
+
- name: Check matrix job status
|
|
48
|
+
run: |-
|
|
49
|
+
if ! ${{ needs.build.result == 'success' }}; then
|
|
50
|
+
echo "One or more matrix jobs failed"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Lint
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
schedule:
|
|
10
|
+
# * is a special character in YAML so you have to quote this string
|
|
11
|
+
# Run at 1:00 every day
|
|
12
|
+
- cron: 0 1 * * *
|
|
13
|
+
|
|
14
|
+
permissions: {}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ['3.13']
|
|
21
|
+
platform: [ubuntu-latest, windows-latest]
|
|
22
|
+
hook-stage: [pre-commit, pre-push, manual]
|
|
23
|
+
|
|
24
|
+
runs-on: ${{ matrix.platform }}
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v6
|
|
28
|
+
with:
|
|
29
|
+
persist-credentials: false
|
|
30
|
+
|
|
31
|
+
- name: Install uv
|
|
32
|
+
uses: astral-sh/setup-uv@v7
|
|
33
|
+
with:
|
|
34
|
+
enable-cache: true
|
|
35
|
+
cache-dependency-glob: '**/pyproject.toml'
|
|
36
|
+
|
|
37
|
+
- name: Lint
|
|
38
|
+
# Use bash to ensure the step fails if any command fails.
|
|
39
|
+
# PowerShell does not fail on intermediate command failures by default.
|
|
40
|
+
shell: bash
|
|
41
|
+
run: uv run --extra=dev prek run --all-files --hook-stage ${{ matrix.hook-stage }}
|
|
42
|
+
--verbose
|
|
43
|
+
env:
|
|
44
|
+
UV_PYTHON: ${{ matrix.python-version }}
|
|
45
|
+
|
|
46
|
+
- uses: pre-commit-ci/lite-action@v1.1.0
|
|
47
|
+
if: always()
|
|
48
|
+
|
|
49
|
+
completion-lint:
|
|
50
|
+
needs: build
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
if: always() # Run even if one matrix job fails
|
|
53
|
+
steps:
|
|
54
|
+
- name: Check matrix job status
|
|
55
|
+
run: |-
|
|
56
|
+
if ! ${{ needs.build.result == 'success' }}; then
|
|
57
|
+
echo "One or more matrix jobs failed"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
name: Release
|
|
4
3
|
|
|
5
4
|
on: workflow_dispatch
|
|
@@ -21,8 +20,8 @@ jobs:
|
|
|
21
20
|
contents: write
|
|
22
21
|
|
|
23
22
|
steps:
|
|
24
|
-
- uses: actions/checkout@
|
|
25
|
-
with:
|
|
23
|
+
- uses: actions/checkout@v6
|
|
24
|
+
with: # zizmor: ignore[artipacked] git-auto-commit-action requires credentials
|
|
26
25
|
# See
|
|
27
26
|
# https://github.com/stefanzweifel/git-auto-commit-action?tab=readme-ov-file#push-to-protected-branches
|
|
28
27
|
token: ${{ secrets.RELEASE_PAT }}
|
|
@@ -34,7 +33,7 @@ jobs:
|
|
|
34
33
|
fetch-depth: 0
|
|
35
34
|
|
|
36
35
|
- name: Install uv
|
|
37
|
-
uses: astral-sh/setup-uv@
|
|
36
|
+
uses: astral-sh/setup-uv@v7
|
|
38
37
|
with:
|
|
39
38
|
enable-cache: true
|
|
40
39
|
cache-dependency-glob: '**/pyproject.toml'
|
|
@@ -55,15 +54,22 @@ jobs:
|
|
|
55
54
|
echo "underline=${underline}" >> "$GITHUB_OUTPUT"
|
|
56
55
|
|
|
57
56
|
- name: Update changelog
|
|
57
|
+
id: update_changelog
|
|
58
58
|
uses: jacobtomlinson/gha-find-replace@v3
|
|
59
59
|
with:
|
|
60
60
|
find: "Next\n----"
|
|
61
61
|
replace: "Next\n----\n\n${{ steps.calver.outputs.release }}\n${{ steps.changelog_underline.outputs.underline\
|
|
62
|
-
\ }}"
|
|
62
|
+
\ }}\n"
|
|
63
63
|
include: CHANGELOG.rst
|
|
64
64
|
regex: false
|
|
65
65
|
|
|
66
|
-
-
|
|
66
|
+
- name: Check Update changelog was modified
|
|
67
|
+
run: |
|
|
68
|
+
if [ "${{ steps.update_changelog.outputs.modifiedFiles }}" = "0" ]; then
|
|
69
|
+
echo "Error: No files were modified when updating changelog"
|
|
70
|
+
exit 1
|
|
71
|
+
fi
|
|
72
|
+
- uses: stefanzweifel/git-auto-commit-action@v7
|
|
67
73
|
id: commit
|
|
68
74
|
with:
|
|
69
75
|
commit_message: Bump CHANGELOG
|
|
@@ -13,7 +13,7 @@ ci:
|
|
|
13
13
|
- check-manifest
|
|
14
14
|
- deptry
|
|
15
15
|
- doc8
|
|
16
|
-
-
|
|
16
|
+
- pydocstringformatter
|
|
17
17
|
- docs
|
|
18
18
|
- interrogate
|
|
19
19
|
- interrogate-docs
|
|
@@ -25,6 +25,8 @@ ci:
|
|
|
25
25
|
- pyright
|
|
26
26
|
- pyright-docs
|
|
27
27
|
- pyright-verifytypes
|
|
28
|
+
- ty
|
|
29
|
+
- ty-docs
|
|
28
30
|
- pyroma
|
|
29
31
|
- ruff-check-fix
|
|
30
32
|
- ruff-check-fix-docs
|
|
@@ -38,38 +40,59 @@ ci:
|
|
|
38
40
|
- vulture
|
|
39
41
|
- vulture-docs
|
|
40
42
|
- yamlfix
|
|
43
|
+
- zizmor
|
|
44
|
+
- pyrefly
|
|
45
|
+
- pyrefly-docs
|
|
41
46
|
|
|
42
|
-
default_install_hook_types: [pre-commit, pre-push
|
|
47
|
+
default_install_hook_types: [pre-commit, pre-push]
|
|
43
48
|
|
|
44
49
|
repos:
|
|
45
50
|
- repo: meta
|
|
46
51
|
hooks:
|
|
47
52
|
- id: check-useless-excludes
|
|
53
|
+
stages: [pre-commit]
|
|
48
54
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
49
|
-
rev:
|
|
55
|
+
rev: v6.0.0
|
|
50
56
|
hooks:
|
|
51
57
|
- id: check-added-large-files
|
|
58
|
+
stages: [pre-commit]
|
|
52
59
|
- id: check-case-conflict
|
|
60
|
+
stages: [pre-commit]
|
|
53
61
|
- id: check-executables-have-shebangs
|
|
62
|
+
stages: [pre-commit]
|
|
54
63
|
- id: check-merge-conflict
|
|
64
|
+
stages: [pre-commit]
|
|
55
65
|
- id: check-shebang-scripts-are-executable
|
|
66
|
+
stages: [pre-commit]
|
|
56
67
|
- id: check-symlinks
|
|
68
|
+
stages: [pre-commit]
|
|
57
69
|
- id: check-json
|
|
70
|
+
stages: [pre-commit]
|
|
58
71
|
- id: check-toml
|
|
72
|
+
stages: [pre-commit]
|
|
59
73
|
- id: check-vcs-permalinks
|
|
74
|
+
stages: [pre-commit]
|
|
60
75
|
- id: check-yaml
|
|
76
|
+
stages: [pre-commit]
|
|
61
77
|
- id: end-of-file-fixer
|
|
78
|
+
stages: [pre-commit]
|
|
62
79
|
- id: file-contents-sorter
|
|
63
80
|
files: spelling_private_dict\.txt$
|
|
81
|
+
stages: [pre-commit]
|
|
64
82
|
- id: trailing-whitespace
|
|
83
|
+
stages: [pre-commit]
|
|
65
84
|
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
66
85
|
rev: v1.10.0
|
|
67
86
|
hooks:
|
|
68
87
|
- id: rst-directive-colons
|
|
88
|
+
stages: [pre-commit]
|
|
69
89
|
- id: rst-inline-touching-normal
|
|
90
|
+
stages: [pre-commit]
|
|
70
91
|
- id: text-unicode-replacement-char
|
|
92
|
+
stages: [pre-commit]
|
|
71
93
|
- id: rst-backticks
|
|
72
94
|
|
|
95
|
+
stages: [pre-commit]
|
|
73
96
|
- repo: local
|
|
74
97
|
hooks:
|
|
75
98
|
- id: actionlint
|
|
@@ -78,37 +101,41 @@ repos:
|
|
|
78
101
|
language: python
|
|
79
102
|
pass_filenames: false
|
|
80
103
|
types_or: [yaml]
|
|
81
|
-
additional_dependencies: [uv==0.
|
|
104
|
+
additional_dependencies: [uv==0.9.5]
|
|
105
|
+
stages: [pre-commit]
|
|
82
106
|
|
|
83
|
-
- id:
|
|
84
|
-
name:
|
|
85
|
-
entry: uv run --extra=dev
|
|
107
|
+
- id: pydocstringformatter
|
|
108
|
+
name: pydocstringformatter
|
|
109
|
+
entry: uv run --extra=dev pydocstringformatter
|
|
86
110
|
language: python
|
|
87
111
|
types_or: [python]
|
|
88
|
-
additional_dependencies: [uv==0.
|
|
112
|
+
additional_dependencies: [uv==0.9.5]
|
|
113
|
+
stages: [pre-commit]
|
|
89
114
|
|
|
90
115
|
- id: shellcheck
|
|
91
116
|
name: shellcheck
|
|
92
117
|
entry: uv run --extra=dev shellcheck --shell=bash
|
|
93
118
|
language: python
|
|
94
|
-
pass_filenames: false
|
|
95
119
|
types_or: [shell]
|
|
96
|
-
additional_dependencies: [uv==0.
|
|
120
|
+
additional_dependencies: [uv==0.9.5]
|
|
121
|
+
stages: [pre-commit]
|
|
97
122
|
|
|
98
123
|
- id: shellcheck-docs
|
|
99
124
|
name: shellcheck-docs
|
|
100
|
-
entry: uv run --extra=dev doccmd --
|
|
101
|
-
--shell=bash"
|
|
125
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=shell
|
|
126
|
+
--language=console --command="shellcheck --shell=bash"
|
|
102
127
|
language: python
|
|
103
128
|
types_or: [markdown, rst]
|
|
104
|
-
additional_dependencies: [uv==0.
|
|
129
|
+
additional_dependencies: [uv==0.9.5]
|
|
130
|
+
stages: [pre-commit]
|
|
105
131
|
|
|
106
132
|
- id: shfmt
|
|
107
133
|
name: shfmt
|
|
108
134
|
entry: uv run --extra=dev shfmt --write --space-redirects --indent=4
|
|
109
135
|
language: python
|
|
110
136
|
types_or: [shell]
|
|
111
|
-
additional_dependencies: [uv==0.
|
|
137
|
+
additional_dependencies: [uv==0.9.5]
|
|
138
|
+
stages: [pre-commit]
|
|
112
139
|
|
|
113
140
|
- id: shfmt-docs
|
|
114
141
|
name: shfmt-docs
|
|
@@ -116,7 +143,8 @@ repos:
|
|
|
116
143
|
--no-pad-file --command="shfmt --write --space-redirects --indent=4"
|
|
117
144
|
language: python
|
|
118
145
|
types_or: [markdown, rst]
|
|
119
|
-
additional_dependencies: [uv==0.
|
|
146
|
+
additional_dependencies: [uv==0.9.5]
|
|
147
|
+
stages: [pre-commit]
|
|
120
148
|
|
|
121
149
|
- id: mypy
|
|
122
150
|
name: mypy
|
|
@@ -125,15 +153,16 @@ repos:
|
|
|
125
153
|
language: python
|
|
126
154
|
types_or: [python, toml]
|
|
127
155
|
pass_filenames: false
|
|
128
|
-
additional_dependencies: [uv==0.
|
|
156
|
+
additional_dependencies: [uv==0.9.5]
|
|
129
157
|
|
|
158
|
+
# We do not use --example-workers 0 due to https://github.com/python/mypy/issues/18283
|
|
130
159
|
- id: mypy-docs
|
|
131
160
|
name: mypy-docs
|
|
132
161
|
stages: [pre-push]
|
|
133
|
-
entry: uv run --extra=dev doccmd --language=python --command="mypy"
|
|
162
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --language=python --command="mypy"
|
|
134
163
|
language: python
|
|
135
164
|
types_or: [markdown, rst]
|
|
136
|
-
additional_dependencies: [uv==0.
|
|
165
|
+
additional_dependencies: [uv==0.9.5]
|
|
137
166
|
|
|
138
167
|
- id: check-manifest
|
|
139
168
|
name: check-manifest
|
|
@@ -141,7 +170,7 @@ repos:
|
|
|
141
170
|
entry: uv run --extra=dev -m check_manifest
|
|
142
171
|
language: python
|
|
143
172
|
pass_filenames: false
|
|
144
|
-
additional_dependencies: [uv==0.
|
|
173
|
+
additional_dependencies: [uv==0.9.5]
|
|
145
174
|
|
|
146
175
|
- id: pyright
|
|
147
176
|
name: pyright
|
|
@@ -150,15 +179,16 @@ repos:
|
|
|
150
179
|
language: python
|
|
151
180
|
types_or: [python, toml]
|
|
152
181
|
pass_filenames: false
|
|
153
|
-
additional_dependencies: [uv==0.
|
|
182
|
+
additional_dependencies: [uv==0.9.5]
|
|
154
183
|
|
|
155
184
|
- id: pyright-docs
|
|
156
185
|
name: pyright-docs
|
|
157
186
|
stages: [pre-push]
|
|
158
|
-
entry: uv run --extra=dev doccmd --language=python
|
|
187
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
188
|
+
--command="pyright"
|
|
159
189
|
language: python
|
|
160
190
|
types_or: [markdown, rst]
|
|
161
|
-
additional_dependencies: [uv==0.
|
|
191
|
+
additional_dependencies: [uv==0.9.5]
|
|
162
192
|
|
|
163
193
|
- id: vulture
|
|
164
194
|
name: vulture
|
|
@@ -166,14 +196,17 @@ repos:
|
|
|
166
196
|
language: python
|
|
167
197
|
types_or: [python]
|
|
168
198
|
pass_filenames: false
|
|
169
|
-
additional_dependencies: [uv==0.
|
|
199
|
+
additional_dependencies: [uv==0.9.5]
|
|
200
|
+
stages: [pre-commit]
|
|
170
201
|
|
|
171
202
|
- id: vulture-docs
|
|
172
203
|
name: vulture docs
|
|
173
|
-
entry: uv run --extra=dev doccmd --language=python
|
|
204
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
205
|
+
--command="vulture"
|
|
174
206
|
language: python
|
|
175
207
|
types_or: [markdown, rst]
|
|
176
|
-
additional_dependencies: [uv==0.
|
|
208
|
+
additional_dependencies: [uv==0.9.5]
|
|
209
|
+
stages: [pre-commit]
|
|
177
210
|
|
|
178
211
|
- id: pyroma
|
|
179
212
|
name: pyroma
|
|
@@ -181,14 +214,16 @@ repos:
|
|
|
181
214
|
language: python
|
|
182
215
|
pass_filenames: false
|
|
183
216
|
types_or: [toml]
|
|
184
|
-
additional_dependencies: [uv==0.
|
|
217
|
+
additional_dependencies: [uv==0.9.5]
|
|
218
|
+
stages: [pre-commit]
|
|
185
219
|
|
|
186
220
|
- id: deptry
|
|
187
221
|
name: deptry
|
|
188
222
|
entry: uv run --extra=dev -m deptry src/
|
|
189
223
|
language: python
|
|
190
224
|
pass_filenames: false
|
|
191
|
-
additional_dependencies: [uv==0.
|
|
225
|
+
additional_dependencies: [uv==0.9.5]
|
|
226
|
+
stages: [pre-commit]
|
|
192
227
|
|
|
193
228
|
- id: pylint
|
|
194
229
|
name: pylint
|
|
@@ -196,36 +231,40 @@ repos:
|
|
|
196
231
|
language: python
|
|
197
232
|
stages: [manual]
|
|
198
233
|
pass_filenames: false
|
|
199
|
-
additional_dependencies: [uv==0.
|
|
234
|
+
additional_dependencies: [uv==0.9.5]
|
|
200
235
|
|
|
201
236
|
- id: pylint-docs
|
|
202
237
|
name: pylint-docs
|
|
203
|
-
entry: uv run --extra=dev doccmd --language=python
|
|
238
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
239
|
+
--command="pylint"
|
|
204
240
|
language: python
|
|
205
241
|
stages: [manual]
|
|
206
242
|
types_or: [markdown, rst]
|
|
207
|
-
additional_dependencies: [uv==0.
|
|
243
|
+
additional_dependencies: [uv==0.9.5]
|
|
208
244
|
|
|
209
245
|
- id: ruff-check-fix
|
|
210
246
|
name: Ruff check fix
|
|
211
247
|
entry: uv run --extra=dev -m ruff check --fix
|
|
212
248
|
language: python
|
|
213
249
|
types_or: [python]
|
|
214
|
-
additional_dependencies: [uv==0.
|
|
250
|
+
additional_dependencies: [uv==0.9.5]
|
|
251
|
+
stages: [pre-commit]
|
|
215
252
|
|
|
216
253
|
- id: ruff-check-fix-docs
|
|
217
254
|
name: Ruff check fix docs
|
|
218
255
|
entry: uv run --extra=dev doccmd --language=python --command="ruff check --fix"
|
|
219
256
|
language: python
|
|
220
257
|
types_or: [markdown, rst]
|
|
221
|
-
additional_dependencies: [uv==0.
|
|
258
|
+
additional_dependencies: [uv==0.9.5]
|
|
259
|
+
stages: [pre-commit]
|
|
222
260
|
|
|
223
261
|
- id: ruff-format-fix
|
|
224
262
|
name: Ruff format
|
|
225
263
|
entry: uv run --extra=dev -m ruff format
|
|
226
264
|
language: python
|
|
227
265
|
types_or: [python]
|
|
228
|
-
additional_dependencies: [uv==0.
|
|
266
|
+
additional_dependencies: [uv==0.9.5]
|
|
267
|
+
stages: [pre-commit]
|
|
229
268
|
|
|
230
269
|
- id: ruff-format-fix-docs
|
|
231
270
|
name: Ruff format docs
|
|
@@ -233,28 +272,33 @@ repos:
|
|
|
233
272
|
format"
|
|
234
273
|
language: python
|
|
235
274
|
types_or: [markdown, rst]
|
|
236
|
-
additional_dependencies: [uv==0.
|
|
275
|
+
additional_dependencies: [uv==0.9.5]
|
|
276
|
+
stages: [pre-commit]
|
|
237
277
|
|
|
238
278
|
- id: doc8
|
|
239
279
|
name: doc8
|
|
240
280
|
entry: uv run --extra=dev -m doc8
|
|
241
281
|
language: python
|
|
242
282
|
types_or: [rst]
|
|
243
|
-
additional_dependencies: [uv==0.
|
|
283
|
+
additional_dependencies: [uv==0.9.5]
|
|
284
|
+
stages: [pre-commit]
|
|
244
285
|
|
|
245
286
|
- id: interrogate
|
|
246
287
|
name: interrogate
|
|
247
288
|
entry: uv run --extra=dev -m interrogate
|
|
248
289
|
language: python
|
|
249
290
|
types_or: [python]
|
|
250
|
-
additional_dependencies: [uv==0.
|
|
291
|
+
additional_dependencies: [uv==0.9.5]
|
|
292
|
+
stages: [pre-commit]
|
|
251
293
|
|
|
252
294
|
- id: interrogate-docs
|
|
253
295
|
name: interrogate docs
|
|
254
|
-
entry: uv run --extra=dev doccmd --language=python
|
|
296
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
297
|
+
--command="interrogate"
|
|
255
298
|
language: python
|
|
256
299
|
types_or: [markdown, rst]
|
|
257
|
-
additional_dependencies: [uv==0.
|
|
300
|
+
additional_dependencies: [uv==0.9.5]
|
|
301
|
+
stages: [pre-commit]
|
|
258
302
|
|
|
259
303
|
- id: pyproject-fmt-fix
|
|
260
304
|
name: pyproject-fmt
|
|
@@ -262,33 +306,36 @@ repos:
|
|
|
262
306
|
language: python
|
|
263
307
|
types_or: [toml]
|
|
264
308
|
files: pyproject.toml
|
|
265
|
-
additional_dependencies: [uv==0.
|
|
309
|
+
additional_dependencies: [uv==0.9.5]
|
|
310
|
+
stages: [pre-commit]
|
|
266
311
|
|
|
267
312
|
- id: linkcheck
|
|
268
313
|
name: linkcheck
|
|
269
|
-
entry:
|
|
314
|
+
entry: uv run --extra=dev sphinx-build -M linkcheck docs/source docs/build
|
|
315
|
+
-W
|
|
270
316
|
language: python
|
|
271
317
|
types_or: [rst]
|
|
272
318
|
stages: [manual]
|
|
273
319
|
pass_filenames: false
|
|
274
|
-
additional_dependencies: [uv==0.
|
|
320
|
+
additional_dependencies: [uv==0.9.5]
|
|
275
321
|
|
|
276
322
|
- id: spelling
|
|
277
323
|
name: spelling
|
|
278
|
-
entry:
|
|
324
|
+
entry: uv run --extra=dev sphinx-build -M spelling docs/source docs/build
|
|
325
|
+
-W
|
|
279
326
|
language: python
|
|
280
327
|
types_or: [rst]
|
|
281
328
|
stages: [manual]
|
|
282
329
|
pass_filenames: false
|
|
283
|
-
additional_dependencies: [uv==0.
|
|
330
|
+
additional_dependencies: [uv==0.9.5]
|
|
284
331
|
|
|
285
332
|
- id: docs
|
|
286
333
|
name: Build Documentation
|
|
287
|
-
entry:
|
|
334
|
+
entry: uv run --extra=dev sphinx-build -M html docs/source docs/build -W
|
|
288
335
|
language: python
|
|
289
336
|
stages: [manual]
|
|
290
337
|
pass_filenames: false
|
|
291
|
-
additional_dependencies: [uv==0.
|
|
338
|
+
additional_dependencies: [uv==0.9.5]
|
|
292
339
|
|
|
293
340
|
- id: pyright-verifytypes
|
|
294
341
|
name: pyright-verifytypes
|
|
@@ -297,18 +344,65 @@ repos:
|
|
|
297
344
|
language: python
|
|
298
345
|
pass_filenames: false
|
|
299
346
|
types_or: [python]
|
|
300
|
-
additional_dependencies: [uv==0.
|
|
347
|
+
additional_dependencies: [uv==0.9.5]
|
|
348
|
+
|
|
349
|
+
- id: ty
|
|
350
|
+
name: ty
|
|
351
|
+
stages: [pre-push]
|
|
352
|
+
entry: uv run --extra=dev ty check
|
|
353
|
+
language: python
|
|
354
|
+
types_or: [python, toml]
|
|
355
|
+
pass_filenames: false
|
|
356
|
+
additional_dependencies: [uv==0.9.5]
|
|
357
|
+
|
|
358
|
+
- id: ty-docs
|
|
359
|
+
name: ty-docs
|
|
360
|
+
stages: [pre-push]
|
|
361
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
362
|
+
--command="ty check"
|
|
363
|
+
language: python
|
|
364
|
+
types_or: [markdown, rst]
|
|
365
|
+
additional_dependencies: [uv==0.9.5]
|
|
301
366
|
|
|
302
367
|
- id: yamlfix
|
|
303
368
|
name: yamlfix
|
|
304
369
|
entry: uv run --extra=dev yamlfix
|
|
305
370
|
language: python
|
|
306
371
|
types_or: [yaml]
|
|
307
|
-
additional_dependencies: [uv==0.
|
|
372
|
+
additional_dependencies: [uv==0.9.5]
|
|
373
|
+
stages: [pre-commit]
|
|
374
|
+
|
|
375
|
+
- id: zizmor
|
|
376
|
+
name: zizmor
|
|
377
|
+
entry: uv run --extra=dev zizmor --strict-collection .github
|
|
378
|
+
language: python
|
|
379
|
+
pass_filenames: false
|
|
380
|
+
types_or: [yaml]
|
|
381
|
+
additional_dependencies: [uv==0.9.5]
|
|
382
|
+
stages: [pre-commit]
|
|
308
383
|
|
|
309
384
|
- id: sphinx-lint
|
|
310
385
|
name: sphinx-lint
|
|
311
386
|
entry: uv run --extra=dev sphinx-lint --enable=all --disable=line-too-long
|
|
312
387
|
language: python
|
|
313
388
|
types_or: [rst]
|
|
314
|
-
additional_dependencies: [uv==0.
|
|
389
|
+
additional_dependencies: [uv==0.9.5]
|
|
390
|
+
stages: [pre-commit]
|
|
391
|
+
|
|
392
|
+
- id: pyrefly
|
|
393
|
+
name: pyrefly
|
|
394
|
+
stages: [pre-push]
|
|
395
|
+
entry: uv run --extra=dev pyrefly check
|
|
396
|
+
language: python
|
|
397
|
+
types_or: [python, toml]
|
|
398
|
+
pass_filenames: false
|
|
399
|
+
additional_dependencies: [uv==0.9.5]
|
|
400
|
+
|
|
401
|
+
- id: pyrefly-docs
|
|
402
|
+
name: pyrefly-docs
|
|
403
|
+
stages: [pre-push]
|
|
404
|
+
entry: uv run --extra=dev doccmd --no-write-to-file --example-workers 0 --language=python
|
|
405
|
+
--command="pyrefly check"
|
|
406
|
+
language: python
|
|
407
|
+
types_or: [markdown, rst]
|
|
408
|
+
additional_dependencies: [uv==0.9.5]
|
|
@@ -4,6 +4,16 @@ Changelog
|
|
|
4
4
|
Next
|
|
5
5
|
----
|
|
6
6
|
|
|
7
|
+
2026.02.21
|
|
8
|
+
----------
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
2026.02.15
|
|
12
|
+
----------
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
* Add ``request_timeout_seconds`` parameter to ``VWS`` and ``CloudRecoService``, allowing customization of the request timeout. This accepts a float or a ``(connect, read)`` tuple, matching the ``requests`` library's timeout interface. The default remains 30 seconds.
|
|
16
|
+
|
|
7
17
|
2025.03.10.1
|
|
8
18
|
------------
|
|
9
19
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Adam Dangoor
|
|
2
4
|
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -7,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
7
9
|
copies of the Software, and to permit persons to whom the Software is
|
|
8
10
|
furnished to do so, subject to the following conditions:
|
|
9
11
|
|
|
10
|
-
The above copyright notice and this permission notice shall be included in
|
|
11
|
-
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
12
14
|
|
|
13
15
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
16
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
17
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|