在 pre-commit 中使用 uv
官方的 pre-commit hook 在 astral-sh/uv-pre-commit
提供。
要将 uv 与 pre-commit 结合使用,请将以下示例之一添加到 .pre-commit-config.yaml
中的 repos
列表中。
即使您的 pyproject.toml
文件已更改,也要确保您的 uv.lock
文件是最新的
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.8.0
hooks:
- id: uv-lock
使 requirements.txt
文件与您的 uv.lock
文件保持同步
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.8.0
hooks:
- id: uv-export
编译 requirements 文件
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.8.0
hooks:
# Compile requirements
- id: pip-compile
args: [requirements.in, -o, requirements.txt]
要编译备选的 requirements 文件,请修改 args
和 files
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.8.0
hooks:
# Compile requirements
- id: pip-compile
args: [requirements-dev.in, -o, requirements-dev.txt]
files: ^requirements-dev\.(in|txt)$
要同时对多个文件运行 hook,请添加额外的条目
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.8.0
hooks:
# Compile requirements
- id: pip-compile
name: pip-compile requirements.in
args: [requirements.in, -o, requirements.txt]
- id: pip-compile
name: pip-compile requirements-dev.in
args: [requirements-dev.in, -o, requirements-dev.txt]
files: ^requirements-dev\.(in|txt)$