dycw-pre-commit-hooks 0.9.26__tar.gz → 0.10.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.

Potentially problematic release.


This version of dycw-pre-commit-hooks might be problematic. Click here for more details.

Files changed (32) hide show
  1. dycw_pre_commit_hooks-0.10.4/.envrc +3 -0
  2. dycw_pre_commit_hooks-0.10.4/.github/workflows/pull-request.yml +16 -0
  3. dycw_pre_commit_hooks-0.10.4/.github/workflows/push.yml +38 -0
  4. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/.pre-commit-config.yaml +10 -9
  5. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/.pre-commit-hooks.yaml +7 -0
  6. dycw_pre_commit_hooks-0.10.4/.python-version +1 -0
  7. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/PKG-INFO +2 -6
  8. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/__init__.py +1 -1
  9. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/common.py +25 -12
  10. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_bump2version/__init__.py +7 -10
  11. dycw_pre_commit_hooks-0.10.4/pre_commit_hooks/run_bump_my_version/__init__.py +34 -0
  12. dycw_pre_commit_hooks-0.10.4/pre_commit_hooks/run_bump_my_version/__main__.py +6 -0
  13. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_hatch_version/__init__.py +1 -1
  14. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pyproject.toml +22 -13
  15. dycw_pre_commit_hooks-0.10.4/uv.lock +551 -0
  16. dycw_pre_commit_hooks-0.9.26/.envrc +0 -2
  17. dycw_pre_commit_hooks-0.9.26/.github/workflows/push.yml +0 -50
  18. dycw_pre_commit_hooks-0.9.26/requirements.txt +0 -170
  19. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/.gitignore +0 -0
  20. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/README.md +0 -0
  21. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/py.typed +0 -0
  22. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_bump2version/__main__.py +0 -0
  23. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_dockfmt/__init__.py +0 -0
  24. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_dockfmt/__main__.py +0 -0
  25. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_hatch_version/__main__.py +0 -0
  26. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_ruff_format/__init__.py +0 -0
  27. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_ruff_format/__main__.py +0 -0
  28. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_uv_pip_compile/__init__.py +0 -0
  29. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/pre_commit_hooks/run_uv_pip_compile/__main__.py +0 -0
  30. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/run-test-hook.sh +0 -0
  31. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/tests/__init__.py +0 -0
  32. {dycw_pre_commit_hooks-0.9.26 → dycw_pre_commit_hooks-0.10.4}/tests/test_main.py +0 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ use_uv_python
@@ -0,0 +1,16 @@
1
+ name: pull-request
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ lint:
10
+ name: lint
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: astral-sh/ruff-action@v3
15
+ - run: ruff check --fix
16
+ - run: ruff format
@@ -0,0 +1,38 @@
1
+ name: push
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ tag:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - uses: butlerlogic/action-autotag@1.1.2 # https://github.com/ButlerLogic/action-autotag/issues/45#issuecomment-1825726927
14
+ env:
15
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
16
+ with:
17
+ strategy: regex
18
+ root: pyproject.toml
19
+ regex_pattern: 'current_version = "(?<version>\d+\.\d+\.\d+)"'
20
+
21
+ publish:
22
+ runs-on: ubuntu-latest
23
+ needs:
24
+ - tag
25
+ environment:
26
+ name: pypi
27
+ permissions:
28
+ id-token: write
29
+ steps:
30
+ - uses: actions/checkout@v4
31
+ - uses: astral-sh/setup-uv@v5
32
+ with:
33
+ enable-cache: true
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version-file: pyproject.toml
37
+ - run: uv build
38
+ - run: uv publish --trusted-publishing always
@@ -1,18 +1,23 @@
1
1
  repos:
2
2
  # fixers
3
3
  - repo: https://github.com/astral-sh/ruff-pre-commit
4
- rev: v0.9.3
4
+ rev: v0.9.10
5
5
  hooks:
6
6
  - id: ruff
7
7
  args: [--fix]
8
8
  - id: ruff-format
9
+ - repo: https://github.com/astral-sh/uv-pre-commit
10
+ rev: 0.6.5
11
+ hooks:
12
+ - id: uv-lock
13
+ - id: uv-sync
14
+ args: [--all-packages, --upgrade]
15
+ stages: [post-checkout, post-merge, post-rewrite]
9
16
  - repo: https://github.com/dycw/pre-commit-hooks
10
- rev: 0.9.23
17
+ rev: 0.9.26
11
18
  hooks:
12
- - id: run-hatch-version
19
+ # - id: run-hatch-version
13
20
  - id: run-ruff-format
14
- - id: run-uv-pip-compile
15
- args: [--python-version=3.11]
16
21
  - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
17
22
  rev: v2.14.0
18
23
  hooks:
@@ -40,10 +45,6 @@ repos:
40
45
  - id: no-commit-to-branch
41
46
  - id: trailing-whitespace
42
47
  # linters
43
- - repo: https://github.com/andreoliwa/nitpick
44
- rev: v0.35.0
45
- hooks:
46
- - id: nitpick-check
47
48
  - repo: https://github.com/shellcheck-py/shellcheck-py
48
49
  rev: v0.10.0.1
49
50
  hooks:
@@ -5,6 +5,13 @@
5
5
  always_run: true
6
6
  pass_filenames: false
7
7
  description: Run `bump2version`
8
+ - id: run-bump-my-version
9
+ name: run-bump-my-version
10
+ entry: run-bump-my-version
11
+ language: python
12
+ always_run: true
13
+ pass_filenames: false
14
+ description: Run `bump-my-version`
8
15
  - id: run-dockfmt
9
16
  name: run-dockfmt
10
17
  entry: run-dockfmt
@@ -0,0 +1 @@
1
+ 3.11
@@ -1,18 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-pre-commit-hooks
3
- Version: 0.9.26
3
+ Version: 0.10.4
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: click<8.2,>=8.1.8
7
- Requires-Dist: dycw-utilities<0.95,>=0.94.13
7
+ Requires-Dist: dycw-utilities<0.96,>=0.95.21
8
8
  Requires-Dist: loguru<0.8,>=0.7.3
9
9
  Requires-Dist: semver<3.1,>=3.0.4
10
10
  Requires-Dist: tomlkit<0.14,>=0.13.2
11
11
  Requires-Dist: xdg-base-dirs<6.1,>=6.0.2
12
- Provides-Extra: dev
13
- Requires-Dist: dycw-utilities[test]; extra == 'dev'
14
- Requires-Dist: hatch<1.15,>=1.14.0; extra == 'dev'
15
- Requires-Dist: setuptools<75.9,>=75.8.1; extra == 'dev'
16
12
  Description-Content-Type: text/markdown
17
13
 
18
14
  # pre-commit-hooks
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.9.26"
3
+ __version__ = "0.10.4"
@@ -18,12 +18,16 @@ PYPROJECT_TOML = _ROOT.joinpath("pyproject.toml")
18
18
  REQUIREMENTS_TXT = _ROOT.joinpath("requirements.txt")
19
19
 
20
20
 
21
+ ##
22
+
23
+
24
+ _VERSION_BUMP_SCRIPTS = Literal[
25
+ "run-bump-my-version", "run-bump2version", "run-hatch-version"
26
+ ]
27
+
28
+
21
29
  def check_versions(
22
- path: Path,
23
- pattern: str,
24
- /,
25
- *,
26
- name: Literal["run-bump2version", "run-hatch-version"],
30
+ path: Path, pattern: str, name: _VERSION_BUMP_SCRIPTS, /
27
31
  ) -> VersionInfo | None:
28
32
  """Check the versions: current & master.
29
33
 
@@ -32,7 +36,7 @@ def check_versions(
32
36
  """
33
37
  with path.open() as fh:
34
38
  current = _parse_version(pattern, fh.read())
35
- master = _get_master_version(path, pattern, name=name)
39
+ master = _get_master_version(name, path, pattern)
36
40
  patched = master.bump_patch()
37
41
  if current in {master.bump_major(), master.bump_minor(), patched}:
38
42
  return None
@@ -46,11 +50,7 @@ def _parse_version(pattern: str, text: str, /) -> VersionInfo:
46
50
 
47
51
 
48
52
  def _get_master_version(
49
- path: Path,
50
- pattern: str,
51
- /,
52
- *,
53
- name: Literal["run-bump2version", "run-hatch-version"],
53
+ name: _VERSION_BUMP_SCRIPTS, path: Path, pattern: str, /
54
54
  ) -> VersionInfo:
55
55
  repo = md5(Path.cwd().as_posix().encode(), usedforsecurity=False).hexdigest()
56
56
  commit = check_output(["git", "rev-parse", "origin/master"], text=True).rstrip("\n")
@@ -67,7 +67,10 @@ def _get_master_version(
67
67
  return version
68
68
 
69
69
 
70
- @dataclass
70
+ ##
71
+
72
+
73
+ @dataclass(kw_only=True)
71
74
  class PyProject:
72
75
  contents: str
73
76
  doc: TOMLDocument
@@ -82,3 +85,13 @@ def read_pyproject() -> PyProject:
82
85
  raise
83
86
  doc = parse(contents)
84
87
  return PyProject(contents=contents, doc=doc)
88
+
89
+
90
+ ##
91
+
92
+
93
+ def trim_trailing_whitespaces(path: Path, /) -> None:
94
+ with path.open() as fh:
95
+ lines = fh.readlines()
96
+ with path.open(mode="w") as fh:
97
+ fh.writelines([line.rstrip(" ") for line in lines])
@@ -7,7 +7,11 @@ from typing import Literal
7
7
  from click import command, option
8
8
  from loguru import logger
9
9
 
10
- from pre_commit_hooks.common import check_versions
10
+ from pre_commit_hooks.common import (
11
+ PYPROJECT_TOML,
12
+ check_versions,
13
+ trim_trailing_whitespaces,
14
+ )
11
15
 
12
16
 
13
17
  @command()
@@ -23,7 +27,7 @@ def main(*, setup_cfg: bool) -> bool:
23
27
  def _process(*, filename: Literal["setup.cfg", ".bumpversion.cfg"]) -> bool:
24
28
  path = Path(filename)
25
29
  pattern = r"current_version = (\d+\.\d+\.\d+)$"
26
- version = check_versions(path, pattern, name="run-bump2version")
30
+ version = check_versions(PYPROJECT_TOML, pattern, "run-bump2version")
27
31
  if version is None:
28
32
  return True
29
33
  cmd = ["bump2version", "--allow-dirty", f"--new-version={version}", "patch"]
@@ -37,13 +41,6 @@ def _process(*, filename: Literal["setup.cfg", ".bumpversion.cfg"]) -> bool:
37
41
  "Failed to run {cmd!r}. Is `bump2version` installed?", cmd=" ".join(cmd)
38
42
  )
39
43
  else:
40
- _trim_trailing_whitespaces(path)
44
+ trim_trailing_whitespaces(path)
41
45
  return True
42
46
  return False
43
-
44
-
45
- def _trim_trailing_whitespaces(path: Path, /) -> None:
46
- with path.open() as fh:
47
- lines = fh.readlines()
48
- with path.open(mode="w") as fh:
49
- fh.writelines([line.rstrip(" ") for line in lines])
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+
3
+ from subprocess import PIPE, STDOUT, CalledProcessError, check_call
4
+
5
+ from click import command
6
+ from loguru import logger
7
+
8
+ from pre_commit_hooks.common import PYPROJECT_TOML, check_versions
9
+
10
+
11
+ @command()
12
+ def main() -> bool:
13
+ """CLI for the `run_bump_my_version` hook."""
14
+ return _process()
15
+
16
+
17
+ def _process() -> bool:
18
+ pattern = r"current_version = (\d+\.\d+\.\d+)$"
19
+ version = check_versions(PYPROJECT_TOML, pattern, "run-bump-my-version")
20
+ if version is None:
21
+ return True
22
+ cmd = ["bump-my-version", "--allow-dirty", f"--new-version={version}", "patch"]
23
+ try:
24
+ _ = check_call(cmd, stdout=PIPE, stderr=STDOUT)
25
+ except CalledProcessError as error:
26
+ if error.returncode != 1:
27
+ logger.exception("Failed to run {cmd!r}", cmd=" ".join(cmd))
28
+ except FileNotFoundError:
29
+ logger.exception(
30
+ "Failed to run {cmd!r}. Is `bump-my-version` installed?", cmd=" ".join(cmd)
31
+ )
32
+ else:
33
+ return True
34
+ return False
@@ -0,0 +1,6 @@
1
+ from __future__ import annotations
2
+
3
+ from pre_commit_hooks.run_bump_my_version import main
4
+
5
+ if __name__ == "__main__":
6
+ raise SystemExit(int(not main()))
@@ -20,7 +20,7 @@ def main() -> bool:
20
20
  def _process() -> bool:
21
21
  path = _get_path_version_file()
22
22
  pattern = r'^__version__ = "(\d+\.\d+\.\d+)"$'
23
- version = check_versions(path, pattern, name="run-hatch-version")
23
+ version = check_versions(path, pattern, "run-hatch-version")
24
24
  if version is None:
25
25
  return True
26
26
  cmd = ["hatch", "version", str(version)]
@@ -1,39 +1,51 @@
1
- # build-system
1
+ #
2
2
 
3
+ # build-system
3
4
  [build-system]
4
5
  build-backend = "hatchling.build"
5
6
  requires = ["hatchling"]
6
7
 
8
+ # dependency groups
9
+ [dependency-groups]
10
+ dev = [
11
+ "dycw-utilities[test]>=0.94.29",
12
+ "setuptools >= 75.9.1", # https://github.com/theY4Kman/pytest-only/issues/14
13
+ ]
14
+
7
15
  # project
8
16
  [project]
9
17
  authors = [{name = "Derek Wan", email = "d.wan@icloud.com"}]
10
18
  dependencies = [
11
19
  "click >= 8.1.8, < 8.2",
12
- "dycw-utilities >= 0.94.13, < 0.95",
20
+ "dycw-utilities >= 0.95.21, < 0.96",
13
21
  "loguru >= 0.7.3, < 0.8",
14
22
  "semver >= 3.0.4, < 3.1",
15
23
  "tomlkit >= 0.13.2, < 0.14",
16
24
  "xdg-base-dirs >= 6.0.2, < 6.1",
17
25
  ]
18
- dynamic = ["version"]
19
26
  name = "dycw-pre-commit-hooks"
20
27
  readme = "README.md"
21
28
  requires-python = ">= 3.11"
22
-
23
- [project.optional-dependencies]
24
- dev = [
25
- "dycw-utilities[test]",
26
- "hatch >= 1.14.0, < 1.15",
27
- "setuptools >= 75.8.1, < 75.9", # https://github.com/theY4Kman/pytest-only/issues/14
28
- ]
29
+ version = "0.10.4"
29
30
 
30
31
  [project.scripts]
32
+ run-bump-my-version = "pre_commit_hooks.run_bump-my-version:main"
31
33
  run-bump2version = "pre_commit_hooks.run_bump2version:main"
32
34
  run-dockfmt = "pre_commit_hooks.run_dockfmt:main"
33
35
  run-hatch-version = "pre_commit_hooks.run_hatch_version:main"
34
36
  run-ruff-format = "pre_commit_hooks.run_ruff_format:main"
35
37
  run-uv-pip-compile = "pre_commit_hooks.run_uv_pip_compile:main"
36
38
 
39
+ # bump-my-version
40
+ [tool.bumpversion]
41
+ allow_dirty = true
42
+ current_version = "0.10.4"
43
+
44
+ [[tool.bumpversion.files]]
45
+ filename = "src/pre_commit_hooks/__init__.py"
46
+ replace = "__version__ = \"{new_version}\""
47
+ search = "__version__ = \"{current_version}\""
48
+
37
49
  # coverage
38
50
  [tool.coverage]
39
51
 
@@ -60,9 +72,6 @@ sources = ["src"]
60
72
  [tool.hatch.build.targets.wheel]
61
73
  packages = ["src/pre_commit_hooks"]
62
74
 
63
- [tool.hatch.version]
64
- path = "src/pre_commit_hooks/__init__.py"
65
-
66
75
  # nitpick
67
76
  [tool.nitpick]
68
77
  style = [
@@ -0,0 +1,551 @@
1
+ version = 1
2
+ revision = 1
3
+ requires-python = ">=3.11"
4
+
5
+ [[package]]
6
+ name = "attrs"
7
+ version = "25.1.0"
8
+ source = { registry = "https://pypi.org/simple" }
9
+ sdist = { url = "https://files.pythonhosted.org/packages/49/7c/fdf464bcc51d23881d110abd74b512a42b3d5d376a55a831b44c603ae17f/attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e", size = 810562 }
10
+ wheels = [
11
+ { url = "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a", size = 63152 },
12
+ ]
13
+
14
+ [[package]]
15
+ name = "click"
16
+ version = "8.1.8"
17
+ source = { registry = "https://pypi.org/simple" }
18
+ dependencies = [
19
+ { name = "colorama", marker = "sys_platform == 'win32'" },
20
+ ]
21
+ sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
22
+ wheels = [
23
+ { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
24
+ ]
25
+
26
+ [[package]]
27
+ name = "colorama"
28
+ version = "0.4.6"
29
+ source = { registry = "https://pypi.org/simple" }
30
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
31
+ wheels = [
32
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
33
+ ]
34
+
35
+ [[package]]
36
+ name = "coverage"
37
+ version = "7.6.12"
38
+ source = { registry = "https://pypi.org/simple" }
39
+ sdist = { url = "https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz", hash = "sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2", size = 805941 }
40
+ wheels = [
41
+ { url = "https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015", size = 208464 },
42
+ { url = "https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45", size = 208893 },
43
+ { url = "https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702", size = 241545 },
44
+ { url = "https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0", size = 239230 },
45
+ { url = "https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f", size = 241013 },
46
+ { url = "https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f", size = 239750 },
47
+ { url = "https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d", size = 238462 },
48
+ { url = "https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba", size = 239307 },
49
+ { url = "https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl", hash = "sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f", size = 211117 },
50
+ { url = "https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl", hash = "sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558", size = 212019 },
51
+ { url = "https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad", size = 208645 },
52
+ { url = "https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3", size = 208898 },
53
+ { url = "https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574", size = 242987 },
54
+ { url = "https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985", size = 239881 },
55
+ { url = "https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750", size = 242142 },
56
+ { url = "https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea", size = 241437 },
57
+ { url = "https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3", size = 239724 },
58
+ { url = "https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a", size = 241329 },
59
+ { url = "https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl", hash = "sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95", size = 211289 },
60
+ { url = "https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl", hash = "sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288", size = 212079 },
61
+ { url = "https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1", size = 208673 },
62
+ { url = "https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd", size = 208945 },
63
+ { url = "https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9", size = 242484 },
64
+ { url = "https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e", size = 239525 },
65
+ { url = "https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4", size = 241545 },
66
+ { url = "https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6", size = 241179 },
67
+ { url = "https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3", size = 239288 },
68
+ { url = "https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc", size = 241032 },
69
+ { url = "https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl", hash = "sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3", size = 211315 },
70
+ { url = "https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl", hash = "sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef", size = 212099 },
71
+ { url = "https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e", size = 209511 },
72
+ { url = "https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703", size = 209729 },
73
+ { url = "https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0", size = 253988 },
74
+ { url = "https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924", size = 249697 },
75
+ { url = "https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b", size = 252033 },
76
+ { url = "https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d", size = 251535 },
77
+ { url = "https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827", size = 249192 },
78
+ { url = "https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9", size = 250627 },
79
+ { url = "https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl", hash = "sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3", size = 212033 },
80
+ { url = "https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl", hash = "sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f", size = 213240 },
81
+ { url = "https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl", hash = "sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953", size = 200552 },
82
+ ]
83
+
84
+ [package.optional-dependencies]
85
+ toml = [
86
+ { name = "tomli", marker = "python_full_version <= '3.11'" },
87
+ ]
88
+
89
+ [[package]]
90
+ name = "coverage-conditional-plugin"
91
+ version = "0.9.0"
92
+ source = { registry = "https://pypi.org/simple" }
93
+ dependencies = [
94
+ { name = "coverage" },
95
+ { name = "packaging" },
96
+ ]
97
+ sdist = { url = "https://files.pythonhosted.org/packages/2e/6e/82f411d325a38cc24289060ca5f80d990ee8d026f4de9782006acf061f9b/coverage_conditional_plugin-0.9.0.tar.gz", hash = "sha256:6893dab0542695dbd5ea714281dae0dfec8d0e36480ba32d839e9fa7344f8215", size = 10579 }
98
+ wheels = [
99
+ { url = "https://files.pythonhosted.org/packages/06/83/df10dd1911cb1695274da836e786ade7eaace9ed625b14056eb0bd6117d8/coverage_conditional_plugin-0.9.0-py3-none-any.whl", hash = "sha256:1b37bc469019d2ab5b01f5eee453abe1846b3431e64e209720c2a9ec4afb8130", size = 7317 },
100
+ ]
101
+
102
+ [[package]]
103
+ name = "dycw-pre-commit-hooks"
104
+ version = "0.10.4"
105
+ source = { editable = "." }
106
+ dependencies = [
107
+ { name = "click" },
108
+ { name = "dycw-utilities" },
109
+ { name = "loguru" },
110
+ { name = "semver" },
111
+ { name = "tomlkit" },
112
+ { name = "xdg-base-dirs" },
113
+ ]
114
+
115
+ [package.dev-dependencies]
116
+ dev = [
117
+ { name = "dycw-utilities", extra = ["test"] },
118
+ { name = "setuptools" },
119
+ ]
120
+
121
+ [package.metadata]
122
+ requires-dist = [
123
+ { name = "click", specifier = ">=8.1.8,<8.2" },
124
+ { name = "dycw-utilities", specifier = ">=0.95.21,<0.96" },
125
+ { name = "loguru", specifier = ">=0.7.3,<0.8" },
126
+ { name = "semver", specifier = ">=3.0.4,<3.1" },
127
+ { name = "tomlkit", specifier = ">=0.13.2,<0.14" },
128
+ { name = "xdg-base-dirs", specifier = ">=6.0.2,<6.1" },
129
+ ]
130
+
131
+ [package.metadata.requires-dev]
132
+ dev = [
133
+ { name = "dycw-utilities", extras = ["test"], specifier = ">=0.94.29" },
134
+ { name = "setuptools", specifier = ">=75.9.1" },
135
+ ]
136
+
137
+ [[package]]
138
+ name = "dycw-utilities"
139
+ version = "0.95.21"
140
+ source = { registry = "https://pypi.org/simple" }
141
+ dependencies = [
142
+ { name = "typing-extensions" },
143
+ ]
144
+ sdist = { url = "https://files.pythonhosted.org/packages/44/ba/4fdfbcb261671ad76feaacfac996adfcd638596fef23c8a8f62cff40a616/dycw_utilities-0.95.21.tar.gz", hash = "sha256:53deed23a94bb8a74e2ad706b27ac04d50486433ac25e79eb992dd54dfadc69c", size = 247341 }
145
+ wheels = [
146
+ { url = "https://files.pythonhosted.org/packages/dc/1e/535fe865a5ac696e559b539aa3ebaa3edd0a4266447064861a77e9cbfd09/dycw_utilities-0.95.21-py3-none-any.whl", hash = "sha256:dac9e5c2a67fa41ca0ef63995d3f8c571632779b8e6bb073ec702ff9af16dc94", size = 152826 },
147
+ ]
148
+
149
+ [package.optional-dependencies]
150
+ test = [
151
+ { name = "coverage-conditional-plugin" },
152
+ { name = "hypothesis" },
153
+ { name = "pytest" },
154
+ { name = "pytest-asyncio" },
155
+ { name = "pytest-cov" },
156
+ { name = "pytest-instafail" },
157
+ { name = "pytest-only" },
158
+ { name = "pytest-randomly" },
159
+ { name = "pytest-regressions" },
160
+ { name = "pytest-rerunfailures" },
161
+ { name = "pytest-rng" },
162
+ { name = "pytest-xdist" },
163
+ ]
164
+
165
+ [[package]]
166
+ name = "execnet"
167
+ version = "2.1.1"
168
+ source = { registry = "https://pypi.org/simple" }
169
+ sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 }
170
+ wheels = [
171
+ { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 },
172
+ ]
173
+
174
+ [[package]]
175
+ name = "hypothesis"
176
+ version = "6.127.9"
177
+ source = { registry = "https://pypi.org/simple" }
178
+ dependencies = [
179
+ { name = "attrs" },
180
+ { name = "sortedcontainers" },
181
+ ]
182
+ sdist = { url = "https://files.pythonhosted.org/packages/79/41/72e528551426dbb5156caf7946be53a0c685ee14b0628694ede55dd4a882/hypothesis-6.127.9.tar.gz", hash = "sha256:e8b065319b53ba62cd194912e6322e435daad862ca34e2da8997529e37edecda", size = 420334 }
183
+ wheels = [
184
+ { url = "https://files.pythonhosted.org/packages/c6/00/d204a616fd127ee7830f649cca860b814331f591995e12aaa3931da10c45/hypothesis-6.127.9-py3-none-any.whl", hash = "sha256:51d54c033cfed4ebdc45c9d45ae890d822546151d8d58f52cbed3f049cf448cf", size = 484014 },
185
+ ]
186
+
187
+ [[package]]
188
+ name = "iniconfig"
189
+ version = "2.0.0"
190
+ source = { registry = "https://pypi.org/simple" }
191
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
192
+ wheels = [
193
+ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
194
+ ]
195
+
196
+ [[package]]
197
+ name = "loguru"
198
+ version = "0.7.3"
199
+ source = { registry = "https://pypi.org/simple" }
200
+ dependencies = [
201
+ { name = "colorama", marker = "sys_platform == 'win32'" },
202
+ { name = "win32-setctime", marker = "sys_platform == 'win32'" },
203
+ ]
204
+ sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559 }
205
+ wheels = [
206
+ { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595 },
207
+ ]
208
+
209
+ [[package]]
210
+ name = "numpy"
211
+ version = "2.2.3"
212
+ source = { registry = "https://pypi.org/simple" }
213
+ sdist = { url = "https://files.pythonhosted.org/packages/fb/90/8956572f5c4ae52201fdec7ba2044b2c882832dcec7d5d0922c9e9acf2de/numpy-2.2.3.tar.gz", hash = "sha256:dbdc15f0c81611925f382dfa97b3bd0bc2c1ce19d4fe50482cb0ddc12ba30020", size = 20262700 }
214
+ wheels = [
215
+ { url = "https://files.pythonhosted.org/packages/96/86/453aa3949eab6ff54e2405f9cb0c01f756f031c3dc2a6d60a1d40cba5488/numpy-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:16372619ee728ed67a2a606a614f56d3eabc5b86f8b615c79d01957062826ca8", size = 21237256 },
216
+ { url = "https://files.pythonhosted.org/packages/20/c3/93ecceadf3e155d6a9e4464dd2392d8d80cf436084c714dc8535121c83e8/numpy-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5521a06a3148686d9269c53b09f7d399a5725c47bbb5b35747e1cb76326b714b", size = 14408049 },
217
+ { url = "https://files.pythonhosted.org/packages/8d/29/076999b69bd9264b8df5e56f2be18da2de6b2a2d0e10737e5307592e01de/numpy-2.2.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7c8dde0ca2f77828815fd1aedfdf52e59071a5bae30dac3b4da2a335c672149a", size = 5408655 },
218
+ { url = "https://files.pythonhosted.org/packages/e2/a7/b14f0a73eb0fe77cb9bd5b44534c183b23d4229c099e339c522724b02678/numpy-2.2.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:77974aba6c1bc26e3c205c2214f0d5b4305bdc719268b93e768ddb17e3fdd636", size = 6949996 },
219
+ { url = "https://files.pythonhosted.org/packages/72/2f/8063da0616bb0f414b66dccead503bd96e33e43685c820e78a61a214c098/numpy-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d42f9c36d06440e34226e8bd65ff065ca0963aeecada587b937011efa02cdc9d", size = 14355789 },
220
+ { url = "https://files.pythonhosted.org/packages/e6/d7/3cd47b00b8ea95ab358c376cf5602ad21871410950bc754cf3284771f8b6/numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2712c5179f40af9ddc8f6727f2bd910ea0eb50206daea75f58ddd9fa3f715bb", size = 16411356 },
221
+ { url = "https://files.pythonhosted.org/packages/27/c0/a2379e202acbb70b85b41483a422c1e697ff7eee74db642ca478de4ba89f/numpy-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c8b0451d2ec95010d1db8ca733afc41f659f425b7f608af569711097fd6014e2", size = 15576770 },
222
+ { url = "https://files.pythonhosted.org/packages/bc/63/a13ee650f27b7999e5b9e1964ae942af50bb25606d088df4229283eda779/numpy-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9b4a8148c57ecac25a16b0e11798cbe88edf5237b0df99973687dd866f05e1b", size = 18200483 },
223
+ { url = "https://files.pythonhosted.org/packages/4c/87/e71f89935e09e8161ac9c590c82f66d2321eb163893a94af749dfa8a3cf8/numpy-2.2.3-cp311-cp311-win32.whl", hash = "sha256:1f45315b2dc58d8a3e7754fe4e38b6fce132dab284a92851e41b2b344f6441c5", size = 6588415 },
224
+ { url = "https://files.pythonhosted.org/packages/b9/c6/cd4298729826af9979c5f9ab02fcaa344b82621e7c49322cd2d210483d3f/numpy-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f48ba6f6c13e5e49f3d3efb1b51c8193215c42ac82610a04624906a9270be6f", size = 12929604 },
225
+ { url = "https://files.pythonhosted.org/packages/43/ec/43628dcf98466e087812142eec6d1c1a6c6bdfdad30a0aa07b872dc01f6f/numpy-2.2.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12c045f43b1d2915eca6b880a7f4a256f59d62df4f044788c8ba67709412128d", size = 20929458 },
226
+ { url = "https://files.pythonhosted.org/packages/9b/c0/2f4225073e99a5c12350954949ed19b5d4a738f541d33e6f7439e33e98e4/numpy-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:87eed225fd415bbae787f93a457af7f5990b92a334e346f72070bf569b9c9c95", size = 14115299 },
227
+ { url = "https://files.pythonhosted.org/packages/ca/fa/d2c5575d9c734a7376cc1592fae50257ec95d061b27ee3dbdb0b3b551eb2/numpy-2.2.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:712a64103d97c404e87d4d7c47fb0c7ff9acccc625ca2002848e0d53288b90ea", size = 5145723 },
228
+ { url = "https://files.pythonhosted.org/packages/eb/dc/023dad5b268a7895e58e791f28dc1c60eb7b6c06fcbc2af8538ad069d5f3/numpy-2.2.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a5ae282abe60a2db0fd407072aff4599c279bcd6e9a2475500fc35b00a57c532", size = 6678797 },
229
+ { url = "https://files.pythonhosted.org/packages/3f/19/bcd641ccf19ac25abb6fb1dcd7744840c11f9d62519d7057b6ab2096eb60/numpy-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5266de33d4c3420973cf9ae3b98b54a2a6d53a559310e3236c4b2b06b9c07d4e", size = 14067362 },
230
+ { url = "https://files.pythonhosted.org/packages/39/04/78d2e7402fb479d893953fb78fa7045f7deb635ec095b6b4f0260223091a/numpy-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b787adbf04b0db1967798dba8da1af07e387908ed1553a0d6e74c084d1ceafe", size = 16116679 },
231
+ { url = "https://files.pythonhosted.org/packages/d0/a1/e90f7aa66512be3150cb9d27f3d9995db330ad1b2046474a13b7040dfd92/numpy-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:34c1b7e83f94f3b564b35f480f5652a47007dd91f7c839f404d03279cc8dd021", size = 15264272 },
232
+ { url = "https://files.pythonhosted.org/packages/dc/b6/50bd027cca494de4fa1fc7bf1662983d0ba5f256fa0ece2c376b5eb9b3f0/numpy-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4d8335b5f1b6e2bce120d55fb17064b0262ff29b459e8493d1785c18ae2553b8", size = 17880549 },
233
+ { url = "https://files.pythonhosted.org/packages/96/30/f7bf4acb5f8db10a96f73896bdeed7a63373137b131ca18bd3dab889db3b/numpy-2.2.3-cp312-cp312-win32.whl", hash = "sha256:4d9828d25fb246bedd31e04c9e75714a4087211ac348cb39c8c5f99dbb6683fe", size = 6293394 },
234
+ { url = "https://files.pythonhosted.org/packages/42/6e/55580a538116d16ae7c9aa17d4edd56e83f42126cb1dfe7a684da7925d2c/numpy-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:83807d445817326b4bcdaaaf8e8e9f1753da04341eceec705c001ff342002e5d", size = 12626357 },
235
+ { url = "https://files.pythonhosted.org/packages/0e/8b/88b98ed534d6a03ba8cddb316950fe80842885709b58501233c29dfa24a9/numpy-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bfdb06b395385ea9b91bf55c1adf1b297c9fdb531552845ff1d3ea6e40d5aba", size = 20916001 },
236
+ { url = "https://files.pythonhosted.org/packages/d9/b4/def6ec32c725cc5fbd8bdf8af80f616acf075fe752d8a23e895da8c67b70/numpy-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:23c9f4edbf4c065fddb10a4f6e8b6a244342d95966a48820c614891e5059bb50", size = 14130721 },
237
+ { url = "https://files.pythonhosted.org/packages/20/60/70af0acc86495b25b672d403e12cb25448d79a2b9658f4fc45e845c397a8/numpy-2.2.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:a0c03b6be48aaf92525cccf393265e02773be8fd9551a2f9adbe7db1fa2b60f1", size = 5130999 },
238
+ { url = "https://files.pythonhosted.org/packages/2e/69/d96c006fb73c9a47bcb3611417cf178049aae159afae47c48bd66df9c536/numpy-2.2.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:2376e317111daa0a6739e50f7ee2a6353f768489102308b0d98fcf4a04f7f3b5", size = 6665299 },
239
+ { url = "https://files.pythonhosted.org/packages/5a/3f/d8a877b6e48103733ac224ffa26b30887dc9944ff95dffdfa6c4ce3d7df3/numpy-2.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fb62fe3d206d72fe1cfe31c4a1106ad2b136fcc1606093aeab314f02930fdf2", size = 14064096 },
240
+ { url = "https://files.pythonhosted.org/packages/e4/43/619c2c7a0665aafc80efca465ddb1f260287266bdbdce517396f2f145d49/numpy-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52659ad2534427dffcc36aac76bebdd02b67e3b7a619ac67543bc9bfe6b7cdb1", size = 16114758 },
241
+ { url = "https://files.pythonhosted.org/packages/d9/79/ee4fe4f60967ccd3897aa71ae14cdee9e3c097e3256975cc9575d393cb42/numpy-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b416af7d0ed3271cad0f0a0d0bee0911ed7eba23e66f8424d9f3dfcdcae1304", size = 15259880 },
242
+ { url = "https://files.pythonhosted.org/packages/fb/c8/8b55cf05db6d85b7a7d414b3d1bd5a740706df00bfa0824a08bf041e52ee/numpy-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1402da8e0f435991983d0a9708b779f95a8c98c6b18a171b9f1be09005e64d9d", size = 17876721 },
243
+ { url = "https://files.pythonhosted.org/packages/21/d6/b4c2f0564b7dcc413117b0ffbb818d837e4b29996b9234e38b2025ed24e7/numpy-2.2.3-cp313-cp313-win32.whl", hash = "sha256:136553f123ee2951bfcfbc264acd34a2fc2f29d7cdf610ce7daf672b6fbaa693", size = 6290195 },
244
+ { url = "https://files.pythonhosted.org/packages/97/e7/7d55a86719d0de7a6a597949f3febefb1009435b79ba510ff32f05a8c1d7/numpy-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:5b732c8beef1d7bc2d9e476dbba20aaff6167bf205ad9aa8d30913859e82884b", size = 12619013 },
245
+ { url = "https://files.pythonhosted.org/packages/a6/1f/0b863d5528b9048fd486a56e0b97c18bf705e88736c8cea7239012119a54/numpy-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:435e7a933b9fda8126130b046975a968cc2d833b505475e588339e09f7672890", size = 20944621 },
246
+ { url = "https://files.pythonhosted.org/packages/aa/99/b478c384f7a0a2e0736177aafc97dc9152fc036a3fdb13f5a3ab225f1494/numpy-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7678556eeb0152cbd1522b684dcd215250885993dd00adb93679ec3c0e6e091c", size = 14142502 },
247
+ { url = "https://files.pythonhosted.org/packages/fb/61/2d9a694a0f9cd0a839501d362de2a18de75e3004576a3008e56bdd60fcdb/numpy-2.2.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2e8da03bd561504d9b20e7a12340870dfc206c64ea59b4cfee9fceb95070ee94", size = 5176293 },
248
+ { url = "https://files.pythonhosted.org/packages/33/35/51e94011b23e753fa33f891f601e5c1c9a3d515448659b06df9d40c0aa6e/numpy-2.2.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:c9aa4496fd0e17e3843399f533d62857cef5900facf93e735ef65aa4bbc90ef0", size = 6691874 },
249
+ { url = "https://files.pythonhosted.org/packages/ff/cf/06e37619aad98a9d03bd8d65b8e3041c3a639be0f5f6b0a0e2da544538d4/numpy-2.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4ca91d61a4bf61b0f2228f24bbfa6a9facd5f8af03759fe2a655c50ae2c6610", size = 14036826 },
250
+ { url = "https://files.pythonhosted.org/packages/0c/93/5d7d19955abd4d6099ef4a8ee006f9ce258166c38af259f9e5558a172e3e/numpy-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:deaa09cd492e24fd9b15296844c0ad1b3c976da7907e1c1ed3a0ad21dded6f76", size = 16096567 },
251
+ { url = "https://files.pythonhosted.org/packages/af/53/d1c599acf7732d81f46a93621dab6aa8daad914b502a7a115b3f17288ab2/numpy-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:246535e2f7496b7ac85deffe932896a3577be7af8fb7eebe7146444680297e9a", size = 15242514 },
252
+ { url = "https://files.pythonhosted.org/packages/53/43/c0f5411c7b3ea90adf341d05ace762dad8cb9819ef26093e27b15dd121ac/numpy-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:daf43a3d1ea699402c5a850e5313680ac355b4adc9770cd5cfc2940e7861f1bf", size = 17872920 },
253
+ { url = "https://files.pythonhosted.org/packages/5b/57/6dbdd45ab277aff62021cafa1e15f9644a52f5b5fc840bc7591b4079fb58/numpy-2.2.3-cp313-cp313t-win32.whl", hash = "sha256:cf802eef1f0134afb81fef94020351be4fe1d6681aadf9c5e862af6602af64ef", size = 6346584 },
254
+ { url = "https://files.pythonhosted.org/packages/97/9b/484f7d04b537d0a1202a5ba81c6f53f1846ae6c63c2127f8df869ed31342/numpy-2.2.3-cp313-cp313t-win_amd64.whl", hash = "sha256:aee2512827ceb6d7f517c8b85aa5d3923afe8fc7a57d028cffcd522f1c6fd082", size = 12706784 },
255
+ ]
256
+
257
+ [[package]]
258
+ name = "packaging"
259
+ version = "24.2"
260
+ source = { registry = "https://pypi.org/simple" }
261
+ sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
262
+ wheels = [
263
+ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
264
+ ]
265
+
266
+ [[package]]
267
+ name = "pluggy"
268
+ version = "1.5.0"
269
+ source = { registry = "https://pypi.org/simple" }
270
+ sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 }
271
+ wheels = [
272
+ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 },
273
+ ]
274
+
275
+ [[package]]
276
+ name = "pytest"
277
+ version = "8.3.5"
278
+ source = { registry = "https://pypi.org/simple" }
279
+ dependencies = [
280
+ { name = "colorama", marker = "sys_platform == 'win32'" },
281
+ { name = "iniconfig" },
282
+ { name = "packaging" },
283
+ { name = "pluggy" },
284
+ ]
285
+ sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891 }
286
+ wheels = [
287
+ { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634 },
288
+ ]
289
+
290
+ [[package]]
291
+ name = "pytest-asyncio"
292
+ version = "0.25.3"
293
+ source = { registry = "https://pypi.org/simple" }
294
+ dependencies = [
295
+ { name = "pytest" },
296
+ ]
297
+ sdist = { url = "https://files.pythonhosted.org/packages/f2/a8/ecbc8ede70921dd2f544ab1cadd3ff3bf842af27f87bbdea774c7baa1d38/pytest_asyncio-0.25.3.tar.gz", hash = "sha256:fc1da2cf9f125ada7e710b4ddad05518d4cee187ae9412e9ac9271003497f07a", size = 54239 }
298
+ wheels = [
299
+ { url = "https://files.pythonhosted.org/packages/67/17/3493c5624e48fd97156ebaec380dcaafee9506d7e2c46218ceebbb57d7de/pytest_asyncio-0.25.3-py3-none-any.whl", hash = "sha256:9e89518e0f9bd08928f97a3482fdc4e244df17529460bc038291ccaf8f85c7c3", size = 19467 },
300
+ ]
301
+
302
+ [[package]]
303
+ name = "pytest-cov"
304
+ version = "6.0.0"
305
+ source = { registry = "https://pypi.org/simple" }
306
+ dependencies = [
307
+ { name = "coverage", extra = ["toml"] },
308
+ { name = "pytest" },
309
+ ]
310
+ sdist = { url = "https://files.pythonhosted.org/packages/be/45/9b538de8cef30e17c7b45ef42f538a94889ed6a16f2387a6c89e73220651/pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0", size = 66945 }
311
+ wheels = [
312
+ { url = "https://files.pythonhosted.org/packages/36/3b/48e79f2cd6a61dbbd4807b4ed46cb564b4fd50a76166b1c4ea5c1d9e2371/pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35", size = 22949 },
313
+ ]
314
+
315
+ [[package]]
316
+ name = "pytest-datadir"
317
+ version = "1.6.1"
318
+ source = { registry = "https://pypi.org/simple" }
319
+ dependencies = [
320
+ { name = "pytest" },
321
+ ]
322
+ sdist = { url = "https://files.pythonhosted.org/packages/bb/0e/63301415b9233f0131339799d49ce0c0e8804d82f3f12615056a70e563c5/pytest_datadir-1.6.1.tar.gz", hash = "sha256:4d204cf93cfe62ddc37b19922df6c8c0f133c2899c224bd339b24920e84e7fd3", size = 9391 }
323
+ wheels = [
324
+ { url = "https://files.pythonhosted.org/packages/55/f1/5e4d95ce96c03332726d7fd87b7b500f178994b638ca6a88b4ed3ca64438/pytest_datadir-1.6.1-py3-none-any.whl", hash = "sha256:aa427f6218d3fc7481129d59c892bd7adfb8822613a2726ffc97f51968879cdb", size = 5156 },
325
+ ]
326
+
327
+ [[package]]
328
+ name = "pytest-instafail"
329
+ version = "0.5.0"
330
+ source = { registry = "https://pypi.org/simple" }
331
+ dependencies = [
332
+ { name = "pytest" },
333
+ ]
334
+ sdist = { url = "https://files.pythonhosted.org/packages/86/bd/e0ba6c3cd20b9aa445f0af229f3a9582cce589f083537978a23e6f14e310/pytest-instafail-0.5.0.tar.gz", hash = "sha256:33a606f7e0c8e646dc3bfee0d5e3a4b7b78ef7c36168cfa1f3d93af7ca706c9e", size = 5849 }
335
+ wheels = [
336
+ { url = "https://files.pythonhosted.org/packages/e8/c0/c32dc39fc172e684fdb3d30169843efb65c067be1e12689af4345731126e/pytest_instafail-0.5.0-py3-none-any.whl", hash = "sha256:6855414487e9e4bb76a118ce952c3c27d3866af15487506c4ded92eb72387819", size = 4176 },
337
+ ]
338
+
339
+ [[package]]
340
+ name = "pytest-only"
341
+ version = "2.1.2"
342
+ source = { registry = "https://pypi.org/simple" }
343
+ dependencies = [
344
+ { name = "pytest" },
345
+ ]
346
+ sdist = { url = "https://files.pythonhosted.org/packages/1f/2f/937d554943477a540aa2aae2b4c47ad41c2f089f47691288938c67e94143/pytest_only-2.1.2.tar.gz", hash = "sha256:e341acc083e3bb66debc660b7d5d71ae3b31da5edc2a737280d7304221ab0c29", size = 4863 }
347
+ wheels = [
348
+ { url = "https://files.pythonhosted.org/packages/da/95/3cf1a035048ee224a5dc701a3f41a5ec8684b030d217517bdf7da2f545aa/pytest_only-2.1.2-py3-none-any.whl", hash = "sha256:04dffe2aed64a741145ce5ad25b5df3ae4212e01ff885a8821fd2318eb509e91", size = 6456 },
349
+ ]
350
+
351
+ [[package]]
352
+ name = "pytest-randomly"
353
+ version = "3.16.0"
354
+ source = { registry = "https://pypi.org/simple" }
355
+ dependencies = [
356
+ { name = "pytest" },
357
+ ]
358
+ sdist = { url = "https://files.pythonhosted.org/packages/c0/68/d221ed7f4a2a49a664da721b8e87b52af6dd317af2a6cb51549cf17ac4b8/pytest_randomly-3.16.0.tar.gz", hash = "sha256:11bf4d23a26484de7860d82f726c0629837cf4064b79157bd18ec9d41d7feb26", size = 13367 }
359
+ wheels = [
360
+ { url = "https://files.pythonhosted.org/packages/22/70/b31577d7c46d8e2f9baccfed5067dd8475262a2331ffb0bfdf19361c9bde/pytest_randomly-3.16.0-py3-none-any.whl", hash = "sha256:8633d332635a1a0983d3bba19342196807f6afb17c3eef78e02c2f85dade45d6", size = 8396 },
361
+ ]
362
+
363
+ [[package]]
364
+ name = "pytest-regressions"
365
+ version = "2.7.0"
366
+ source = { registry = "https://pypi.org/simple" }
367
+ dependencies = [
368
+ { name = "pytest" },
369
+ { name = "pytest-datadir" },
370
+ { name = "pyyaml" },
371
+ ]
372
+ sdist = { url = "https://files.pythonhosted.org/packages/07/40/2e233d49a86e2ba88325bcfdcad77fa56b05ba7ca61b58bc0212330e560a/pytest_regressions-2.7.0.tar.gz", hash = "sha256:4c30064e0923929012c94f5d6f35205be06fd8709c7f0dba0228e05c460af05e", size = 116270 }
373
+ wheels = [
374
+ { url = "https://files.pythonhosted.org/packages/6d/83/3eaf30c06a1cf8bb58b1e5dba0345d1c747b720e889cbae81750c7659e9f/pytest_regressions-2.7.0-py3-none-any.whl", hash = "sha256:69f5e3f03493cf0ef84d96d23e50a546617c198b1d7746f2e2b9e441cbab4847", size = 24497 },
375
+ ]
376
+
377
+ [[package]]
378
+ name = "pytest-rerunfailures"
379
+ version = "15.0"
380
+ source = { registry = "https://pypi.org/simple" }
381
+ dependencies = [
382
+ { name = "packaging" },
383
+ { name = "pytest" },
384
+ ]
385
+ sdist = { url = "https://files.pythonhosted.org/packages/26/47/ec4e12f45f4b9fac027a41ccaabb353ed4f23695aae860258ba11a84ed9b/pytest-rerunfailures-15.0.tar.gz", hash = "sha256:2d9ac7baf59f4c13ac730b47f6fa80e755d1ba0581da45ce30b72fb3542b4474", size = 21816 }
386
+ wheels = [
387
+ { url = "https://files.pythonhosted.org/packages/89/37/54e5ffc7c0cebee7cf30a3ac5915faa7e7abf8bdfdf3228c277f7c192489/pytest_rerunfailures-15.0-py3-none-any.whl", hash = "sha256:dd150c4795c229ef44320adc9a0c0532c51b78bb7a6843a8c53556b9a611df1a", size = 13017 },
388
+ ]
389
+
390
+ [[package]]
391
+ name = "pytest-rng"
392
+ version = "1.0.0"
393
+ source = { registry = "https://pypi.org/simple" }
394
+ dependencies = [
395
+ { name = "numpy" },
396
+ { name = "pytest" },
397
+ ]
398
+ sdist = { url = "https://files.pythonhosted.org/packages/e1/b7/11c928ffabbb79d86cc120b9b67b74c2ac0d132b3ea19f14024f7f0a0e4c/pytest-rng-1.0.0.tar.gz", hash = "sha256:9d9ee96557246756072133ff9b990588f28f12d3e80357cad959ef0b05aed9fa", size = 14789 }
399
+ wheels = [
400
+ { url = "https://files.pythonhosted.org/packages/ac/66/40c88e87c8731d96bb2f9a49329785d24236debb9685f6aaccc52536e697/pytest_rng-1.0.0-py3-none-any.whl", hash = "sha256:346e76a34f19c1f70e1059567460df9edf34aa6b41441c8707bf9ed40446b9c7", size = 7992 },
401
+ ]
402
+
403
+ [[package]]
404
+ name = "pytest-xdist"
405
+ version = "3.6.1"
406
+ source = { registry = "https://pypi.org/simple" }
407
+ dependencies = [
408
+ { name = "execnet" },
409
+ { name = "pytest" },
410
+ ]
411
+ sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 }
412
+ wheels = [
413
+ { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 },
414
+ ]
415
+
416
+ [[package]]
417
+ name = "pyyaml"
418
+ version = "6.0.2"
419
+ source = { registry = "https://pypi.org/simple" }
420
+ sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
421
+ wheels = [
422
+ { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 },
423
+ { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 },
424
+ { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 },
425
+ { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 },
426
+ { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 },
427
+ { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 },
428
+ { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 },
429
+ { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 },
430
+ { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 },
431
+ { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
432
+ { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
433
+ { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
434
+ { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
435
+ { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
436
+ { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
437
+ { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
438
+ { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
439
+ { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
440
+ { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
441
+ { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
442
+ { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
443
+ { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
444
+ { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
445
+ { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
446
+ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
447
+ { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
448
+ { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
449
+ ]
450
+
451
+ [[package]]
452
+ name = "semver"
453
+ version = "3.0.4"
454
+ source = { registry = "https://pypi.org/simple" }
455
+ sdist = { url = "https://files.pythonhosted.org/packages/72/d1/d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132/semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602", size = 269730 }
456
+ wheels = [
457
+ { url = "https://files.pythonhosted.org/packages/a6/24/4d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543/semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746", size = 17912 },
458
+ ]
459
+
460
+ [[package]]
461
+ name = "setuptools"
462
+ version = "75.9.1"
463
+ source = { registry = "https://pypi.org/simple" }
464
+ sdist = { url = "https://files.pythonhosted.org/packages/d0/df/ec5ad16b0ec305081c372bd0550fd638fa96e472cd5a03049c344076ea76/setuptools-75.9.1.tar.gz", hash = "sha256:b6eca2c3070cdc82f71b4cb4bb2946bc0760a210d11362278cf1ff394e6ea32c", size = 1345088 }
465
+ wheels = [
466
+ { url = "https://files.pythonhosted.org/packages/8d/28/19ad82a0549d73ec6feffa6711eacf9246035a9426b8a8b528440c9959d2/setuptools-75.9.1-py3-none-any.whl", hash = "sha256:0a6f876d62f4d978ca1a11ab4daf728d1357731f978543ff18ecdbf9fd071f73", size = 1231632 },
467
+ ]
468
+
469
+ [[package]]
470
+ name = "sortedcontainers"
471
+ version = "2.4.0"
472
+ source = { registry = "https://pypi.org/simple" }
473
+ sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 }
474
+ wheels = [
475
+ { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
476
+ ]
477
+
478
+ [[package]]
479
+ name = "tomli"
480
+ version = "2.2.1"
481
+ source = { registry = "https://pypi.org/simple" }
482
+ sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175 }
483
+ wheels = [
484
+ { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077 },
485
+ { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429 },
486
+ { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067 },
487
+ { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030 },
488
+ { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898 },
489
+ { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894 },
490
+ { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319 },
491
+ { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273 },
492
+ { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310 },
493
+ { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309 },
494
+ { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762 },
495
+ { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453 },
496
+ { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486 },
497
+ { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349 },
498
+ { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159 },
499
+ { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243 },
500
+ { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645 },
501
+ { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584 },
502
+ { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875 },
503
+ { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418 },
504
+ { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708 },
505
+ { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582 },
506
+ { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543 },
507
+ { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691 },
508
+ { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170 },
509
+ { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530 },
510
+ { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666 },
511
+ { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954 },
512
+ { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724 },
513
+ { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383 },
514
+ { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 },
515
+ ]
516
+
517
+ [[package]]
518
+ name = "tomlkit"
519
+ version = "0.13.2"
520
+ source = { registry = "https://pypi.org/simple" }
521
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79", size = 192885 }
522
+ wheels = [
523
+ { url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955 },
524
+ ]
525
+
526
+ [[package]]
527
+ name = "typing-extensions"
528
+ version = "4.12.2"
529
+ source = { registry = "https://pypi.org/simple" }
530
+ sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
531
+ wheels = [
532
+ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
533
+ ]
534
+
535
+ [[package]]
536
+ name = "win32-setctime"
537
+ version = "1.2.0"
538
+ source = { registry = "https://pypi.org/simple" }
539
+ sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867 }
540
+ wheels = [
541
+ { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083 },
542
+ ]
543
+
544
+ [[package]]
545
+ name = "xdg-base-dirs"
546
+ version = "6.0.2"
547
+ source = { registry = "https://pypi.org/simple" }
548
+ sdist = { url = "https://files.pythonhosted.org/packages/bf/d0/bbe05a15347538aaf9fa5b51ac3b97075dfb834931fcb77d81fbdb69e8f6/xdg_base_dirs-6.0.2.tar.gz", hash = "sha256:950504e14d27cf3c9cb37744680a43bf0ac42efefc4ef4acf98dc736cab2bced", size = 4085 }
549
+ wheels = [
550
+ { url = "https://files.pythonhosted.org/packages/fc/03/030b47fd46b60fc87af548e57ff59c2ca84b2a1dadbe721bb0ce33896b2e/xdg_base_dirs-6.0.2-py3-none-any.whl", hash = "sha256:3c01d1b758ed4ace150ac960ac0bd13ce4542b9e2cdf01312dcda5012cfebabe", size = 4747 },
551
+ ]
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env bash
2
- layout pyenv 3.11.10
@@ -1,50 +0,0 @@
1
- name: push
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
-
8
- jobs:
9
- tag:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- - uses: butlerlogic/action-autotag@1.1.2 # https://github.com/ButlerLogic/action-autotag/issues/45#issuecomment-1825726927
14
- env:
15
- GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
16
- with:
17
- strategy: regex
18
- root: src/pre_commit_hooks/__init__.py
19
- regex_pattern: '__version__ = "(?<version>\d+\.\d+\.\d+)"'
20
-
21
- build:
22
- runs-on: ubuntu-latest
23
- needs: tag
24
- steps:
25
- - uses: actions/checkout@v4
26
- - run: |
27
- python -m venv venv
28
- source venv/bin/activate
29
- python -m pip install --upgrade pip hatch
30
- hatch build
31
- - uses: actions/upload-artifact@v4
32
- with:
33
- name: artifacts
34
- path: dist/*
35
- if-no-files-found: error
36
-
37
- publish:
38
- runs-on: ubuntu-latest
39
- needs:
40
- - build
41
- steps:
42
- - uses: actions/download-artifact@v4
43
- with:
44
- name: artifacts
45
- path: dist
46
- - uses: pypa/gh-action-pypi-publish@v1.5.1
47
- with:
48
- skip_existing: true
49
- user: __token__
50
- password: ${{ secrets.PYPI_TOKEN }}
@@ -1,170 +0,0 @@
1
- # This file was autogenerated by uv via the following command:
2
- # uv pip compile --extra=dev --prerelease=explicit --output-file=requirements.txt --python-version=3.11 pyproject.toml
3
- anyio==4.8.0
4
- # via httpx
5
- attrs==25.1.0
6
- # via hypothesis
7
- backports-tarfile==1.2.0
8
- # via jaraco-context
9
- certifi==2025.1.31
10
- # via
11
- # httpcore
12
- # httpx
13
- click==8.1.8
14
- # via
15
- # dycw-pre-commit-hooks (pyproject.toml)
16
- # hatch
17
- # userpath
18
- coverage==7.6.12
19
- # via
20
- # coverage-conditional-plugin
21
- # pytest-cov
22
- coverage-conditional-plugin==0.9.0
23
- # via dycw-utilities
24
- distlib==0.3.9
25
- # via virtualenv
26
- dycw-utilities==0.94.13
27
- # via dycw-pre-commit-hooks (pyproject.toml)
28
- execnet==2.1.1
29
- # via pytest-xdist
30
- filelock==3.17.0
31
- # via virtualenv
32
- h11==0.14.0
33
- # via httpcore
34
- hatch==1.14.0
35
- # via dycw-pre-commit-hooks (pyproject.toml)
36
- hatchling==1.27.0
37
- # via hatch
38
- httpcore==1.0.7
39
- # via httpx
40
- httpx==0.28.1
41
- # via hatch
42
- hyperlink==21.0.0
43
- # via hatch
44
- hypothesis==6.127.2
45
- # via dycw-utilities
46
- idna==3.10
47
- # via
48
- # anyio
49
- # httpx
50
- # hyperlink
51
- importlib-metadata==8.6.1
52
- # via keyring
53
- iniconfig==2.0.0
54
- # via pytest
55
- jaraco-classes==3.4.0
56
- # via keyring
57
- jaraco-context==6.0.1
58
- # via keyring
59
- jaraco-functools==4.1.0
60
- # via keyring
61
- keyring==25.6.0
62
- # via hatch
63
- loguru==0.7.3
64
- # via dycw-pre-commit-hooks (pyproject.toml)
65
- markdown-it-py==3.0.0
66
- # via rich
67
- mdurl==0.1.2
68
- # via markdown-it-py
69
- more-itertools==10.6.0
70
- # via
71
- # jaraco-classes
72
- # jaraco-functools
73
- numpy==2.2.3
74
- # via pytest-rng
75
- packaging==24.2
76
- # via
77
- # coverage-conditional-plugin
78
- # hatch
79
- # hatchling
80
- # pytest
81
- # pytest-rerunfailures
82
- pathspec==0.12.1
83
- # via hatchling
84
- pexpect==4.9.0
85
- # via hatch
86
- platformdirs==4.3.6
87
- # via
88
- # hatch
89
- # virtualenv
90
- pluggy==1.5.0
91
- # via
92
- # hatchling
93
- # pytest
94
- ptyprocess==0.7.0
95
- # via pexpect
96
- pygments==2.19.1
97
- # via rich
98
- pytest==8.3.4
99
- # via
100
- # dycw-utilities
101
- # pytest-asyncio
102
- # pytest-cov
103
- # pytest-datadir
104
- # pytest-instafail
105
- # pytest-only
106
- # pytest-randomly
107
- # pytest-regressions
108
- # pytest-rerunfailures
109
- # pytest-rng
110
- # pytest-xdist
111
- pytest-asyncio==0.25.3
112
- # via dycw-utilities
113
- pytest-cov==6.0.0
114
- # via dycw-utilities
115
- pytest-datadir==1.6.1
116
- # via pytest-regressions
117
- pytest-instafail==0.5.0
118
- # via dycw-utilities
119
- pytest-only==2.1.2
120
- # via dycw-utilities
121
- pytest-randomly==3.16.0
122
- # via dycw-utilities
123
- pytest-regressions==2.7.0
124
- # via dycw-utilities
125
- pytest-rerunfailures==15.0
126
- # via dycw-utilities
127
- pytest-rng==1.0.0
128
- # via dycw-utilities
129
- pytest-xdist==3.6.1
130
- # via dycw-utilities
131
- pyyaml==6.0.2
132
- # via pytest-regressions
133
- rich==13.9.4
134
- # via hatch
135
- semver==3.0.4
136
- # via dycw-pre-commit-hooks (pyproject.toml)
137
- setuptools==75.8.1
138
- # via dycw-pre-commit-hooks (pyproject.toml)
139
- shellingham==1.5.4
140
- # via hatch
141
- sniffio==1.3.1
142
- # via anyio
143
- sortedcontainers==2.4.0
144
- # via hypothesis
145
- tomli==2.2.1
146
- # via coverage
147
- tomli-w==1.2.0
148
- # via hatch
149
- tomlkit==0.13.2
150
- # via
151
- # dycw-pre-commit-hooks (pyproject.toml)
152
- # hatch
153
- trove-classifiers==2025.2.18.16
154
- # via hatchling
155
- typing-extensions==4.12.2
156
- # via
157
- # anyio
158
- # dycw-utilities
159
- userpath==1.9.2
160
- # via hatch
161
- uv==0.6.3
162
- # via hatch
163
- virtualenv==20.29.2
164
- # via hatch
165
- xdg-base-dirs==6.0.2
166
- # via dycw-pre-commit-hooks (pyproject.toml)
167
- zipp==3.21.0
168
- # via importlib-metadata
169
- zstandard==0.23.0
170
- # via hatch