Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ansible-lint for openSUSE:Factory 
checked in at 2026-03-06 18:21:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansible-lint (Old)
 and      /work/SRC/openSUSE:Factory/.ansible-lint.new.561 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ansible-lint"

Fri Mar  6 18:21:29 2026 rev:78 rq:1337299 version:26.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ansible-lint/ansible-lint.changes        
2026-02-27 17:12:57.971718057 +0100
+++ /work/SRC/openSUSE:Factory/.ansible-lint.new.561/ansible-lint.changes       
2026-03-06 18:22:17.489373070 +0100
@@ -1,0 +2,18 @@
+Fri Mar  6 06:10:11 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- update to 26.3.0:
+  * Features
+    - feat: add jinja2-template-extension opt-in rule (#4979)
+      @djdanielsson
+  * Fixes
+    - fix: Add missing version_changed var to ComplexityRule class
+      (#4987) @thrashwerk
+  * Maintenance
+    - chore: pre-commit autoupdate (#4986) @pre-commit-ci[bot]
+    - chore(deps): update all dependencies pep621 (#4984)
+      @renovate[bot]
+    - chore(deps): update all dependencies (#4983) @renovate[bot]
+    - chore(deps-dev): bump minimatch from 9.0.5 to 10.2.4 in
+      /test/schemas (#4982) @dependabot[bot]
+
+-------------------------------------------------------------------

Old:
----
  ansible-lint-26.2.0.tar.gz

New:
----
  ansible-lint-26.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ansible-lint.spec ++++++
--- /var/tmp/diff_new_pack.WaL7Yp/_old  2026-03-06 18:22:18.205402866 +0100
+++ /var/tmp/diff_new_pack.WaL7Yp/_new  2026-03-06 18:22:18.209403033 +0100
@@ -39,7 +39,7 @@
 
 %global lib_name ansiblelint
 Name:           ansible-lint
-Version:        26.2.0
+Version:        26.3.0
 Release:        0%{?dist}
 Summary:        Best practices checker for Ansible
 License:        MIT

++++++ ansible-lint-26.2.0.tar.gz -> ansible-lint-26.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/.config/requirements-lock.txt 
new/ansible-lint-26.3.0/.config/requirements-lock.txt
--- old/ansible-lint-26.2.0/.config/requirements-lock.txt       2026-02-25 
17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/.config/requirements-lock.txt       2026-03-05 
14:28:04.000000000 +0100
@@ -1,6 +1,6 @@
 # This file was autogenerated by uv via the following command:
 #    uv export --no-default-groups --no-dev --no-emit-package ansible-core 
--no-emit-package resolvelib --no-emit-package ruamel-yaml-clib 
--no-emit-package tomli --no-emit-package typing-extensions --no-emit-project 
--no-hashes -o .config/requirements-lock.txt
-ansible-compat==25.12.0
+ansible-compat==25.12.1
     # via ansible-lint
 attrs==25.4.0
     # via
@@ -24,7 +24,7 @@
     #   ansible-lint
 distro==1.9.0
     # via ansible-lint
-filelock==3.24.3
+filelock==3.25.0
     # via ansible-lint
 jinja2==3.1.6
     # via ansible-core
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/.git_archival.txt 
new/ansible-lint-26.3.0/.git_archival.txt
--- old/ansible-lint-26.2.0/.git_archival.txt   2026-02-25 17:11:51.000000000 
+0100
+++ new/ansible-lint-26.3.0/.git_archival.txt   2026-03-05 14:28:04.000000000 
+0100
@@ -1,4 +1,4 @@
-node: 19f673a091111d07688352cd2f19f0460055feba
-node-date: 2026-02-25T16:11:51Z
+node: 8ba9595a4acd1b906eb75568b34f6ef592cd1528
+node-date: 2026-03-05T13:28:04Z
 describe-name: v26
-ref-names: HEAD -> main, tag: v26.2.0, tag: v26
+ref-names: HEAD -> main, tag: v26.3.0, tag: v26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/.pre-commit-config.yaml 
new/ansible-lint-26.3.0/.pre-commit-config.yaml
--- old/ansible-lint-26.2.0/.pre-commit-config.yaml     2026-02-25 
17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/.pre-commit-config.yaml     2026-03-05 
14:28:04.000000000 +0100
@@ -34,7 +34,7 @@
       - id: check-useless-excludes
 
   - repo: https://github.com/ansible/actions
-    rev: v0.3.1
+    rev: v1.0.0
     hooks:
       - id: toml
       - id: ruff
@@ -42,7 +42,7 @@
       - id: pylint
 
   - repo: https://github.com/astral-sh/uv-pre-commit
-    rev: 0.10.6
+    rev: 0.10.7
     hooks:
       - id: uv-sync
       - id: uv-lock
@@ -93,7 +93,7 @@
           ]
         name: cspell + remove unused and sort dictionary
   - repo: https://github.com/python-jsonschema/check-jsonschema
-    rev: 0.36.2
+    rev: 0.37.0
     hooks:
       - id: check-github-workflows
   - repo: https://github.com/pre-commit/pre-commit-hooks.git
@@ -160,7 +160,7 @@
         entry: yamllint --strict
 
   - repo: https://github.com/tombi-toml/tombi-pre-commit
-    rev: v0.7.32
+    rev: v0.8.0
     hooks:
       - id: tombi-format
         alias: toml
@@ -168,7 +168,7 @@
         alias: toml
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.15.2
+    rev: v0.15.4
     hooks:
       - id: ruff-format
         alias: ruff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/docs/rules/jinja-template-extension.md 
new/ansible-lint-26.3.0/docs/rules/jinja-template-extension.md
--- old/ansible-lint-26.2.0/docs/rules/jinja-template-extension.md      
1970-01-01 01:00:00.000000000 +0100
+++ new/ansible-lint-26.3.0/docs/rules/jinja-template-extension.md      
2026-03-06 18:22:20.029478770 +0100
@@ -0,0 +1 @@
+symbolic link to ../../src/ansiblelint/rules/jinja_template_extension.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/examples/playbooks/rule-jinja-template-extension-fail.yml
 
new/ansible-lint-26.3.0/examples/playbooks/rule-jinja-template-extension-fail.yml
--- 
old/ansible-lint-26.2.0/examples/playbooks/rule-jinja-template-extension-fail.yml
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/ansible-lint-26.3.0/examples/playbooks/rule-jinja-template-extension-fail.yml
   2026-03-05 14:28:04.000000000 +0100
@@ -0,0 +1,15 @@
+---
+- name: Fixture for jinja-template-extension (fail)
+  hosts: localhost
+  tasks:
+    - name: Deploy config without .j2 extension # <-- 1st
+      ansible.builtin.template:
+        src: httpd.conf
+        dest: /etc/httpd/conf/httpd.conf
+        mode: "0644"
+
+    - name: Deploy template with wrong extension # <-- 2nd
+      ansible.builtin.template:
+        src: app.conf.template
+        dest: /etc/myapp/app.conf
+        mode: "0644"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/examples/playbooks/rule-jinja-template-extension-pass.yml
 
new/ansible-lint-26.3.0/examples/playbooks/rule-jinja-template-extension-pass.yml
--- 
old/ansible-lint-26.2.0/examples/playbooks/rule-jinja-template-extension-pass.yml
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/ansible-lint-26.3.0/examples/playbooks/rule-jinja-template-extension-pass.yml
   2026-03-05 14:28:04.000000000 +0100
@@ -0,0 +1,28 @@
+---
+- name: Fixture for jinja-template-extension (pass)
+  hosts: localhost
+  tasks:
+    - name: Deploy config with .j2 extension
+      ansible.builtin.template:
+        src: httpd.conf.j2
+        dest: /etc/httpd/conf/httpd.conf
+        mode: "0644"
+
+    - name: Deploy app config with .j2 extension
+      ansible.builtin.template:
+        src: app.conf.j2
+        dest: /etc/myapp/app.conf
+        mode: "0644"
+
+    - name: Use copy module which is not checked
+      ansible.builtin.copy:
+        src: static.conf
+        dest: /etc/myapp/static.conf
+        mode: "0644"
+
+    - name: Template with src from variable is skipped
+      ansible.builtin.template:
+        src: "{{ template_src }}"
+        dest: /etc/myapp/app.conf
+        mode: "0644"
+      when: template_src is defined
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/mkdocs.yml 
new/ansible-lint-26.3.0/mkdocs.yml
--- old/ansible-lint-26.2.0/mkdocs.yml  2026-02-25 17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/mkdocs.yml  2026-03-05 14:28:04.000000000 +0100
@@ -89,6 +89,7 @@
       - rules/inline-env-var.md
       - rules/internal-error.md
       - rules/jinja.md
+      - rules/jinja-template-extension.md
       - rules/key-order.md
       - rules/latest.md
       - rules/literal-compare.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/src/ansiblelint/rules/complexity.py 
new/ansible-lint-26.3.0/src/ansiblelint/rules/complexity.py
--- old/ansible-lint-26.2.0/src/ansiblelint/rules/complexity.py 2026-02-25 
17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/src/ansiblelint/rules/complexity.py 2026-03-05 
14:28:04.000000000 +0100
@@ -23,6 +23,7 @@
     link = "https://ansible.readthedocs.io/projects/lint/rules/complexity/";
     severity = "MEDIUM"
     tags = ["experimental"]
+    version_changed = "26.2.0"
 
     def __init__(self) -> None:
         """Initialize the rule."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/src/ansiblelint/rules/jinja_template_extension.md 
new/ansible-lint-26.3.0/src/ansiblelint/rules/jinja_template_extension.md
--- old/ansible-lint-26.2.0/src/ansiblelint/rules/jinja_template_extension.md   
1970-01-01 01:00:00.000000000 +0100
+++ new/ansible-lint-26.3.0/src/ansiblelint/rules/jinja_template_extension.md   
2026-03-05 14:28:04.000000000 +0100
@@ -0,0 +1,49 @@
+# jinja-template-extension
+
+This rule checks that files used with `ansible.builtin.template` have a
+`.j2` extension.
+
+Naming template source files with a `.j2` suffix provides several benefits:
+
+- **Editor support**: Editors can apply Jinja2 syntax highlighting
+  automatically based on the file extension.
+- **Clear intent**: Developers can immediately distinguish template files
+  from static files in the `templates/` directory.
+- **Convention**: The `.j2` extension is the widely adopted community
+  convention for Ansible template files.
+
+This is an opt-in rule.
+You must enable it in your Ansible-lint configuration as follows:
+
+```yaml
+enable_list:
+  - jinja-template-extension
+```
+
+## Problematic Code
+
+```yaml
+---
+- name: Example playbook
+  hosts: all
+  tasks:
+    - name: Deploy config
+      ansible.builtin.template:
+        src: httpd.conf # <- Missing .j2 extension.
+        dest: /etc/httpd/conf/httpd.conf
+        mode: "0644"
+```
+
+## Correct Code
+
+```yaml
+---
+- name: Example playbook
+  hosts: all
+  tasks:
+    - name: Deploy config
+      ansible.builtin.template:
+        src: httpd.conf.j2 # <- Proper .j2 extension.
+        dest: /etc/httpd/conf/httpd.conf
+        mode: "0644"
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-lint-26.2.0/src/ansiblelint/rules/jinja_template_extension.py 
new/ansible-lint-26.3.0/src/ansiblelint/rules/jinja_template_extension.py
--- old/ansible-lint-26.2.0/src/ansiblelint/rules/jinja_template_extension.py   
1970-01-01 01:00:00.000000000 +0100
+++ new/ansible-lint-26.3.0/src/ansiblelint/rules/jinja_template_extension.py   
2026-03-05 14:28:04.000000000 +0100
@@ -0,0 +1,77 @@
+"""Implementation of the jinja-template-extension rule."""
+
+from __future__ import annotations
+
+import sys
+from typing import TYPE_CHECKING
+
+from ansiblelint.rules import AnsibleLintRule
+
+if TYPE_CHECKING:
+    from ansiblelint.file_utils import Lintable
+    from ansiblelint.utils import Task
+
+
+class JinjaTemplateExtensionRule(AnsibleLintRule):
+    """Template files should have a .j2 extension."""
+
+    id = "jinja-template-extension"
+    description = (
+        "Template source files should end in ``.j2`` to clearly distinguish "
+        "them from static files and enable proper editor syntax highlighting."
+    )
+    severity = "LOW"
+    tags = ["formatting", "opt-in"]
+    version_changed = "6.22.0"
+
+    _template_modules = (
+        "ansible.builtin.template",
+        "ansible.legacy.template",
+        "template",
+    )
+
+    def matchtask(
+        self,
+        task: Task,
+        file: Lintable | None = None,
+    ) -> bool | str:
+        if task["action"]["__ansible_module__"] not in self._template_modules:
+            return False
+
+        src = task["action"].get("src", "")
+        if not isinstance(src, str) or not src or "{{" in src:
+            return False
+
+        if not src.endswith(".j2"):
+            return "Template source file should have a .j2 extension"
+
+        return False
+
+
+if "pytest" in sys.modules:
+    from ansiblelint.rules import RulesCollection
+    from ansiblelint.runner import Runner
+
+    def test_jinja_template_extension_fail(
+        empty_rule_collection: RulesCollection,
+    ) -> None:
+        """Test rule catches template src without .j2 extension."""
+        empty_rule_collection.register(JinjaTemplateExtensionRule())
+        results = Runner(
+            "examples/playbooks/rule-jinja-template-extension-fail.yml",
+            rules=empty_rule_collection,
+        ).run()
+        assert len(results) == 2
+        for result in results:
+            assert result.rule.id == JinjaTemplateExtensionRule.id
+
+    def test_jinja_template_extension_pass(
+        empty_rule_collection: RulesCollection,
+    ) -> None:
+        """Test rule allows template src with .j2 extension."""
+        empty_rule_collection.register(JinjaTemplateExtensionRule())
+        results = Runner(
+            "examples/playbooks/rule-jinja-template-extension-pass.yml",
+            rules=empty_rule_collection,
+        ).run()
+        assert len(results) == 0, results
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/test/schemas/package-lock.json 
new/ansible-lint-26.3.0/test/schemas/package-lock.json
--- old/ansible-lint-26.2.0/test/schemas/package-lock.json      2026-02-25 
17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/test/schemas/package-lock.json      2026-03-05 
14:28:04.000000000 +0100
@@ -345,9 +345,9 @@
       "dev": true
     },
     "node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": 
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz";,
-      "integrity": 
"sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "version": "2.0.2",
+      "resolved": 
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz";,
+      "integrity": 
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
       "dev": true,
       "dependencies": {
         "balanced-match": "^1.0.0"
@@ -648,13 +648,12 @@
       }
     },
     "node_modules/glob/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz";,
-      "integrity": 
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz";,
+      "integrity": 
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
       "dev": true,
-      "license": "ISC",
       "dependencies": {
-        "brace-expansion": "^2.0.1"
+        "brace-expansion": "^2.0.2"
       },
       "engines": {
         "node": ">=16 || 14 >=14.17"
@@ -809,11 +808,10 @@
       "integrity": 
"sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
     },
     "node_modules/minimatch": {
-      "version": "10.2.3",
-      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz";,
-      "integrity": 
"sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==",
+      "version": "10.2.4",
+      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz";,
+      "integrity": 
"sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
       "dev": true,
-      "license": "BlueOak-1.0.0",
       "dependencies": {
         "brace-expansion": "^5.0.2"
       },
@@ -895,13 +893,12 @@
       }
     },
     "node_modules/mocha/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz";,
-      "integrity": 
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz";,
+      "integrity": 
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
       "dev": true,
-      "license": "ISC",
       "dependencies": {
-        "brace-expansion": "^2.0.1"
+        "brace-expansion": "^2.0.2"
       },
       "engines": {
         "node": ">=16 || 14 >=14.17"
@@ -1664,9 +1661,9 @@
       "dev": true
     },
     "brace-expansion": {
-      "version": "2.0.1",
-      "resolved": 
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz";,
-      "integrity": 
"sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "version": "2.0.2",
+      "resolved": 
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz";,
+      "integrity": 
"sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
       "dev": true,
       "requires": {
         "balanced-match": "^1.0.0"
@@ -1872,12 +1869,12 @@
       },
       "dependencies": {
         "minimatch": {
-          "version": "9.0.5",
-          "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz";,
-          "integrity": 
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+          "version": "9.0.9",
+          "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz";,
+          "integrity": 
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
           "dev": true,
           "requires": {
-            "brace-expansion": "^2.0.1"
+            "brace-expansion": "^2.0.2"
           }
         }
       }
@@ -1983,9 +1980,9 @@
       "integrity": 
"sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
     },
     "minimatch": {
-      "version": "10.2.3",
-      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz";,
-      "integrity": 
"sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==",
+      "version": "10.2.4",
+      "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz";,
+      "integrity": 
"sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
       "dev": true,
       "requires": {
         "brace-expansion": "^5.0.2"
@@ -2044,12 +2041,12 @@
       },
       "dependencies": {
         "minimatch": {
-          "version": "9.0.5",
-          "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz";,
-          "integrity": 
"sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+          "version": "9.0.9",
+          "resolved": 
"https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz";,
+          "integrity": 
"sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
           "dev": true,
           "requires": {
-            "brace-expansion": "^2.0.1"
+            "brace-expansion": "^2.0.2"
           }
         }
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/test/test_rules_collection.py 
new/ansible-lint-26.3.0/test/test_rules_collection.py
--- old/ansible-lint-26.2.0/test/test_rules_collection.py       2026-02-25 
17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/test/test_rules_collection.py       2026-03-05 
14:28:04.000000000 +0100
@@ -177,7 +177,7 @@
             f"Rule {rule.id} must have at least one of:  .help, .description, 
.__doc__"
         )
     assert "yaml" in keys, "yaml rule is missing"
-    assert len(rules) == 52  # update this number when adding new rules!
+    assert len(rules) == 53  # update this number when adding new rules!
     assert len(keys) == len(rules), "Duplicate rule ids?"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-lint-26.2.0/uv.lock 
new/ansible-lint-26.3.0/uv.lock
--- old/ansible-lint-26.2.0/uv.lock     2026-02-25 17:11:51.000000000 +0100
+++ new/ansible-lint-26.3.0/uv.lock     2026-03-05 14:28:04.000000000 +0100
@@ -10,7 +10,7 @@
 
 [[package]]
 name = "ansible-compat"
-version = "25.12.0"
+version = "25.12.1"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "ansible-core", version = "2.17.14", source = { registry = 
"https://pypi.org/simple"; }, marker = "python_full_version < '3.11'" },
@@ -21,9 +21,9 @@
     { name = "pyyaml" },
     { name = "subprocess-tee" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/75/62/fb3aee58827ba6eacee561183b02b4a49cf4819f405df2409e23bad69a00/ansible_compat-25.12.0.tar.gz";,
 hash = 
"sha256:d38a149c5f95bb0d529c3b5e5fa3200b26f5e938ec7c31d8bb01d87c1f634410", size 
= 193698, upload-time = "2025-12-02T15:36:37.831Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/c7/8f/14e8566b9a0cd5393150719db218a7b332308456b003b289f21e5812000a/ansible_compat-25.12.1.tar.gz";,
 hash = 
"sha256:509a42fbfc65acad90b4e62c311ec0b37447e497b9b2a19cc38a625e458f2afd", size 
= 214925, upload-time = "2026-02-25T15:47:02.46Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/7f/cb/be446a7db8b7ade13ebea507a7075a1eb8fd900c068c12ceee537a06ae9f/ansible_compat-25.12.0-py3-none-any.whl";,
 hash = 
"sha256:322ccc7002030a91588d1fdba21e934703d64736f0e483dc6afe8ecd93a75614", size 
= 27731, upload-time = "2025-12-02T15:36:36.072Z" },
+    { url = 
"https://files.pythonhosted.org/packages/12/05/5f889ab2b104426630e40a13c121594756047c06ebcaa5bf046883550e09/ansible_compat-25.12.1-py3-none-any.whl";,
 hash = 
"sha256:9246bef1b8d89bdd18cc1f07d2711dcc6e09daf51f6e15880415dd4312d788f1", size 
= 27773, upload-time = "2026-02-25T15:47:00.249Z" },
 ]
 
 [[package]]
@@ -86,15 +86,15 @@
 
 [[package]]
 name = "ansible-creator"
-version = "25.12.0"
+version = "26.2.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "jinja2" },
     { name = "pyyaml" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/c4/fe/32f2b1325ad520b9341186f79ca1170e8b45a70d3f1d28076d8bcf40136f/ansible_creator-25.12.0.tar.gz";,
 hash = 
"sha256:dedc26d4172e9e7ca339995932d69a4a0776ec5678ebd8eac576d5ddfa3b7259", size 
= 9763615, upload-time = "2025-12-02T15:42:38.755Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/aa/09/7106d9168736c544d4b1873c15c35ad96fb5daa4cda7803cc7b842aeb7d7/ansible_creator-26.2.0.tar.gz";,
 hash = 
"sha256:2afadfd9bb34e884c2ec2d49857c826efb10c2a06a385ecb8e297f5b115e7ebc", size 
= 9798675, upload-time = "2026-02-25T17:12:47.184Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/4f/df/8130d69f28cd3c735d34401ba07b4a7715560641dfcdd362995a91b3e5f0/ansible_creator-25.12.0-py3-none-any.whl";,
 hash = 
"sha256:d34e5d90c3bd482018bf6f166180da034b8eced038a45d0aec6a7baebf73ed1d", size 
= 97951, upload-time = "2025-12-02T15:42:36.783Z" },
+    { url = 
"https://files.pythonhosted.org/packages/87/fc/31b11c4dd2418710eb3db5bc870b12b1ab01e3aa250ec16ad4c0ef61e0c0/ansible_creator-26.2.0-py3-none-any.whl";,
 hash = 
"sha256:3986ea163a88fb104076e17645921858a3c6813632173203577033a9200664d6", size 
= 106215, upload-time = "2026-02-25T17:12:45.577Z" },
 ]
 
 [[package]]
@@ -677,7 +677,7 @@
 
 [[package]]
 name = "check-jsonschema"
-version = "0.36.2"
+version = "0.37.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "click" },
@@ -687,9 +687,9 @@
     { name = "ruamel-yaml" },
     { name = "tomli", marker = "python_full_version < '3.11'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/03/63/7b981a8c3ef7f153259fa8934abe0f35ea210ca40941dfd5c2b9ae521e8f/check_jsonschema-0.36.2.tar.gz";,
 hash = 
"sha256:bc5de8b0270eb9c5b82adf1f977cb8d05ff2578eb7e2317a44620c1639f1e55b", size 
= 342447, upload-time = "2026-02-16T05:16:51.953Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/f3/9b/384b1a7df9b28b702cb940d96cea0cad77031f408a8859b9641abea5d671/check_jsonschema-0.37.0.tar.gz";,
 hash = 
"sha256:f1fef56b041e8cd1ad42e340f8422c1f27e00877e29c4f34bce357955b262e9d", size 
= 399692, upload-time = "2026-02-27T05:18:26.922Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/6b/c1/5803c627e9340095fb7fbc2f7ad0668c35a5708da520ca1da5a8b5ca1e63/check_jsonschema-0.36.2-py3-none-any.whl";,
 hash = 
"sha256:51a2e21a03771004312f48b034da5bc4a988e3646f5705904732143653e652c8", size 
= 328220, upload-time = "2026-02-16T05:16:50.064Z" },
+    { url = 
"https://files.pythonhosted.org/packages/3c/20/515f96aa04ce0e74c479a90649f18e2eae80d4df34707b0f4ba831b574ea/check_jsonschema-0.37.0-py3-none-any.whl";,
 hash = 
"sha256:c9a1476746627daf1d3b362d15ea70b4e176588a2de9dbfb6933315553bcb393", size 
= 383188, upload-time = "2026-02-27T05:18:25.269Z" },
 ]
 
 [[package]]
@@ -1017,11 +1017,11 @@
 
 [[package]]
 name = "filelock"
-version = "3.24.3"
+version = "3.25.0"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/73/92/a8e2479937ff39185d20dd6a851c1a63e55849e447a55e798cc2e1f49c65/filelock-3.24.3.tar.gz";,
 hash = 
"sha256:011a5644dc937c22699943ebbfc46e969cdde3e171470a6e40b9533e5a72affa", size 
= 37935, upload-time = "2026-02-19T00:48:20.543Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/77/18/a1fd2231c679dcb9726204645721b12498aeac28e1ad0601038f94b42556/filelock-3.25.0.tar.gz";,
 hash = 
"sha256:8f00faf3abf9dc730a1ffe9c354ae5c04e079ab7d3a683b7c32da5dd05f26af3", size 
= 40158, upload-time = "2026-03-01T15:08:45.916Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/9c/0f/5d0c71a1aefeb08efff26272149e07ab922b64f46c63363756224bd6872e/filelock-3.24.3-py3-none-any.whl";,
 hash = 
"sha256:426e9a4660391f7f8a810d71b0555bce9008b0a1cc342ab1f6947d37639e002d", size 
= 24331, upload-time = "2026-02-19T00:48:18.465Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f9/0b/de6f54d4a8bedfe8645c41497f3c18d749f0bd3218170c667bf4b81d0cdd/filelock-3.25.0-py3-none-any.whl";,
 hash = 
"sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047", size 
= 26427, upload-time = "2026-03-01T15:08:44.593Z" },
 ]
 
 [[package]]
@@ -1208,11 +1208,11 @@
 
 [[package]]
 name = "isort"
-version = "8.0.0"
+version = "8.0.1"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/bf/e3/e72b0b3a85f24cf5fc2cd8e92b996592798f896024c5cdf3709232e6e377/isort-8.0.0.tar.gz";,
 hash = 
"sha256:fddea59202f231e170e52e71e3510b99c373b6e571b55d9c7b31b679c0fed47c", size 
= 769482, upload-time = "2026-02-19T16:31:59.716Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz";,
 hash = 
"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d", size 
= 769592, upload-time = "2026-02-28T10:08:20.685Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/74/ea/cf3aad99dd12c026e2d6835d559efb6fc50ccfd5b46d42d5fec2608b116a/isort-8.0.0-py3-none-any.whl";,
 hash = 
"sha256:184916a933041c7cf718787f7e52064f3c06272aff69a5cb4dc46497bd8911d9", size 
= 89715, upload-time = "2026-02-19T16:31:57.745Z" },
+    { url = 
"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl";,
 hash = 
"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75", size 
= 89733, upload-time = "2026-02-28T10:08:19.466Z" },
 ]
 
 [[package]]
@@ -2188,26 +2188,26 @@
 
 [[package]]
 name = "prek"
-version = "0.3.3"
+version = "0.3.4"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/bf/f1/7613dc8347a33e40fc5b79eec6bc7d458d8bbc339782333d8433b665f86f/prek-0.3.3.tar.gz";,
 hash = 
"sha256:117bd46ebeb39def24298ce021ccc73edcf697b81856fcff36d762dd56093f6f", size 
= 343697, upload-time = "2026-02-15T13:33:28.723Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/c6/51/2324eaad93a4b144853ca1c56da76f357d3a70c7b4fd6659e972d7bb8660/prek-0.3.4.tar.gz";,
 hash = 
"sha256:56a74d02d8b7dfe3c774ecfcd8c1b4e5f1e1b84369043a8003e8e3a779fce72d", size 
= 356633, upload-time = "2026-02-28T03:47:13.452Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/2d/8b/dce13d2a3065fd1e8ffce593a0e51c4a79c3cde9c9a15dc0acc8d9d1573d/prek-0.3.3-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:e8629cac4bdb131be8dc6e5a337f0f76073ad34a8305f3fe2bc1ab6201ede0a4", size 
= 4644636, upload-time = "2026-02-15T13:33:43.609Z" },
-    { url = 
"https://files.pythonhosted.org/packages/01/30/06ab4dbe7ce02a8ce833e92deb1d9a8e85ae9d40e33d1959a2070b7494c6/prek-0.3.3-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:4b9e819b9e4118e1e785047b1c8bd9aec7e4d836ed034cb58b7db5bcaaf49437", size 
= 4651410, upload-time = "2026-02-15T13:33:34.277Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d4/fc/da3bc5cb38471e7192eda06b7a26b7c24ef83e82da2c1dbc145f2bf33640/prek-0.3.3-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:bf29db3b5657c083eb8444c25aadeeec5167dc492e9019e188f87932f01ea50a", size 
= 4273163, upload-time = "2026-02-15T13:33:42.106Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b4/74/47839395091e2937beced81a5dd2f8ea9c8239c853da8611aaf78ee21a8b/prek-0.3.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:ae09736149815b26e64a9d350ca05692bab32c2afdf2939114d3211aaad68a3e", size 
= 4631808, upload-time = "2026-02-15T13:33:20.076Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e2/89/3f5ef6f7c928c017cb63b029349d6bc03598ab7f6979d4a770ce02575f82/prek-0.3.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:856c2b55c51703c366bb4ce81c6a91102b70573a9fc8637db2ac61c66e4565f9", size 
= 4548959, upload-time = "2026-02-15T13:33:36.325Z" },
-    { url = 
"https://files.pythonhosted.org/packages/b2/18/80002c4c4475f90ca025f27739a016927a0e5d905c60612fc95da1c56ab7/prek-0.3.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:3acdf13a018f685beaff0a71d4b0d2ccbab4eaa1aced6d08fd471c1a654183eb", size 
= 4862256, upload-time = "2026-02-15T13:33:37.754Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c5/25/648bf084c2468fa7cfcdbbe9e59956bbb31b81f36e113bc9107d80af26a7/prek-0.3.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:0f035667a8bd0a77b2bfa2b2e125da8cb1793949e9eeef0d8daab7f8ac8b57fe", size 
= 5404486, upload-time = "2026-02-15T13:33:39.239Z" },
-    { url = 
"https://files.pythonhosted.org/packages/8b/43/261fb60a11712a327da345912bd8b338dc5a050199de800faafa278a6133/prek-0.3.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:d09b2ad14332eede441d977de08eb57fb3f61226ed5fd2ceb7aadf5afcdb6794", size 
= 4887513, upload-time = "2026-02-15T13:33:40.702Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c7/2c/581e757ee57ec6046b32e0ee25660fc734bc2622c319f57119c49c0cab58/prek-0.3.3-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:c0c3ffac16e37a9daba43a7e8316778f5809b70254be138761a8b5b9ef0df28e", size 
= 4632336, upload-time = "2026-02-15T13:33:25.867Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d5/d8/aa276ce5d11b77882da4102ca0cb7161095831105043ae7979bbfdcc3dc4/prek-0.3.3-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:a3dc7720b580c07c0386e17af2486a5b4bc2f6cc57034a288a614dcbc4abe555", size 
= 4679370, upload-time = "2026-02-15T13:33:22.247Z" },
-    { url = 
"https://files.pythonhosted.org/packages/70/19/9d4fa7bde428e58d9f48a74290c08736d42aeb5690dcdccc7a713e34a449/prek-0.3.3-py3-none-musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:60e0fa15da5020a03df2ee40268145ec5b88267ec2141a205317ad4df8c992d6", size 
= 4540316, upload-time = "2026-02-15T13:33:24.088Z" },
-    { url = 
"https://files.pythonhosted.org/packages/25/b5/973cce29257e0b47b16cc9b4c162772ea01dbb7c080791ea0c068e106e05/prek-0.3.3-py3-none-musllinux_1_1_i686.whl";,
 hash = 
"sha256:553515da9586d9624dc42db32b744fdb91cf62b053753037a0cadb3c2d8d82a2", size 
= 4724566, upload-time = "2026-02-15T13:33:29.832Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d6/8b/ad8b2658895a8ed2b0bc630bf38686fe38b7ff2c619c58953a80e4de3048/prek-0.3.3-py3-none-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:9512cf370e0d1496503463a4a65621480efb41b487841a9e9ff1661edf14b238", size 
= 4995072, upload-time = "2026-02-15T13:33:27.417Z" },
-    { url = 
"https://files.pythonhosted.org/packages/fd/b7/0540c101c00882adb9d30319d22d8f879413598269ecc60235e41875efd4/prek-0.3.3-py3-none-win32.whl";,
 hash = 
"sha256:b2b328c7c6dc14ccdc79785348589aa39850f47baff33d8f199f2dee80ff774c", size 
= 4293144, upload-time = "2026-02-15T13:33:46.013Z" },
-    { url = 
"https://files.pythonhosted.org/packages/97/c7/e4f11da653093040efba2d835aa0995d78940aea30887287aeaebe34a545/prek-0.3.3-py3-none-win_amd64.whl";,
 hash = 
"sha256:3d7d7acf7ca8db65ba0943c52326c898f84bab0b1c26a35c87e0d177f574ca5f", size 
= 4652761, upload-time = "2026-02-15T13:33:32.962Z" },
-    { url = 
"https://files.pythonhosted.org/packages/11/e4/d99dec54c6a5fb2763488bff6078166383169a93f3af27d2edae88379a39/prek-0.3.3-py3-none-win_arm64.whl";,
 hash = 
"sha256:8aa87ee7628cd74482c0dd6537a3def1f162b25cd642d78b1b35dd3e81817f60", size 
= 4367520, upload-time = "2026-02-15T13:33:31.664Z" },
+    { url = 
"https://files.pythonhosted.org/packages/09/20/1a964cb72582307c2f1dc7f583caab90f42810ad41551e5220592406a4c3/prek-0.3.4-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:c35192d6e23fe7406bd2f333d1c7dab1a4b34ab9289789f453170f33550aa74d", size 
= 4641915, upload-time = "2026-02-28T03:47:03.772Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c5/cb/4a21f37102bac37e415b61818344aa85de8d29a581253afa7db8c08d5a33/prek-0.3.4-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:6f784d78de72a8bbe58a5fe7bde787c364ae88f0aff5222c5c5c7287876c510a", size 
= 4649166, upload-time = "2026-02-28T03:47:06.164Z" },
+    { url = 
"https://files.pythonhosted.org/packages/85/9c/a7c0d117a098d57931428bdb60fcb796e0ebc0478c59288017a2e22eca96/prek-0.3.4-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:50a43f522625e8c968e8c9992accf9e29017abad6c782d6d176b73145ad680b7", size 
= 4274422, upload-time = "2026-02-28T03:46:59.356Z" },
+    { url = 
"https://files.pythonhosted.org/packages/59/84/81d06df1724d09266df97599a02543d82fde7dfaefd192f09d9b2ccb092f/prek-0.3.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:4bbb1d3912a88935f35c6ba4466b4242732e3e3a8c608623c708e83cea85de00", size 
= 4629873, upload-time = "2026-02-28T03:46:56.419Z" },
+    { url = 
"https://files.pythonhosted.org/packages/09/cd/bb0aefa25cfacd8dbced75b9a9d9945707707867fa5635fb69ae1bbc2d88/prek-0.3.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:ca4d4134db8f6e8de3c418317becdf428957e3cab271807f475318105fd46d04", size 
= 4552507, upload-time = "2026-02-28T03:47:05.004Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9b/c0/578a7af4861afb64ec81c03bfdcc1bb3341bb61f2fff8a094ecf13987a56/prek-0.3.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:7fb6395f6eb76133bb1e11fc718db8144522466cdc2e541d05e7813d1bbcae7d", size 
= 4865929, upload-time = "2026-02-28T03:47:09.231Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fc/48/f169406590028f7698ef2e1ff5bffd92ca05e017636c1163a2f5ef0f8275/prek-0.3.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:aae17813239ddcb4ae7b38418de4d49afff740f48f8e0556029c96f58e350412", size 
= 5390286, upload-time = "2026-02-28T03:47:10.796Z" },
+    { url = 
"https://files.pythonhosted.org/packages/05/c5/98a73fec052059c3ae06ce105bef67caca42334c56d84e9ef75df72ba152/prek-0.3.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:10a621a690d9c127afc3d21c275030d364d1fbef3296c095068d3ae80a59546e", size 
= 4891028, upload-time = "2026-02-28T03:47:07.916Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a3/b4/029966e35e59b59c142be7e1d2208ad261709ac1a66aa4a3ce33c5b9f91f/prek-0.3.4-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:d978c31bc3b1f0b3d58895b7c6ac26f077e0ea846da54f46aeee4c7088b1b105", size 
= 4633986, upload-time = "2026-02-28T03:47:14.351Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1d/27/d122802555745b6940c99fcb41496001c192ddcdf56ec947ec10a0298e05/prek-0.3.4-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:a8e089a030f0a023c22a4bb2ec4ff3fcc153585d701cff67acbfca2f37e173ae", size 
= 4680722, upload-time = "2026-02-28T03:47:12.224Z" },
+    { url = 
"https://files.pythonhosted.org/packages/34/40/92318c96b3a67b4e62ed82741016ede34d97ea9579d3cc1332b167632222/prek-0.3.4-py3-none-musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:8060c72b764f0b88112616763da9dd3a7c293e010f8520b74079893096160a2f", size 
= 4535623, upload-time = "2026-02-28T03:46:52.221Z" },
+    { url = 
"https://files.pythonhosted.org/packages/df/f5/6b383d94e722637da4926b4f609d36fe432827bb6f035ad46ee02bde66b6/prek-0.3.4-py3-none-musllinux_1_1_i686.whl";,
 hash = 
"sha256:65b23268456b5a763278d4e1ec532f2df33918f13ded85869a1ddff761eb9697", size 
= 4729879, upload-time = "2026-02-28T03:46:57.886Z" },
+    { url = 
"https://files.pythonhosted.org/packages/79/f8/fdc705b807d813fd713ffa4f67f96741542ed1dafbb221206078c06f3df4/prek-0.3.4-py3-none-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:3975c61139c7b3200e38dc3955e050b0f2615701d3deb9715696a902e850509e", size 
= 5001569, upload-time = "2026-02-28T03:47:00.892Z" },
+    { url = 
"https://files.pythonhosted.org/packages/84/92/b007a41f58e8192a1e611a21b396ad870d51d7873b7af12068ebae7fc15f/prek-0.3.4-py3-none-win32.whl";,
 hash = 
"sha256:37449ae82f4dc08b72e542401e3d7318f05d1163e87c31ab260a40f425d6516e", size 
= 4297057, upload-time = "2026-02-28T03:47:02.219Z" },
+    { url = 
"https://files.pythonhosted.org/packages/bb/dc/bcb02de9b11461e8e0c7d3c8fdf8cfa15ac6efe73472a4375549ba5defd2/prek-0.3.4-py3-none-win_amd64.whl";,
 hash = 
"sha256:60e9aa86ca65de963510ae28c5d94b9d7a97bcbaa6e4cdb5bf5083ed4c45dc71", size 
= 4655174, upload-time = "2026-02-28T03:46:53.749Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0b/86/98f5598569f4cd3de7161e266fab6a8981e65555f79d4704810c1502ad0a/prek-0.3.4-py3-none-win_arm64.whl";,
 hash = 
"sha256:486bdae8f4512d3b4f6eb61b83e5b7595da2adca385af4b2b7823c0ab38d1827", size 
= 4367817, upload-time = "2026-02-28T03:46:55.264Z" },
 ]
 
 [[package]]
@@ -2455,6 +2455,19 @@
 ]
 
 [[package]]
+name = "python-discovery"
+version = "1.1.0"
+source = { registry = "https://pypi.org/simple"; }
+dependencies = [
+    { name = "filelock" },
+    { name = "platformdirs" },
+]
+sdist = { url = 
"https://files.pythonhosted.org/packages/82/bb/93a3e83bdf9322c7e21cafd092e56a4a17c4d8ef4277b6eb01af1a540a6f/python_discovery-1.1.0.tar.gz";,
 hash = 
"sha256:447941ba1aed8cc2ab7ee3cb91be5fc137c5bdbb05b7e6ea62fbdcb66e50b268", size 
= 55674, upload-time = "2026-02-26T09:42:49.668Z" }
+wheels = [
+    { url = 
"https://files.pythonhosted.org/packages/06/54/82a6e2ef37f0f23dccac604b9585bdcbd0698604feb64807dcb72853693e/python_discovery-1.1.0-py3-none-any.whl";,
 hash = 
"sha256:a162893b8809727f54594a99ad2179d2ede4bf953e12d4c7abc3cc9cdbd1437b", size 
= 30687, upload-time = "2026-02-26T09:42:48.548Z" },
+]
+
+[[package]]
 name = "pytokens"
 version = "0.4.1"
 source = { registry = "https://pypi.org/simple"; }
@@ -2998,27 +3011,27 @@
 
 [[package]]
 name = "ruff"
-version = "0.15.2"
+version = "0.15.4"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/06/04/eab13a954e763b0606f460443fcbf6bb5a0faf06890ea3754ff16523dce5/ruff-0.15.2.tar.gz";,
 hash = 
"sha256:14b965afee0969e68bb871eba625343b8673375f457af4abe98553e8bbb98342", size 
= 4558148, upload-time = "2026-02-19T22:32:20.271Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/da/31/d6e536cdebb6568ae75a7f00e4b4819ae0ad2640c3604c305a0428680b0c/ruff-0.15.4.tar.gz";,
 hash = 
"sha256:3412195319e42d634470cc97aa9803d07e9d5c9223b99bcb1518f0c725f26ae1", size 
= 4569550, upload-time = "2026-02-26T20:04:14.959Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/2f/70/3a4dc6d09b13cb3e695f28307e5d889b2e1a66b7af9c5e257e796695b0e6/ruff-0.15.2-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:120691a6fdae2f16d65435648160f5b81a9625288f75544dc40637436b5d3c0d", size 
= 10430565, upload-time = "2026-02-19T22:32:41.824Z" },
-    { url = 
"https://files.pythonhosted.org/packages/71/0b/bb8457b56185ece1305c666dc895832946d24055be90692381c31d57466d/ruff-0.15.2-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:a89056d831256099658b6bba4037ac6dd06f49d194199215befe2bb10457ea5e", size 
= 10820354, upload-time = "2026-02-19T22:32:07.366Z" },
-    { url = 
"https://files.pythonhosted.org/packages/2d/c1/e0532d7f9c9e0b14c46f61b14afd563298b8b83f337b6789ddd987e46121/ruff-0.15.2-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:e36dee3a64be0ebd23c86ffa3aa3fd3ac9a712ff295e192243f814a830b6bd87", size 
= 10170767, upload-time = "2026-02-19T22:32:13.188Z" },
-    { url = 
"https://files.pythonhosted.org/packages/47/e8/da1aa341d3af017a21c7a62fb5ec31d4e7ad0a93ab80e3a508316efbcb23/ruff-0.15.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:a9fb47b6d9764677f8c0a193c0943ce9a05d6763523f132325af8a858eadc2b9", size 
= 10529591, upload-time = "2026-02-19T22:32:02.547Z" },
-    { url = 
"https://files.pythonhosted.org/packages/93/74/184fbf38e9f3510231fbc5e437e808f0b48c42d1df9434b208821efcd8d6/ruff-0.15.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:f376990f9d0d6442ea9014b19621d8f2aaf2b8e39fdbfc79220b7f0c596c9b80", size 
= 10260771, upload-time = "2026-02-19T22:32:36.938Z" },
-    { url = 
"https://files.pythonhosted.org/packages/05/ac/605c20b8e059a0bc4b42360414baa4892ff278cec1c91fff4be0dceedefd/ruff-0.15.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:2dcc987551952d73cbf5c88d9fdee815618d497e4df86cd4c4824cc59d5dd75f", size 
= 11045791, upload-time = "2026-02-19T22:32:31.642Z" },
-    { url = 
"https://files.pythonhosted.org/packages/fd/52/db6e419908f45a894924d410ac77d64bdd98ff86901d833364251bd08e22/ruff-0.15.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:42a47fd785cbe8c01b9ff45031af875d101b040ad8f4de7bbb716487c74c9a77", size 
= 11879271, upload-time = "2026-02-19T22:32:29.305Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3e/d8/7992b18f2008bdc9231d0f10b16df7dda964dbf639e2b8b4c1b4e91b83af/ruff-0.15.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:cbe9f49354866e575b4c6943856989f966421870e85cd2ac94dccb0a9dcb2fea", size 
= 11303707, upload-time = "2026-02-19T22:32:22.492Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d7/02/849b46184bcfdd4b64cde61752cc9a146c54759ed036edd11857e9b8443b/ruff-0.15.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:b7a672c82b5f9887576087d97be5ce439f04bbaf548ee987b92d3a7dede41d3a", size 
= 11149151, upload-time = "2026-02-19T22:32:44.234Z" },
-    { url = 
"https://files.pythonhosted.org/packages/70/04/f5284e388bab60d1d3b99614a5a9aeb03e0f333847e2429bebd2aaa1feec/ruff-0.15.2-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:72ecc64f46f7019e2bcc3cdc05d4a7da958b629a5ab7033195e11a438403d956", size 
= 11091132, upload-time = "2026-02-19T22:32:24.691Z" },
-    { url = 
"https://files.pythonhosted.org/packages/fa/ae/88d844a21110e14d92cf73d57363fab59b727ebeabe78009b9ccb23500af/ruff-0.15.2-py3-none-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:8dcf243b15b561c655c1ef2f2b0050e5d50db37fe90115507f6ff37d865dc8b4", size 
= 10504717, upload-time = "2026-02-19T22:32:26.75Z" },
-    { url = 
"https://files.pythonhosted.org/packages/64/27/867076a6ada7f2b9c8292884ab44d08fd2ba71bd2b5364d4136f3cd537e1/ruff-0.15.2-py3-none-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:dab6941c862c05739774677c6273166d2510d254dac0695c0e3f5efa1b5585de", size 
= 10263122, upload-time = "2026-02-19T22:32:10.036Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e7/ef/faf9321d550f8ebf0c6373696e70d1758e20ccdc3951ad7af00c0956be7c/ruff-0.15.2-py3-none-musllinux_1_2_i686.whl";,
 hash = 
"sha256:1b9164f57fc36058e9a6806eb92af185b0697c9fe4c7c52caa431c6554521e5c", size 
= 10735295, upload-time = "2026-02-19T22:32:39.227Z" },
-    { url = 
"https://files.pythonhosted.org/packages/2f/55/e8089fec62e050ba84d71b70e7834b97709ca9b7aba10c1a0b196e493f97/ruff-0.15.2-py3-none-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:80d24fcae24d42659db7e335b9e1531697a7102c19185b8dc4a028b952865fd8", size 
= 11241641, upload-time = "2026-02-19T22:32:34.617Z" },
-    { url = 
"https://files.pythonhosted.org/packages/23/01/1c30526460f4d23222d0fabd5888868262fd0e2b71a00570ca26483cd993/ruff-0.15.2-py3-none-win32.whl";,
 hash = 
"sha256:fd5ff9e5f519a7e1bd99cbe8daa324010a74f5e2ebc97c6242c08f26f3714f6f", size 
= 10507885, upload-time = "2026-02-19T22:32:15.635Z" },
-    { url = 
"https://files.pythonhosted.org/packages/5c/10/3d18e3bbdf8fc50bbb4ac3cc45970aa5a9753c5cb51bf9ed9a3cd8b79fa3/ruff-0.15.2-py3-none-win_amd64.whl";,
 hash = 
"sha256:d20014e3dfa400f3ff84830dfb5755ece2de45ab62ecea4af6b7262d0fb4f7c5", size 
= 11623725, upload-time = "2026-02-19T22:32:04.947Z" },
-    { url = 
"https://files.pythonhosted.org/packages/6d/78/097c0798b1dab9f8affe73da9642bb4500e098cb27fd8dc9724816ac747b/ruff-0.15.2-py3-none-win_arm64.whl";,
 hash = 
"sha256:cabddc5822acdc8f7b5527b36ceac55cc51eec7b1946e60181de8fe83ca8876e", size 
= 10941649, upload-time = "2026-02-19T22:32:18.108Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f2/82/c11a03cfec3a4d26a0ea1e571f0f44be5993b923f905eeddfc397c13d360/ruff-0.15.4-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:a1810931c41606c686bae8b5b9a8072adac2f611bb433c0ba476acba17a332e0", size 
= 10453333, upload-time = "2026-02-26T20:04:20.093Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ce/5d/6a1f271f6e31dffb31855996493641edc3eef8077b883eaf007a2f1c2976/ruff-0.15.4-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:5a1632c66672b8b4d3e1d1782859e98d6e0b4e70829530666644286600a33992", size 
= 10853356, upload-time = "2026-02-26T20:04:05.808Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b1/d8/0fab9f8842b83b1a9c2bf81b85063f65e93fb512e60effa95b0be49bfc54/ruff-0.15.4-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:a4386ba2cd6c0f4ff75252845906acc7c7c8e1ac567b7bc3d373686ac8c222ba", size 
= 10187434, upload-time = "2026-02-26T20:03:54.656Z" },
+    { url = 
"https://files.pythonhosted.org/packages/85/cc/cc220fd9394eff5db8d94dec199eec56dd6c9f3651d8869d024867a91030/ruff-0.15.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";,
 hash = 
"sha256:b2496488bdfd3732747558b6f95ae427ff066d1fcd054daf75f5a50674411e75", size 
= 10535456, upload-time = "2026-02-26T20:03:52.738Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fa/0f/bced38fa5cf24373ec767713c8e4cadc90247f3863605fb030e597878661/ruff-0.15.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:3f1c4893841ff2d54cbda1b2860fa3260173df5ddd7b95d370186f8a5e66a4ac", size 
= 10287772, upload-time = "2026-02-26T20:04:08.138Z" },
+    { url = 
"https://files.pythonhosted.org/packages/2b/90/58a1802d84fed15f8f281925b21ab3cecd813bde52a8ca033a4de8ab0e7a/ruff-0.15.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:820b8766bd65503b6c30aaa6331e8ef3a6e564f7999c844e9a547c40179e440a", size 
= 11049051, upload-time = "2026-02-26T20:04:03.53Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d2/ac/b7ad36703c35f3866584564dc15f12f91cb1a26a897dc2fd13d7cb3ae1af/ruff-0.15.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:c9fb74bab47139c1751f900f857fa503987253c3ef89129b24ed375e72873e85", size 
= 11890494, upload-time = "2026-02-26T20:04:10.497Z" },
+    { url = 
"https://files.pythonhosted.org/packages/93/3d/3eb2f47a39a8b0da99faf9c54d3eb24720add1e886a5309d4d1be73a6380/ruff-0.15.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:f80c98765949c518142b3a50a5db89343aa90f2c2bf7799de9986498ae6176db", size 
= 11326221, upload-time = "2026-02-26T20:04:12.84Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ff/90/bf134f4c1e5243e62690e09d63c55df948a74084c8ac3e48a88468314da6/ruff-0.15.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:451a2e224151729b3b6c9ffb36aed9091b2996fe4bdbd11f47e27d8f2e8888ec", size 
= 11168459, upload-time = "2026-02-26T20:04:00.969Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b5/e5/a64d27688789b06b5d55162aafc32059bb8c989c61a5139a36e1368285eb/ruff-0.15.4-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:a8f157f2e583c513c4f5f896163a93198297371f34c04220daf40d133fdd4f7f", size 
= 11104366, upload-time = "2026-02-26T20:03:48.099Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f1/f6/32d1dcb66a2559763fc3027bdd65836cad9eb09d90f2ed6a63d8e9252b02/ruff-0.15.4-py3-none-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:917cc68503357021f541e69b35361c99387cdbbf99bd0ea4aa6f28ca99ff5338", size 
= 10510887, upload-time = "2026-02-26T20:03:45.771Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ff/92/22d1ced50971c5b6433aed166fcef8c9343f567a94cf2b9d9089f6aa80fe/ruff-0.15.4-py3-none-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:e9737c8161da79fd7cfec19f1e35620375bd8b2a50c3e77fa3d2c16f574105cc", size 
= 10285939, upload-time = "2026-02-26T20:04:22.42Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e6/f4/7c20aec3143837641a02509a4668fb146a642fd1211846634edc17eb5563/ruff-0.15.4-py3-none-musllinux_1_2_i686.whl";,
 hash = 
"sha256:291258c917539e18f6ba40482fe31d6f5ac023994ee11d7bdafd716f2aab8a68", size 
= 10765471, upload-time = "2026-02-26T20:03:58.924Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d0/09/6d2f7586f09a16120aebdff8f64d962d7c4348313c77ebb29c566cefc357/ruff-0.15.4-py3-none-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:3f83c45911da6f2cd5936c436cf86b9f09f09165f033a99dcf7477e34041cbc3", size 
= 11263382, upload-time = "2026-02-26T20:04:24.424Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1b/fa/2ef715a1cd329ef47c1a050e10dee91a9054b7ce2fcfdd6a06d139afb7ec/ruff-0.15.4-py3-none-win32.whl";,
 hash = 
"sha256:65594a2d557d4ee9f02834fcdf0a28daa8b3b9f6cb2cb93846025a36db47ef22", size 
= 10506664, upload-time = "2026-02-26T20:03:50.56Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d0/a8/c688ef7e29983976820d18710f955751d9f4d4eb69df658af3d006e2ba3e/ruff-0.15.4-py3-none-win_amd64.whl";,
 hash = 
"sha256:04196ad44f0df220c2ece5b0e959c2f37c777375ec744397d21d15b50a75264f", size 
= 11651048, upload-time = "2026-02-26T20:04:17.191Z" },
+    { url = 
"https://files.pythonhosted.org/packages/3e/0a/9e1be9035b37448ce2e68c978f0591da94389ade5a5abafa4cf99985d1b2/ruff-0.15.4-py3-none-win_arm64.whl";,
 hash = 
"sha256:60d5177e8cfc70e51b9c5fad936c634872a74209f934c1e79107d11787ad5453", size 
= 10966776, upload-time = "2026-02-26T20:03:56.908Z" },
 ]
 
 [[package]]
@@ -3226,24 +3239,24 @@
 
 [[package]]
 name = "tombi"
-version = "0.7.32"
+version = "0.8.0"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/4b/57/046b94d4ff214b7fac45c63e986361cdf85556696a9b1952b311ad6d37b9/tombi-0.7.32.tar.gz";,
 hash = 
"sha256:16b4300189e2ce4da9f2eac5e11c42f677d7025b9b52d04d625fa57b584730da", size 
= 496674, upload-time = "2026-02-22T03:41:29.092Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/7c/30/a4826fbc060f072caf6989578566d4a43da6d3b1e76e757f6ea5165baf50/tombi-0.8.0.tar.gz";,
 hash = 
"sha256:9eaa507ffde90aca6cfc443b313a2e63c86dc8b90e01f7783b196b20f337edb2", size 
= 509105, upload-time = "2026-02-28T18:28:45.422Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/09/53/91a305653e6b9361db95c65192b15fefe04b93b217a735388bf3824f2390/tombi-0.7.32-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:e8f647d2bc119c6ad0942bc9804a638e2a6d4dbb93829f9780392a0b120953e4", size 
= 8859818, upload-time = "2026-02-22T03:41:20.03Z" },
-    { url = 
"https://files.pythonhosted.org/packages/88/c7/ebed8bbeab4a0864789495d8f8c8ece5546d5098195c684b86b888869df9/tombi-0.7.32-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:509f453c62c85360c3d9e5ddef4379e55d23a9a8c8bcfd6dc70f873c06b7dc2d", size 
= 8579195, upload-time = "2026-02-22T03:41:18.394Z" },
-    { url = 
"https://files.pythonhosted.org/packages/11/64/160df7092be1c87046df8ed459696a20ce6277edf9d376e9f7fe24afe879/tombi-0.7.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:acd9a814f97b5aa50b34e3409dda4abe42893eca38f063967bb5b88825b83f50", size 
= 8775644, upload-time = "2026-02-22T03:23:40.133Z" },
-    { url = 
"https://files.pythonhosted.org/packages/76/70/2eee0557ed168ec10ae5c7550e05a98ddd64c2cab2ea8d3abfec8a61827c/tombi-0.7.32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:30c7889d340af7edc412e2fac988916bcc8f04856a33a5440a7c2c5bdb301398", size 
= 9910278, upload-time = "2026-02-22T03:23:45.86Z" },
-    { url = 
"https://files.pythonhosted.org/packages/21/a3/503917fd0aaf8e47720d2fdfd53efd7a46a22f3224d4db53ba0380ddcb24/tombi-0.7.32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:1a8cd11b01c54374c7f79c99645eb089ffa485ded4188cc397e35cee729f9577", size 
= 10078858, upload-time = "2026-02-22T03:23:41.997Z" },
-    { url = 
"https://files.pythonhosted.org/packages/04/fc/065a11db4f1c4462eeca4ecc38145f91c14373a7dcdf4cb4aa3650d2c193/tombi-0.7.32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:50471bc8e5aa4e15406c3e3d2d96fbb9c0e43e8270621109e2f848d7445971a9", size 
= 8928780, upload-time = "2026-02-22T03:23:44.125Z" },
-    { url = 
"https://files.pythonhosted.org/packages/97/5c/83599e224fa53e714f2720291b550b1f7a827585409a8512c742fda06e34/tombi-0.7.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:22bf727c26c0903637c3437ba94670bc80ffd77795449bfc4e40d217580d3a1a", size 
= 9236436, upload-time = "2026-02-22T03:23:47.868Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c7/3a/e26bd40a7e8cb17a728ba6adebd90a4e32f8431525e6403cde05893b7ad3/tombi-0.7.32-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:e88d040beb3ac49b60fef5844db99215b2b6086120b6c1473b095e6a3eb042b1", size 
= 9048557, upload-time = "2026-02-22T03:23:38.152Z" },
-    { url = 
"https://files.pythonhosted.org/packages/52/ba/bba521683ff1453d79c46cd202cdbb2b0564b1d77e7b54b605daa1393b49/tombi-0.7.32-py3-none-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:dee4491435c7b4c42aa99aa350eb8c549d993539df35665aef31e5f792bcb750", size 
= 9089057, upload-time = "2026-02-22T03:41:21.868Z" },
-    { url = 
"https://files.pythonhosted.org/packages/16/6c/b7f6c7d3da2bb8669a722cb51673c5fb3ec8c329070cd4a07568b1aa6242/tombi-0.7.32-py3-none-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:cda47b243bd5008d231fc3fbd25f05a017a2401aea37d532ff749ac01d1bd495", size 
= 8820600, upload-time = "2026-02-22T03:41:23.647Z" },
-    { url = 
"https://files.pythonhosted.org/packages/62/2f/6f45ca4172a533bb0c8ccd4e5df243c44130439105f6da3f21714e81f753/tombi-0.7.32-py3-none-musllinux_1_2_i686.whl";,
 hash = 
"sha256:aff383866aea7be7cb2195f98247b4777067f58096e858dc944b45e2a58b0081", size 
= 9399853, upload-time = "2026-02-22T03:41:25.456Z" },
-    { url = 
"https://files.pythonhosted.org/packages/4e/17/08dd011467667de2804244d998dd55e9fbae406f56f2f00cc9e422c9e4b2/tombi-0.7.32-py3-none-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:96712c544a2bc2e41e6279385fbf505d2452a9d5002ce729edce35152a06e9a9", size 
= 9454657, upload-time = "2026-02-22T03:41:27.271Z" },
-    { url = 
"https://files.pythonhosted.org/packages/74/4a/9fc4057d1439ea6df12b5fc622a1c183eb53ce95abbdef4de23e3a69e992/tombi-0.7.32-py3-none-win32.whl";,
 hash = 
"sha256:28763e99ce95b4d4bd93e77725344fcaabf582edc699afa4dd0090f531269ac9", size 
= 7011392, upload-time = "2026-02-22T03:41:31.452Z" },
-    { url = 
"https://files.pythonhosted.org/packages/de/a8/aae970ca184db55ca249144d3e93988b9574eae93cf2a8451fb113210e91/tombi-0.7.32-py3-none-win_amd64.whl";,
 hash = 
"sha256:a66fa401e82dc46011816c192e9eb886a861e1ca4630c6b6680ea65468b5213c", size 
= 8104985, upload-time = "2026-02-22T03:41:30.114Z" },
+    { url = 
"https://files.pythonhosted.org/packages/20/8e/faba1fe9f75989d00daf3fe68c955872aaa3ca0e6f781d960fa634e0bbe8/tombi-0.8.0-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:3e42a6539571115e7db6ec9c663123f73722c0e440d970659a427b0fb61114ab", size 
= 8996864, upload-time = "2026-02-28T18:28:33.154Z" },
+    { url = 
"https://files.pythonhosted.org/packages/41/ad/d4c93a0c04eaa25fb6a4debb254040e2a4cd4d3ca77f4cbcf0f01541f619/tombi-0.8.0-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:260b3a23f563d1958f3eabfab1bcee74954441ad19f13760a0590a79a640881f", size 
= 8701372, upload-time = "2026-02-28T18:28:30.905Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c3/a8/e99662ae02617ce01ef79b717d3cd34d0d89a20ad8d061c4af2503bb75c4/tombi-0.8.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:0ad125e441be63b467fed44ee20e74f306f91c8c8c6e3c1471265c8c17504d82", size 
= 8877176, upload-time = "2026-02-28T18:28:19.073Z" },
+    { url = 
"https://files.pythonhosted.org/packages/66/e8/9a40b98ebfc09e3ba5ea6ec338824cf478b3046fd2d099a905eaee12ff71/tombi-0.8.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:24f1abebb0c41acc4218627393443b85952b24daa5cd98473f4eaa68b4638614", size 
= 10010352, upload-time = "2026-02-28T18:28:26.484Z" },
+    { url = 
"https://files.pythonhosted.org/packages/90/45/82deba9ea98c0d499fb990d855a25d779b2ab83fde980674dcc81ddb464e/tombi-0.8.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:149e200e25b6e34bc25e93c9247c11f848ebdefa1ee3c7d0f14cb5c1cd16924a", size 
= 10196368, upload-time = "2026-02-28T18:28:21.762Z" },
+    { url = 
"https://files.pythonhosted.org/packages/4f/fb/af88ad2ee6d6d44d099dc1e3df4f633b9382c5312c260049700b257e2e65/tombi-0.8.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:febf06cd8e0170c578a391616e48f15654b96ac5d648deb3045f9fac140c2f13", size 
= 9030720, upload-time = "2026-02-28T18:28:24.101Z" },
+    { url = 
"https://files.pythonhosted.org/packages/1c/0e/b29a833b9969943610b7e89b3e530e1a698c7a30c0238110433a64724d80/tombi-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:a42d2c12accb13d1de9fd86c9bf175e3dfc391969d413ad6760d325bd0da076e", size 
= 9362425, upload-time = "2026-02-28T18:28:28.65Z" },
+    { url = 
"https://files.pythonhosted.org/packages/97/db/0c5e138fed9cecb9d0654dc31a4b8f6b5466c863cd3708efb713bad8c2bc/tombi-0.8.0-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:bd0f48669452916f07148da8e93378eac3c804c13e12e7be787be9170dd30f27", size 
= 9175318, upload-time = "2026-02-28T18:28:16.666Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0f/10/4b372d9b081df9a7fa08cdb51176b78ba744741d26f4009524b914df7e46/tombi-0.8.0-py3-none-musllinux_1_2_aarch64.whl";,
 hash = 
"sha256:c2ddd1429a8844d86a1c29b36563b1c0089e7d6bec5f01cfbe6567ab8d3cdf7b", size 
= 9218130, upload-time = "2026-02-28T18:28:35.549Z" },
+    { url = 
"https://files.pythonhosted.org/packages/56/7f/5f585d63cc22c9ce64093e6530fe4b0611a61029c07ece8dcf5ddde04d8a/tombi-0.8.0-py3-none-musllinux_1_2_armv7l.whl";,
 hash = 
"sha256:2ce31cb9667c853416c8b4ade65b73bd6b1a3579bc5f6fcecccbf26a1ec6599e", size 
= 8923422, upload-time = "2026-02-28T18:28:37.655Z" },
+    { url = 
"https://files.pythonhosted.org/packages/c4/01/6be52d10e4935ff370dbfe55512a4eb7c9fcb1ddbfee9b2994cd3b08b63a/tombi-0.8.0-py3-none-musllinux_1_2_i686.whl";,
 hash = 
"sha256:7d35c02d4085cfb0c8e2f3cc8d3ba16f199bb68551005c108b0538eb73478c12", size 
= 9517412, upload-time = "2026-02-28T18:28:40.85Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fa/2c/78b147ddd67561ac17029d2d060fbf3fb536903841595c63729669e083ba/tombi-0.8.0-py3-none-musllinux_1_2_x86_64.whl";,
 hash = 
"sha256:d9499b24d60af5e7fc013cd915f256037dc24823c7e92004d6405a11150d34cc", size 
= 9580748, upload-time = "2026-02-28T18:28:43.378Z" },
+    { url = 
"https://files.pythonhosted.org/packages/48/f7/971e0cf5b7cd58f16e436985cdddfc2151ba15472bf01fa8c05abe8c8ac5/tombi-0.8.0-py3-none-win32.whl";,
 hash = 
"sha256:489e872468afc1f6f3ab0c6328b666234f4805fad9cf23ebc618e9b74a9060b1", size 
= 7081039, upload-time = "2026-02-28T18:28:49.478Z" },
+    { url = 
"https://files.pythonhosted.org/packages/4f/27/cb44db0debafce59380ba6458009f8876437efc9c992cc97d08521fbedb7/tombi-0.8.0-py3-none-win_amd64.whl";,
 hash = 
"sha256:b7d20b679982b86f56b806663d34abde73bafeeba24bfbb5a6dc931d490e71ef", size 
= 8192395, upload-time = "2026-02-28T18:28:47.158Z" },
 ]
 
 [[package]]
@@ -3311,7 +3324,7 @@
 
 [[package]]
 name = "tox"
-version = "4.46.0"
+version = "4.47.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "cachetools" },
@@ -3325,9 +3338,9 @@
     { name = "typing-extensions", marker = "python_full_version < '3.11'" },
     { name = "virtualenv" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/bb/ba/140537bbf7dd267b37a1519ac1451b6c062d300cb64b7b273dfa1b2af9aa/tox-4.46.0.tar.gz";,
 hash = 
"sha256:b9d1aa187101dae184b7e6552f3b1ff85461e9e32f078851426e35a3c2009bc1", size 
= 249296, upload-time = "2026-02-24T17:53:36.171Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/30/4a/6ea2602afe685f842ff9b5e07196e693f1aba885164d171af4807075cb30/tox-4.47.0.tar.gz";,
 hash = 
"sha256:db08368214f6f44b3e9b6c6e937140e25a4b0cea63f8489bf1c9b6b34d3e42e3", size 
= 253965, upload-time = "2026-03-01T15:00:05.563Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/e2/15/e344f22ae5adce77769cb93f03635674df40de2604e98a71a3193f632766/tox-4.46.0-py3-none-any.whl";,
 hash = 
"sha256:828f0a119a22028dbff7495d288e3601406478ab20c97891f66be5516d72e4c3", size 
= 200281, upload-time = "2026-02-24T17:53:34.228Z" },
+    { url = 
"https://files.pythonhosted.org/packages/a3/95/727c8cde3ef125706825242833c41d0293307983cb9de7d1ad6dda503bfa/tox-4.47.0-py3-none-any.whl";,
 hash = 
"sha256:79260c47814086313eea516c6cd4ce374f93c19be2de6125e7d330356a000364", size 
= 202065, upload-time = "2026-03-01T15:00:03.808Z" },
 ]
 
 [[package]]
@@ -3348,28 +3361,28 @@
 
 [[package]]
 name = "tox-uv"
-version = "1.32.1"
+version = "1.33.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "tox-uv-bare" },
     { name = "uv" },
 ]
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/cd/7e/7e83b7f8adeabe656e50dfa934ae21c4fd7fa57998077256605430768c92/tox_uv-1.32.1-py3-none-any.whl";,
 hash = 
"sha256:e3011d08cb8180c4f418c54bec63b380f445d6aaae19d4fb773c14dab3360a1a", size 
= 5361, upload-time = "2026-02-24T17:53:33.164Z" },
+    { url = 
"https://files.pythonhosted.org/packages/9f/67/736f40388b5e1d1b828b236014be7dd3d62a10642122763e6928d950edad/tox_uv-1.33.0-py3-none-any.whl";,
 hash = 
"sha256:bb3055599940f111f3dead552dd7560b94339175ec58ffa7628ef59fad760d91", size 
= 5363, upload-time = "2026-02-25T13:22:52.186Z" },
 ]
 
 [[package]]
 name = "tox-uv-bare"
-version = "1.32.1"
+version = "1.33.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "packaging" },
     { name = "tomli", marker = "python_full_version < '3.11'" },
     { name = "tox" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/46/d0/bf9636c24fede437958093cb1bc03839571816897446774ffef52966df94/tox_uv_bare-1.32.1.tar.gz";,
 hash = 
"sha256:e795ff9ac62712aee48c86ffabb12a31493ad7bfe45e6e84078821c4335780ab", size 
= 26907, upload-time = "2026-02-24T17:53:36.849Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/07/e8/f927b6cb26dae64732cb8c31f20be009d264ecf34751e72cf8ae7c7db17b/tox_uv_bare-1.33.0.tar.gz";,
 hash = 
"sha256:34d8484a36ad121257f22823df154c246d831b84b01df91c4369a56cb4689d2e", size 
= 26995, upload-time = "2026-02-25T13:22:54.9Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/97/9c/8f35b683fb4f7b5146bbe855e734081413efd54e4b9c95eff01b80fddd4c/tox_uv_bare-1.32.1-py3-none-any.whl";,
 hash = 
"sha256:2eba830d6308df84c1bc76630fdfe5dd693b8533364c3c78def4eb2c2c81e88a", size 
= 19489, upload-time = "2026-02-24T17:53:34.539Z" },
+    { url = 
"https://files.pythonhosted.org/packages/32/e5/0cae08b6c2908b4b8e51a91adaead58d06fd2393333aadc88c9a448da2c3/tox_uv_bare-1.33.0-py3-none-any.whl";,
 hash = 
"sha256:80b5c1f4f5eda2dfd3a9de569665ad2dccdfb128ed1ee9f69c1dacfd100f6b4a", size 
= 19528, upload-time = "2026-02-25T13:22:53.269Z" },
 ]
 
 [[package]]
@@ -3454,42 +3467,43 @@
 
 [[package]]
 name = "uv"
-version = "0.10.6"
+version = "0.10.7"
 source = { registry = "https://pypi.org/simple"; }
-sdist = { url = 
"https://files.pythonhosted.org/packages/d5/53/7a4274dad70b1d17efb99e36d45fc1b5e4e1e531b43247e518604394c761/uv-0.10.6.tar.gz";,
 hash = 
"sha256:de86e5e1eb264e74a20fccf56889eea2463edb5296f560958e566647c537b52e", size 
= 3921763, upload-time = "2026-02-25T00:26:27.066Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/7c/ec/b324a43b55fe59577505478a396cb1d2758487a2e2270c81ccfa4ac6c96d/uv-0.10.7.tar.gz";,
 hash = 
"sha256:7c3b0133c2d6bd725d5a35ec5e109ebf0d75389943abe826f3d9ea6d6667a375", size 
= 3922193, upload-time = "2026-02-27T12:33:58.525Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/4f/f9/faf599c6928dc00d941629260bef157dadb67e8ffb7f4b127b8601f41177/uv-0.10.6-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:2b46ad78c86d68de6ec13ffaa3a8923467f757574eeaf318e0fce0f63ff77d7a", size 
= 22412946, upload-time = "2026-02-25T00:26:10.826Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c4/8f/82dd6aa8acd2e1b1ba12fd49210bd19843383538e0e63e8d7a23a7d39d93/uv-0.10.6-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:a1d9873eb26cbef9138f8c52525bc3fd63be2d0695344cdcf84f0dc2838a6844", size 
= 21524262, upload-time = "2026-02-25T00:27:09.318Z" },
-    { url = 
"https://files.pythonhosted.org/packages/3b/48/5767af19db6f21176e43dfde46ea04e33c49ba245ac2634e83db15d23c8f/uv-0.10.6-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:5a62cdf5ba356dcc792b960e744d67056b0e6d778ce7381e1d78182357bd82e8", size 
= 20184248, upload-time = "2026-02-25T00:26:20.281Z" },
-    { url = 
"https://files.pythonhosted.org/packages/27/1b/13c2fcdb776ae78b5c22eb2d34931bb3ef9bd71b9578b8fa7af8dd7c11c4/uv-0.10.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:b70a04d51e2239b3aee0e4d4ed9af18c910360155953017cecded5c529588e65", size 
= 22049300, upload-time = "2026-02-25T00:26:07.039Z" },
-    { url = 
"https://files.pythonhosted.org/packages/6f/43/348e2c378b3733eba15f6144b35a8c84af5c884232d6bbed29e256f74b6f/uv-0.10.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:2b622059a1ae287f8b995dcb6f5548de83b89b745ff112801abbf09e25fd8fa9", size 
= 22030505, upload-time = "2026-02-25T00:26:46.171Z" },
-    { url = 
"https://files.pythonhosted.org/packages/a5/3f/dcec580099bc52f73036bfb09acb42616660733de1cc3f6c92287d2c7f3e/uv-0.10.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:f43db1aa80776386646453c07d5590e1ae621f031a2afe6efba90f89c34c628c", size 
= 22041360, upload-time = "2026-02-25T00:26:53.725Z" },
-    { url = 
"https://files.pythonhosted.org/packages/2c/96/f70abe813557d317998806517bb53b3caa5114591766db56ae9cc142ff39/uv-0.10.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:4ca8a26694ba7d0ae902f11054734805741f2b080fe8397401b80c99264edab6", size 
= 23309916, upload-time = "2026-02-25T00:27:12.99Z" },
-    { url = 
"https://files.pythonhosted.org/packages/db/1d/d8b955937dd0153b48fdcfd5ff70210d26e4b407188e976df620572534fd/uv-0.10.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:6f2cddae800d14159a9ccb4ff161648b0b0d1b31690d9c17076ec00f538c52ac", size 
= 24191174, upload-time = "2026-02-25T00:26:30.051Z" },
-    { url = 
"https://files.pythonhosted.org/packages/c2/3d/3d0669d65bf4a270420d70ca0670917ce5c25c976c8b0acd52465852509b/uv-0.10.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:153fcf5375c988b2161bf3a6a7d9cc907d6bbe38f3cb16276da01b2dae4df72c", size 
= 23320328, upload-time = "2026-02-25T00:26:23.82Z" },
-    { url = 
"https://files.pythonhosted.org/packages/85/f2/f2ccc2196fd6cf1321c2e8751a96afabcbc9509b184c671ece3e804effda/uv-0.10.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:f27f2d135d4533f88537ecd254c72dfd25311d912da8649d15804284d70adb93", size 
= 23229798, upload-time = "2026-02-25T00:26:50.12Z" },
-    { url = 
"https://files.pythonhosted.org/packages/2d/b9/1008266a041e8a55430a92aef8ecc58aaaa7eb7107a26cf4f7c127d14363/uv-0.10.6-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:dd993ec2bf5303a170946342955509559763cf8dcfe334ec7bb9f115a0f86021", size 
= 22143661, upload-time = "2026-02-25T00:26:42.507Z" },
-    { url = 
"https://files.pythonhosted.org/packages/93/e4/1f8de7da5f844b4c9eafa616e262749cd4e3d9c685190b7967c4681869da/uv-0.10.6-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:8529e4d4aac40b4e7588177321cb332cc3309d36d7cc482470a1f6cfe7a7e14a", size 
= 22888045, upload-time = "2026-02-25T00:26:15.935Z" },
-    { url = 
"https://files.pythonhosted.org/packages/e2/2b/03b840dd0101dc69ef6e83ceb2e2970e4b4f118291266cf3332a4b64092c/uv-0.10.6-py3-none-musllinux_1_1_i686.whl";,
 hash = 
"sha256:ed9e16453a5f73ee058c566392885f445d00534dc9e754e10ab9f50f05eb27a5", size 
= 22549404, upload-time = "2026-02-25T00:27:05.333Z" },
-    { url = 
"https://files.pythonhosted.org/packages/4c/4e/1ee4d4301874136a4b3bbd9eeba88da39f4bafa6f633b62aef77d8195c56/uv-0.10.6-py3-none-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:33e5362039bfa91599df0b7487854440ffef1386ac681ec392d9748177fb1d43", size 
= 23426872, upload-time = "2026-02-25T00:26:35.01Z" },
-    { url = 
"https://files.pythonhosted.org/packages/d3/e3/e000030118ff1a82ecfc6bd5af70949821edac739975a027994f5b17258f/uv-0.10.6-py3-none-win32.whl";,
 hash = 
"sha256:fa7c504a1e16713b845d457421b07dd9c40f40d911ffca6897f97388de49df5a", size 
= 21501863, upload-time = "2026-02-25T00:26:57.182Z" },
-    { url = 
"https://files.pythonhosted.org/packages/1c/cc/dd88c9f20c054ef0aea84ad1dd9f8b547463824857e4376463a948983bed/uv-0.10.6-py3-none-win_amd64.whl";,
 hash = 
"sha256:ecded4d21834b21002bc6e9a2628d21f5c8417fd77a5db14250f1101bcb69dac", size 
= 23981891, upload-time = "2026-02-25T00:26:38.773Z" },
-    { url = 
"https://files.pythonhosted.org/packages/cf/06/ca117002cd64f6701359253d8566ec7a0edcf61715b4969f07ee41d06f61/uv-0.10.6-py3-none-win_arm64.whl";,
 hash = 
"sha256:4b5688625fc48565418c56a5cd6c8c32020dbb7c6fb7d10864c2d2c93c508302", size 
= 22339889, upload-time = "2026-02-25T00:27:00.818Z" },
+    { url = 
"https://files.pythonhosted.org/packages/f3/1b/decff24553325561850d70b75c737076e6fcbcfbf233011a27a33f06e4d9/uv-0.10.7-py3-none-linux_armv6l.whl";,
 hash = 
"sha256:6a0af6c7a90fd2053edfa2c8ee719078ea906a2d9f4798d3fb3c03378726209a", size 
= 22497542, upload-time = "2026-02-27T12:33:39.425Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fc/b5/51152c87921bc2576fecb982df4a02ac9cfd7fc934e28114a1232b99eed4/uv-0.10.7-py3-none-macosx_10_12_x86_64.whl";,
 hash = 
"sha256:3b7db0cab77232a7c8856062904fc3b9db22383f1dec7e97a9588fb6c8470f6a", size 
= 21558860, upload-time = "2026-02-27T12:34:03.362Z" },
+    { url = 
"https://files.pythonhosted.org/packages/5e/15/8365dc2ded350a4ee5fcbbf9b15195cb2b45855114f2a154b5effb6fa791/uv-0.10.7-py3-none-macosx_11_0_arm64.whl";,
 hash = 
"sha256:d872d2ff9c9dfba989b5f05f599715bc0f19b94cd0dbf8ae4ad22f8879a66c8c", size 
= 20212775, upload-time = "2026-02-27T12:33:55.365Z" },
+    { url = 
"https://files.pythonhosted.org/packages/53/a0/ccf25e897f3907b5a6fd899007ff9a80b5bbf151b3a75a375881005611fd/uv-0.10.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl";,
 hash = 
"sha256:d9b40d03693efda80a41e5d18ac997efdf1094b27fb75471c1a8f51a9ebeffb3", size 
= 22015584, upload-time = "2026-02-27T12:33:47.374Z" },
+    { url = 
"https://files.pythonhosted.org/packages/fa/3a/5099747954e7774768572d30917bb6bda6b8d465d7a3c49c9bbf7af2a812/uv-0.10.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl";,
 hash = 
"sha256:e74fe4df9cf31fe84f20b84a0054874635077d31ce20e7de35ff0dd64d498d7b", size 
= 22100376, upload-time = "2026-02-27T12:34:06.169Z" },
+    { url = 
"https://files.pythonhosted.org/packages/0c/1a/75897fd966b871803cf78019fa31757ced0d54af5ffd7f57bce8b01d64f3/uv-0.10.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl";,
 hash = 
"sha256:9c76659fc8bb618dd35cd83b2f479c6f880555a16630a454a251045c4c118ea4", size 
= 22105202, upload-time = "2026-02-27T12:34:16.972Z" },
+    { url = 
"https://files.pythonhosted.org/packages/b5/1e/0b8caedd66ca911533e18fd051da79a213c792404138812c66043d529b9e/uv-0.10.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl";,
 hash = 
"sha256:1d160cceb9468024ca40dc57a180289dfd2024d98e42f2284b9ec44355723b0a", size 
= 23335601, upload-time = "2026-02-27T12:34:11.161Z" },
+    { url = 
"https://files.pythonhosted.org/packages/69/94/b741af277e39a92e0da07fe48c338eee1429c2607e7a192e41345208bb24/uv-0.10.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl";,
 hash = 
"sha256:c775975d891cb60cf10f00953e61e643fcb9a9139e94c9ef5c805fe36e90477f", size 
= 24152851, upload-time = "2026-02-27T12:33:33.904Z" },
+    { url = 
"https://files.pythonhosted.org/packages/27/b2/da351ccd02f0fb1aec5f992b886bea1374cce44276a78904348e2669dd78/uv-0.10.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl";,
 hash = 
"sha256:a709e75583231cc1f39567fb3d8d9b4077ff94a64046eb242726300144ed1a4a", size 
= 23276444, upload-time = "2026-02-27T12:33:36.891Z" },
+    { url = 
"https://files.pythonhosted.org/packages/71/a9/2735cc9dc39457c9cf64d1ce2ba5a9a8ecbb103d0fb64b052bf33ba3d669/uv-0.10.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";,
 hash = 
"sha256:89de2504407dcf04aece914c6ca3b9d8e60cf9ff39a13031c1df1f7c040cea81", size 
= 23218464, upload-time = "2026-02-27T12:34:00.904Z" },
+    { url = 
"https://files.pythonhosted.org/packages/20/5f/5f204e9c3f04f5fc844d2f98d80a7de64b6b304af869644ab478d909f6ff/uv-0.10.7-py3-none-manylinux_2_28_aarch64.whl";,
 hash = 
"sha256:9945de1d11c4a5ad77e9c4f36f8b5f9e7c9c3c32999b8bc0e7e579145c3b641c", size 
= 22092562, upload-time = "2026-02-27T12:34:14.155Z" },
+    { url = 
"https://files.pythonhosted.org/packages/dd/a4/16bebf106e3289a29cc1e1482d551c49bd220983e9b4bc5960142389ad3f/uv-0.10.7-py3-none-manylinux_2_31_riscv64.whl";,
 hash = 
"sha256:dbe43527f478e2ffa420516aa465f82057763936bbea56f814fd054a9b7f961f", size 
= 22851312, upload-time = "2026-02-27T12:34:08.651Z" },
+    { url = 
"https://files.pythonhosted.org/packages/d1/7a/953b1da589225d98ca8668412f665c3192f6deed2a0f4bb782b0df18f611/uv-0.10.7-py3-none-musllinux_1_1_i686.whl";,
 hash = 
"sha256:c0783f327631141501bdc5f31dd2b4c748df7e7f5dc5cdbfc0fbb82da86cc9ca", size 
= 22543775, upload-time = "2026-02-27T12:33:30.935Z" },
+    { url = 
"https://files.pythonhosted.org/packages/8b/67/e133afdabf76e43989448be1c2ef607f13afc32aa1ee9f6897115dec8417/uv-0.10.7-py3-none-musllinux_1_1_x86_64.whl";,
 hash = 
"sha256:eba438899010522812d3497af586e6eedc94fa2b0ced028f51812f0c10aafb30", size 
= 23431187, upload-time = "2026-02-27T12:33:42.131Z" },
+    { url = 
"https://files.pythonhosted.org/packages/ba/40/6ffb58ec88a33d6cbe9a606966f9558807f37a50f7be7dc756824df2d04c/uv-0.10.7-py3-none-win32.whl";,
 hash = 
"sha256:b56d1818aafb2701d92e94f552126fe71d30a13f28712d99345ef5cafc53d874", size 
= 21524397, upload-time = "2026-02-27T12:33:44.579Z" },
+    { url = 
"https://files.pythonhosted.org/packages/e3/1f/74f4d625db838f716a555908d41777b6357bacc141ddef117a01855e5ef9/uv-0.10.7-py3-none-win_amd64.whl";,
 hash = 
"sha256:ad0d0ddd9f5407ad8699e3b20fe6c18406cd606336743e246b16914801cfd8b0", size 
= 23999929, upload-time = "2026-02-27T12:33:49.839Z" },
+    { url = 
"https://files.pythonhosted.org/packages/48/4e/20cbfbcb1a0f48c5c1ca94f6baa0fa00754aafda365da9160c15e3b9c277/uv-0.10.7-py3-none-win_arm64.whl";,
 hash = 
"sha256:edf732de80c1a9701180ef8c7a2fa926a995712e4a34ae8c025e090f797c2e0b", size 
= 22353084, upload-time = "2026-02-27T12:33:52.792Z" },
 ]
 
 [[package]]
 name = "virtualenv"
-version = "20.39.0"
+version = "21.1.0"
 source = { registry = "https://pypi.org/simple"; }
 dependencies = [
     { name = "distlib" },
     { name = "filelock" },
     { name = "platformdirs" },
+    { name = "python-discovery" },
     { name = "typing-extensions", marker = "python_full_version < '3.11'" },
 ]
-sdist = { url = 
"https://files.pythonhosted.org/packages/ed/54/809199edc537dbace273495ac0884d13df26436e910a5ed4d0ec0a69806b/virtualenv-20.39.0.tar.gz";,
 hash = 
"sha256:a15f0cebd00d50074fd336a169d53422436a12dfe15149efec7072cfe817df8b", size 
= 5869141, upload-time = "2026-02-23T18:09:13.349Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/2f/c9/18d4b36606d6091844daa3bd93cf7dc78e6f5da21d9f21d06c221104b684/virtualenv-21.1.0.tar.gz";,
 hash = 
"sha256:1990a0188c8f16b6b9cf65c9183049007375b26aad415514d377ccacf1e4fb44", size 
= 5840471, upload-time = "2026-02-27T08:49:29.702Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/f7/b4/8268da45f26f4fe84f6eae80a6ca1485ffb490a926afecff75fc48f61979/virtualenv-20.39.0-py3-none-any.whl";,
 hash = 
"sha256:44888bba3775990a152ea1f73f8e5f566d49f11bbd1de61d426fd7732770043e", size 
= 5839121, upload-time = "2026-02-23T18:09:11.173Z" },
+    { url = 
"https://files.pythonhosted.org/packages/78/55/896b06bf93a49bec0f4ae2a6f1ed12bd05c8860744ac3a70eda041064e4d/virtualenv-21.1.0-py3-none-any.whl";,
 hash = 
"sha256:164f5e14c5587d170cf98e60378eb91ea35bf037be313811905d3a24ea33cc07", size 
= 5825072, upload-time = "2026-02-27T08:49:27.516Z" },
 ]
 
 [[package]]

Reply via email to