在 pre-commit 中使用 uv
官方提供了一个 pre-commit 钩子,位于astral-sh/uv-pre-commit
。
为确保即使通过 pre-commit 修改了 pyproject.toml
文件,uv.lock
文件也保持最新,请在 .pre-commit-config.yaml
中添加以下内容:
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv 版本。
rev: 0.7.4
hooks:
- id: uv-lock
要使用 pre-commit 保持 requirements.txt
文件为最新状态:
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv 版本。
rev: 0.7.4
hooks:
- id: uv-export
要通过 pre-commit 编译依赖,请在 .pre-commit-config.yaml
中添加以下内容:
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv 版本。
rev: 0.7.4
hooks:
# 编译依赖
- id: pip-compile
args: [requirements.in, -o, requirements.txt]
要编译其他文件,修改 args
和 files
:
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv 版本。
rev: 0.7.4
hooks:
# 编译依赖
- id: pip-compile
args: [requirements-dev.in, -o, requirements-dev.txt]
files: ^requirements-dev\.(in|txt)$
要同时在多个文件上运行该钩子:
.pre-commit-config.yaml
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv 版本。
rev: 0.7.4
hooks:
# 编译依赖
- 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)$