http-api-tool 1.1.3__tar.gz → 1.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/build-test-release.yaml +14 -14
  2. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/build-test.yaml +133 -27
  3. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/clear-action-cache.yaml +1 -1
  4. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/openssf-scorecard.yaml +1 -1
  5. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/release-drafter.yaml +3 -3
  6. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/workflows/security-scans.yaml +12 -8
  7. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.pre-commit-config.yaml +5 -5
  8. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/PKG-INFO +4 -4
  9. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/README.md +2 -2
  10. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/action.yaml +11 -1
  11. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/pyproject.toml +1 -1
  12. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/_version.py +2 -2
  13. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/uv.lock +75 -63
  14. http_api_tool-1.1.3/.github/workflows/codeql.yml +0 -35
  15. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.actrc +0 -0
  16. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.aislop/config.yml +0 -0
  17. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.codespell +0 -0
  18. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.dockerignore +0 -0
  19. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.editorconfig +0 -0
  20. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/actionlint.yaml +0 -0
  21. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/cache-config.yaml +0 -0
  22. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.github/dependabot.yml +0 -0
  23. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.gitignore +0 -0
  24. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.gitlint +0 -0
  25. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.readthedocs.yml +0 -0
  26. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/.yamllint +0 -0
  27. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/AGENTS.md +0 -0
  28. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/CHANGELOG-v0.2.0.md +0 -0
  29. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/LICENSE +0 -0
  30. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/LICENSES/Apache-2.0.txt +0 -0
  31. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/REUSE.toml +0 -0
  32. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/SECURITY.md +0 -0
  33. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/UV-QUICK-REFERENCE.md +0 -0
  34. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/docker/Containerfile +0 -0
  35. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/scripts/check-pip-security.py +0 -0
  36. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/scripts/generate_requirements.py +0 -0
  37. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/sonar-project.properties +0 -0
  38. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/__init__.py +0 -0
  39. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/__main__.py +0 -0
  40. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/cli.py +0 -0
  41. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/curl_client.py +0 -0
  42. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/reporting.py +0 -0
  43. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/sanitize.py +0 -0
  44. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/validation.py +0 -0
  45. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/src/http_api_tool/verifier.py +0 -0
  46. {http_api_tool-1.1.3 → http_api_tool-1.1.5}/tests/test_http_api_tool.py +0 -0
@@ -32,7 +32,7 @@ jobs:
32
32
  timeout-minutes: 5
33
33
  steps:
34
34
  # yamllint disable-line rule:line-length
35
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
35
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
36
36
  with:
37
37
  egress-policy: audit
38
38
 
@@ -64,7 +64,7 @@ jobs:
64
64
  steps:
65
65
  # Harden the runner used by this workflow
66
66
  # yamllint disable-line rule:line-length
67
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
67
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
68
68
  with:
69
69
  egress-policy: 'audit'
70
70
 
@@ -79,7 +79,7 @@ jobs:
79
79
  - name: 'Verify pushed tag'
80
80
  id: 'tag-validate'
81
81
  # yamllint disable-line rule:line-length
82
- uses: lfreleng-actions/tag-validate-action@63470621b8ebc5c4fc86ebb616727dd0a7285dd9 # v1.1.7
82
+ uses: lfreleng-actions/tag-validate-action@eab7d92e02c8b447a4de04e68bd5ee7eae3450eb # v1.1.8
83
83
  with:
84
84
  token: "${{ secrets.GITHUB_TOKEN }}"
85
85
  require_type: 'semver'
@@ -132,7 +132,7 @@ jobs:
132
132
  steps:
133
133
  # Harden the runner used by this workflow
134
134
  # yamllint disable-line rule:line-length
135
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
135
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
136
136
  with:
137
137
  egress-policy: 'audit'
138
138
 
@@ -163,7 +163,7 @@ jobs:
163
163
  steps:
164
164
  # Harden the runner used by this workflow
165
165
  # yamllint disable-line rule:line-length
166
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
166
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
167
167
  with:
168
168
  egress-policy: 'audit'
169
169
 
@@ -192,7 +192,7 @@ jobs:
192
192
  steps:
193
193
  # Harden the runner used by this workflow
194
194
  # yamllint disable-line rule:line-length
195
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
195
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
196
196
  with:
197
197
  egress-policy: 'audit'
198
198
 
@@ -218,7 +218,7 @@ jobs:
218
218
  steps:
219
219
  # Harden the runner used by this workflow
220
220
  # yamllint disable-line rule:line-length
221
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
221
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
222
222
  with:
223
223
  egress-policy: 'audit'
224
224
 
@@ -345,7 +345,7 @@ jobs:
345
345
  steps:
346
346
  # Harden the runner used by this workflow
347
347
  # yamllint disable-line rule:line-length
348
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
348
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
349
349
  with:
350
350
  egress-policy: 'audit'
351
351
 
@@ -370,7 +370,7 @@ jobs:
370
370
  steps:
371
371
  # Harden the runner used by this workflow
372
372
  # yamllint disable-line rule:line-length
373
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
373
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
374
374
  with:
375
375
  egress-policy: 'audit'
376
376
 
@@ -387,7 +387,7 @@ jobs:
387
387
  # Login to GitHub Container Registry
388
388
  - name: Login to Container Registry
389
389
  # yamllint disable-line rule:line-length
390
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
390
+ uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
391
391
  with:
392
392
  registry: ${{ env.REGISTRY }}
393
393
  username: ${{ github.actor }}
@@ -457,7 +457,7 @@ jobs:
457
457
  steps:
458
458
  # Harden the runner used by this workflow
459
459
  # yamllint disable-line rule:line-length
460
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
460
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
461
461
  with:
462
462
  egress-policy: 'audit'
463
463
 
@@ -495,7 +495,7 @@ jobs:
495
495
  steps:
496
496
  # Harden the runner used by this workflow
497
497
  # yamllint disable-line rule:line-length
498
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
498
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
499
499
  with:
500
500
  egress-policy: 'audit'
501
501
 
@@ -513,7 +513,7 @@ jobs:
513
513
 
514
514
  - name: 'Attach build artefacts to release'
515
515
  # yamllint disable-line rule:line-length
516
- uses: lfreleng-actions/release-assets-action@51e2955cf9aeab3731efd7cc4605aa2847e7d8e2 # v0.1.3
516
+ uses: lfreleng-actions/release-assets-action@d7b650fbf8fbca7a436f75ddada3d4cdbd36a802 # v0.1.4
517
517
  with:
518
518
  asset_paths: '["${{ needs.python-build.outputs.artefact_path }}/**"]'
519
519
  release_tag: "${{ needs.tag-validate.outputs.tag }}"
@@ -535,7 +535,7 @@ jobs:
535
535
  steps:
536
536
  # Harden the runner used by this workflow
537
537
  # yamllint disable-line rule:line-length
538
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
538
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
539
539
  with:
540
540
  egress-policy: 'audit'
541
541
 
@@ -76,7 +76,7 @@ jobs:
76
76
  steps:
77
77
  # Harden the runner
78
78
  - name: Harden Runner
79
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
79
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
80
80
  with:
81
81
  egress-policy: audit
82
82
 
@@ -132,7 +132,7 @@ jobs:
132
132
  steps:
133
133
  # Set up go-httpbin for testing
134
134
  - name: Setup go-httpbin HTTPS service
135
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
135
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
136
136
  id: go-httpbin
137
137
  with:
138
138
  debug: 'true'
@@ -203,7 +203,7 @@ jobs:
203
203
  steps:
204
204
  # Harden the runner
205
205
  - name: Harden Runner
206
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
206
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
207
207
  with:
208
208
  egress-policy: audit
209
209
 
@@ -218,7 +218,7 @@ jobs:
218
218
 
219
219
  # Login to GitHub Container Registry
220
220
  - name: Login to Container Registry
221
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
221
+ uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
222
222
  with:
223
223
  registry: ${{ env.REGISTRY }}
224
224
  username: ${{ github.actor }}
@@ -285,7 +285,7 @@ jobs:
285
285
  GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
286
286
  steps:
287
287
  # Harden the runner used by this workflow
288
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
288
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
289
289
  with:
290
290
  egress-policy: 'audit'
291
291
 
@@ -296,7 +296,7 @@ jobs:
296
296
  # Setup Python with enhanced caching
297
297
  - name: Set up Python
298
298
  id: setup-python
299
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
299
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
300
300
  with:
301
301
  # Do NOT use hard coded Python; extract from pyproject.toml
302
302
  python-version-file: 'pyproject.toml'
@@ -335,7 +335,7 @@ jobs:
335
335
  timeout-minutes: 12
336
336
  steps:
337
337
  # Harden the runner used by this workflow
338
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
338
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
339
339
  with:
340
340
  egress-policy: audit
341
341
 
@@ -346,7 +346,7 @@ jobs:
346
346
  # Setup Python with comprehensive caching
347
347
  - name: Set up Python
348
348
  id: setup-python
349
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
349
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
350
350
  with:
351
351
  python-version: ${{ matrix.python-version }}
352
352
  cache: 'pip'
@@ -386,7 +386,7 @@ jobs:
386
386
  timeout-minutes: 10
387
387
  steps:
388
388
  # Harden the runner used by this workflow
389
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
389
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
390
390
  with:
391
391
  egress-policy: 'audit'
392
392
 
@@ -397,7 +397,7 @@ jobs:
397
397
  # Setup Python with comprehensive caching
398
398
  - name: Set up Python
399
399
  id: setup-python
400
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
400
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
401
401
  with:
402
402
  python-version: ${{ matrix.python-version }}
403
403
  cache: 'pip'
@@ -434,7 +434,7 @@ jobs:
434
434
  timeout-minutes: 15
435
435
  steps:
436
436
  # Harden the runner used by this workflow
437
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
437
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
438
438
  with:
439
439
  egress-policy: 'audit'
440
440
 
@@ -445,7 +445,7 @@ jobs:
445
445
  # Setup Python with comprehensive caching
446
446
  - name: Set up Python
447
447
  id: setup-python
448
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
448
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
449
449
  with:
450
450
  python-version-file: 'pyproject.toml'
451
451
  cache: 'pip'
@@ -466,7 +466,7 @@ jobs:
466
466
  uv-cli-${{ runner.os }}-
467
467
 
468
468
  - name: Install UV
469
- uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
469
+ uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
470
470
 
471
471
  - name: Install project dependencies
472
472
  run: |
@@ -483,7 +483,7 @@ jobs:
483
483
  # Start go-httpbin service for testing
484
484
  - name: Setup go-httpbin service
485
485
  id: go-httpbin
486
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
486
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
487
487
  with:
488
488
  port: '8080'
489
489
  debug: 'true'
@@ -561,14 +561,14 @@ jobs:
561
561
  timeout-minutes: 10
562
562
  steps:
563
563
  # Harden the runner used by this workflow
564
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
564
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
565
565
  with:
566
566
  egress-policy: 'audit'
567
567
 
568
568
  # Start go-httpbin service for testing
569
569
  - name: Setup go-httpbin service
570
570
  id: go-httpbin
571
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
571
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
572
572
  with:
573
573
  port: '8080'
574
574
  debug: 'true'
@@ -618,14 +618,14 @@ jobs:
618
618
  timeout-minutes: 10
619
619
  steps:
620
620
  # Harden the runner used by this workflow
621
- - uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
621
+ - uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
622
622
  with:
623
623
  egress-policy: 'audit'
624
624
 
625
625
  # Start go-httpbin service for testing
626
626
  - name: Setup go-httpbin service
627
627
  id: go-httpbin
628
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
628
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
629
629
  with:
630
630
  port: '8080'
631
631
  debug: 'true'
@@ -655,7 +655,32 @@ jobs:
655
655
  env:
656
656
  STEPS_GO_HTTPBIN_OUTPUTS_SERVICE_URL: ${{ steps.go-httpbin.outputs.service-url }}
657
657
 
658
+ # setup-uv in the action must neither start an interpreter from the
659
+ # caller's workspace nor read its uv settings. Each planted
660
+ # interpreter records that it ran, and the uv.toml's
661
+ # required-version would fail the action.
662
+ - name: Plant interpreters and uv settings in the workspace
663
+ run: |
664
+ set -euo pipefail
665
+ marker="$RUNNER_TEMP/planted-ran"
666
+ stub() {
667
+ # $0 and $* expand when the stub runs, not here.
668
+ # shellcheck disable=SC2016
669
+ printf '#!/bin/sh\necho "%s: $0 $*" >> "%s"\nexit 1\n' \
670
+ "$1" "$marker" > "$2"
671
+ chmod +x "$2"
672
+ }
673
+ mkdir -p .venv/bin planted
674
+ printf 'home = /usr/bin\nversion_info = 3.12.0\n' > .venv/pyvenv.cfg
675
+ stub venv .venv/bin/python3
676
+ stub venv .venv/bin/python
677
+ stub python-version planted/python3
678
+ echo "$GITHUB_WORKSPACE/planted/python3" > .python-version
679
+ printf '%s\n' 'cache-dir = "/nonexistent/planted-cache"' \
680
+ 'required-version = "==0.0.1"' > uv.toml
681
+
658
682
  - name: Test uvx deployment with host URL
683
+ id: uvx-get
659
684
  uses: $/
660
685
  with:
661
686
  deploy: 'uvx'
@@ -703,6 +728,87 @@ jobs:
703
728
  verify_ssl: 'false'
704
729
  debug: 'true'
705
730
 
731
+ - name: Check uvx results and that no planted interpreter ran
732
+ env:
733
+ HTTP_CODE: ${{ steps.uvx-get.outputs.response_http_code }}
734
+ run: |
735
+ set -euo pipefail
736
+ marker="$RUNNER_TEMP/planted-ran"
737
+ if [[ -e "$marker" ]]; then
738
+ echo "::error::A planted workspace interpreter ran:"
739
+ cat "$marker"
740
+ exit 1
741
+ fi
742
+ if [[ "$HTTP_CODE" != "200" ]]; then
743
+ echo "::error::Unexpected response_http_code: '$HTTP_CODE'"
744
+ exit 1
745
+ fi
746
+ rm -rf .venv planted .python-version uv.toml
747
+
748
+ # The same check with the action checked out inside the workspace
749
+ # ('uses: ./...'), as a caller that vendors it would. The planted
750
+ # files sit in the workspace root, the action directory's parent,
751
+ # where only the step's UV_* settings keep uv from using them.
752
+ - name: Checkout this action into the workspace
753
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
754
+ with:
755
+ path: 'local-action'
756
+ persist-credentials: false
757
+
758
+ - name: Plant interpreters and uv settings above the action
759
+ run: |
760
+ set -euo pipefail
761
+ marker="$RUNNER_TEMP/planted-ran"
762
+ stub() {
763
+ # $0 and $* expand when the stub runs, not here.
764
+ # shellcheck disable=SC2016
765
+ printf '#!/bin/sh\necho "%s: $0 $*" >> "%s"\nexit 1\n' \
766
+ "$1" "$marker" > "$2"
767
+ chmod +x "$2"
768
+ }
769
+ mkdir -p .venv/bin planted
770
+ printf 'home = /usr/bin\nversion_info = 3.12.0\n' > .venv/pyvenv.cfg
771
+ stub venv .venv/bin/python3
772
+ stub venv .venv/bin/python
773
+ stub python-version planted/python3
774
+ echo "$GITHUB_WORKSPACE/planted/python3" > .python-version
775
+ printf '%s\n' 'cache-dir = "/nonexistent/planted-cache"' \
776
+ 'required-version = "==0.0.1"' > uv.toml
777
+
778
+ - name: Test uvx deployment from the workspace copy
779
+ id: uvx-local
780
+ # The local path is the point of this step: '$/' would download
781
+ # the action outside the workspace, as the steps above do.
782
+ uses: ./local-action # zizmor: ignore[self-repository]
783
+ with:
784
+ deploy: 'uvx'
785
+ url: '${{ steps.test-urls.outputs.host-url }}/get'
786
+ service_name: 'UVX Local Copy Test'
787
+ expected_http_code: 200
788
+ retries: 3
789
+ initial_sleep_time: 1
790
+ verify_ssl: 'false'
791
+ debug: 'true'
792
+
793
+ - name: Check the workspace copy and that nothing planted ran
794
+ env:
795
+ HTTP_CODE: ${{ steps.uvx-local.outputs.response_http_code }}
796
+ run: |
797
+ set -euo pipefail
798
+ marker="$RUNNER_TEMP/planted-ran"
799
+ if [[ -e "$marker" ]]; then
800
+ echo "::error::A planted workspace interpreter ran:"
801
+ cat "$marker"
802
+ exit 1
803
+ fi
804
+ if [[ "$HTTP_CODE" != "200" ]]; then
805
+ echo "::error::Unexpected response_http_code: '$HTTP_CODE'"
806
+ exit 1
807
+ fi
808
+ # local-action/ stays: the runner reads its action.yaml again
809
+ # for the post-job cleanup of a local action.
810
+ rm -rf .venv planted .python-version uv.toml
811
+
706
812
  - name: Verify both deployment modes work
707
813
  run: |
708
814
  echo "=== Deployment Mode Test Summary ==="
@@ -730,14 +836,14 @@ jobs:
730
836
  steps:
731
837
  # Harden the runner used by this workflow
732
838
  - name: Harden Runner
733
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
839
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
734
840
  with:
735
841
  egress-policy: audit
736
842
 
737
843
  # Start go-httpbin service for testing
738
844
  - name: Setup go-httpbin service
739
845
  id: go-httpbin
740
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
846
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
741
847
  with:
742
848
  port: '8080'
743
849
  debug: 'true'
@@ -797,7 +903,7 @@ jobs:
797
903
  steps:
798
904
  # Harden the runner used by this workflow
799
905
  - name: Harden Runner
800
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
906
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
801
907
  with:
802
908
  egress-policy: audit
803
909
 
@@ -811,7 +917,7 @@ jobs:
811
917
 
812
918
  # Login to Container Registry
813
919
  - name: Login to Container Registry
814
- uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
920
+ uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
815
921
  with:
816
922
  registry: ${{ env.REGISTRY }}
817
923
  username: ${{ github.actor }}
@@ -829,7 +935,7 @@ jobs:
829
935
  # Start go-httpbin service for testing
830
936
  - name: Setup go-httpbin service
831
937
  id: go-httpbin
832
- uses: lfreleng-actions/go-httpbin-action@b0fcc716270b4975172449a293173e679773d17e # v0.1.6
938
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
833
939
  with:
834
940
  port: '8080'
835
941
  debug: 'true'
@@ -845,7 +951,7 @@ jobs:
845
951
 
846
952
  # Test the http-api-tool against go-httpbin with HTTPS
847
953
  docker run --rm --network host \
848
- -v "$GITHUB_WORKSPACE/$CA_BUNDLE:/tmp/ca-bundle.pem:ro" \
954
+ -v "$CA_BUNDLE:/tmp/ca-bundle.pem:ro" \
849
955
  "$IMAGE_TAG" \
850
956
  test \
851
957
  --url "$SERVICE_URL/get" \
@@ -872,7 +978,7 @@ jobs:
872
978
  steps:
873
979
  # Harden the runner
874
980
  - name: Harden Runner
875
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
981
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
876
982
  with:
877
983
  egress-policy: audit
878
984
 
@@ -883,7 +989,7 @@ jobs:
883
989
 
884
990
  # Setup Python with caching
885
991
  - name: Set up Python
886
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
992
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
887
993
  with:
888
994
  # Do NOT use hard coded Python; extract from pyproject.toml
889
995
  python-version-file: 'pyproject.toml'
@@ -905,7 +1011,7 @@ jobs:
905
1011
 
906
1012
  # Install UV
907
1013
  - name: Install UV
908
- uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
1014
+ uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
909
1015
 
910
1016
  # Install project dependencies with dev extras (includes bandit)
911
1017
  - name: Install project dependencies
@@ -51,7 +51,7 @@ jobs:
51
51
  permissions:
52
52
  actions: write # list and delete repository Actions caches
53
53
  # yamllint disable-line rule:line-length
54
- uses: lfreleng-actions/generic-workflows/.github/workflows/clear-action-cache.yaml@0ed9c16d59a3ff92afad23a7c1aba3ab61238b87 # v0.4.3
54
+ uses: lfreleng-actions/generic-workflows/.github/workflows/clear-action-cache.yaml@04672a980550ff9bd89d24bacd39fb03e25b0b0b # v0.6.1
55
55
  with:
56
56
  key_pattern: ${{ inputs.key_pattern }}
57
57
  ref_filter: ${{ inputs.ref_filter }}
@@ -28,7 +28,7 @@ jobs:
28
28
  openssf-scorecard:
29
29
  name: "OpenSSF Scorecard"
30
30
  # yamllint disable-line rule:line-length
31
- uses: lfreleng-actions/security-workflows/.github/workflows/openssf-scorecard.yaml@179b57cc41fbdae90d68237b418539d33e5ba091 # v0.9.4
31
+ uses: lfreleng-actions/security-workflows/.github/workflows/openssf-scorecard.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
32
32
  # Scorecard uses no cache; deny writes under branch_protection_rule
33
33
  cache-mode: read
34
34
  permissions:
@@ -28,14 +28,14 @@ jobs:
28
28
  # organisation's .github repository and publish it as
29
29
  # $CONNECTION_ALLOW_LIST for the harden-runner step below.
30
30
  # yamllint disable-line rule:line-length
31
- - uses: lfreleng-actions/harden-runner-block-action@51ef68401547a8b648275129b9a21544612596d5 # v0.13.1
31
+ - uses: lfreleng-actions/harden-runner-block-action@2fed66c9c36c4687c31ca349b925b81ec629673f # v0.15.0
32
32
  with:
33
- config: '@18d9c4446bea555d0783e850f6d295f844fe8f67' # v0.1.1
33
+ config: '@6d4a65c5601afd6c2fbe52bda4b0024b132f265d' # v0.19.0
34
34
 
35
35
  # Harden the runner with the just-loaded allow-list.
36
36
  - name: 'Harden runner (block)'
37
37
  # yamllint disable-line rule:line-length
38
- uses: step-security/harden-runner@dc2769abcc0fcfbadfc1df54081c1608579ef6b2 # v2.22.2
38
+ uses: step-security/harden-runner@46b06cea07f9e64621fdf066ba77ac6915163d43 # v2.22.3
39
39
  with:
40
40
  egress-policy: 'block'
41
41
  allowed-endpoints: >
@@ -34,24 +34,28 @@ jobs:
34
34
  permissions:
35
35
  contents: read # Reusable scan job checks out the repo
36
36
  # yamllint disable-line rule:line-length
37
- uses: lfit/releng-reusable-workflows/.github/workflows/reuse-sonatype-lifecycle.yaml@fb907909b12bbaf262de6b24fcafd181cabe6b24 # v0.10.4
37
+ uses: lfreleng-actions/security-workflows/.github/workflows/sonatype-lifecycle.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
38
+ # Nexus IQ cannot read pyproject.toml or uv.lock, so have the lane
39
+ # resolve uv.lock and scan the downloaded artefacts. Python 3.11
40
+ # matches the python:3.11-slim image and the requires-python floor;
41
+ # pinning it stops a new Python release without wheels from breaking
42
+ # resolution.
43
+ with:
44
+ build_type: 'python'
45
+ python_version: '3.11'
38
46
  # Neither scan writes a cache; deny writes under branch_protection_rule
39
47
  cache-mode: read
40
48
  secrets:
41
- NEXUS_IQ_PASSWORD: ${{ secrets.NEXUS_IQ_PASSWORD }}
49
+ nexus_iq_password: ${{ secrets.NEXUS_IQ_PASSWORD }}
42
50
 
43
51
  # Scan results are found at: https://sonarcloud.io/login
44
52
  sonarqube-cloud:
45
53
  name: "SonarQube Cloud"
46
54
  # yamllint disable-line rule:line-length
47
- uses: lfit/releng-reusable-workflows/.github/workflows/reuse-sonarqube-cloud.yaml@fb907909b12bbaf262de6b24fcafd181cabe6b24 # v0.10.4
55
+ uses: lfreleng-actions/security-workflows/.github/workflows/sonarqube-cloud.yaml@378fcc19ebdf37f17fde4888d4b71c83b21d6cf3 # v0.9.7
48
56
  # Neither scan writes a cache; deny writes under branch_protection_rule
49
57
  cache-mode: read
50
58
  permissions:
51
59
  contents: read # Reusable scan job checks out the repo
52
- security-events: write # Upload results to the code-scanning dashboard
53
- id-token: write # Publish results and obtain a badge via OIDC
54
- # Uncomment the permission below if installing in a private repository.
55
- # actions: read
56
60
  secrets:
57
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
61
+ sonar_token: ${{ secrets.SONAR_TOKEN }}
@@ -73,7 +73,7 @@ repos:
73
73
  args: [--config-file=.yamllint]
74
74
 
75
75
  - repo: https://github.com/astral-sh/ruff-pre-commit
76
- rev: f368fb366ff7f2f808dd324b83a6d32267799e19 # frozen: v0.17.2
76
+ rev: 25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c # frozen: v0.17.3
77
77
  hooks:
78
78
  - id: ruff
79
79
  files: ^(src|tests|scripts)/.+\.py$
@@ -82,7 +82,7 @@ repos:
82
82
  files: ^(src|tests|scripts)/.+\.py$
83
83
 
84
84
  - repo: https://github.com/pre-commit/mirrors-mypy
85
- rev: 2834ec6639549dd6796205c8f011dedcd587288b # frozen: v2.4.0
85
+ rev: ad26ebfa797fcb9b8f83275937c1c1d6e126719c # frozen: v2.4.1
86
86
  hooks:
87
87
  - id: mypy
88
88
  additional_dependencies: [types-pycurl]
@@ -112,7 +112,7 @@ repos:
112
112
  args: ["--fix"]
113
113
 
114
114
  - repo: https://github.com/fsfe/reuse-tool
115
- rev: 9fabf9eb815a57aac116b435e8346c200cdb8604 # frozen: v6.2.0
115
+ rev: bffd9abdccdd86e7926c871a31564913547552c9 # frozen: v6.3.0
116
116
  hooks:
117
117
  - id: reuse
118
118
 
@@ -133,7 +133,7 @@ repos:
133
133
  - id: basedpyright
134
134
 
135
135
  - repo: https://github.com/lfreleng-actions/gha-workflow-linter
136
- rev: 6431fe01a4f1b978de418160cc7caa6a24f6df76 # frozen: v1.10.0
136
+ rev: 00aec232d3fd85436fff24dfeaad23921c5db1cb # frozen: v1.10.1
137
137
  hooks:
138
138
  - id: gha-workflow-linter
139
139
  args: [lint, .]
@@ -149,7 +149,7 @@ repos:
149
149
  always_run: true
150
150
 
151
151
  - repo: https://github.com/python-jsonschema/check-jsonschema
152
- rev: 4f85d46a92dc17713078e5de73f8a13190edf6fc # frozen: 0.38.2
152
+ rev: 39478bf2c099a58683d3f1aedf675105318b078d # frozen: 0.39.0
153
153
  hooks:
154
154
  - id: check-github-actions
155
155
  - id: check-github-workflows
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: http-api-tool
3
- Version: 1.1.3
3
+ Version: 1.1.5
4
4
  Summary: A Python HTTP/HTTPS API testing tool for GitHub Actions and CLI usage
5
5
  Project-URL: Homepage, https://github.com/lfreleng-actions/http-api-tool-docker
6
6
  Project-URL: Repository, https://github.com/lfreleng-actions/http-api-tool-docker
@@ -33,7 +33,7 @@ Requires-Dist: requests>=2.32.4
33
33
  Requires-Dist: typer>=0.9.0
34
34
  Provides-Extra: dev
35
35
  Requires-Dist: bandit>=1.8.0; extra == 'dev'
36
- Requires-Dist: black>=24.0.0; extra == 'dev'
36
+ Requires-Dist: black>=26.10.1; extra == 'dev'
37
37
  Requires-Dist: coverage[toml]>=7.9.1; extra == 'dev'
38
38
  Requires-Dist: flake8>=7.0.0; extra == 'dev'
39
39
  Requires-Dist: interrogate>=1.5.0; extra == 'dev'
@@ -510,7 +510,7 @@ HTTPS testing service:
510
510
  ```yaml
511
511
  steps:
512
512
  - name: Setup go-httpbin HTTPS service
513
- uses: lfreleng-actions/go-httpbin-action@fd9c3701056fc2e667542ac66b4a63c44faea6c5 # v0.1.0
513
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
514
514
  id: httpbin
515
515
  with:
516
516
  debug: 'true'
@@ -520,7 +520,7 @@ steps:
520
520
  uses: lfreleng-actions/http-api-tool-docker@main
521
521
  with:
522
522
  url: 'https://localhost:8080/get'
523
- ca_bundle_path: 'mkcert-ca.pem'
523
+ ca_bundle_path: '${{ steps.httpbin.outputs.ca-cert-path }}'
524
524
  expected_http_code: '200'
525
525
  ```
526
526
 
@@ -458,7 +458,7 @@ HTTPS testing service:
458
458
  ```yaml
459
459
  steps:
460
460
  - name: Setup go-httpbin HTTPS service
461
- uses: lfreleng-actions/go-httpbin-action@fd9c3701056fc2e667542ac66b4a63c44faea6c5 # v0.1.0
461
+ uses: lfreleng-actions/go-httpbin-action@692bf3b759b746041e9cc2eebec5a6006e6d6041 # v0.1.7
462
462
  id: httpbin
463
463
  with:
464
464
  debug: 'true'
@@ -468,7 +468,7 @@ steps:
468
468
  uses: lfreleng-actions/http-api-tool-docker@main
469
469
  with:
470
470
  url: 'https://localhost:8080/get'
471
- ca_bundle_path: 'mkcert-ca.pem'
471
+ ca_bundle_path: '${{ steps.httpbin.outputs.ca-cert-path }}'
472
472
  expected_http_code: '200'
473
473
  ```
474
474
 
@@ -166,10 +166,20 @@ runs:
166
166
  # UVX deployment path (default)
167
167
  - name: Install uv for uvx deployment
168
168
  if: inputs.deploy == 'uvx'
169
- uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
169
+ # setup-uv runs the interpreter 'uv python find' returns for its
170
+ # working directory and reads uv settings (required-version,
171
+ # cache-dir) there; the default is the caller's workspace. Point it
172
+ # at this action's own files. The UV_* settings cover an action
173
+ # loaded from inside the workspace ('uses: ./').
174
+ uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
175
+ env:
176
+ UV_NO_CONFIG: "1"
177
+ UV_SYSTEM_PYTHON: "1"
178
+ UV_NO_PROJECT: "1"
170
179
  with:
171
180
  enable-cache: false
172
181
  ignore-empty-workdir: true
182
+ working-directory: ${{ github.action_path }}
173
183
 
174
184
  - name: Run http-api-tool via uvx
175
185
  if: inputs.deploy == 'uvx'
@@ -63,7 +63,7 @@ test = [
63
63
  dev = [
64
64
  "pytest>=8.0.0",
65
65
  "pytest-cov>=6.2.1",
66
- "black>=24.0.0",
66
+ "black>=26.10.1",
67
67
  "isort>=5.13.0",
68
68
  "flake8>=7.0.0",
69
69
  "bandit>=1.8.0",
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.1.3'
22
- __version_tuple__ = version_tuple = (1, 1, 3)
21
+ __version__ = version = '1.1.5'
22
+ __version_tuple__ = version_tuple = (1, 1, 5)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 5
3
3
  requires-python = ">=3.11"
4
4
 
5
5
  [[package]]
@@ -28,7 +28,7 @@ wheels = [
28
28
 
29
29
  [[package]]
30
30
  name = "black"
31
- version = "26.3.1"
31
+ version = "26.10.1"
32
32
  source = { registry = "https://pypi.org/simple" }
33
33
  dependencies = [
34
34
  { name = "click" },
@@ -38,29 +38,29 @@ dependencies = [
38
38
  { name = "platformdirs" },
39
39
  { name = "pytokens" },
40
40
  ]
41
- sdist = { url = "https://files.pythonhosted.org/packages/e1/c5/61175d618685d42b005847464b8fb4743a67b1b8fdb75e50e5a96c31a27a/black-26.3.1.tar.gz", hash = "sha256:2c50f5063a9641c7eed7795014ba37b0f5fa227f3d408b968936e24bc0566b07", size = 666155, upload-time = "2026-03-12T03:36:03.593Z" }
42
- wheels = [
43
- { url = "https://files.pythonhosted.org/packages/17/57/5f11c92861f9c92eb9dddf515530bc2d06db843e44bdcf1c83c1427824bc/black-26.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:28ef38aee69e4b12fda8dba75e21f9b4f979b490c8ac0baa7cb505369ac9e1ff", size = 1851987, upload-time = "2026-03-12T03:40:06.248Z" },
44
- { url = "https://files.pythonhosted.org/packages/54/aa/340a1463660bf6831f9e39646bf774086dbd8ca7fc3cded9d59bbdf4ad0a/black-26.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf9bf162ed91a26f1adba8efda0b573bc6924ec1408a52cc6f82cb73ec2b142c", size = 1689499, upload-time = "2026-03-12T03:40:07.642Z" },
45
- { url = "https://files.pythonhosted.org/packages/f3/01/b726c93d717d72733da031d2de10b92c9fa4c8d0c67e8a8a372076579279/black-26.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:474c27574d6d7037c1bc875a81d9be0a9a4f9ee95e62800dab3cfaadbf75acd5", size = 1754369, upload-time = "2026-03-12T03:40:09.279Z" },
46
- { url = "https://files.pythonhosted.org/packages/e3/09/61e91881ca291f150cfc9eb7ba19473c2e59df28859a11a88248b5cbbc4d/black-26.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:5e9d0d86df21f2e1677cc4bd090cd0e446278bcbbe49bf3659c308c3e402843e", size = 1413613, upload-time = "2026-03-12T03:40:10.943Z" },
47
- { url = "https://files.pythonhosted.org/packages/16/73/544f23891b22e7efe4d8f812371ab85b57f6a01b2fc45e3ba2e52ba985b8/black-26.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:9a5e9f45e5d5e1c5b5c29b3bd4265dcc90e8b92cf4534520896ed77f791f4da5", size = 1219719, upload-time = "2026-03-12T03:40:12.597Z" },
48
- { url = "https://files.pythonhosted.org/packages/dc/f8/da5eae4fc75e78e6dceb60624e1b9662ab00d6b452996046dfa9b8a6025b/black-26.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e6f89631eb88a7302d416594a32faeee9fb8fb848290da9d0a5f2903519fc1", size = 1895920, upload-time = "2026-03-12T03:40:13.921Z" },
49
- { url = "https://files.pythonhosted.org/packages/2c/9f/04e6f26534da2e1629b2b48255c264cabf5eedc5141d04516d9d68a24111/black-26.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cd2012d35b47d589cb8a16faf8a32ef7a336f56356babd9fcf70939ad1897f", size = 1718499, upload-time = "2026-03-12T03:40:15.239Z" },
50
- { url = "https://files.pythonhosted.org/packages/04/91/a5935b2a63e31b331060c4a9fdb5a6c725840858c599032a6f3aac94055f/black-26.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f76ff19ec5297dd8e66eb64deda23631e642c9393ab592826fd4bdc97a4bce7", size = 1794994, upload-time = "2026-03-12T03:40:17.124Z" },
51
- { url = "https://files.pythonhosted.org/packages/e7/0a/86e462cdd311a3c2a8ece708d22aba17d0b2a0d5348ca34b40cdcbea512e/black-26.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ddb113db38838eb9f043623ba274cfaf7d51d5b0c22ecb30afe58b1bb8322983", size = 1420867, upload-time = "2026-03-12T03:40:18.83Z" },
52
- { url = "https://files.pythonhosted.org/packages/5b/e5/22515a19cb7eaee3440325a6b0d95d2c0e88dd180cb011b12ae488e031d1/black-26.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:dfdd51fc3e64ea4f35873d1b3fb25326773d55d2329ff8449139ebaad7357efb", size = 1230124, upload-time = "2026-03-12T03:40:20.425Z" },
53
- { url = "https://files.pythonhosted.org/packages/f5/77/5728052a3c0450c53d9bb3945c4c46b91baa62b2cafab6801411b6271e45/black-26.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:855822d90f884905362f602880ed8b5df1b7e3ee7d0db2502d4388a954cc8c54", size = 1895034, upload-time = "2026-03-12T03:40:21.813Z" },
54
- { url = "https://files.pythonhosted.org/packages/52/73/7cae55fdfdfbe9d19e9a8d25d145018965fe2079fa908101c3733b0c55a0/black-26.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8a33d657f3276328ce00e4d37fe70361e1ec7614da5d7b6e78de5426cb56332f", size = 1718503, upload-time = "2026-03-12T03:40:23.666Z" },
55
- { url = "https://files.pythonhosted.org/packages/e1/87/af89ad449e8254fdbc74654e6467e3c9381b61472cc532ee350d28cfdafb/black-26.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f1cd08e99d2f9317292a311dfe578fd2a24b15dbce97792f9c4d752275c1fa56", size = 1793557, upload-time = "2026-03-12T03:40:25.497Z" },
56
- { url = "https://files.pythonhosted.org/packages/43/10/d6c06a791d8124b843bf325ab4ac7d2f5b98731dff84d6064eafd687ded1/black-26.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:c7e72339f841b5a237ff14f7d3880ddd0fc7f98a1199e8c4327f9a4f478c1839", size = 1422766, upload-time = "2026-03-12T03:40:27.14Z" },
57
- { url = "https://files.pythonhosted.org/packages/59/4f/40a582c015f2d841ac24fed6390bd68f0fc896069ff3a886317959c9daf8/black-26.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:afc622538b430aa4c8c853f7f63bc582b3b8030fd8c80b70fb5fa5b834e575c2", size = 1232140, upload-time = "2026-03-12T03:40:28.882Z" },
58
- { url = "https://files.pythonhosted.org/packages/d5/da/e36e27c9cebc1311b7579210df6f1c86e50f2d7143ae4fcf8a5017dc8809/black-26.3.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2d6bfaf7fd0993b420bed691f20f9492d53ce9a2bcccea4b797d34e947318a78", size = 1889234, upload-time = "2026-03-12T03:40:30.964Z" },
59
- { url = "https://files.pythonhosted.org/packages/0e/7b/9871acf393f64a5fa33668c19350ca87177b181f44bb3d0c33b2d534f22c/black-26.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f89f2ab047c76a9c03f78d0d66ca519e389519902fa27e7a91117ef7611c0568", size = 1720522, upload-time = "2026-03-12T03:40:32.346Z" },
60
- { url = "https://files.pythonhosted.org/packages/03/87/e766c7f2e90c07fb7586cc787c9ae6462b1eedab390191f2b7fc7f6170a9/black-26.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b07fc0dab849d24a80a29cfab8d8a19187d1c4685d8a5e6385a5ce323c1f015f", size = 1787824, upload-time = "2026-03-12T03:40:33.636Z" },
61
- { url = "https://files.pythonhosted.org/packages/ac/94/2424338fb2d1875e9e83eed4c8e9c67f6905ec25afd826a911aea2b02535/black-26.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:0126ae5b7c09957da2bdbd91a9ba1207453feada9e9fe51992848658c6c8e01c", size = 1445855, upload-time = "2026-03-12T03:40:35.442Z" },
62
- { url = "https://files.pythonhosted.org/packages/86/43/0c3338bd928afb8ee7471f1a4eec3bdbe2245ccb4a646092a222e8669840/black-26.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:92c0ec1f2cc149551a2b7b47efc32c866406b6891b0ee4625e95967c8f4acfb1", size = 1258109, upload-time = "2026-03-12T03:40:36.832Z" },
63
- { url = "https://files.pythonhosted.org/packages/8e/0d/52d98722666d6fc6c3dd4c76df339501d6efd40e0ff95e6186a7b7f0befd/black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b", size = 207542, upload-time = "2026-03-12T03:36:01.668Z" },
41
+ sdist = { url = "https://files.pythonhosted.org/packages/f8/65/a9611a6ec0a8c88d86e59385da02d68d9533f7e86a05913d20c67be54029/black-26.10.1.tar.gz", hash = "sha256:5f9f83beae62437e060dafd53d7f1fc327e3d3494f74d72ee5c2b73eb90fc4e7", size = 741979, upload-time = "2026-10-10T04:13:40.776Z" }
42
+ wheels = [
43
+ { url = "https://files.pythonhosted.org/packages/6f/1e/c1d4f71299d45f4ff54c9c42ef9214d6b228223f196bc1bb2ee196aeaeee/black-26.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9a0219b29cd70e49f920acb7081e6ce5025c719008447c521d0200dcad93206a", size = 2121821, upload-time = "2026-10-10T04:18:36.793Z" },
44
+ { url = "https://files.pythonhosted.org/packages/7f/e2/43944049c0945199bbd5c8b291b85306bfd0eeccbc908bf65538a69ff1b0/black-26.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7bdade400bfe24d78a7762896acc2f9a8e1a17fb0fd0536bf6b7c7097cf3eec7", size = 1961908, upload-time = "2026-10-10T04:18:38.942Z" },
45
+ { url = "https://files.pythonhosted.org/packages/d5/e9/9616d58f69f0e4bfa89ebe8686b6ef50f4b4f0f91237ae4c76f34dabf8aa/black-26.10.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ff57f63029aa1353fa8b1b0c8971fd88a6c92dc766608d2eee33ad2deb23270e", size = 2019042, upload-time = "2026-10-10T04:18:40.612Z" },
46
+ { url = "https://files.pythonhosted.org/packages/c5/de/0415cce69e2402a5c186cdb5462a0edd3fa44d69d1a1630e68e58daaa6a4/black-26.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3414a0c52901964dceabd98c7c56beac0f964115a116ecedcce7247359b14017", size = 1608383, upload-time = "2026-10-10T04:18:42.25Z" },
47
+ { url = "https://files.pythonhosted.org/packages/a9/61/af18e716432e932f166ce9dfa419ce3f05fd5ef8c52c0510d27ae41aaa51/black-26.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:1935b32f5326028019856e18cb42b4da63db23765dc84464cec723e0de478a9b", size = 1466048, upload-time = "2026-10-10T04:18:44.271Z" },
48
+ { url = "https://files.pythonhosted.org/packages/f7/ca/357ccdd12e8f8429539f8f52edc153de58acba84f6670ac36c254a276691/black-26.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fe85fc4019bee59bc495c0f2a8ee76c5cd02c7015508d94a967ba2376f39a52c", size = 2167369, upload-time = "2026-10-10T04:18:45.948Z" },
49
+ { url = "https://files.pythonhosted.org/packages/a5/a2/4709110a7ca326ba7b4f81a669fbebc20653c79a972b0f8de4ba5b5c5e68/black-26.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:182f6c32be38074b16d378498c498b32cb51928178ee611485344972c35ec9c6", size = 1990732, upload-time = "2026-10-10T04:18:48.252Z" },
50
+ { url = "https://files.pythonhosted.org/packages/1e/96/9f8fa839c169d19c38ce6582d9449f2d7d70dabd313ac28f15a930260c1f/black-26.10.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b5347d760f0c02bb00dd249384cab71c3bf828b4f68d5b401eb116e0390f147d", size = 2065235, upload-time = "2026-10-10T04:18:50.064Z" },
51
+ { url = "https://files.pythonhosted.org/packages/2b/ee/929eaf7de6f05a3141d6df72acf9248118f49a5e48f9375be3180e9babf7/black-26.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:4d9a90516db1d99c25dbb20cc0998e0e01531dd903466c7744e56d66f864220a", size = 1621579, upload-time = "2026-10-10T04:18:51.59Z" },
52
+ { url = "https://files.pythonhosted.org/packages/90/3a/8b6a44abf9648b087311003b91298226c1763172cd8d223ece5b7cf8f795/black-26.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:2ffbc023a12d0c729408823b8f10514490bd0baa301d0d4e21a7240249f9507f", size = 1469662, upload-time = "2026-10-10T04:18:53.245Z" },
53
+ { url = "https://files.pythonhosted.org/packages/99/6b/bc0d39990bd7a71457d669639fa06acf6191bec28bafe8b8103f597cce76/black-26.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b6272cfd7e1e8e271f5b0e0207259fe2834687e5cb9b5f620b34a44db9754993", size = 2153812, upload-time = "2026-10-10T04:18:55.041Z" },
54
+ { url = "https://files.pythonhosted.org/packages/85/0e/cc83b88a6b1a51fc051aa4e24663918f0bf4fa9fca98552ee93a125a6780/black-26.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:978113a40223a6aaefc17364176a809a320e6b288683841427fff04c6d7b4130", size = 1980352, upload-time = "2026-10-10T04:18:56.849Z" },
55
+ { url = "https://files.pythonhosted.org/packages/7b/0f/4dd24ea0ebadbe05e293c3ea7fbebd4389f50508f714640c9b309a0849d2/black-26.10.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03c0ddd93bb392e71209903a691767eb366fe1a76deb9509ccbaae9e1f14bb52", size = 2055268, upload-time = "2026-10-10T04:18:58.974Z" },
56
+ { url = "https://files.pythonhosted.org/packages/a2/06/221f8e81891ecf5e4df9c258a11037997f1f218533ffe4fa1dc4db37f19c/black-26.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6dba8138cdc99061ef07b958ac082d2aa057b6961d1936f9717c350f02bab5f", size = 1625938, upload-time = "2026-10-10T04:19:00.65Z" },
57
+ { url = "https://files.pythonhosted.org/packages/2b/3b/763d2dd073fc1e2cbf0fe5e584fe96913bf0d14cd725d1116f4b38453adf/black-26.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:d42dd2fac7c342ae67e64ee99c9532e20b2a84e92c79ed3317fa2ef54c801d93", size = 1470752, upload-time = "2026-10-10T04:19:03.009Z" },
58
+ { url = "https://files.pythonhosted.org/packages/76/7b/e8d275b23f3023881c0b0d8ce3bbda0d100c79bdef87fb6518bf9e0c5040/black-26.10.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:8375962579d537364cc0efa19b1474481915d3a793f9fc0774901814c5e5b5f4", size = 2147731, upload-time = "2026-10-10T04:19:04.643Z" },
59
+ { url = "https://files.pythonhosted.org/packages/ee/62/e44f86ee5fc7b893ee0ee935a79c785932da7758d2c339749d90a20ef213/black-26.10.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d8b3a9074a680b3c5749633714e9ae3992a1e5a23343a97ad61cd9b119b444d2", size = 1981714, upload-time = "2026-10-10T04:19:06.287Z" },
60
+ { url = "https://files.pythonhosted.org/packages/89/2f/e12ca76edfcd037fe9e7e7635d9468d1d51255cf25a01b2f8f97a38f147d/black-26.10.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:289282aa2e09d3162312a3be1788ff21b08e9ea9cc4a81e656024728b32428fb", size = 2047807, upload-time = "2026-10-10T04:19:08.193Z" },
61
+ { url = "https://files.pythonhosted.org/packages/c3/af/676d3c5cbb2ab0f17c8459b3ae8ea15ebdcc5a2f1c1c586228ec85b8897f/black-26.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:5cd88fd7b444ca51f3fc883b6f6657ea53a258b0b2eef6d9f2dfcfa17ce0e27b", size = 1652537, upload-time = "2026-10-10T04:19:09.817Z" },
62
+ { url = "https://files.pythonhosted.org/packages/ad/7b/860022d369fdd5fe14280b1e7109f58753c371ff91ce2311d68a056e488a/black-26.10.1-cp314-cp314-win_arm64.whl", hash = "sha256:2520037aa62f8a1454d0811b8f5c88b444445b03a4bfba480d8d220893b64c34", size = 1504226, upload-time = "2026-10-10T04:19:11.367Z" },
63
+ { url = "https://files.pythonhosted.org/packages/b1/28/9dd29175c1db777e6189e2a0bb5f37101adf19c3e509b236c8920f778d0b/black-26.10.1-py3-none-any.whl", hash = "sha256:28842f9a8207cc1df6eb983a35a14c5a0dfcd603d214fe82d84bef552afd2e3a", size = 239267, upload-time = "2026-10-10T04:13:38.808Z" },
64
64
  ]
65
65
 
66
66
  [[package]]
@@ -333,7 +333,7 @@ test = [
333
333
  [package.metadata]
334
334
  requires-dist = [
335
335
  { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8.0" },
336
- { name = "black", marker = "extra == 'dev'", specifier = ">=24.0.0" },
336
+ { name = "black", marker = "extra == 'dev'", specifier = ">=26.10.1" },
337
337
  { name = "certifi", specifier = ">=2025.6.15" },
338
338
  { name = "coverage", extras = ["toml"], marker = "extra == 'dev'", specifier = ">=7.9.1" },
339
339
  { name = "coverage", extras = ["toml"], marker = "extra == 'test'", specifier = ">=7.9.1" },
@@ -564,40 +564,52 @@ wheels = [
564
564
 
565
565
  [[package]]
566
566
  name = "pycurl"
567
- version = "7.45.7"
568
- source = { registry = "https://pypi.org/simple" }
569
- sdist = { url = "https://files.pythonhosted.org/packages/e3/3d/01255f1cde24401f54bb3727d0e5d3396b67fc04964f287d5d473155f176/pycurl-7.45.7.tar.gz", hash = "sha256:9d43013002eab2fd6d0dcc671cd1e9149e2fc1c56d5e796fad94d076d6cb69ef", size = 241098, upload-time = "2025-09-24T13:37:17.067Z" }
570
- wheels = [
571
- { url = "https://files.pythonhosted.org/packages/b9/b1/923d75ec2bcb39bef889ce47f706ab07fbb050ac528712af586acd641028/pycurl-7.45.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f17264adc95a7f92a148d17c55eee885da640cbd98cf9169e643029d79bb18c7", size = 3795020, upload-time = "2025-09-24T13:36:07.115Z" },
572
- { url = "https://files.pythonhosted.org/packages/92/f9/edf6965ab5260257fad3ba962474908150ca45125b415a561ec710f6b5b6/pycurl-7.45.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0bcfeaf766372ec40e3830d4ad6ebc3064e8a0bd145214d4291d17ed6017f3e3", size = 3902808, upload-time = "2025-09-24T13:36:08.827Z" },
573
- { url = "https://files.pythonhosted.org/packages/a4/61/2c3aea6481d9012e9b8e7264225ac57a3fa03ff02b1b6c3a4e89a8b78bdf/pycurl-7.45.7-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:788df7ab964f03894c616e742e088f1bf209a54465f61541ba77901a9e1cd701", size = 5178287, upload-time = "2025-09-24T13:36:10.613Z" },
574
- { url = "https://files.pythonhosted.org/packages/ad/b7/e3524703c4a74d9e080a0f4bd6c7ec829bd1ed0a8d5f8c22eb91de8ba947/pycurl-7.45.7-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:3d19b4a94c2e20976cbc7773e5398bae19e3bc65a0894fcd01d8477bfc5fdb2f", size = 4881508, upload-time = "2025-09-24T13:36:12.305Z" },
575
- { url = "https://files.pythonhosted.org/packages/57/4c/721eeb17205aee5ff68511230b23b2cb0d70ffdf7aa9d393abdffa5e326c/pycurl-7.45.7-cp311-cp311-win32.whl", hash = "sha256:d5d7bc6e01d74548e93d5b9b3e38c3a91b6f54a36f2fe13407cac035b57f0c1f", size = 2738302, upload-time = "2025-09-24T13:36:14.078Z" },
576
- { url = "https://files.pythonhosted.org/packages/88/3f/c3ff543ad28c3e94f8db8044142a2c9963960ff976aeb1b09f4761967ab9/pycurl-7.45.7-cp311-cp311-win_amd64.whl", hash = "sha256:94a3c02381b62b2f0498f4ea3a3bd8b96ae2a6a905fcfd198547805894793a5b", size = 3299170, upload-time = "2025-09-24T13:36:15.898Z" },
577
- { url = "https://files.pythonhosted.org/packages/3b/d3/77cf5cef99e83cf9e088e4a4539b933cdccf2bfabbb32f55d0273f9efd11/pycurl-7.45.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd69340f5a49d6e4f67723db6ea4459c554d2210c3dd4da99950d6d405ddafb4", size = 3795471, upload-time = "2025-09-24T13:36:17.608Z" },
578
- { url = "https://files.pythonhosted.org/packages/18/f9/42137fcace6403a1670dc203a16fce443f53da7b14cdc28f05053008e56b/pycurl-7.45.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:752a5bbbd1b148b61d69be718e2c1c89a1b16de27a21e6382d28c8d2a33e9bf1", size = 3903182, upload-time = "2025-09-24T13:36:19.353Z" },
579
- { url = "https://files.pythonhosted.org/packages/9f/db/46134f8e822527a39fd4ed0e5150992274f1368a4fe8402818cc45470ffe/pycurl-7.45.7-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:5fa5afd86d86e156051c7d7d6de34f6c03a7a64e4794ac0d72379bee8fcafafd", size = 5188809, upload-time = "2025-09-24T13:36:21.444Z" },
580
- { url = "https://files.pythonhosted.org/packages/e1/f8/9a6148258b056202d5872fcd5e4d512ad9ee487c0f7b5dddd631004432b4/pycurl-7.45.7-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f463a7f7c12b322b4f72af908f863b4da1f71dae344dd75f50d30c33ff0f197a", size = 4893965, upload-time = "2025-09-24T13:36:23.108Z" },
581
- { url = "https://files.pythonhosted.org/packages/41/16/bbf5da7e0108dafddb70347f299f6de54f1364079a66653759c9e9fb099d/pycurl-7.45.7-cp312-cp312-win32.whl", hash = "sha256:83c217e0c7aea28bbd9512e27fb6f9ef9b9f398dff57ebe223ecaa043bcd08fa", size = 2736232, upload-time = "2025-09-24T13:36:25.072Z" },
582
- { url = "https://files.pythonhosted.org/packages/a8/16/ab7d73ed3d2a31a9d9bb8a44710b8f95f6ea24bd260967f07ae67c36e8c4/pycurl-7.45.7-cp312-cp312-win_amd64.whl", hash = "sha256:150b1d2e98bcf760878b3891e6f2f937a4b2a90c559ffc6add65aeb5844bc66a", size = 3296191, upload-time = "2025-09-24T13:36:27.242Z" },
583
- { url = "https://files.pythonhosted.org/packages/1a/0c/b6442a204c13d68e339d18c7f16a30b0178ad1efed644fe411f8a404934c/pycurl-7.45.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8d39cc233c7c3303072758b088ad7ccde0a5dcb30ce752f2f8a31428a07faac1", size = 3795397, upload-time = "2025-09-24T13:36:29.362Z" },
584
- { url = "https://files.pythonhosted.org/packages/e5/23/dae7f5bf59f31908fd10797e03e9af6ad70ee0fe8a71783bcced68ca7db4/pycurl-7.45.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:824a785d01500da47fe6935dbadc4b0a14577405c25d01327a94717578dd2b1d", size = 3903225, upload-time = "2025-09-24T13:36:31.393Z" },
585
- { url = "https://files.pythonhosted.org/packages/33/93/016d37e76b172d508706828319389a08be4cb669daab8cdac6947b699f80/pycurl-7.45.7-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:998335e6b69691c097e3a74214901c71773e0a7a8d3d0cc87c60d6969eb8b584", size = 5189262, upload-time = "2025-09-24T13:36:33.752Z" },
586
- { url = "https://files.pythonhosted.org/packages/24/e3/039ed3b136fb008354047881a3f36e5647d67d97d7b7620123fa8b9c515f/pycurl-7.45.7-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:00824c3c64d5e935d0325e6a000bb0242622cd763d1e202c1a8df455bc58da58", size = 4895224, upload-time = "2025-09-24T13:36:35.449Z" },
587
- { url = "https://files.pythonhosted.org/packages/9a/52/f2326e0ddb2c6ab74a46c90aff0aac565cc4f804f03ac6a454cf7c75cb37/pycurl-7.45.7-cp313-cp313-win32.whl", hash = "sha256:bfe49668ba0a7fba183cf0e189bb8da515793da8f383d8d157ac8647143dc516", size = 2736217, upload-time = "2025-09-24T13:36:37.152Z" },
588
- { url = "https://files.pythonhosted.org/packages/96/d5/d7214c92b97fe8541efcdf42a35e5b0852e6c57340f9266e4f4acccfa492/pycurl-7.45.7-cp313-cp313-win_amd64.whl", hash = "sha256:3d9d718c366983bc65b149f0947f016929b4001f604f2523e6de5a49907f4474", size = 3296259, upload-time = "2025-09-24T13:36:38.886Z" },
589
- { url = "https://files.pythonhosted.org/packages/85/bb/18c4e53ef9a8d52451336aae1e44768dfb639ba46dd02f331c5dc9220bc3/pycurl-7.45.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6157ac0daf30ffc28446c54ebbd073c8c11b45cba9c45256619e218a07a31312", size = 3794861, upload-time = "2025-09-24T13:36:40.509Z" },
590
- { url = "https://files.pythonhosted.org/packages/ce/23/ea963df437b8b0fd4e2ff5909dbfd800364231a95588de2b6446ffbdd1c8/pycurl-7.45.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:09ac9a855273a77f7c6a72f05be430646c47a298d403a75876c2188ea5d77534", size = 3903002, upload-time = "2025-09-24T13:36:42.765Z" },
591
- { url = "https://files.pythonhosted.org/packages/4c/33/6432144d3961ff862c1ac933f4851828f8947d615aa46b50b91162224af9/pycurl-7.45.7-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:0263e94d2ea3cd25b5fcf96527f521dc29b8a73a9b19e71223b6e2452f5cb35a", size = 5186571, upload-time = "2025-09-24T13:36:44.584Z" },
592
- { url = "https://files.pythonhosted.org/packages/44/91/635beb1e8c5a8b2a031fb09bd64e5c2abd332cebb9211739539ab385e731/pycurl-7.45.7-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:54cffa56a5ead14915f1f0d3e8fabf6fcea3056a8e5f971fc1caebb9715bd9b1", size = 4891741, upload-time = "2025-09-24T13:36:46.7Z" },
593
- { url = "https://files.pythonhosted.org/packages/77/bd/51ffbf6c4a3c5bcdad2f3175c5b5980fff4dd668e2556593530030430fcf/pycurl-7.45.7-cp314-cp314-win32.whl", hash = "sha256:09e426cf5e61e5b37c30903734204f75023baa6e4bfe574e037f12e53ec3f0ba", size = 2817391, upload-time = "2025-09-24T13:36:48.766Z" },
594
- { url = "https://files.pythonhosted.org/packages/f1/68/c7c7f4b2372568eff3a12046364fdd74e382778563ee26727a1b016702bc/pycurl-7.45.7-cp314-cp314-win_amd64.whl", hash = "sha256:8eab3a83670d83966c7a0df4fa02cf2272499966066bfaa810444c427cb653b0", size = 3403530, upload-time = "2025-09-24T13:36:50.825Z" },
595
- { url = "https://files.pythonhosted.org/packages/e1/66/b65ae067433f37fd4c2b89aec9b0ab31b35cd3846e77854e7ec47bfb9d13/pycurl-7.45.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:69f16d6709f3305da1043ee9edb5e1715212b75011779d58c4bd8fc9ad9fc88a", size = 3798020, upload-time = "2025-09-24T13:36:53.259Z" },
596
- { url = "https://files.pythonhosted.org/packages/5d/31/af6edb607b7d359b54df63ee561650fe7f94347f86e7c600e0042af595cc/pycurl-7.45.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:435f140afa59eb0cece57e6364348977af768add452d49a8547a26fc90dc2bfa", size = 3905273, upload-time = "2025-09-24T13:36:55.386Z" },
597
- { url = "https://files.pythonhosted.org/packages/79/35/4825905afb55037db15d2d2c9a45253ca8951559ef5f62afd277c98d1ec2/pycurl-7.45.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:ff50a3d787c3d059f330d7cb7325b40416bcb0f43f5006b396a6e61871df0ebf", size = 5247322, upload-time = "2025-09-24T13:36:57.568Z" },
598
- { url = "https://files.pythonhosted.org/packages/28/fc/716a3e9d335aa12f09471842e49e3db9eb792a06ddc6203a6fb1b90b7f7a/pycurl-7.45.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:5ed0cab4e05558ba112111585ae2a85627ab48d6185547fc4ba8ec8e2cfecd0d", size = 4947252, upload-time = "2025-09-24T13:36:59.26Z" },
599
- { url = "https://files.pythonhosted.org/packages/43/05/b8274ad3740b76f029031921b1831f9a7f9fdc419333c85488b25dcde87a/pycurl-7.45.7-cp314-cp314t-win32.whl", hash = "sha256:e79f90c0af413933dedc79a1717f49076f08b32ff4a42776d6c38ba37125717e", size = 2824929, upload-time = "2025-09-24T13:37:01.665Z" },
600
- { url = "https://files.pythonhosted.org/packages/70/c1/3982528967a42eff566d7e94fce0c8a0cf293c398a38465f87709440f260/pycurl-7.45.7-cp314-cp314t-win_amd64.whl", hash = "sha256:bdb72c53445b1c09315940c81a14a3635dfde6710aea703976ce9617209830e7", size = 3412632, upload-time = "2025-09-24T13:37:03.852Z" },
567
+ version = "7.49.0"
568
+ source = { registry = "https://pypi.org/simple" }
569
+ sdist = { url = "https://files.pythonhosted.org/packages/a6/b3/93b9b8b4ed45f4700b3f9fc40b5daf189e0badd71d0839a6ad09cefa2245/pycurl-7.49.0.tar.gz", hash = "sha256:d4327da9dea72768f942f831bbaa5a64adca4d7c89f3141da7a833d3c600ab90", size = 305853, upload-time = "2026-10-27T01:33:40.575Z" }
570
+ wheels = [
571
+ { url = "https://files.pythonhosted.org/packages/66/e0/600818069cb8239c49d9d1614698425e0582fcb0b4db3b1aa7bccd38c13f/pycurl-7.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b19c8abb40d8d1d958b5ac134af33869043782c24b8868f48883ee34e3f5db61", size = 4886223, upload-time = "2026-10-27T01:32:18.094Z" },
572
+ { url = "https://files.pythonhosted.org/packages/20/95/a02a2cacc684c4a1b87eb6e133c72b53389709b85db4811bfdfbf3eae8a0/pycurl-7.49.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a42e64f197ac3e95cc64a06a23a1a01ac55a22c8a7e94c9d93e9fe7d0c09d31", size = 4885301, upload-time = "2026-10-27T01:32:19.916Z" },
573
+ { url = "https://files.pythonhosted.org/packages/e7/d0/fdf5cdf76196c7281c01754359e46a914a7b028bf6db8c5eb6a03eb1b339/pycurl-7.49.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b1cd6cea1618ec2a6bbe4e430b34dcc83c5bfb5373a25809fb77e4ec451990ad", size = 6644187, upload-time = "2026-10-27T01:32:21.519Z" },
574
+ { url = "https://files.pythonhosted.org/packages/fa/08/93271635259c240f6e3113b67c18af8c60219dfd95030fca38cd0460b9ea/pycurl-7.49.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:6f88539845d3bb2cf2ce0ccbc1bb8b9ed9e401a0d874798aeabc5f16f0f95c4d", size = 6341272, upload-time = "2026-10-27T01:32:23.339Z" },
575
+ { url = "https://files.pythonhosted.org/packages/44/1f/90eb2272db38e7766dcb70440aa3a1eaeebdc8d03ab63bc1b22ef8791db3/pycurl-7.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:ee47cf03a9d3ad8f309c7a34dc6236c48d81257b91b164f9a8fb2363464a5ffa", size = 17183152, upload-time = "2026-10-27T01:32:25.021Z" },
576
+ { url = "https://files.pythonhosted.org/packages/ab/9f/e42b621c21fa8417a827a3e93997d5b5a867fa7f7f4e3e93c2b34956bd91/pycurl-7.49.0-cp311-cp311-win_arm64.whl", hash = "sha256:ccd92ed511675c52227c8e66c12d6f46cfae226960d563d116fd92e3038c5444", size = 17565623, upload-time = "2026-10-27T01:32:27.433Z" },
577
+ { url = "https://files.pythonhosted.org/packages/35/55/dba0d0cb19849c5bb26442d484b435338342488ba4eb820a751fdc56ea8d/pycurl-7.49.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:575d6d5d6e0c00577f81dfcbd696c27d824130abae2be9be167a4bfbdfc86c61", size = 4886569, upload-time = "2026-10-27T01:32:29.633Z" },
578
+ { url = "https://files.pythonhosted.org/packages/9c/1e/abcd6fd0afece28ef254bf27e7b5aa4437e53646f4a6c14c8863fe199364/pycurl-7.49.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2769aa99dac37856dba3c432eccd0585e1fa98735cb64b0c52f5ed552120a0d9", size = 4886220, upload-time = "2026-10-27T01:32:31.466Z" },
579
+ { url = "https://files.pythonhosted.org/packages/c7/dc/a2979dfb915916a4962c11d83a59d9a8f7b4d673e574f0d2a7da70fca321/pycurl-7.49.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8aa63c7f2d8451681d7f709a097d3df14ce335aa8a1321499d9cd2c7e35a4a18", size = 6660885, upload-time = "2026-10-27T01:32:33.112Z" },
580
+ { url = "https://files.pythonhosted.org/packages/48/9b/dfc22a122d75ea45925aaa0a8fc1d0b56fec7198aad2992433bb392911cb/pycurl-7.49.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b02ca356fb9aaced336a2b5ecd74f5eb1896442ddbfb47250e5cddb2b8578fab", size = 6358937, upload-time = "2026-10-27T01:32:35.125Z" },
581
+ { url = "https://files.pythonhosted.org/packages/59/ff/0db0354d99e5ba4a3c2d6f182ab34ba55d829f4abf455046cdf7176b7a51/pycurl-7.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:e4062a52f378a2f0e6c0da4571fa0a676dd59681869d5645354caf56bba1c906", size = 17185579, upload-time = "2026-10-27T01:32:36.866Z" },
582
+ { url = "https://files.pythonhosted.org/packages/9a/c5/7f30b0363b6cd574365b97a34ab32356a9579e03c96de1918de15ff38a06/pycurl-7.49.0-cp312-cp312-win_arm64.whl", hash = "sha256:5b8247cc5f76ce37ced12ec5f25d11f6e4b5d87795dc5b4891b48aac70a7c2ff", size = 17565565, upload-time = "2026-10-27T01:32:39.211Z" },
583
+ { url = "https://files.pythonhosted.org/packages/58/2b/48572ccdc1a51c3628a98ab4db4a96aedd5b350bf123d10d03a75d7359a1/pycurl-7.49.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1787fee6107fbe6771ff0e3f73b2878ea92711a844a91c2ef3831d5d6f40c613", size = 4886531, upload-time = "2026-10-27T01:32:41.6Z" },
584
+ { url = "https://files.pythonhosted.org/packages/8f/89/0ac7d0d6500924439ea98ebe5d482b3f312a6379de12259cb34d8cba3ca4/pycurl-7.49.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:21a197fcdc12c282136ad5879cf8566178d5228d84641f90f120bc988008239d", size = 4886076, upload-time = "2026-10-27T01:32:43.547Z" },
585
+ { url = "https://files.pythonhosted.org/packages/26/0a/2459ca3053d013691eb0afa051f22c1e567381bf1ae17254a539aa31f749/pycurl-7.49.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2778868eec4353ded220bb1e0c3b9e63fa903e94ede3861cfc66ac386b55eabb", size = 6666830, upload-time = "2026-10-27T01:32:45.345Z" },
586
+ { url = "https://files.pythonhosted.org/packages/fd/81/a6acd0b7bd56868ca1851b6cdcd015231170f74ece8a3ddd6fc6fef534fb/pycurl-7.49.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:0553733d9654a6faf6c672320d68576b07e407b2104c5e7b5569346fcfafa6f3", size = 6364307, upload-time = "2026-10-27T01:32:47.115Z" },
587
+ { url = "https://files.pythonhosted.org/packages/b7/32/89f24ea0e7839c52ecba6b2b667af31c05b38d4c9bd267669fa624b707c4/pycurl-7.49.0-cp313-cp313-win_amd64.whl", hash = "sha256:a57eac115ebec7cc0130f3921896e04569653b3b6ca10293c05e21f50a3de997", size = 17185421, upload-time = "2026-10-27T01:32:48.904Z" },
588
+ { url = "https://files.pythonhosted.org/packages/e3/95/93351de992438992ef50e90b89ea8bfa50e9b11c305534236a8ab3789fa8/pycurl-7.49.0-cp313-cp313-win_arm64.whl", hash = "sha256:f1008cc6b1f0339284b80caeb61dca221f926817dd6f461b4e762b89c66ca3fd", size = 17565607, upload-time = "2026-10-27T01:32:51.142Z" },
589
+ { url = "https://files.pythonhosted.org/packages/d3/20/d14e1353015393727ce240e3d5680b804c734a2717376e5889d329c17c1b/pycurl-7.49.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c640b751f6b48fe9ea9c23bb201c55aa6d6b528032cdb024d655e6a9297e249e", size = 4885908, upload-time = "2026-10-27T01:32:53.313Z" },
590
+ { url = "https://files.pythonhosted.org/packages/44/25/f3370a25176fa917368dd7aeda00750c3bcb49b816510173134b9be3fc02/pycurl-7.49.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cd7087d96cb16d1c36b6fd3986c731d13ee2666c642b10e0f90822a96d106421", size = 4885724, upload-time = "2026-10-27T01:32:54.808Z" },
591
+ { url = "https://files.pythonhosted.org/packages/f2/9e/b58eb8f788d5eab2b9dc359a815b5077f2d89fe029e2bcd5a8ddd9ab7a75/pycurl-7.49.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:53c2e43d3ac91a51faebb6e0eba6aebd376a01d57202e6713f7e99954b3b29ab", size = 6666228, upload-time = "2026-10-27T01:32:56.437Z" },
592
+ { url = "https://files.pythonhosted.org/packages/66/56/6adf005759ee0a5ed4b74e3c54210693e321ae23be80968c78e4fe7a76cd/pycurl-7.49.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:113708c9619af2d07daa43c179538f87458a0298797553da1bae2c18ce5d944d", size = 6361723, upload-time = "2026-10-27T01:32:58.226Z" },
593
+ { url = "https://files.pythonhosted.org/packages/e7/bd/3fe3d4c0cb0a641f993a24878b547a6f696ddf57934a382c511747cbcfe9/pycurl-7.49.0-cp314-cp314-win_amd64.whl", hash = "sha256:023228cf243176c4cc00664335be4169bd4fb366d5f012e4e5e2d7fb85b65c0b", size = 17926093, upload-time = "2026-10-27T01:33:00.327Z" },
594
+ { url = "https://files.pythonhosted.org/packages/c8/7f/5482806ad301401473876e7f438439631c6e0d1b35989f5d427eaa040379/pycurl-7.49.0-cp314-cp314-win_arm64.whl", hash = "sha256:d08c0a1b858564a5b72c66e791d1ab1a37d62863967a5fc82150ad14f7cfc05c", size = 18324014, upload-time = "2026-10-27T01:33:02.679Z" },
595
+ { url = "https://files.pythonhosted.org/packages/c3/43/5d6258259269de97c0d81e4e5ddef98031e53a2f6ce04e5867ec43c710be/pycurl-7.49.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:e09605c621680151da64c9da0a1a9b78fb24111c4ebaa0e2ab7ca18b6676d997", size = 4890190, upload-time = "2026-10-27T01:33:04.983Z" },
596
+ { url = "https://files.pythonhosted.org/packages/04/a0/b8d2f5fdb7b5d81e78147ceb5fdbaf767083bc9f024fbe2198ec307493bd/pycurl-7.49.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f19b1153d68da7988b44fcc15826c9acac848a144070fff00d9c1b04d9820d06", size = 4889026, upload-time = "2026-10-27T01:33:06.587Z" },
597
+ { url = "https://files.pythonhosted.org/packages/14/33/35856c19741804313e59e5e60558a42663ef66059cbf88201ebd21f7c255/pycurl-7.49.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:61caaf8edf39fbc01d8c4326aeeab809e3b50d82cdc0d61c9481a87568631b69", size = 6761451, upload-time = "2026-10-27T01:33:08.395Z" },
598
+ { url = "https://files.pythonhosted.org/packages/a6/51/0e0eb77435e535d0914aa2519972ef8ac3e82e5c8279677618d9b72fa123/pycurl-7.49.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ef0192aefe5b71a2f35ba69aee640634c1b9610ab5117790b2558edffc6caf4a", size = 6447791, upload-time = "2026-10-27T01:33:10.11Z" },
599
+ { url = "https://files.pythonhosted.org/packages/1b/a2/b17626fe68376492f94a7007159e201ca6cca8907544342f8e02b58e28e3/pycurl-7.49.0-cp314-cp314t-win_amd64.whl", hash = "sha256:571d8874dc7037c5d270346c7a1a7825f18354b4b2ab75646459e166fa63c319", size = 17931082, upload-time = "2026-10-27T01:33:12.052Z" },
600
+ { url = "https://files.pythonhosted.org/packages/75/dd/d1c94008d97116e8fd1f5e06fc3e26d1f87de608d0c2d4c4bcb5a506802a/pycurl-7.49.0-cp314-cp314t-win_arm64.whl", hash = "sha256:b0f413a826f11e5ebb05225108da1a40f2f60cdcf1e8450a188127c5e7963d7c", size = 18325405, upload-time = "2026-10-27T01:33:14.48Z" },
601
+ { url = "https://files.pythonhosted.org/packages/80/45/170a5eff99bf3a9c0ec69c3c15272d44d31709911cefeb32e22f7a865113/pycurl-7.49.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:873a441bee695ce280aa11f4e2220389d6395c70e2728d585a998b648e4a0345", size = 4886090, upload-time = "2026-10-27T01:33:16.651Z" },
602
+ { url = "https://files.pythonhosted.org/packages/2b/ac/2711c69beea1754012cb34319538e7206f1a9faa295c97269efd920b5528/pycurl-7.49.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:4c2c6059651ef9859a350877001c2155810def14fcca1e7ad88f6e845251e930", size = 4885757, upload-time = "2026-10-27T01:33:18.236Z" },
603
+ { url = "https://files.pythonhosted.org/packages/87/5b/742bf83897c70ffa4e62970db9dd23681bf3262a1f9159915a9cab88ceb0/pycurl-7.49.0-cp315-cp315-manylinux_2_28_aarch64.whl", hash = "sha256:10be3ff2c57d792a00a5bc2d900a2153823516a5acb5463775d64aa586eca8d3", size = 6669551, upload-time = "2026-10-27T01:33:20.056Z" },
604
+ { url = "https://files.pythonhosted.org/packages/2e/24/dec569f9f9c43cad4fb72d7c5b6d9c3067670700804d6742d783b010550e/pycurl-7.49.0-cp315-cp315-manylinux_2_28_x86_64.whl", hash = "sha256:684747cca0e1a8d045c4a3b9a4db3e604bedfbc932955377a58998491c7d29e8", size = 6366030, upload-time = "2026-10-27T01:33:21.995Z" },
605
+ { url = "https://files.pythonhosted.org/packages/70/9f/bed5494ff7233d83c129b7bb67659befa825cdc1fe5df6f7ffbcdf8d3eda/pycurl-7.49.0-cp315-cp315-win_amd64.whl", hash = "sha256:a34a5a4885fc244f6976738f8ad2235b9eb526b0886fa5ce1ad926540f90545e", size = 17926221, upload-time = "2026-10-27T01:33:24.053Z" },
606
+ { url = "https://files.pythonhosted.org/packages/60/1a/ed817f328a6a74854558f65b7ffafcc622fd51a73c63cd2814dc09ae308b/pycurl-7.49.0-cp315-cp315-win_arm64.whl", hash = "sha256:b485321ca8de7d3ddd24aad1746beaf22c6b1d5d7dfea95ca9390b8f6f940fc8", size = 18324099, upload-time = "2026-10-27T01:33:26.314Z" },
607
+ { url = "https://files.pythonhosted.org/packages/ae/6f/ba651870fe58bca24828ee69671c32f860018c4b2951b29817d6c5915aed/pycurl-7.49.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:b6f0fc0c6317fe74da605088435161b1e6756c07aa51c2a02b819e399d3b19bc", size = 4889811, upload-time = "2026-10-27T01:33:29.052Z" },
608
+ { url = "https://files.pythonhosted.org/packages/4a/85/3eb7fab97ea6c866dc7e8e372ecdfe441f6e9be06daf7dbca233901d8396/pycurl-7.49.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:88561246362aa35e3e99c70d0fd6d46379e89e7d2efe3caaab2ecf0fee261a47", size = 4888901, upload-time = "2026-10-27T01:33:31.194Z" },
609
+ { url = "https://files.pythonhosted.org/packages/fd/28/81253c27f1a40c1ac40fdfb5e663d101c5dd24b05d53e2d6e99876448c3c/pycurl-7.49.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:fa556d6ad832b5bb879517b751b29e3dcfc75f5771971be3106c0e116987aa5b", size = 6759934, upload-time = "2026-10-27T01:33:32.929Z" },
610
+ { url = "https://files.pythonhosted.org/packages/5f/ea/0162f5c7c8ddb6b3037bc1fe94031118ff559bfac6a1f35c1435c3d29b14/pycurl-7.49.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:d6c9ecda1bdeca76649d8230d5b187dba781122222d3eda83f7d3214144c9483", size = 6446834, upload-time = "2026-10-27T01:33:34.66Z" },
611
+ { url = "https://files.pythonhosted.org/packages/93/f3/13839976a78c8897d29bfdf94b5fb8816ffdcde223a7c00a4455c0ece3ae/pycurl-7.49.0-cp315-cp315t-win_amd64.whl", hash = "sha256:938cecd67c7f30a0a650fcc9de00af77a41a44cdbf851ad6088624bf6b0f0e6b", size = 17930842, upload-time = "2026-10-27T01:33:36.401Z" },
612
+ { url = "https://files.pythonhosted.org/packages/c0/dc/40d852dad9db1ea0b549bad7e5690917ddaeb6ce1a609bb5c767746b3ed0/pycurl-7.49.0-cp315-cp315t-win_arm64.whl", hash = "sha256:1371e217a7e4d86ff6efedd576b5267b42143a9964df91dba3fe7d31a68aa18a", size = 18325342, upload-time = "2026-10-27T01:33:38.641Z" },
601
613
  ]
602
614
 
603
615
  [[package]]
@@ -902,7 +914,7 @@ wheels = [
902
914
 
903
915
  [[package]]
904
916
  name = "virtualenv"
905
- version = "21.14.9"
917
+ version = "21.15.1"
906
918
  source = { registry = "https://pypi.org/simple" }
907
919
  dependencies = [
908
920
  { name = "distlib" },
@@ -911,7 +923,7 @@ dependencies = [
911
923
  { name = "platformdirs" },
912
924
  { name = "python-discovery" },
913
925
  ]
914
- sdist = { url = "https://files.pythonhosted.org/packages/d0/04/2f69ba1207ce59630ecea8ebfdaf5c8f9a14726f2408ccd145a18d1ef619/virtualenv-21.14.9.tar.gz", hash = "sha256:4d1bee354cd81c820da3bee56e38be3426490f8d1fc54e10ea5b2072ebad8ef8", size = 5500672, upload-time = "2026-10-17T16:09:42.345Z" }
926
+ sdist = { url = "https://files.pythonhosted.org/packages/b2/24/20282bc8e69ff8dee680dc2b95e9dc81fa7e7894b14c1a8d06330e97fef7/virtualenv-21.15.1.tar.gz", hash = "sha256:e79c90b8f601701599c25905e02839924fede2c798d52325670d24fbdaab74ee", size = 5517048, upload-time = "2026-10-28T01:12:50.919Z" }
915
927
  wheels = [
916
- { url = "https://files.pythonhosted.org/packages/64/e5/9a3918219745e8bdd64fe0fd9a2d7ce4fffde9268fbc791634b7d4779de9/virtualenv-21.14.9-py3-none-any.whl", hash = "sha256:ac51744da66ae56ff814b087d65096c94de698ec520adc624b108b679655809b", size = 5494452, upload-time = "2026-10-17T16:09:40.584Z" },
928
+ { url = "https://files.pythonhosted.org/packages/ce/23/cdab19d3a9da42ca0938081e163e25f81e610141800ead743ba1ee881f0e/virtualenv-21.15.1-py3-none-any.whl", hash = "sha256:0d14a991689c67600316880eadc0a37b7690cb632e3b4ac67e2bc05b2b2e24a4", size = 5558848, upload-time = "2026-10-28T01:12:48.605Z" },
917
929
  ]
@@ -1,35 +0,0 @@
1
- ---
2
- # SPDX-License-Identifier: Apache-2.0
3
- # SPDX-FileCopyrightText: 2025 The Linux Foundation
4
-
5
- name: 'CodeQL'
6
- # Must be called codeql.yml NOT codeql.yaml or GitHub will ignore it
7
-
8
- on:
9
- workflow_dispatch:
10
- push:
11
- branches: ['main', 'master']
12
- paths:
13
- - '!.github/**'
14
- - '!.docs/**'
15
- schedule:
16
- - cron: '40 4 * * 0'
17
-
18
- permissions: {}
19
-
20
- concurrency:
21
- group: ${{ github.workflow }}
22
- cancel-in-progress: true
23
-
24
- jobs:
25
- codeql:
26
- name: 'CodeQL'
27
- permissions:
28
- contents: read # checkout
29
- security-events: write # upload results to code scanning
30
- packages: read # fetch internal or private CodeQL packs
31
- actions: read # the upload reads run info on private repositories
32
- # yamllint disable-line rule:line-length
33
- uses: lfreleng-actions/security-workflows/.github/workflows/codeql.yaml@ef6c0d9930feedb274067703b50eeebe5ab859b3 # v0.9.5
34
- with:
35
- languages: 'python,actions'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes