Skip to main content

pre-commit-uv

PyPI PyPI - Implementation PyPI - Python Version Downloads PyPI - License check

Use uv to create virtual environments and install packages for pre-commit.

Installation

With pipx:

pipx install pre-commit
pipx inject pre-commit pre-commit-uv

With uv:

uv tool install pre-commit --with pre-commit-uv --force-reinstall

Why?

Compared to upstream pre-commit will speed up the initial seed operation. In general, upstream recommends caching the pre-commit cache, however, that is not always possible and is still helpful to have a more performant initial cache creation., Here's an example of what you could expect demonstrated on this project's own pre-commit setup (with a hot uv cache):

 hyperfine  'pre-commit install-hooks' 'pre-commit-uv install-hooks'
Benchmark 1: pre-commit install-hooks
  Time (mean ± σ):     54.132 s ±  8.827 s    [User: 15.424 s, System: 9.359 s]
  Range (min  max):   45.972 s  66.506 s    10 runs

Benchmark 2: pre-commit-uv install-hooks
  Time (mean ± σ):     41.695 s ±  7.395 s    [User: 7.614 s, System: 6.133 s]
  Range (min  max):   32.198 s  58.467 s    10 runs

Summary
  pre-commit-uv install-hooks ran 1.30 ± 0.31 times faster than pre-commit install-hooks

Configuration

Once installed will use uv out of box, however the DISABLE_PRE_COMMIT_UV_PATCH environment variable if is set it will work as an escape hatch to disable the new behavior.

To avoid interpreter startup overhead of the patching, we only perform this when we detect you calling pre-commit. Should this logic fail you can force the patching by setting the FORCE_PRE_COMMIT_UV_PATCH variable. Should you experience this please raise an issue with the content of the sys.argv. Note that DISABLE_PRE_COMMIT_UV_PATCH will overwrite this flag should both be set.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pre_commit_uv-4.3.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pre_commit_uv-4.3.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file pre_commit_uv-4.3.0.tar.gz.

File metadata

  • Download URL: pre_commit_uv-4.3.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pre_commit_uv-4.3.0.tar.gz
Algorithm Hash digest
SHA256 7a46537c0c2cd346dc6f3b6d64c7c45250189d5e3d5a17f626ec3e3b2503bf46
MD5 cc87bec947355259adfe0107d2de23d3
BLAKE2b-256 8f4fc60d3549065b1d6d9242e81d37910a824bfb2a1df12e0a79c928d81885c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pre_commit_uv-4.3.0.tar.gz:

Publisher: release.yaml on tox-dev/pre-commit-uv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pre_commit_uv-4.3.0-py3-none-any.whl.

File metadata

  • Download URL: pre_commit_uv-4.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pre_commit_uv-4.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04cd06f2402e21ab48f2560ebea6eea03fbc46d428af8ceb862060b047f91f42
MD5 4013989e9e6f1f87643265568319aac1
BLAKE2b-256 028b86164aa971db50b752948756417b2e039f42721114afa2a9972543b7186b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pre_commit_uv-4.3.0-py3-none-any.whl:

Publisher: release.yaml on tox-dev/pre-commit-uv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page