Skip to main content

Run pre-commit with uv

Project description

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.

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.

Project details


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.0.1.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

pre_commit_uv-4.0.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pre_commit_uv-4.0.1.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pre_commit_uv-4.0.1.tar.gz
Algorithm Hash digest
SHA256 415cd805feb2a74e826f8846fa9acdbd52fabdd0efa66c85f0e3d5ee7b1f5d59
MD5 504a880fdd15adbd1fd1db5b8d955610
BLAKE2b-256 6035efa8bcca4ad13f79b5a05373b262ca96334c011b9d0cbd5a8ea880034a3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pre_commit_uv-4.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 abf709ee9ba1f6c7d01ad4a1ccbc2d5d9d48d48d7449b87f0dfd2413b4feee67
MD5 3ffbce83600e4d8751c4cba26dc49469
BLAKE2b-256 143863e96eed33dad2846b76bbbcbb641c6d059448b35d6870146aea4600139e

See more details on using hashes here.

Supported by

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