diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 0000000..85b0257 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,16 @@ +# Refer for explanation to following link: +# https://lefthook.dev/configuration/ +# + +pre-commit: + parallel: true + jobs: + - name: ruff-fix + glob: "*.py" + run: uv run ruff check --fix {staged_files} + - name: ruff-format + glob: "*.py" + run: uv run ruff format {staged_files} + - name: mypy + glob: "*.py" + run: uv run mypy {staged_files} diff --git a/pyproject.toml b/pyproject.toml index c704e60..74360ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,9 +39,9 @@ [dependency-groups] dev = [ - "pre-commit>=4.0.1", { include-group = "test" }, - ] + "lefthook>=1.11.13", +] test = [ "pytest>=8.3.3", "pytest-cov>=3", diff --git a/uv.lock b/uv.lock index b9dccbf..ecc2479 100644 --- a/uv.lock +++ b/uv.lock @@ -7,6 +7,7 @@ source = { editable = "." } [package.dev-dependencies] dev = [ + { name = "lefthook" }, { name = "pre-commit" }, { name = "pytest" }, { name = "pytest-cov" }, @@ -24,6 +25,7 @@ test = [ [package.metadata.requires-dev] dev = [ + { name = "lefthook", specifier = ">=1.11.13" }, { name = "pre-commit", specifier = ">=4.0.1" }, { name = "pytest", specifier = ">=8.3.3" }, { name = "pytest-cov", specifier = ">=3" }, @@ -164,6 +166,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, ] +[[package]] +name = "lefthook" +version = "1.11.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/84/07633188c49b0bedd13851bb49f89e224bcdbaaa792dbaf26863da83931a/lefthook-1.11.13.tar.gz", hash = "sha256:5e8d2c0d99b39bca7efff99f971a41cd1c8ad5db82c087d2a54eca8203745738", size = 49479895 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/0f/4ac809a1a005ba393ab5fa05a0731f4b5614e47d5ec2023421df97e172db/lefthook-1.11.13-py3-none-any.whl", hash = "sha256:b868faee65329949d607189a6db5c431c61f6d7bccb477e31a9544f929d1896c", size = 49719067 }, +] + [[package]] name = "nodeenv" version = "1.9.1"