meilisearch-python-sdk 7.1.3__tar.gz → 7.1.4__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 (109) hide show
  1. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.pre-commit-config.yaml +3 -3
  2. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/PKG-INFO +1 -1
  3. meilisearch_python_sdk-7.1.4/meilisearch_python_sdk/_version.py +1 -0
  4. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/search.py +2 -0
  5. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/pyproject.toml +1 -1
  6. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_async_search.py +11 -0
  7. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_search.py +11 -0
  8. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/uv.lock +56 -57
  9. meilisearch_python_sdk-7.1.3/meilisearch_python_sdk/_version.py +0 -1
  10. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/FUNDING.yml +0 -0
  11. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/release-draft-template.yaml +0 -0
  12. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/renovate.json5 +0 -0
  13. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/workflows/docs_publish.yml +0 -0
  14. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/workflows/nightly_testing.yml +0 -0
  15. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/workflows/pypi_publish.yml +0 -0
  16. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/workflows/release-drafter.yml +0 -0
  17. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.github/workflows/testing.yml +0 -0
  18. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/.gitignore +0 -0
  19. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/CONTRIBUTING.md +0 -0
  20. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/LICENSE +0 -0
  21. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/README.md +0 -0
  22. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/assets/add_in_batches.png +0 -0
  23. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/assets/searches.png +0 -0
  24. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/codecov.yml +0 -0
  25. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/datasets/small_movies.json +0 -0
  26. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docker-compose.https.yml +0 -0
  27. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docker-compose.yml +0 -0
  28. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/.nojekyll +0 -0
  29. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/CNAME +0 -0
  30. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/async_client_api.md +0 -0
  31. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/async_index_api.md +0 -0
  32. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/client_api.md +0 -0
  33. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/css/custom.css +0 -0
  34. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/decorators_api.md +0 -0
  35. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/index.md +0 -0
  36. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/index_api.md +0 -0
  37. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/js/umami.js +0 -0
  38. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/json_handler.md +0 -0
  39. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/overrides/partials/footer.html +0 -0
  40. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/plugins.md +0 -0
  41. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/docs/pydantic.md +0 -0
  42. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/.gitignore +0 -0
  43. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/README.md +0 -0
  44. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/__init__.py +0 -0
  45. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/add_documents_decorator.py +0 -0
  46. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/add_documents_in_batches.py +0 -0
  47. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/async_add_documents_decorator.py +0 -0
  48. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/async_add_documents_in_batches.py +0 -0
  49. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/async_documents_and_search_results.py +0 -0
  50. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/async_search_tracker.py +0 -0
  51. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/async_update_settings.py +0 -0
  52. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/documents_and_search_results.py +0 -0
  53. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/fastapi_example.py +0 -0
  54. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/orjson_example.py +0 -0
  55. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/pyproject.toml +0 -0
  56. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/requirements.txt +0 -0
  57. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/search_tracker.py +0 -0
  58. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/tests/__init__.py +0 -0
  59. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/tests/conftest.py +0 -0
  60. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/tests/test_async_examples.py +0 -0
  61. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/tests/test_examples.py +0 -0
  62. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/examples/update_settings.py +0 -0
  63. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/justfile +0 -0
  64. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/__init__.py +0 -0
  65. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_batch.py +0 -0
  66. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_client/__init__.py +0 -0
  67. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_client/_async_client.py +0 -0
  68. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_client/_base_client.py +0 -0
  69. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_client/_client.py +0 -0
  70. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_client/_common.py +0 -0
  71. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_http_requests.py +0 -0
  72. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_task.py +0 -0
  73. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/_utils.py +0 -0
  74. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/decorators.py +0 -0
  75. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/errors.py +0 -0
  76. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/index/__init__.py +0 -0
  77. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/index/_common.py +0 -0
  78. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/index/async_index.py +0 -0
  79. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/index/index.py +0 -0
  80. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/json_handler.py +0 -0
  81. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/__init__.py +0 -0
  82. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/batch.py +0 -0
  83. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/client.py +0 -0
  84. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/documents.py +0 -0
  85. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/health.py +0 -0
  86. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/index.py +0 -0
  87. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/settings.py +0 -0
  88. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/task.py +0 -0
  89. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/version.py +0 -0
  90. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/models/webhook.py +0 -0
  91. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/plugins.py +0 -0
  92. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/py.typed +0 -0
  93. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/meilisearch_python_sdk/types.py +0 -0
  94. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/mkdocs.yaml +0 -0
  95. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/__init__.py +0 -0
  96. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/conftest.py +0 -0
  97. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_async_client.py +0 -0
  98. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_async_documents.py +0 -0
  99. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_async_index.py +0 -0
  100. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_async_index_plugins.py +0 -0
  101. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_client.py +0 -0
  102. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_decorators.py +0 -0
  103. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_documents.py +0 -0
  104. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_errors.py +0 -0
  105. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_http_requests.py +0 -0
  106. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_index.py +0 -0
  107. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_index_plugins.py +0 -0
  108. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_settings_models.py +0 -0
  109. {meilisearch_python_sdk-7.1.3 → meilisearch_python_sdk-7.1.4}/tests/test_version.py +0 -0
@@ -9,16 +9,16 @@ repos:
9
9
  - id: end-of-file-fixer
10
10
  - id: trailing-whitespace
11
11
  - repo: https://github.com/pre-commit/mirrors-mypy
12
- rev: v1.20.1
12
+ rev: v1.20.2
13
13
  hooks:
14
14
  - id: mypy
15
15
  additional_dependencies: [pydantic, orjson, types-aiofiles, types-ujson]
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.15.11
17
+ rev: v0.15.12
18
18
  hooks:
19
19
  - id: ruff-check
20
20
  args: [--fix, --exit-non-zero-on-fix]
21
21
  - repo: https://github.com/rvben/rumdl-pre-commit
22
- rev: v0.1.76
22
+ rev: v0.1.83
23
23
  hooks:
24
24
  - id: rumdl-fmt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meilisearch-python-sdk
3
- Version: 7.1.3
3
+ Version: 7.1.4
4
4
  Summary: A Python client providing both async and sync support for the Meilisearch API
5
5
  Project-URL: repository, https://github.com/sanders41/meilisearch-python-sdk
6
6
  Project-URL: homepage, https://github.com/sanders41/meilisearch-python-sdk
@@ -0,0 +1 @@
1
+ VERSION = "7.1.4"
@@ -89,6 +89,7 @@ class SearchResults(CamelBase, Generic[T]):
89
89
  processing_time_ms: int
90
90
  query: str
91
91
  facet_distribution: JsonDict | None = None
92
+ facet_stats: JsonDict | None = None
92
93
  total_pages: int | None = None
93
94
  total_hits: int | None = None
94
95
  page: int | None = None
@@ -109,6 +110,7 @@ class SearchResultsFederated(CamelBase, Generic[T]):
109
110
  estimated_total_hits: int | None = None
110
111
  processing_time_ms: int
111
112
  facet_distribution: JsonDict | None = None
113
+ facet_stats: JsonDict | None = None
112
114
  total_pages: int | None = None
113
115
  total_hits: int | None = None
114
116
  page: int | None = None
@@ -46,7 +46,7 @@ dev = [
46
46
  "pytest-asyncio==1.3.0",
47
47
  "pytest-xdist==3.8.0",
48
48
  "prek>=0.2.27",
49
- "ruff==0.15.11",
49
+ "ruff==0.15.12",
50
50
  "types-aiofiles==25.1.0.20260409",
51
51
  "typing-extensions==4.15.0",
52
52
  ]
@@ -159,6 +159,17 @@ async def test_custom_search_params_with_facets(async_index_with_documents):
159
159
  assert response.facet_distribution["genre"]["fantasy"] == 1
160
160
 
161
161
 
162
+ async def test_custom_search_params_with_facet_stats(async_index_with_documents):
163
+ index = await async_index_with_documents()
164
+ update = await index.update_filterable_attributes(["release_date"])
165
+ await async_wait_for_task(index.http_client, update.task_uid, json_handler=index._json_handler)
166
+ response = await index.search("", facets=["release_date"])
167
+ assert response.facet_stats is not None
168
+ assert "release_date" in response.facet_stats
169
+ assert "min" in response.facet_stats["release_date"]
170
+ assert "max" in response.facet_stats["release_date"]
171
+
172
+
162
173
  async def test_custom_search_params_with_facet_filters(async_index_with_documents):
163
174
  index = await async_index_with_documents()
164
175
  update = await index.update_filterable_attributes(["genre"])
@@ -159,6 +159,17 @@ def test_custom_search_params_with_facets(index_with_documents):
159
159
  assert response.facet_distribution["genre"]["fantasy"] == 1
160
160
 
161
161
 
162
+ def test_custom_search_params_with_facet_stats(index_with_documents):
163
+ index = index_with_documents()
164
+ update = index.update_filterable_attributes(["release_date"])
165
+ wait_for_task(index.http_client, update.task_uid, json_handler=index._json_handler)
166
+ response = index.search("", facets=["release_date"])
167
+ assert response.facet_stats is not None
168
+ assert "release_date" in response.facet_stats
169
+ assert "min" in response.facet_stats["release_date"]
170
+ assert "max" in response.facet_stats["release_date"]
171
+
172
+
162
173
  def test_custom_search_params_with_facet_filters(index_with_documents):
163
174
  index = index_with_documents()
164
175
  update = index.update_filterable_attributes(["genre"])
@@ -58,16 +58,15 @@ wheels = [
58
58
 
59
59
  [[package]]
60
60
  name = "backrefs"
61
- version = "6.2"
61
+ version = "7.0"
62
62
  source = { registry = "https://pypi.org/simple" }
63
- sdist = { url = "https://files.pythonhosted.org/packages/4e/a6/e325ec73b638d3ede4421b5445d4a0b8b219481826cc079d510100af356c/backrefs-6.2.tar.gz", hash = "sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49", size = 7012303, upload-time = "2026-02-16T19:10:15.828Z" }
63
+ sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/a7dd63622beef68cc0d3c3c36d472e143dd95443d5ebf14cd1a5b4dfbf11/backrefs-7.0.tar.gz", hash = "sha256:4989bb9e1e99eb23647c7160ed51fb21d0b41b5d200f2d3017da41e023097e82", size = 7012453, upload-time = "2026-04-28T16:28:04.215Z" }
64
64
  wheels = [
65
- { url = "https://files.pythonhosted.org/packages/1b/39/3765df263e08a4df37f4f43cb5aa3c6c17a4bdd42ecfe841e04c26037171/backrefs-6.2-py310-none-any.whl", hash = "sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8", size = 381075, upload-time = "2026-02-16T19:10:04.322Z" },
66
- { url = "https://files.pythonhosted.org/packages/0f/f0/35240571e1b67ffb19dafb29ab34150b6f59f93f717b041082cdb1bfceb1/backrefs-6.2-py311-none-any.whl", hash = "sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be", size = 392874, upload-time = "2026-02-16T19:10:06.314Z" },
67
- { url = "https://files.pythonhosted.org/packages/e3/63/77e8c9745b4d227cce9f5e0a6f68041278c5f9b18588b35905f5f19c1beb/backrefs-6.2-py312-none-any.whl", hash = "sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90", size = 398787, upload-time = "2026-02-16T19:10:08.274Z" },
68
- { url = "https://files.pythonhosted.org/packages/c5/71/c754b1737ad99102e03fa3235acb6cb6d3ac9d6f596cbc3e5f236705abd8/backrefs-6.2-py313-none-any.whl", hash = "sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b", size = 400747, upload-time = "2026-02-16T19:10:09.791Z" },
69
- { url = "https://files.pythonhosted.org/packages/af/75/be12ba31a6eb20dccef2320cd8ccb3f7d9013b68ba4c70156259fee9e409/backrefs-6.2-py314-none-any.whl", hash = "sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7", size = 412602, upload-time = "2026-02-16T19:10:12.317Z" },
70
- { url = "https://files.pythonhosted.org/packages/21/f8/d02f650c47d05034dcd6f9c8cf94f39598b7a89c00ecda0ecb2911bc27e9/backrefs-6.2-py39-none-any.whl", hash = "sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7", size = 381077, upload-time = "2026-02-16T19:10:13.74Z" },
65
+ { url = "https://files.pythonhosted.org/packages/d4/39/39a31d7eae729ea14ed10c3ccef79371197177b9355a86cb3525709e8502/backrefs-7.0-py310-none-any.whl", hash = "sha256:b57cd227ea556b0aed3dc9b8da4628db4eabc0402c6d7fcfc69283a93955f7e9", size = 380824, upload-time = "2026-04-28T16:27:55.647Z" },
66
+ { url = "https://files.pythonhosted.org/packages/c9/b5/9302644225ba7dfa934a2ff2b9c7bb85701313a90dddb3dfaf693fa5bae2/backrefs-7.0-py311-none-any.whl", hash = "sha256:a0fa7360c63509e9e077e174ef4e6d3c21c8db94189b9d957289ae6d794b9475", size = 392626, upload-time = "2026-04-28T16:27:57.42Z" },
67
+ { url = "https://files.pythonhosted.org/packages/36/da/87912ddec6e06feffbaa3d7aa18fc6352bee2e8f1fee185d7d1690f8f4e8/backrefs-7.0-py312-none-any.whl", hash = "sha256:ca42ce6a49ace3d75684dfa9937f3373902a63284ecb385ce36d15e5dcb41c12", size = 398537, upload-time = "2026-04-28T16:27:58.913Z" },
68
+ { url = "https://files.pythonhosted.org/packages/00/bb/90ba423612b6aa0adccc6b1874bcd4a9b44b660c0c16f346611e00f64ac3/backrefs-7.0-py313-none-any.whl", hash = "sha256:f2c52955d631b9e1ac4cd56209f0a3a946d592b98e7790e77699339ae01c102a", size = 400491, upload-time = "2026-04-28T16:28:00.928Z" },
69
+ { url = "https://files.pythonhosted.org/packages/3e/5c/fb93d3092640a24dfb7bd7727a24016d7c01774ca013e60efd3f683c8002/backrefs-7.0-py314-none-any.whl", hash = "sha256:a6448b28180e3ca01134c9cf09dcebafad8531072e09903c5451748a05f24bc9", size = 412349, upload-time = "2026-04-28T16:28:02.412Z" },
71
70
  ]
72
71
 
73
72
  [[package]]
@@ -454,11 +453,11 @@ wheels = [
454
453
 
455
454
  [[package]]
456
455
  name = "idna"
457
- version = "3.12"
456
+ version = "3.13"
458
457
  source = { registry = "https://pypi.org/simple" }
459
- sdist = { url = "https://files.pythonhosted.org/packages/22/12/2948fbe5513d062169bd91f7d7b1cd97bc8894f32946b71fa39f6e63ca0c/idna-3.12.tar.gz", hash = "sha256:724e9952cc9e2bd7550ea784adb098d837ab5267ef67a1ab9cf7846bdbdd8254", size = 194350, upload-time = "2026-04-21T13:32:48.916Z" }
458
+ sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" }
460
459
  wheels = [
461
- { url = "https://files.pythonhosted.org/packages/53/b2/acc33950394b3becb2b664741a0c0889c7ef9f9ffbfa8d47eddb53a50abd/idna-3.12-py3-none-any.whl", hash = "sha256:60ffaa1858fac94c9c124728c24fcde8160f3fb4a7f79aa8cdd33a9d1af60a67", size = 68634, upload-time = "2026-04-21T13:32:47.403Z" },
460
+ { url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" },
462
461
  ]
463
462
 
464
463
  [[package]]
@@ -719,7 +718,7 @@ dev = [
719
718
  { name = "pytest-asyncio", specifier = "==1.3.0" },
720
719
  { name = "pytest-cov", specifier = "==7.1.0" },
721
720
  { name = "pytest-xdist", specifier = "==3.8.0" },
722
- { name = "ruff", specifier = "==0.15.11" },
721
+ { name = "ruff", specifier = "==0.15.12" },
723
722
  { name = "types-aiofiles", specifier = "==25.1.0.20260409" },
724
723
  { name = "typing-extensions", specifier = "==4.15.0" },
725
724
  ]
@@ -1008,11 +1007,11 @@ wheels = [
1008
1007
 
1009
1008
  [[package]]
1010
1009
  name = "packaging"
1011
- version = "26.1"
1010
+ version = "26.2"
1012
1011
  source = { registry = "https://pypi.org/simple" }
1013
- sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" }
1012
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" }
1014
1013
  wheels = [
1015
- { url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" },
1014
+ { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" },
1016
1015
  ]
1017
1016
 
1018
1017
  [[package]]
@@ -1026,11 +1025,11 @@ wheels = [
1026
1025
 
1027
1026
  [[package]]
1028
1027
  name = "pathspec"
1029
- version = "1.0.4"
1028
+ version = "1.1.1"
1030
1029
  source = { registry = "https://pypi.org/simple" }
1031
- sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" }
1030
+ sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" }
1032
1031
  wheels = [
1033
- { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" },
1032
+ { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" },
1034
1033
  ]
1035
1034
 
1036
1035
  [[package]]
@@ -1053,26 +1052,26 @@ wheels = [
1053
1052
 
1054
1053
  [[package]]
1055
1054
  name = "prek"
1056
- version = "0.3.10"
1055
+ version = "0.3.11"
1057
1056
  source = { registry = "https://pypi.org/simple" }
1058
- sdist = { url = "https://files.pythonhosted.org/packages/a2/31/3e68cd8f45cb5f3f81009ff42d3a3cde0887b83f214a4eb0ded9ae239cc2/prek-0.3.10.tar.gz", hash = "sha256:f4e9c533612bbaa9f89eca0e80ab6e59a05b0fd15ca7c6642a35bb303731ad6f", size = 425926, upload-time = "2026-04-21T11:29:37.122Z" }
1057
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/60/5b980c70525ca5f0d17942d8eae13b399051aa384413366fe5df229712ea/prek-0.3.11.tar.gz", hash = "sha256:c4cf77848009503c58d80ff216e32af45b63ea49652bb5546748c1ebfd4d9847", size = 433440, upload-time = "2026-04-27T04:22:59.923Z" }
1059
1058
  wheels = [
1060
- { url = "https://files.pythonhosted.org/packages/62/b7/306d57aaaf503be1ee58929f9e58e812fbde9bea52c1a578e4996d82425a/prek-0.3.10-py3-none-linux_armv6l.whl", hash = "sha256:7250661f003d902b7b601141d64c7015f93eeeeeb1c485f714374582714d7c51", size = 5416913, upload-time = "2026-04-21T11:29:33.716Z" },
1061
- { url = "https://files.pythonhosted.org/packages/93/ec/4b4b60d17c5eb639779a059d7f66a8fff5b38c7cb26c9c5b3a853cc6a9c8/prek-0.3.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9da699368bb11e85fc58b57ae4c1ccc703364b1d95b595bd17a27b27fa6df50d", size = 5784725, upload-time = "2026-04-21T11:29:38.356Z" },
1062
- { url = "https://files.pythonhosted.org/packages/f3/c3/6d4dcc9446a1630a888e3f105c4775536afe58c20f18833fec8e0d841ac0/prek-0.3.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:f245fa9935cee6ea7d5ba1c6e7dd7546ccf6f01fb7d604bb6a344c8e3b49a9c2", size = 5360071, upload-time = "2026-04-21T11:29:10.743Z" },
1063
- { url = "https://files.pythonhosted.org/packages/36/2d/d1f63ca15f4a275fcdc712fd9ef64787abb4ba86f2e79986a26108a5f1e7/prek-0.3.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:d321cad394ef4436ed9fce74150076a5eefabe310ed01b3f5735746284b9d046", size = 5615550, upload-time = "2026-04-21T11:29:30.985Z" },
1064
- { url = "https://files.pythonhosted.org/packages/7c/1b/a925050ba30791e50e7690a6dabe33dc08a0133e7efab4b9d91088261d40/prek-0.3.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e80017ecf06a11bf9c8ebcb67d38183e0abf2f18e012ee6a5f91d1b9c065d6", size = 5338159, upload-time = "2026-04-21T11:29:25.314Z" },
1065
- { url = "https://files.pythonhosted.org/packages/56/ec/7d563a333198ead10f9a13fcf72ca910a59135b5d58429ed3b1fff9a0ff9/prek-0.3.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba24b4c8e40cb9ae96d58efa3eb91813cdff4f10b78b79201c93a0dc6b8763e2", size = 5728600, upload-time = "2026-04-21T11:29:23.687Z" },
1066
- { url = "https://files.pythonhosted.org/packages/4c/88/10d493ef308f10321b92bb4e65ab60030b3c5c6304790c678be249e383e3/prek-0.3.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aac1c6f8dabb0a202a27516bf78cbfbe8a05b7cfebe2078ff6d0e12e7c77c7d5", size = 6610055, upload-time = "2026-04-21T11:29:27.398Z" },
1067
- { url = "https://files.pythonhosted.org/packages/c4/14/552b239d99fdd09fd6664b69089359340778f84a9f866a1fecc38b66c811/prek-0.3.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a9a446e178562e2c3cfc71c8f0b21043b571209533a104042b6b9e36662849e", size = 6007394, upload-time = "2026-04-21T11:29:14.466Z" },
1068
- { url = "https://files.pythonhosted.org/packages/21/80/12b9de6b6721a27f57ed633a8864435ec2fa7535cba7f48f3ea4a52ce683/prek-0.3.10-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:d7344b2acb88b52592c0e0f3dd33349f75e6a4813d3bb44385aa8c70084990ca", size = 5616625, upload-time = "2026-04-21T11:29:29.511Z" },
1069
- { url = "https://files.pythonhosted.org/packages/69/02/7235f6b6d65a3e6e036b211a240432bc4f51adfdbbdcc03b5ce60a238a84/prek-0.3.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:f2fe5ca3fe797a647243c10c0a9f9c2c27c1d4a0cdcb7f836a0cb8c5c2c603d8", size = 5431581, upload-time = "2026-04-21T11:29:20.399Z" },
1070
- { url = "https://files.pythonhosted.org/packages/7d/0c/0dd0013c6a9c6b23d070a57fe5c015c40c7b3e84217e4fb1ca9e465768c6/prek-0.3.10-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:6d39031e4acf7670b905d77ea807e2ce1b6309604d54740f3152d601b71ae5e0", size = 5318252, upload-time = "2026-04-21T11:29:40.34Z" },
1071
- { url = "https://files.pythonhosted.org/packages/74/d7/5407ca904a7f2ffe63b1333e503d2f21ec23eda93e93fb45a491d78e0d76/prek-0.3.10-py3-none-musllinux_1_1_i686.whl", hash = "sha256:27865f3134dd566ffd76388a9f0de6ee931336794e32741b8e22c90a61f3fc39", size = 5589312, upload-time = "2026-04-21T11:29:18.3Z" },
1072
- { url = "https://files.pythonhosted.org/packages/e0/05/460b0c498db65e9a2e590b6918aad3395291d8d9f2c080fce7201d12a5de/prek-0.3.10-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:3e6b65338a06add2bc47a86f837607b4705855ade9457f2f50676a7a5a509cd9", size = 6122323, upload-time = "2026-04-21T11:29:12.6Z" },
1073
- { url = "https://files.pythonhosted.org/packages/ca/63/fd715bcd9ed5debd60dc589d6117ab9eaf0ef0b106e0bb976e1bcaa96e29/prek-0.3.10-py3-none-win32.whl", hash = "sha256:e2529515ce81292c938181702dbfc75516efa5bb1d4dc1295e6f8b2655eec881", size = 5115503, upload-time = "2026-04-21T11:29:35.677Z" },
1074
- { url = "https://files.pythonhosted.org/packages/6a/0d/a34f57ca3efa228fa75a976fcf698d5705b5b9a750c8dd1b86857b24f3b0/prek-0.3.10-py3-none-win_amd64.whl", hash = "sha256:0846228fa277a8bdf5a3eeea90eb3ac8eff2bf71900919373f12d142e19c8f8c", size = 5496962, upload-time = "2026-04-21T11:29:16.71Z" },
1075
- { url = "https://files.pythonhosted.org/packages/ea/de/8b9f20f712c21756e52feed95fdacd52f48811a7bc6e3816cd04725b1240/prek-0.3.10-py3-none-win_arm64.whl", hash = "sha256:dedcdb4e5a52ee3e0463c061cabdcb94a7443875053cebfadb8228b3bf917035", size = 5340403, upload-time = "2026-04-21T11:29:22.11Z" },
1059
+ { url = "https://files.pythonhosted.org/packages/ee/2a/3392fa7d1fd1ce538915baa7597e7203bbe888367a8b15bfd51ca74d4714/prek-0.3.11-py3-none-linux_armv6l.whl", hash = "sha256:787e605716cfdc86ec01e7c5cf62799f39c28d49de5e37d75595c8e6248cb0f3", size = 5423112, upload-time = "2026-04-27T04:22:52.659Z" },
1060
+ { url = "https://files.pythonhosted.org/packages/a9/b0/3fc653b30b70d6c2714fc56bcfe1c2439437fc38f60b72bc300603ace4cd/prek-0.3.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ef1f37187ca52d75ba9c46b53007476c4eab2c3f11bd23defd57a81c62d90442", size = 5801382, upload-time = "2026-04-27T04:23:04.464Z" },
1061
+ { url = "https://files.pythonhosted.org/packages/2e/46/39aedc7843c3703f1f43b686622e4f8cd123e03b87a163e5c8f2fbd56cda/prek-0.3.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0d0828a1b50447502ea1be3f5a84da474fdca558cd5d76a1a5205169bb808c7", size = 5370817, upload-time = "2026-04-27T04:22:49.277Z" },
1062
+ { url = "https://files.pythonhosted.org/packages/15/83/df5f3aeacbdea96a88c4f06c98d3932469711fed4e3bf5b703dd6507abe7/prek-0.3.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:bf49464b526ee36d2130baf60ab9580560bfaa60efd2997328e6d6671e209014", size = 5621405, upload-time = "2026-04-27T04:23:10.58Z" },
1063
+ { url = "https://files.pythonhosted.org/packages/8f/f2/e32c9720747a327669863a4f92d05b9e6fadb851e903b0d7310a97c956a4/prek-0.3.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac344529f0d34757c7c95f65e66b9f6440a691f826eaf43f503247bd22023558", size = 5339780, upload-time = "2026-04-27T04:22:47.614Z" },
1064
+ { url = "https://files.pythonhosted.org/packages/29/2e/0e2f71b63bc2e5372575d5c1574b0666d2f90d30da51ed706a32cbf465a0/prek-0.3.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83672d963f249e2f246d3bec97f8fd2e8032e70da0a7d9acb2fa38af76dd82d2", size = 5735277, upload-time = "2026-04-27T04:23:12.437Z" },
1065
+ { url = "https://files.pythonhosted.org/packages/09/46/88abf51ac88eeff1ad2fe7d1797ca1fea43eb1ac1ddb8331463ac5b27ed2/prek-0.3.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef70957195d2896a30dd849e64f88344df7bb51af9c950cf16bd11519e7424b0", size = 6622420, upload-time = "2026-04-27T04:23:05.982Z" },
1066
+ { url = "https://files.pythonhosted.org/packages/5d/b6/592028a45b084a68b76c7edef909c789d1c96b26761388f63659beef7166/prek-0.3.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4f0cc07d2cdb5fe2882015d5fdafc9af98b4c560d4caa1ae948caeab4341b79", size = 6020038, upload-time = "2026-04-27T04:22:54.367Z" },
1067
+ { url = "https://files.pythonhosted.org/packages/ca/f7/e97f55a1645a2e9becffeee28892ad8bb66cd144dabfa4392ea8e2674bbe/prek-0.3.11-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:d7554b436dae2ec97f4351a46817e3561657244307d1c0915f355b859f4fab71", size = 5622539, upload-time = "2026-04-27T04:23:01.314Z" },
1068
+ { url = "https://files.pythonhosted.org/packages/41/e2/f3119eef6b621782ad216a86d449609858ea34c57cf4a40fc6dc80556d7e/prek-0.3.11-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:caba5d635a5b64b7ac64d903f29b043ca5b0d9d9693543a0ef331ade89e6ad3f", size = 5440681, upload-time = "2026-04-27T04:23:07.422Z" },
1069
+ { url = "https://files.pythonhosted.org/packages/04/62/22dd4f59a47654faeebe74651182ecc48d436542646cc92723052dfd9a45/prek-0.3.11-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:c95a63f19dde48e84b70bd63a235670834af15fa4df8b85d8b7894dd5bc419a9", size = 5314773, upload-time = "2026-04-27T04:22:57.912Z" },
1070
+ { url = "https://files.pythonhosted.org/packages/bb/94/a8361462acb8d8f5b8505255b95ffbfc2ee0872a79b4e066eb330692f7be/prek-0.3.11-py3-none-musllinux_1_1_i686.whl", hash = "sha256:7353b45f44a386c676fe96ba72a5ee326b676f789339f405cf6f1d69a1707194", size = 5596208, upload-time = "2026-04-27T04:23:09.08Z" },
1071
+ { url = "https://files.pythonhosted.org/packages/04/0c/5f065b86bbeb9977074a055d8a05e90c7201f6c4c7032dada61739b5f8cb/prek-0.3.11-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:39f4e86176ccbb70c098df6abbc8e36c1d86cb81281abe92fb79dcd572418214", size = 6132833, upload-time = "2026-04-27T04:22:56.054Z" },
1072
+ { url = "https://files.pythonhosted.org/packages/19/0c/8ab0ae140201dcee505f58b60abbe56bd05ac96b821a6866f6f90c4d971f/prek-0.3.11-py3-none-win32.whl", hash = "sha256:35d2361049653a3dcf27227b7f1b340c5c42a12c0e0361c4b785921bfd125839", size = 5120856, upload-time = "2026-04-27T04:23:02.752Z" },
1073
+ { url = "https://files.pythonhosted.org/packages/57/05/9844c1125d3714f6f6c7b475884128a4b0c6c3ee0cd208ead44ca8174687/prek-0.3.11-py3-none-win_amd64.whl", hash = "sha256:a387689cd2e182f92dbb681151ee5a04f494fe97e95d6d783875da90b950e6d5", size = 5510916, upload-time = "2026-04-27T04:22:45.704Z" },
1074
+ { url = "https://files.pythonhosted.org/packages/ff/13/24b0288c553dc8d61f44c4d0746fe9bb1e1bd29d1e70571658536e4c0f72/prek-0.3.11-py3-none-win_arm64.whl", hash = "sha256:e4a8f900378a6657c7eb2fc4b12fa5c934edf209d0a24544539842479ec16e0b", size = 5345988, upload-time = "2026-04-27T04:22:50.918Z" },
1076
1075
  ]
1077
1076
 
1078
1077
  [[package]]
@@ -1404,27 +1403,27 @@ wheels = [
1404
1403
 
1405
1404
  [[package]]
1406
1405
  name = "ruff"
1407
- version = "0.15.11"
1408
- source = { registry = "https://pypi.org/simple" }
1409
- sdist = { url = "https://files.pythonhosted.org/packages/e4/8d/192f3d7103816158dfd5ea50d098ef2aec19194e6cbccd4b3485bdb2eb2d/ruff-0.15.11.tar.gz", hash = "sha256:f092b21708bf0e7437ce9ada249dfe688ff9a0954fc94abab05dcea7dcd29c33", size = 4637264, upload-time = "2026-04-16T18:46:26.58Z" }
1410
- wheels = [
1411
- { url = "https://files.pythonhosted.org/packages/02/1e/6aca3427f751295ab011828e15e9bf452200ac74484f1db4be0197b8170b/ruff-0.15.11-py3-none-linux_armv6l.whl", hash = "sha256:e927cfff503135c558eb581a0c9792264aae9507904eb27809cdcff2f2c847b7", size = 10607943, upload-time = "2026-04-16T18:46:05.967Z" },
1412
- { url = "https://files.pythonhosted.org/packages/e7/26/1341c262e74f36d4e84f3d6f4df0ac68cd53331a66bfc5080daa17c84c0b/ruff-0.15.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:7a1b5b2938d8f890b76084d4fa843604d787a912541eae85fd7e233398bbb73e", size = 10988592, upload-time = "2026-04-16T18:46:00.742Z" },
1413
- { url = "https://files.pythonhosted.org/packages/03/71/850b1d6ffa9564fbb6740429bad53df1094082fe515c8c1e74b6d8d05f18/ruff-0.15.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d4176f3d194afbdaee6e41b9ccb1a2c287dba8700047df474abfbe773825d1cb", size = 10338501, upload-time = "2026-04-16T18:46:03.723Z" },
1414
- { url = "https://files.pythonhosted.org/packages/f2/11/cc1284d3e298c45a817a6aadb6c3e1d70b45c9b36d8d9cce3387b495a03a/ruff-0.15.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b17c886fb88203ced3afe7f14e8d5ae96e9d2f4ccc0ee66aa19f2c2675a27e4", size = 10670693, upload-time = "2026-04-16T18:46:41.941Z" },
1415
- { url = "https://files.pythonhosted.org/packages/ce/9e/f8288b034ab72b371513c13f9a41d9ba3effac54e24bfb467b007daee2ca/ruff-0.15.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:49fafa220220afe7758a487b048de4c8f9f767f37dfefad46b9dd06759d003eb", size = 10416177, upload-time = "2026-04-16T18:46:21.717Z" },
1416
- { url = "https://files.pythonhosted.org/packages/85/71/504d79abfd3d92532ba6bbe3d1c19fada03e494332a59e37c7c2dabae427/ruff-0.15.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2ab8427e74a00d93b8bda1307b1e60970d40f304af38bccb218e056c220120d", size = 11221886, upload-time = "2026-04-16T18:46:15.086Z" },
1417
- { url = "https://files.pythonhosted.org/packages/43/5a/947e6ab7a5ad603d65b474be15a4cbc6d29832db5d762cd142e4e3a74164/ruff-0.15.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:195072c0c8e1fc8f940652073df082e37a5d9cb43b4ab1e4d0566ab8977a13b7", size = 12075183, upload-time = "2026-04-16T18:46:07.944Z" },
1418
- { url = "https://files.pythonhosted.org/packages/9f/a1/0b7bb6268775fdd3a0818aee8efd8f5b4e231d24dd4d528ced2534023182/ruff-0.15.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3a0996d486af3920dec930a2e7daed4847dfc12649b537a9335585ada163e9e", size = 11516575, upload-time = "2026-04-16T18:46:31.687Z" },
1419
- { url = "https://files.pythonhosted.org/packages/30/c3/bb5168fc4d233cc06e95f482770d0f3c87945a0cd9f614b90ea8dc2f2833/ruff-0.15.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bef2cb556d509259f1fe440bb9cd33c756222cf0a7afe90d15edf0866702431", size = 11306537, upload-time = "2026-04-16T18:46:36.988Z" },
1420
- { url = "https://files.pythonhosted.org/packages/e4/92/4cfae6441f3967317946f3b788136eecf093729b94d6561f963ed810c82e/ruff-0.15.11-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:030d921a836d7d4a12cf6e8d984a88b66094ccb0e0f17ddd55067c331191bf19", size = 11296813, upload-time = "2026-04-16T18:46:24.182Z" },
1421
- { url = "https://files.pythonhosted.org/packages/43/26/972784c5dde8313acde8ac71ba8ac65475b85db4a2352a76c9934361f9bc/ruff-0.15.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0e783b599b4577788dbbb66b9addcef87e9a8832f4ce0c19e34bf55543a2f890", size = 10633136, upload-time = "2026-04-16T18:46:39.802Z" },
1422
- { url = "https://files.pythonhosted.org/packages/5b/53/3985a4f185020c2f367f2e08a103032e12564829742a1b417980ce1514a0/ruff-0.15.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ae90592246625ba4a34349d68ec28d4400d75182b71baa196ddb9f82db025ef5", size = 10424701, upload-time = "2026-04-16T18:46:10.381Z" },
1423
- { url = "https://files.pythonhosted.org/packages/d3/57/bf0dfb32241b56c83bb663a826133da4bf17f682ba8c096973065f6e6a68/ruff-0.15.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1f111d62e3c983ed20e0ca2e800f8d77433a5b1161947df99a5c2a3fb60514f0", size = 10873887, upload-time = "2026-04-16T18:46:29.157Z" },
1424
- { url = "https://files.pythonhosted.org/packages/02/05/e48076b2a57dc33ee8c7a957296f97c744ca891a8ffb4ffb1aaa3b3f517d/ruff-0.15.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:06f483d6646f59eaffba9ae30956370d3a886625f511a3108994000480621d1c", size = 11404316, upload-time = "2026-04-16T18:46:19.462Z" },
1425
- { url = "https://files.pythonhosted.org/packages/88/27/0195d15fe7a897cbcba0904792c4b7c9fdd958456c3a17d2ea6093716a9a/ruff-0.15.11-py3-none-win32.whl", hash = "sha256:476a2aa56b7da0b73a3ee80b6b2f0e19cce544245479adde7baa65466664d5f3", size = 10655535, upload-time = "2026-04-16T18:46:12.47Z" },
1426
- { url = "https://files.pythonhosted.org/packages/3a/5e/c927b325bd4c1d3620211a4b96f47864633199feed60fa936025ab27e090/ruff-0.15.11-py3-none-win_amd64.whl", hash = "sha256:8b6756d88d7e234fb0c98c91511aae3cd519d5e3ed271cae31b20f39cb2a12a3", size = 11779692, upload-time = "2026-04-16T18:46:17.268Z" },
1427
- { url = "https://files.pythonhosted.org/packages/63/b6/aeadee5443e49baa2facd51131159fd6301cc4ccfc1541e4df7b021c37dd/ruff-0.15.11-py3-none-win_arm64.whl", hash = "sha256:063fed18cc1bbe0ee7393957284a6fe8b588c6a406a285af3ee3f46da2391ee4", size = 11032614, upload-time = "2026-04-16T18:46:34.487Z" },
1406
+ version = "0.15.12"
1407
+ source = { registry = "https://pypi.org/simple" }
1408
+ sdist = { url = "https://files.pythonhosted.org/packages/99/43/3291f1cc9106f4c63bdce7a8d0df5047fe8422a75b091c16b5e9355e0b11/ruff-0.15.12.tar.gz", hash = "sha256:ecea26adb26b4232c0c2ca19ccbc0083a68344180bba2a600605538ce51a40a6", size = 4643852, upload-time = "2026-04-24T18:17:14.305Z" }
1409
+ wheels = [
1410
+ { url = "https://files.pythonhosted.org/packages/c3/6e/e78ffb61d4686f3d96ba3df2c801161843746dcbcbb17a1e927d4829312b/ruff-0.15.12-py3-none-linux_armv6l.whl", hash = "sha256:f86f176e188e94d6bdbc09f09bfd9dc729059ad93d0e7390b5a73efe19f8861c", size = 10640713, upload-time = "2026-04-24T18:17:22.841Z" },
1411
+ { url = "https://files.pythonhosted.org/packages/ae/08/a317bc231fb9e7b93e4ef3089501e51922ff88d6936ce5cf870c4fe55419/ruff-0.15.12-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e3bcd123364c3770b8e1b7baaf343cc99a35f197c5c6e8af79015c666c423a6c", size = 11069267, upload-time = "2026-04-24T18:17:30.105Z" },
1412
+ { url = "https://files.pythonhosted.org/packages/aa/a4/f828e9718d3dce1f5f11c39c4f65afd32783c8b2aebb2e3d259e492c47bd/ruff-0.15.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fe87510d000220aa1ed530d4448a7c696a0cae1213e5ec30e5874287b66557b5", size = 10397182, upload-time = "2026-04-24T18:17:07.177Z" },
1413
+ { url = "https://files.pythonhosted.org/packages/71/e0/3310fc6d1b5e1fdea22bf3b1b807c7e187b581021b0d7d4514cccdb5fb71/ruff-0.15.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84a1630093121375a3e2a95b4a6dc7b59e2b4ee76216e32d81aae550a832d002", size = 10758012, upload-time = "2026-04-24T18:16:55.759Z" },
1414
+ { url = "https://files.pythonhosted.org/packages/11/c1/a606911aee04c324ddaa883ae418f3569792fd3c4a10c50e0dd0a2311e1e/ruff-0.15.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fb129f40f114f089ebe0ca56c0d251cf2061b17651d464bb6478dc01e69f11f5", size = 10447479, upload-time = "2026-04-24T18:16:51.677Z" },
1415
+ { url = "https://files.pythonhosted.org/packages/9d/68/4201e8444f0894f21ab4aeeaee68aa4f10b51613514a20d80bd628d57e88/ruff-0.15.12-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0c862b172d695db7598426b8af465e7e9ac00a3ea2a3630ee67eb82e366aaa6", size = 11234040, upload-time = "2026-04-24T18:17:16.529Z" },
1416
+ { url = "https://files.pythonhosted.org/packages/34/ff/8a6d6cf4ccc23fd67060874e832c18919d1557a0611ebef03fdb01fff11e/ruff-0.15.12-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2849ea9f3484c3aca43a82f484210370319e7170df4dfe4843395ddf6c57bc33", size = 12087377, upload-time = "2026-04-24T18:17:04.944Z" },
1417
+ { url = "https://files.pythonhosted.org/packages/85/f6/c669cf73f5152f623d34e69866a46d5e6185816b19fcd5b6dd8a2d299922/ruff-0.15.12-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e77c7e51c07fe396826d5969a5b846d9cd4c402535835fb6e21ce8b28fef847", size = 11367784, upload-time = "2026-04-24T18:17:25.409Z" },
1418
+ { url = "https://files.pythonhosted.org/packages/e8/39/c61d193b8a1daaa8977f7dea9e8d8ba866e02ea7b65d32f6861693aa4c12/ruff-0.15.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b2f4f2f3b1026b5fb449b467d9264bf22067b600f7b6f41fc5958909f449d0", size = 11344088, upload-time = "2026-04-24T18:17:12.258Z" },
1419
+ { url = "https://files.pythonhosted.org/packages/c2/8d/49afab3645e31e12c590acb6d3b5b69d7aab5b81926dbaf7461f9441f37a/ruff-0.15.12-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9ba3b8f1afd7e2e43d8943e55f249e13f9682fde09711644a6e7290eb4f3e339", size = 11271770, upload-time = "2026-04-24T18:17:02.457Z" },
1420
+ { url = "https://files.pythonhosted.org/packages/46/06/33f41fe94403e2b755481cdfb9b7ef3e4e0ed031c4581124658d935d52b4/ruff-0.15.12-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e852ba9fdc890655e1d78f2df1499efbe0e54126bd405362154a75e2bde159c5", size = 10719355, upload-time = "2026-04-24T18:17:27.648Z" },
1421
+ { url = "https://files.pythonhosted.org/packages/0d/59/18aa4e014debbf559670e4048e39260a85c7fcee84acfd761ac01e7b8d35/ruff-0.15.12-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:dd8aed930da53780d22fc70bdf84452c843cf64f8cb4eb38984319c24c5cd5fd", size = 10462758, upload-time = "2026-04-24T18:17:32.347Z" },
1422
+ { url = "https://files.pythonhosted.org/packages/25/e7/cc9f16fd0f3b5fddcbd7ec3d6ae30c8f3fde1047f32a4093a98d633c6570/ruff-0.15.12-py3-none-musllinux_1_2_i686.whl", hash = "sha256:01da3988d225628b709493d7dc67c3b9b12c0210016b08690ef9bd27970b262b", size = 10953498, upload-time = "2026-04-24T18:17:20.674Z" },
1423
+ { url = "https://files.pythonhosted.org/packages/72/7a/a9ba7f98c7a575978698f4230c5e8cc54bbc761af34f560818f933dafa0c/ruff-0.15.12-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:9cae0f92bd5700d1213188b31cd3bdd2b315361296d10b96b8e2337d3d11f53e", size = 11447765, upload-time = "2026-04-24T18:17:09.755Z" },
1424
+ { url = "https://files.pythonhosted.org/packages/ea/f9/0ae446942c846b8266059ad8a30702a35afae55f5cdc54c5adf8d7afdc27/ruff-0.15.12-py3-none-win32.whl", hash = "sha256:d0185894e038d7043ba8fd6aee7499ece6462dc0ea9f1e260c7451807c714c20", size = 10657277, upload-time = "2026-04-24T18:17:18.591Z" },
1425
+ { url = "https://files.pythonhosted.org/packages/33/f1/9614e03e1cdcbf9437570b5400ced8a720b5db22b28d8e0f1bda429f660d/ruff-0.15.12-py3-none-win_amd64.whl", hash = "sha256:c87a162d61ab3adca47c03f7f717c68672edec7d1b5499e652331780fe74950d", size = 11837758, upload-time = "2026-04-24T18:17:00.113Z" },
1426
+ { url = "https://files.pythonhosted.org/packages/c0/98/6beb4b351e472e5f4c4613f7c35a5290b8be2497e183825310c4c3a3984b/ruff-0.15.12-py3-none-win_arm64.whl", hash = "sha256:a538f7a82d061cee7be55542aca1d86d1393d55d81d4fcc314370f4340930d4f", size = 11120821, upload-time = "2026-04-24T18:16:57.979Z" },
1428
1427
  ]
1429
1428
 
1430
1429
  [[package]]
@@ -1 +0,0 @@
1
- VERSION = "7.1.3"