amati 0.3.18__tar.gz → 0.3.20__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 (103) hide show
  1. {amati-0.3.18 → amati-0.3.20}/.github/workflows/checks.yaml +2 -2
  2. {amati-0.3.18 → amati-0.3.20}/.github/workflows/codeql.yml +2 -2
  3. {amati-0.3.18 → amati-0.3.20}/.github/workflows/coverage.yaml +1 -1
  4. {amati-0.3.18 → amati-0.3.20}/.github/workflows/data-refresh.yaml +1 -1
  5. {amati-0.3.18 → amati-0.3.20}/.github/workflows/publish.yaml +1 -1
  6. {amati-0.3.18 → amati-0.3.20}/.github/workflows/scorecards.yml +2 -2
  7. {amati-0.3.18 → amati-0.3.20}/.github/workflows/tag-and-create-release.yaml +1 -1
  8. {amati-0.3.18 → amati-0.3.20}/.pre-commit-config.yaml +2 -2
  9. {amati-0.3.18 → amati-0.3.20}/PKG-INFO +1 -1
  10. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/media-types.json +7 -0
  11. {amati-0.3.18 → amati-0.3.20}/pyproject.toml +1 -1
  12. {amati-0.3.18 → amati-0.3.20}/uv.lock +26 -26
  13. {amati-0.3.18 → amati-0.3.20}/.dockerignore +0 -0
  14. {amati-0.3.18 → amati-0.3.20}/.github/actions/setup/action.yaml +0 -0
  15. {amati-0.3.18 → amati-0.3.20}/.github/dependabot.yml +0 -0
  16. {amati-0.3.18 → amati-0.3.20}/.github/workflows/dependency-review.yml +0 -0
  17. {amati-0.3.18 → amati-0.3.20}/.gitignore +0 -0
  18. {amati-0.3.18 → amati-0.3.20}/.python-version +0 -0
  19. {amati-0.3.18 → amati-0.3.20}/Dockerfile +0 -0
  20. {amati-0.3.18 → amati-0.3.20}/LICENSE +0 -0
  21. {amati-0.3.18 → amati-0.3.20}/README.md +0 -0
  22. {amati-0.3.18 → amati-0.3.20}/SECURITY.md +0 -0
  23. {amati-0.3.18 → amati-0.3.20}/TEMPLATE.html +0 -0
  24. {amati-0.3.18 → amati-0.3.20}/amati/__init__.py +0 -0
  25. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/http-status-codes.json +0 -0
  26. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/iso9110.json +0 -0
  27. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/schemes.json +0 -0
  28. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/spdx-licences.json +0 -0
  29. {amati-0.3.18 → amati-0.3.20}/amati/_data/files/tlds.json +0 -0
  30. {amati-0.3.18 → amati-0.3.20}/amati/_data/http_status_code.py +0 -0
  31. {amati-0.3.18 → amati-0.3.20}/amati/_data/iso9110.py +0 -0
  32. {amati-0.3.18 → amati-0.3.20}/amati/_data/media_types.py +0 -0
  33. {amati-0.3.18 → amati-0.3.20}/amati/_data/refresh.py +0 -0
  34. {amati-0.3.18 → amati-0.3.20}/amati/_data/schemes.py +0 -0
  35. {amati-0.3.18 → amati-0.3.20}/amati/_data/spdx_licences.py +0 -0
  36. {amati-0.3.18 → amati-0.3.20}/amati/_data/tlds.py +0 -0
  37. {amati-0.3.18 → amati-0.3.20}/amati/_error_handler.py +0 -0
  38. {amati-0.3.18 → amati-0.3.20}/amati/_logging.py +0 -0
  39. {amati-0.3.18 → amati-0.3.20}/amati/_references.py +0 -0
  40. {amati-0.3.18 → amati-0.3.20}/amati/_resolve_forward_references.py +0 -0
  41. {amati-0.3.18 → amati-0.3.20}/amati/amati.py +0 -0
  42. {amati-0.3.18 → amati-0.3.20}/amati/exceptions.py +0 -0
  43. {amati-0.3.18 → amati-0.3.20}/amati/fields/__init__.py +0 -0
  44. {amati-0.3.18 → amati-0.3.20}/amati/fields/_custom_types.py +0 -0
  45. {amati-0.3.18 → amati-0.3.20}/amati/fields/commonmark.py +0 -0
  46. {amati-0.3.18 → amati-0.3.20}/amati/fields/email.py +0 -0
  47. {amati-0.3.18 → amati-0.3.20}/amati/fields/http_status_codes.py +0 -0
  48. {amati-0.3.18 → amati-0.3.20}/amati/fields/iso9110.py +0 -0
  49. {amati-0.3.18 → amati-0.3.20}/amati/fields/json.py +0 -0
  50. {amati-0.3.18 → amati-0.3.20}/amati/fields/media.py +0 -0
  51. {amati-0.3.18 → amati-0.3.20}/amati/fields/oas.py +0 -0
  52. {amati-0.3.18 → amati-0.3.20}/amati/fields/spdx_licences.py +0 -0
  53. {amati-0.3.18 → amati-0.3.20}/amati/fields/uri.py +0 -0
  54. {amati-0.3.18 → amati-0.3.20}/amati/file_handler.py +0 -0
  55. {amati-0.3.18 → amati-0.3.20}/amati/grammars/oas.py +0 -0
  56. {amati-0.3.18 → amati-0.3.20}/amati/grammars/rfc6901.py +0 -0
  57. {amati-0.3.18 → amati-0.3.20}/amati/grammars/rfc7159.py +0 -0
  58. {amati-0.3.18 → amati-0.3.20}/amati/model_validators.py +0 -0
  59. {amati-0.3.18 → amati-0.3.20}/amati/py.typed +0 -0
  60. {amati-0.3.18 → amati-0.3.20}/amati/validators/__init__.py +0 -0
  61. {amati-0.3.18 → amati-0.3.20}/amati/validators/_discriminators.py +0 -0
  62. {amati-0.3.18 → amati-0.3.20}/amati/validators/generic.py +0 -0
  63. {amati-0.3.18 → amati-0.3.20}/amati/validators/oas304.py +0 -0
  64. {amati-0.3.18 → amati-0.3.20}/amati/validators/oas311.py +0 -0
  65. {amati-0.3.18 → amati-0.3.20}/bin/checks.sh +0 -0
  66. {amati-0.3.18 → amati-0.3.20}/bin/startup.sh +0 -0
  67. {amati-0.3.18 → amati-0.3.20}/bin/upgrade-python.sh +0 -0
  68. {amati-0.3.18 → amati-0.3.20}/bin/uv-upgrade-from-main.sh +0 -0
  69. {amati-0.3.18 → amati-0.3.20}/scripts/setup_test_specs.py +0 -0
  70. {amati-0.3.18 → amati-0.3.20}/tests/__init__.py +0 -0
  71. {amati-0.3.18 → amati-0.3.20}/tests/data/.amati.tests.yaml +0 -0
  72. {amati-0.3.18 → amati-0.3.20}/tests/data/DigitalOcean-public.v2.errors.json +0 -0
  73. {amati-0.3.18 → amati-0.3.20}/tests/data/api.github.com.json.errors.json +0 -0
  74. {amati-0.3.18 → amati-0.3.20}/tests/data/api.github.com.yaml.errors.json +0 -0
  75. {amati-0.3.18 → amati-0.3.20}/tests/data/discourse.yml.errors.json +0 -0
  76. {amati-0.3.18 → amati-0.3.20}/tests/data/invalid-openapi.yaml +0 -0
  77. {amati-0.3.18 → amati-0.3.20}/tests/data/next-api.github.com.json.errors.json +0 -0
  78. {amati-0.3.18 → amati-0.3.20}/tests/data/openapi.yaml +0 -0
  79. {amati-0.3.18 → amati-0.3.20}/tests/data/openapi.yaml.gz +0 -0
  80. {amati-0.3.18 → amati-0.3.20}/tests/fields/__init__.py +0 -0
  81. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_email.py +0 -0
  82. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_http_status_codes.py +0 -0
  83. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_iso9110.py +0 -0
  84. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_media.py +0 -0
  85. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_oas.py +0 -0
  86. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_spdx_licences.py +0 -0
  87. {amati-0.3.18 → amati-0.3.20}/tests/fields/test_uri.py +0 -0
  88. {amati-0.3.18 → amati-0.3.20}/tests/model_validators/test_all_of.py +0 -0
  89. {amati-0.3.18 → amati-0.3.20}/tests/model_validators/test_at_least_one.py +0 -0
  90. {amati-0.3.18 → amati-0.3.20}/tests/model_validators/test_if_then.py +0 -0
  91. {amati-0.3.18 → amati-0.3.20}/tests/model_validators/test_only_one.py +0 -0
  92. {amati-0.3.18 → amati-0.3.20}/tests/references/test_uri_collector_mixin.py +0 -0
  93. {amati-0.3.18 → amati-0.3.20}/tests/references/test_uri_reference.py +0 -0
  94. {amati-0.3.18 → amati-0.3.20}/tests/references/test_uri_registry.py +0 -0
  95. {amati-0.3.18 → amati-0.3.20}/tests/strategies.py +0 -0
  96. {amati-0.3.18 → amati-0.3.20}/tests/test_amati.py +0 -0
  97. {amati-0.3.18 → amati-0.3.20}/tests/test_external_specs.py +0 -0
  98. {amati-0.3.18 → amati-0.3.20}/tests/test_logging.py +0 -0
  99. {amati-0.3.18 → amati-0.3.20}/tests/validators/__init__.py +0 -0
  100. {amati-0.3.18 → amati-0.3.20}/tests/validators/test_generic.py +0 -0
  101. {amati-0.3.18 → amati-0.3.20}/tests/validators/test_licence_object.py +0 -0
  102. {amati-0.3.18 → amati-0.3.20}/tests/validators/test_security_scheme_object.py +0 -0
  103. {amati-0.3.18 → amati-0.3.20}/tests/validators/test_server_variable_object.py +0 -0
@@ -77,14 +77,14 @@ jobs:
77
77
  - name: Coverage comment
78
78
  if: steps.check_changes.outputs.relevant == 'true'
79
79
  id: coverage_comment
80
- uses: py-cov-action/python-coverage-comment-action@1ac153f97397005ebcbec0c3caefa58f56ae5a26 # v3
80
+ uses: py-cov-action/python-coverage-comment-action@1b2f31c66ea0a0b54532ecbeb06bcafbee31b066 # v3
81
81
  with:
82
82
  GITHUB_TOKEN: ${{ secrets.BOT_COMMENT_TOKEN }}
83
83
  continue-on-error: true
84
84
 
85
85
  - name: Store Pull Request comment to be posted
86
86
  if: steps.check_changes.outputs.relevant == 'true'
87
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
87
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
88
88
  with:
89
89
  name: python-coverage-comment-action
90
90
  path: python-coverage-comment-action.txt
@@ -73,7 +73,7 @@ jobs:
73
73
 
74
74
  # Initializes the CodeQL tools for scanning.
75
75
  - name: Initialize CodeQL
76
- uses: github/codeql-action/init@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v4.31.7
76
+ uses: github/codeql-action/init@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
77
77
  with:
78
78
  languages: ${{ matrix.language }}
79
79
  build-mode: ${{ matrix.build-mode }}
@@ -101,6 +101,6 @@ jobs:
101
101
  exit 1
102
102
 
103
103
  - name: Perform CodeQL Analysis
104
- uses: github/codeql-action/analyze@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v4.31.7
104
+ uses: github/codeql-action/analyze@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
105
105
  with:
106
106
  category: "/language:${{matrix.language}}"
@@ -24,7 +24,7 @@ jobs:
24
24
  egress-policy: audit
25
25
 
26
26
  - name: Post comment
27
- uses: py-cov-action/python-coverage-comment-action@1ac153f97397005ebcbec0c3caefa58f56ae5a26 # v3
27
+ uses: py-cov-action/python-coverage-comment-action@1b2f31c66ea0a0b54532ecbeb06bcafbee31b066 # v3
28
28
  with:
29
29
  GITHUB_TOKEN: ${{ secrets.BOT_COMMENT_TOKEN }}
30
30
  GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}
@@ -25,7 +25,7 @@ jobs:
25
25
  token: ${{ secrets.BOT_TOKEN }}
26
26
 
27
27
  - name: Set up uv
28
- uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
28
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
29
29
  with:
30
30
  version: "latest"
31
31
 
@@ -24,7 +24,7 @@ jobs:
24
24
 
25
25
  - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
26
26
  - name: Install uv
27
- uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
27
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
28
28
  - name: Set up Python
29
29
  uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
30
30
  with:
@@ -72,7 +72,7 @@ jobs:
72
72
  # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
73
73
  # format to the repository Actions tab.
74
74
  - name: "Upload artifact"
75
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
75
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
76
76
  with:
77
77
  name: SARIF file
78
78
  path: results.sarif
@@ -80,6 +80,6 @@ jobs:
80
80
 
81
81
  # Upload the results to GitHub's code scanning dashboard.
82
82
  - name: "Upload to code-scanning"
83
- uses: github/codeql-action/upload-sarif@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v4.31.7
83
+ uses: github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
84
84
  with:
85
85
  sarif_file: results.sarif
@@ -34,7 +34,7 @@ jobs:
34
34
  fetch-depth: 0 # Fetch all history for proper tag creation
35
35
  token: ${{ secrets.BOT_TOKEN }}
36
36
  - name: Install uv
37
- uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
37
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6
38
38
 
39
39
  - name: Current version
40
40
  id: current_version
@@ -1,7 +1,7 @@
1
1
  repos:
2
2
  - repo: https://github.com/astral-sh/ruff-pre-commit
3
3
  # Ruff version.
4
- rev: v0.14.8
4
+ rev: v0.14.10
5
5
  hooks:
6
6
  # Run the linter.
7
7
  - id: ruff-check
@@ -16,4 +16,4 @@ repos:
16
16
  rev: v0.7.2
17
17
  hooks:
18
18
  - id: shellcheck
19
- args: [-x]
19
+ args: [-x]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amati
3
- Version: 0.3.18
3
+ Version: 0.3.20
4
4
  Summary: Validates that a .yaml or .json file conforms to the OpenAPI Specifications 3.x.
5
5
  Project-URL: Homepage, https://github.com/gwyli/amati
6
6
  Project-URL: Issues, https://github.com/gwyli/amati/issues
@@ -94,6 +94,10 @@
94
94
  "clue_info+xml",
95
95
  "clue+xml",
96
96
  "cms",
97
+ "cmw+cbor",
98
+ "cmw+cose",
99
+ "cmw+json",
100
+ "cmw+jws",
97
101
  "cnrp+xml",
98
102
  "coap-eap",
99
103
  "coap-group+json",
@@ -477,6 +481,7 @@
477
481
  "stix+json",
478
482
  "stratum",
479
483
  "suit-envelope+cose",
484
+ "suit-report+cose",
480
485
  "swid+cbor",
481
486
  "swid+xml",
482
487
  "tamp-apex-update",
@@ -525,6 +530,7 @@
525
530
  "vc",
526
531
  "vc+cose",
527
532
  "vc+jwt",
533
+ "vc+sd-jwt",
528
534
  "vcard+json",
529
535
  "vcard+xml",
530
536
  "vec+xml",
@@ -1651,6 +1657,7 @@
1651
1657
  "vp",
1652
1658
  "vp+cose",
1653
1659
  "vp+jwt",
1660
+ "vp+sd-jwt",
1654
1661
  "vq-rtcpxr",
1655
1662
  "wasm",
1656
1663
  "watcherinfo+xml",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "amati"
3
- version = "0.3.18"
3
+ version = "0.3.20"
4
4
  description = "Validates that a .yaml or .json file conforms to the OpenAPI Specifications 3.x."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -13,7 +13,7 @@ wheels = [
13
13
 
14
14
  [[package]]
15
15
  name = "amati"
16
- version = "0.3.18"
16
+ version = "0.3.20"
17
17
  source = { editable = "." }
18
18
  dependencies = [
19
19
  { name = "abnf" },
@@ -378,7 +378,7 @@ wheels = [
378
378
 
379
379
  [[package]]
380
380
  name = "pre-commit"
381
- version = "4.5.0"
381
+ version = "4.5.1"
382
382
  source = { registry = "https://pypi.org/simple/" }
383
383
  dependencies = [
384
384
  { name = "cfgv" },
@@ -387,9 +387,9 @@ dependencies = [
387
387
  { name = "pyyaml" },
388
388
  { name = "virtualenv" },
389
389
  ]
390
- sdist = { url = "https://files.pythonhosted.org/packages/f4/9b/6a4ffb4ed980519da959e1cf3122fc6cb41211daa58dbae1c73c0e519a37/pre_commit-4.5.0.tar.gz", hash = "sha256:dc5a065e932b19fc1d4c653c6939068fe54325af8e741e74e88db4d28a4dd66b", size = 198428, upload-time = "2025-11-22T21:02:42.304Z" }
390
+ sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz", hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61", size = 198232, upload-time = "2025-12-16T21:14:33.552Z" }
391
391
  wheels = [
392
- { url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" },
392
+ { url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl", hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77", size = 226437, upload-time = "2025-12-16T21:14:32.409Z" },
393
393
  ]
394
394
 
395
395
  [[package]]
@@ -591,28 +591,28 @@ wheels = [
591
591
 
592
592
  [[package]]
593
593
  name = "ruff"
594
- version = "0.14.8"
595
- source = { registry = "https://pypi.org/simple/" }
596
- sdist = { url = "https://files.pythonhosted.org/packages/ed/d9/f7a0c4b3a2bf2556cd5d99b05372c29980249ef71e8e32669ba77428c82c/ruff-0.14.8.tar.gz", hash = "sha256:774ed0dd87d6ce925e3b8496feb3a00ac564bea52b9feb551ecd17e0a23d1eed", size = 5765385, upload-time = "2025-12-04T15:06:17.669Z" }
597
- wheels = [
598
- { url = "https://files.pythonhosted.org/packages/48/b8/9537b52010134b1d2b72870cc3f92d5fb759394094741b09ceccae183fbe/ruff-0.14.8-py3-none-linux_armv6l.whl", hash = "sha256:ec071e9c82eca417f6111fd39f7043acb53cd3fde9b1f95bbed745962e345afb", size = 13441540, upload-time = "2025-12-04T15:06:14.896Z" },
599
- { url = "https://files.pythonhosted.org/packages/24/00/99031684efb025829713682012b6dd37279b1f695ed1b01725f85fd94b38/ruff-0.14.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:8cdb162a7159f4ca36ce980a18c43d8f036966e7f73f866ac8f493b75e0c27e9", size = 13669384, upload-time = "2025-12-04T15:06:51.809Z" },
600
- { url = "https://files.pythonhosted.org/packages/72/64/3eb5949169fc19c50c04f28ece2c189d3b6edd57e5b533649dae6ca484fe/ruff-0.14.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e2fcbefe91f9fad0916850edf0854530c15bd1926b6b779de47e9ab619ea38f", size = 12806917, upload-time = "2025-12-04T15:06:08.925Z" },
601
- { url = "https://files.pythonhosted.org/packages/c4/08/5250babb0b1b11910f470370ec0cbc67470231f7cdc033cee57d4976f941/ruff-0.14.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9d70721066a296f45786ec31916dc287b44040f553da21564de0ab4d45a869b", size = 13256112, upload-time = "2025-12-04T15:06:23.498Z" },
602
- { url = "https://files.pythonhosted.org/packages/78/4c/6c588e97a8e8c2d4b522c31a579e1df2b4d003eddfbe23d1f262b1a431ff/ruff-0.14.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c87e09b3cd9d126fc67a9ecd3b5b1d3ded2b9c7fce3f16e315346b9d05cfb52", size = 13227559, upload-time = "2025-12-04T15:06:33.432Z" },
603
- { url = "https://files.pythonhosted.org/packages/23/ce/5f78cea13eda8eceac71b5f6fa6e9223df9b87bb2c1891c166d1f0dce9f1/ruff-0.14.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d62cb310c4fbcb9ee4ac023fe17f984ae1e12b8a4a02e3d21489f9a2a5f730c", size = 13896379, upload-time = "2025-12-04T15:06:02.687Z" },
604
- { url = "https://files.pythonhosted.org/packages/cf/79/13de4517c4dadce9218a20035b21212a4c180e009507731f0d3b3f5df85a/ruff-0.14.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1af35c2d62633d4da0521178e8a2641c636d2a7153da0bac1b30cfd4ccd91344", size = 15372786, upload-time = "2025-12-04T15:06:29.828Z" },
605
- { url = "https://files.pythonhosted.org/packages/00/06/33df72b3bb42be8a1c3815fd4fae83fa2945fc725a25d87ba3e42d1cc108/ruff-0.14.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25add4575ffecc53d60eed3f24b1e934493631b48ebbc6ebaf9d8517924aca4b", size = 14990029, upload-time = "2025-12-04T15:06:36.812Z" },
606
- { url = "https://files.pythonhosted.org/packages/64/61/0f34927bd90925880394de0e081ce1afab66d7b3525336f5771dcf0cb46c/ruff-0.14.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c943d847b7f02f7db4201a0600ea7d244d8a404fbb639b439e987edcf2baf9a", size = 14407037, upload-time = "2025-12-04T15:06:39.979Z" },
607
- { url = "https://files.pythonhosted.org/packages/96/bc/058fe0aefc0fbf0d19614cb6d1a3e2c048f7dc77ca64957f33b12cfdc5ef/ruff-0.14.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb6e8bf7b4f627548daa1b69283dac5a296bfe9ce856703b03130732e20ddfe2", size = 14102390, upload-time = "2025-12-04T15:06:46.372Z" },
608
- { url = "https://files.pythonhosted.org/packages/af/a4/e4f77b02b804546f4c17e8b37a524c27012dd6ff05855d2243b49a7d3cb9/ruff-0.14.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:7aaf2974f378e6b01d1e257c6948207aec6a9b5ba53fab23d0182efb887a0e4a", size = 14230793, upload-time = "2025-12-04T15:06:20.497Z" },
609
- { url = "https://files.pythonhosted.org/packages/3f/52/bb8c02373f79552e8d087cedaffad76b8892033d2876c2498a2582f09dcf/ruff-0.14.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e5758ca513c43ad8a4ef13f0f081f80f08008f410790f3611a21a92421ab045b", size = 13160039, upload-time = "2025-12-04T15:06:49.06Z" },
610
- { url = "https://files.pythonhosted.org/packages/1f/ad/b69d6962e477842e25c0b11622548df746290cc6d76f9e0f4ed7456c2c31/ruff-0.14.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f74f7ba163b6e85a8d81a590363bf71618847e5078d90827749bfda1d88c9cdf", size = 13205158, upload-time = "2025-12-04T15:06:54.574Z" },
611
- { url = "https://files.pythonhosted.org/packages/06/63/54f23da1315c0b3dfc1bc03fbc34e10378918a20c0b0f086418734e57e74/ruff-0.14.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:eed28f6fafcc9591994c42254f5a5c5ca40e69a30721d2ab18bb0bb3baac3ab6", size = 13469550, upload-time = "2025-12-04T15:05:59.209Z" },
612
- { url = "https://files.pythonhosted.org/packages/70/7d/a4d7b1961e4903bc37fffb7ddcfaa7beb250f67d97cfd1ee1d5cddb1ec90/ruff-0.14.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:21d48fa744c9d1cb8d71eb0a740c4dd02751a5de9db9a730a8ef75ca34cf138e", size = 14211332, upload-time = "2025-12-04T15:06:06.027Z" },
613
- { url = "https://files.pythonhosted.org/packages/5d/93/2a5063341fa17054e5c86582136e9895db773e3c2ffb770dde50a09f35f0/ruff-0.14.8-py3-none-win32.whl", hash = "sha256:15f04cb45c051159baebb0f0037f404f1dc2f15a927418f29730f411a79bc4e7", size = 13151890, upload-time = "2025-12-04T15:06:11.668Z" },
614
- { url = "https://files.pythonhosted.org/packages/02/1c/65c61a0859c0add13a3e1cbb6024b42de587456a43006ca2d4fd3d1618fe/ruff-0.14.8-py3-none-win_amd64.whl", hash = "sha256:9eeb0b24242b5bbff3011409a739929f497f3fb5fe3b5698aba5e77e8c833097", size = 14537826, upload-time = "2025-12-04T15:06:26.409Z" },
615
- { url = "https://files.pythonhosted.org/packages/6d/63/8b41cea3afd7f58eb64ac9251668ee0073789a3bc9ac6f816c8c6fef986d/ruff-0.14.8-py3-none-win_arm64.whl", hash = "sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99", size = 13634522, upload-time = "2025-12-04T15:06:43.212Z" },
594
+ version = "0.14.10"
595
+ source = { registry = "https://pypi.org/simple/" }
596
+ sdist = { url = "https://files.pythonhosted.org/packages/57/08/52232a877978dd8f9cf2aeddce3e611b40a63287dfca29b6b8da791f5e8d/ruff-0.14.10.tar.gz", hash = "sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4", size = 5859763, upload-time = "2025-12-18T19:28:57.98Z" }
597
+ wheels = [
598
+ { url = "https://files.pythonhosted.org/packages/60/01/933704d69f3f05ee16ef11406b78881733c186fe14b6a46b05cfcaf6d3b2/ruff-0.14.10-py3-none-linux_armv6l.whl", hash = "sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49", size = 13527080, upload-time = "2025-12-18T19:29:25.642Z" },
599
+ { url = "https://files.pythonhosted.org/packages/df/58/a0349197a7dfa603ffb7f5b0470391efa79ddc327c1e29c4851e85b09cc5/ruff-0.14.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f", size = 13797320, upload-time = "2025-12-18T19:29:02.571Z" },
600
+ { url = "https://files.pythonhosted.org/packages/7b/82/36be59f00a6082e38c23536df4e71cdbc6af8d7c707eade97fcad5c98235/ruff-0.14.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d", size = 12918434, upload-time = "2025-12-18T19:28:51.202Z" },
601
+ { url = "https://files.pythonhosted.org/packages/a6/00/45c62a7f7e34da92a25804f813ebe05c88aa9e0c25e5cb5a7d23dd7450e3/ruff-0.14.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77", size = 13371961, upload-time = "2025-12-18T19:29:04.991Z" },
602
+ { url = "https://files.pythonhosted.org/packages/40/31/a5906d60f0405f7e57045a70f2d57084a93ca7425f22e1d66904769d1628/ruff-0.14.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a", size = 13275629, upload-time = "2025-12-18T19:29:21.381Z" },
603
+ { url = "https://files.pythonhosted.org/packages/3e/60/61c0087df21894cf9d928dc04bcd4fb10e8b2e8dca7b1a276ba2155b2002/ruff-0.14.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f", size = 14029234, upload-time = "2025-12-18T19:29:00.132Z" },
604
+ { url = "https://files.pythonhosted.org/packages/44/84/77d911bee3b92348b6e5dab5a0c898d87084ea03ac5dc708f46d88407def/ruff-0.14.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935", size = 15449890, upload-time = "2025-12-18T19:28:53.573Z" },
605
+ { url = "https://files.pythonhosted.org/packages/e9/36/480206eaefa24a7ec321582dda580443a8f0671fdbf6b1c80e9c3e93a16a/ruff-0.14.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e", size = 15123172, upload-time = "2025-12-18T19:29:23.453Z" },
606
+ { url = "https://files.pythonhosted.org/packages/5c/38/68e414156015ba80cef5473d57919d27dfb62ec804b96180bafdeaf0e090/ruff-0.14.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d", size = 14460260, upload-time = "2025-12-18T19:29:27.808Z" },
607
+ { url = "https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f", size = 14229978, upload-time = "2025-12-18T19:29:11.32Z" },
608
+ { url = "https://files.pythonhosted.org/packages/51/eb/e8dd1dd6e05b9e695aa9dd420f4577debdd0f87a5ff2fedda33c09e9be8c/ruff-0.14.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f", size = 14338036, upload-time = "2025-12-18T19:29:09.184Z" },
609
+ { url = "https://files.pythonhosted.org/packages/6a/12/f3e3a505db7c19303b70af370d137795fcfec136d670d5de5391e295c134/ruff-0.14.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d", size = 13264051, upload-time = "2025-12-18T19:29:13.431Z" },
610
+ { url = "https://files.pythonhosted.org/packages/08/64/8c3a47eaccfef8ac20e0484e68e0772013eb85802f8a9f7603ca751eb166/ruff-0.14.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405", size = 13283998, upload-time = "2025-12-18T19:29:06.994Z" },
611
+ { url = "https://files.pythonhosted.org/packages/12/84/534a5506f4074e5cc0529e5cd96cfc01bb480e460c7edf5af70d2bcae55e/ruff-0.14.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60", size = 13601891, upload-time = "2025-12-18T19:28:55.811Z" },
612
+ { url = "https://files.pythonhosted.org/packages/0d/1e/14c916087d8598917dbad9b2921d340f7884824ad6e9c55de948a93b106d/ruff-0.14.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830", size = 14336660, upload-time = "2025-12-18T19:29:16.531Z" },
613
+ { url = "https://files.pythonhosted.org/packages/f2/1c/d7b67ab43f30013b47c12b42d1acd354c195351a3f7a1d67f59e54227ede/ruff-0.14.10-py3-none-win32.whl", hash = "sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6", size = 13196187, upload-time = "2025-12-18T19:29:19.006Z" },
614
+ { url = "https://files.pythonhosted.org/packages/fb/9c/896c862e13886fae2af961bef3e6312db9ebc6adc2b156fe95e615dee8c1/ruff-0.14.10-py3-none-win_amd64.whl", hash = "sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154", size = 14661283, upload-time = "2025-12-18T19:29:30.16Z" },
615
+ { url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" },
616
616
  ]
617
617
 
618
618
  [[package]]
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
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes