prek


Nameprek JSON
Version 0.2.11 PyPI version JSON
download
home_pagehttps://prek.j178.dev/
SummaryBetter `pre-commit`, re-engineered in Rust
upload_time2025-10-24 12:20:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords pre-commit git hooks
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# prek

<img width="220" alt="prek" src="./docs/assets/logo.webp" />

[![CI](https://github.com/j178/prek/actions/workflows/ci.yml/badge.svg)](https://github.com/j178/prek/actions/workflows/ci.yml)
[![codecov](https://codecov.io/github/j178/prek/graph/badge.svg?token=MP6TY24F43)](https://codecov.io/github/j178/prek)
[![GitHub Downloads](https://img.shields.io/github/downloads/j178/prek/total?logo=github)](https://github.com/j178/prek/releases)
[![PyPI Downloads](https://img.shields.io/pypi/dm/prek?logo=python)](https://pepy.tech/projects/prek)
[![Discord](https://img.shields.io/discord/1403581202102878289?logo=discord)](https://discord.gg/3NRJUqJz86)

</div>

<!-- description:start -->
[pre-commit](https://pre-commit.com/) is a framework to run hooks written in many languages, and it manages the
language toolchain and dependencies for running the hooks.

*prek* is a reimagined version of pre-commit, built in Rust.
It is designed to be a faster, dependency-free and drop-in alternative for it,
while also providing some additional long-requested features.
<!-- description:end -->

> [!WARNING]
> prek is not production-ready yet. Some subcommands and languages are not implemented. See the current gaps for drop-in parity: [TODO](https://prek.j178.dev/todo/).
>
> But it's already being adopted by [some projects](#who-is-using-prek) like Airflow, so please give it a try - we'd love your feedback!

<!-- features:start -->
## Features

- 🚀 A single binary with no dependencies, does not require Python or any other runtime.
- ⚡ [Faster](https://prek.j178.dev/benchmark/) than `pre-commit` and uses only half the disk space.
- 🔄 Fully compatible with the original pre-commit configurations and hooks.
- 🏗️ Built-in support for monorepos (i.e. [workspace mode](https://prek.j178.dev/workspace/)).
- 🐍 Integration with [`uv`](https://github.com/astral-sh/uv) for managing Python virtual environments and dependencies.
- 🛠️ Improved toolchain installations for Python, Node.js, Go, Rust and Ruby, shared between hooks.
- 📦 [Built-in](https://prek.j178.dev/builtin/) Rust-native implementation of some common hooks.
<!-- features:end -->

## Table of contents

- [Installation](#installation)
- [Quick start](#quick-start)
- [Why prek?](#why-prek)
- [Who is using prek?](#who-is-using-prek)
- [Acknowledgements](#acknowledgements)

## Installation

<details>
<summary>Standalone installer</summary>

prek provides a standalone installer script to download and install the tool,

On Linux and macOS:

<!-- linux-standalone-install:start -->
```bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.11/prek-installer.sh | sh
```
<!-- linux-standalone-install:end -->

On Windows:

<!-- windows-standalone-install:start -->
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://github.com/j178/prek/releases/download/v0.2.11/prek-installer.ps1 | iex"
```
<!-- windows-standalone-install:end -->

</details>

<details>
<summary>PyPI</summary>

<!-- pypi-install:start -->
prek is published as Python binary wheel to PyPI, you can install it using `pip`, `uv` (recommended), or `pipx`:

```bash
# Using uv (recommended)
uv tool install prek

# Using uvx (install and run in one command)
uvx prek

# Using pip
pip install prek

# Using pipx
pipx install prek
```
<!-- pypi-install:end -->

</details>

<details>
<summary>Homebrew</summary>

<!-- homebrew-install:start -->
```bash
brew install prek
```
<!-- homebrew-install:end -->

</details>

<details>
<summary>mise</summary>

<!-- mise-install:start -->
To use prek with [mise](https://mise.jdx.dev) ([v2025.8.11](https://github.com/jdx/mise/releases/tag/v2025.8.11) or later):

```bash
mise use prek
```
<!-- mise-install:end -->

</details>

<details>
<summary>Cargo binstall</summary>

<!-- cargo-binstall:start -->
Install pre-compiled binaries from GitHub using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall):

```bash
cargo binstall prek --git https://github.com/j178/prek
```
<!-- cargo-binstall:end -->

</details>

<details>
<summary>Cargo</summary>

<!-- cargo-install:start -->
Build from source using Cargo (Rust 1.89+ is required):

```bash
cargo install --locked --git https://github.com/j178/prek
```
<!-- cargo-install:end -->

</details>

<details>
<summary>npmjs</summary>

<!-- npmjs-install:start -->
prek is published as a Node.js package, you can install it using `npm`, `pnpm`, or `npx`:

```bash
# Using npm
npm add -D @j178/prek

# Using pnpm
pnpm add -D @j178/prek

# Using npx
npx @j178/prek --version

# or install globally
npm install -g @j178/prek

# then use `prek` command
prek --version
```
<!-- npmjs-install:end -->

</details>

<details>
<summary>Nix</summary>

<!-- nix-install:start -->
prek is [available in Nix as `prek`](https://search.nixos.org/packages?channel=unstable&show=prek&query=prek).

```shell
# Choose what's appropriate for your use case.
# One-off in a shell:
nix-shell -p prek
# NixOS or non-NixOS without flakes:
nix-env -iA nixos.prek
# Non-NixOS with flakes:
nix profile install nixpkgs#prek
```
<!-- nix-install:end -->

</details>

<details>
<summary>Conda</summary>

<!-- conda-forge-install:start -->
prek is [available as `prek` via conda-forge](https://anaconda.org/conda-forge/prek).

```shell
conda install conda-forge::prek
```
<!-- conda-forge-install:end -->

</details>

<details>
<summary>GitHub Releases</summary>

<!-- pre-built-binaries:start -->
Pre-built binaries are available for download from the [GitHub releases](https://github.com/j178/prek/releases) page.
<!-- pre-built-binaries:end -->

</details>

<details>
<summary>GitHub Actions</summary>

<!-- github-actions:start -->
prek can be used in GitHub Actions via the [j178/prek-action](https://github.com/j178/prek-action) repository.

Example workflow:

```yaml
name: Prek checks
on: [push, pull_request]

jobs:
  prek:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: j178/prek-action@v1
```

This action installs prek and runs `prek run --all-files` on your repository.
<!-- github-actions:end -->
</details>

<!-- self-update:start -->
If installed via the standalone installer, prek can update itself to the latest version:

```bash
prek self update
```
<!-- self-update:end -->

## Quick start

- **I already use pre-commit:** follow the short migration checklist in the [quickstart guide](https://prek.j178.dev/quickstart/#already-using-pre-commit) to swap in `prek` safely.
- **I'm new to pre-commit-style tools:** learn the basics—creating a config, running hooks, and installing git hooks—in the [beginner quickstart walkthrough](https://prek.j178.dev/quickstart/#new-to-pre-commit-style-workflows).

<!-- why:start -->
## Why prek?

### prek is faster

- It is [multiple times faster](https://prek.j178.dev/benchmark/) than `pre-commit` and takes up half the disk space.
- It redesigned how hook environments and toolchains are managed, they are all shared between hooks, which reduces the disk space usage and speeds up the installation process.
- Repositories are cloned in parallel, and hooks are installed in parallel if their dependencies are disjoint.
- It uses [`uv`](https://github.com/astral-sh/uv) for creating Python virtualenvs and installing dependencies, which is known for its speed and efficiency.
- It implements some common hooks in Rust, [built in prek](https://prek.j178.dev/builtin/), which are faster than their Python counterparts.

### prek provides a better user experience

- No need to install Python or any other runtime, just download a single binary.
- No hassle with your Python version or virtual environments, prek automatically installs the required Python version and creates a virtual environment for you.
- Built-in support for [workspaces](https://prek.j178.dev/workspace/) (or monorepos), each subproject can have its own `.pre-commit-config.yaml` file.
- [`prek run`](https://prek.j178.dev/cli/#prek-run) has some nifty improvements over `pre-commit run`, such as:
  - `prek run --directory <dir>` runs hooks for files in the specified directory, no need to use `git ls-files -- <dir> | xargs pre-commit run --files` anymore.
  - `prek run --last-commit` runs hooks for files changed in the last commit.
  - `prek run [HOOK] [HOOK]` selects and runs multiple hooks.
- [`prek list`](https://prek.j178.dev/cli/#prek-list) command lists all available hooks, their ids, and descriptions, providing a better overview of the configured hooks.
- prek provides shell completions for `prek run <hook_id>` command, making it easier to run specific hooks without remembering their ids.

For more detailed improvements prek offers, take a look at [Difference from pre-commit](https://prek.j178.dev/diff/).

## Who is using prek?

prek is pretty new, but it is already being used or recommend by some projects and organizations:

- [Airflow](https://github.com/apache/airflow/issues/44995)
- [PDM](https://github.com/pdm-project/pdm/pull/3593)
- [basedpyright](https://github.com/DetachHead/basedpyright/pull/1413)
- [OpenLineage](https://github.com/OpenLineage/OpenLineage/pull/3965)
- [Authlib](https://github.com/authlib/authlib/pull/804)
- [pre-commit-crocodile](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile/)
- [PaperQA2](https://github.com/Future-House/paper-qa/pull/1098)
- [requests-cache](https://github.com/requests-cache/requests-cache/pull/1116)
- [kreuzberg](https://github.com/Goldziher/kreuzberg/pull/142)

<!-- why:end -->

## Acknowledgements

This project is heavily inspired by the original [pre-commit](https://pre-commit.com/) tool, and it wouldn't be possible without the hard work
of the maintainers and contributors of that project.

And a special thanks to the [Astral](https://github.com/astral-sh) team for their remarkable projects, particularly [uv](https://github.com/astral-sh/uv),
from which I've learned a lot on how to write efficient and idiomatic Rust code.


            

Raw data

            {
    "_id": null,
    "home_page": "https://prek.j178.dev/",
    "name": "prek",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "pre-commit, git, hooks",
    "author": null,
    "author_email": "j178 <hi@j178.dev>",
    "download_url": "https://files.pythonhosted.org/packages/09/c7/97de76c547f21648280414786fbcb1c9ff0b6c4fb7f869bf0e885ecc4abb/prek-0.2.11.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# prek\n\n<img width=\"220\" alt=\"prek\" src=\"./docs/assets/logo.webp\" />\n\n[![CI](https://github.com/j178/prek/actions/workflows/ci.yml/badge.svg)](https://github.com/j178/prek/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/github/j178/prek/graph/badge.svg?token=MP6TY24F43)](https://codecov.io/github/j178/prek)\n[![GitHub Downloads](https://img.shields.io/github/downloads/j178/prek/total?logo=github)](https://github.com/j178/prek/releases)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/prek?logo=python)](https://pepy.tech/projects/prek)\n[![Discord](https://img.shields.io/discord/1403581202102878289?logo=discord)](https://discord.gg/3NRJUqJz86)\n\n</div>\n\n<!-- description:start -->\n[pre-commit](https://pre-commit.com/) is a framework to run hooks written in many languages, and it manages the\nlanguage toolchain and dependencies for running the hooks.\n\n*prek* is a reimagined version of pre-commit, built in Rust.\nIt is designed to be a faster, dependency-free and drop-in alternative for it,\nwhile also providing some additional long-requested features.\n<!-- description:end -->\n\n> [!WARNING]\n> prek is not production-ready yet. Some subcommands and languages are not implemented. See the current gaps for drop-in parity: [TODO](https://prek.j178.dev/todo/).\n>\n> But it's already being adopted by [some projects](#who-is-using-prek) like Airflow, so please give it a try - we'd love your feedback!\n\n<!-- features:start -->\n## Features\n\n- \ud83d\ude80 A single binary with no dependencies, does not require Python or any other runtime.\n- \u26a1 [Faster](https://prek.j178.dev/benchmark/) than `pre-commit` and uses only half the disk space.\n- \ud83d\udd04 Fully compatible with the original pre-commit configurations and hooks.\n- \ud83c\udfd7\ufe0f Built-in support for monorepos (i.e. [workspace mode](https://prek.j178.dev/workspace/)).\n- \ud83d\udc0d Integration with [`uv`](https://github.com/astral-sh/uv) for managing Python virtual environments and dependencies.\n- \ud83d\udee0\ufe0f Improved toolchain installations for Python, Node.js, Go, Rust and Ruby, shared between hooks.\n- \ud83d\udce6 [Built-in](https://prek.j178.dev/builtin/) Rust-native implementation of some common hooks.\n<!-- features:end -->\n\n## Table of contents\n\n- [Installation](#installation)\n- [Quick start](#quick-start)\n- [Why prek?](#why-prek)\n- [Who is using prek?](#who-is-using-prek)\n- [Acknowledgements](#acknowledgements)\n\n## Installation\n\n<details>\n<summary>Standalone installer</summary>\n\nprek provides a standalone installer script to download and install the tool,\n\nOn Linux and macOS:\n\n<!-- linux-standalone-install:start -->\n```bash\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.2.11/prek-installer.sh | sh\n```\n<!-- linux-standalone-install:end -->\n\nOn Windows:\n\n<!-- windows-standalone-install:start -->\n```powershell\npowershell -ExecutionPolicy ByPass -c \"irm https://github.com/j178/prek/releases/download/v0.2.11/prek-installer.ps1 | iex\"\n```\n<!-- windows-standalone-install:end -->\n\n</details>\n\n<details>\n<summary>PyPI</summary>\n\n<!-- pypi-install:start -->\nprek is published as Python binary wheel to PyPI, you can install it using `pip`, `uv` (recommended), or `pipx`:\n\n```bash\n# Using uv (recommended)\nuv tool install prek\n\n# Using uvx (install and run in one command)\nuvx prek\n\n# Using pip\npip install prek\n\n# Using pipx\npipx install prek\n```\n<!-- pypi-install:end -->\n\n</details>\n\n<details>\n<summary>Homebrew</summary>\n\n<!-- homebrew-install:start -->\n```bash\nbrew install prek\n```\n<!-- homebrew-install:end -->\n\n</details>\n\n<details>\n<summary>mise</summary>\n\n<!-- mise-install:start -->\nTo use prek with [mise](https://mise.jdx.dev) ([v2025.8.11](https://github.com/jdx/mise/releases/tag/v2025.8.11) or later):\n\n```bash\nmise use prek\n```\n<!-- mise-install:end -->\n\n</details>\n\n<details>\n<summary>Cargo binstall</summary>\n\n<!-- cargo-binstall:start -->\nInstall pre-compiled binaries from GitHub using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall):\n\n```bash\ncargo binstall prek --git https://github.com/j178/prek\n```\n<!-- cargo-binstall:end -->\n\n</details>\n\n<details>\n<summary>Cargo</summary>\n\n<!-- cargo-install:start -->\nBuild from source using Cargo (Rust 1.89+ is required):\n\n```bash\ncargo install --locked --git https://github.com/j178/prek\n```\n<!-- cargo-install:end -->\n\n</details>\n\n<details>\n<summary>npmjs</summary>\n\n<!-- npmjs-install:start -->\nprek is published as a Node.js package, you can install it using `npm`, `pnpm`, or `npx`:\n\n```bash\n# Using npm\nnpm add -D @j178/prek\n\n# Using pnpm\npnpm add -D @j178/prek\n\n# Using npx\nnpx @j178/prek --version\n\n# or install globally\nnpm install -g @j178/prek\n\n# then use `prek` command\nprek --version\n```\n<!-- npmjs-install:end -->\n\n</details>\n\n<details>\n<summary>Nix</summary>\n\n<!-- nix-install:start -->\nprek is [available in Nix as `prek`](https://search.nixos.org/packages?channel=unstable&show=prek&query=prek).\n\n```shell\n# Choose what's appropriate for your use case.\n# One-off in a shell:\nnix-shell -p prek\n# NixOS or non-NixOS without flakes:\nnix-env -iA nixos.prek\n# Non-NixOS with flakes:\nnix profile install nixpkgs#prek\n```\n<!-- nix-install:end -->\n\n</details>\n\n<details>\n<summary>Conda</summary>\n\n<!-- conda-forge-install:start -->\nprek is [available as `prek` via conda-forge](https://anaconda.org/conda-forge/prek).\n\n```shell\nconda install conda-forge::prek\n```\n<!-- conda-forge-install:end -->\n\n</details>\n\n<details>\n<summary>GitHub Releases</summary>\n\n<!-- pre-built-binaries:start -->\nPre-built binaries are available for download from the [GitHub releases](https://github.com/j178/prek/releases) page.\n<!-- pre-built-binaries:end -->\n\n</details>\n\n<details>\n<summary>GitHub Actions</summary>\n\n<!-- github-actions:start -->\nprek can be used in GitHub Actions via the [j178/prek-action](https://github.com/j178/prek-action) repository.\n\nExample workflow:\n\n```yaml\nname: Prek checks\non: [push, pull_request]\n\njobs:\n  prek:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v5\n      - uses: j178/prek-action@v1\n```\n\nThis action installs prek and runs `prek run --all-files` on your repository.\n<!-- github-actions:end -->\n</details>\n\n<!-- self-update:start -->\nIf installed via the standalone installer, prek can update itself to the latest version:\n\n```bash\nprek self update\n```\n<!-- self-update:end -->\n\n## Quick start\n\n- **I already use pre-commit:** follow the short migration checklist in the [quickstart guide](https://prek.j178.dev/quickstart/#already-using-pre-commit) to swap in `prek` safely.\n- **I'm new to pre-commit-style tools:** learn the basics\u2014creating a config, running hooks, and installing git hooks\u2014in the [beginner quickstart walkthrough](https://prek.j178.dev/quickstart/#new-to-pre-commit-style-workflows).\n\n<!-- why:start -->\n## Why prek?\n\n### prek is faster\n\n- It is [multiple times faster](https://prek.j178.dev/benchmark/) than `pre-commit` and takes up half the disk space.\n- It redesigned how hook environments and toolchains are managed, they are all shared between hooks, which reduces the disk space usage and speeds up the installation process.\n- Repositories are cloned in parallel, and hooks are installed in parallel if their dependencies are disjoint.\n- It uses [`uv`](https://github.com/astral-sh/uv) for creating Python virtualenvs and installing dependencies, which is known for its speed and efficiency.\n- It implements some common hooks in Rust, [built in prek](https://prek.j178.dev/builtin/), which are faster than their Python counterparts.\n\n### prek provides a better user experience\n\n- No need to install Python or any other runtime, just download a single binary.\n- No hassle with your Python version or virtual environments, prek automatically installs the required Python version and creates a virtual environment for you.\n- Built-in support for [workspaces](https://prek.j178.dev/workspace/) (or monorepos), each subproject can have its own `.pre-commit-config.yaml` file.\n- [`prek run`](https://prek.j178.dev/cli/#prek-run) has some nifty improvements over `pre-commit run`, such as:\n  - `prek run --directory <dir>` runs hooks for files in the specified directory, no need to use `git ls-files -- <dir> | xargs pre-commit run --files` anymore.\n  - `prek run --last-commit` runs hooks for files changed in the last commit.\n  - `prek run [HOOK] [HOOK]` selects and runs multiple hooks.\n- [`prek list`](https://prek.j178.dev/cli/#prek-list) command lists all available hooks, their ids, and descriptions, providing a better overview of the configured hooks.\n- prek provides shell completions for `prek run <hook_id>` command, making it easier to run specific hooks without remembering their ids.\n\nFor more detailed improvements prek offers, take a look at [Difference from pre-commit](https://prek.j178.dev/diff/).\n\n## Who is using prek?\n\nprek is pretty new, but it is already being used or recommend by some projects and organizations:\n\n- [Airflow](https://github.com/apache/airflow/issues/44995)\n- [PDM](https://github.com/pdm-project/pdm/pull/3593)\n- [basedpyright](https://github.com/DetachHead/basedpyright/pull/1413)\n- [OpenLineage](https://github.com/OpenLineage/OpenLineage/pull/3965)\n- [Authlib](https://github.com/authlib/authlib/pull/804)\n- [pre-commit-crocodile](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile/)\n- [PaperQA2](https://github.com/Future-House/paper-qa/pull/1098)\n- [requests-cache](https://github.com/requests-cache/requests-cache/pull/1116)\n- [kreuzberg](https://github.com/Goldziher/kreuzberg/pull/142)\n\n<!-- why:end -->\n\n## Acknowledgements\n\nThis project is heavily inspired by the original [pre-commit](https://pre-commit.com/) tool, and it wouldn't be possible without the hard work\nof the maintainers and contributors of that project.\n\nAnd a special thanks to the [Astral](https://github.com/astral-sh) team for their remarkable projects, particularly [uv](https://github.com/astral-sh/uv),\nfrom which I've learned a lot on how to write efficient and idiomatic Rust code.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Better `pre-commit`, re-engineered in Rust",
    "version": "0.2.11",
    "project_urls": {
        "Changelog": "https://github.com/j178/prek/blob/master/CHANGELOG.md",
        "Homepage": "https://prek.j178.dev/",
        "Releases": "https://github.com/j178/prek/releases",
        "Repository": "https://github.com/j178/prek"
    },
    "split_keywords": [
        "pre-commit",
        " git",
        " hooks"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48d8114fb889d28e8ca1b91b0a01bed307ac087cac530ae42325a47990e404ab",
                "md5": "db4165170d79cb124ae66eb1280ccda2",
                "sha256": "d125592a6df89ac6b2205eca261fa85d28b256db79b86ef76f6c7e20818eac79"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-linux_armv6l.whl",
            "has_sig": false,
            "md5_digest": "db4165170d79cb124ae66eb1280ccda2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4426742,
            "upload_time": "2025-10-24T12:20:01",
            "upload_time_iso_8601": "2025-10-24T12:20:01.050654Z",
            "url": "https://files.pythonhosted.org/packages/48/d8/114fb889d28e8ca1b91b0a01bed307ac087cac530ae42325a47990e404ab/prek-0.2.11-py3-none-linux_armv6l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "522f5d209f832866d74876b5f1a468f8e1edf019ac17f70a135b70b22c364ed9",
                "md5": "1f0fc160814f80d6c878d80435b6389c",
                "sha256": "7fe09d524f8238f100680d7e7a03321b7de486cf921b8f105ea536b24d03c5cc"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1f0fc160814f80d6c878d80435b6389c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4537468,
            "upload_time": "2025-10-24T12:20:03",
            "upload_time_iso_8601": "2025-10-24T12:20:03.004002Z",
            "url": "https://files.pythonhosted.org/packages/52/2f/5d209f832866d74876b5f1a468f8e1edf019ac17f70a135b70b22c364ed9/prek-0.2.11-py3-none-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "600b710584dd3018ce657f2b78c9f64a41afd15c4d3252a2d1da3fdf0ed4e585",
                "md5": "48be4a4cafa47f8bbe7c05df27d3d1d4",
                "sha256": "29715c9f95f408c0a436ea92aed1ff812fa44de95185eba59a002830aa522af4"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "48be4a4cafa47f8bbe7c05df27d3d1d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4229308,
            "upload_time": "2025-10-24T12:20:04",
            "upload_time_iso_8601": "2025-10-24T12:20:04.390428Z",
            "url": "https://files.pythonhosted.org/packages/60/0b/710584dd3018ce657f2b78c9f64a41afd15c4d3252a2d1da3fdf0ed4e585/prek-0.2.11-py3-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e19b8f6bd6e12befc8126501b7bf5e1898eb2d7aa7a4e0d70e525c1e0ea3193e",
                "md5": "f1e448e5f921ecc6b1bb19fdfb8cb0be",
                "sha256": "6445bb72bc2b564bc6a1554874d0051eb0e42156dbc026ffd6c06d81d1337949"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f1e448e5f921ecc6b1bb19fdfb8cb0be",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4411459,
            "upload_time": "2025-10-24T12:20:05",
            "upload_time_iso_8601": "2025-10-24T12:20:05.679265Z",
            "url": "https://files.pythonhosted.org/packages/e1/9b/8f6bd6e12befc8126501b7bf5e1898eb2d7aa7a4e0d70e525c1e0ea3193e/prek-0.2.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c9e8abe3b497373bb6bd0a57cc44c14f4552d8af2a914356ce87c374296056f2",
                "md5": "e6aa7537867a7d20cfa0cf1135b2328f",
                "sha256": "ec3c6083cf8e30346362e1b690fe591ec8857ca5a7fe8755467a0d5be6fe4621"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "e6aa7537867a7d20cfa0cf1135b2328f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4365929,
            "upload_time": "2025-10-24T12:20:07",
            "upload_time_iso_8601": "2025-10-24T12:20:07.349968Z",
            "url": "https://files.pythonhosted.org/packages/c9/e8/abe3b497373bb6bd0a57cc44c14f4552d8af2a914356ce87c374296056f2/prek-0.2.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "443bba183dc39840a79ec4d6655449074d1f1aa58dd656698b0d316c31a0e39e",
                "md5": "2fbab6dd8da50c0a03e9cafa75404ee5",
                "sha256": "17b8e4ed547d1dac3566e3a524dcd6f1f974137b4380fa3ee1886f5984849913"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "2fbab6dd8da50c0a03e9cafa75404ee5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4656992,
            "upload_time": "2025-10-24T12:20:08",
            "upload_time_iso_8601": "2025-10-24T12:20:08.583214Z",
            "url": "https://files.pythonhosted.org/packages/44/3b/ba183dc39840a79ec4d6655449074d1f1aa58dd656698b0d316c31a0e39e/prek-0.2.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96cca767d0997a0850602d4aadd7b3d76667ac9102acc605e008bf497e121b60",
                "md5": "5b9a5ed143da159f72c23917795d4eb5",
                "sha256": "2efd908fd640aece307ca560d0a7d1bab63169299ccdb603100794945583c02d"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "5b9a5ed143da159f72c23917795d4eb5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5016068,
            "upload_time": "2025-10-24T12:20:15",
            "upload_time_iso_8601": "2025-10-24T12:20:15.170551Z",
            "url": "https://files.pythonhosted.org/packages/96/cc/a767d0997a0850602d4aadd7b3d76667ac9102acc605e008bf497e121b60/prek-0.2.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "faad496932c644fadc0aa4b8b64a2837b415f164f3fa5135daf6cc84b8d9dd2e",
                "md5": "01a744e8f53c6865035846f69bf586d1",
                "sha256": "034feb16133b5098199a0409293c4373ed0a78f0352552ace0b0734b4e7ca0a6"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "has_sig": false,
            "md5_digest": "01a744e8f53c6865035846f69bf586d1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5095356,
            "upload_time": "2025-10-24T12:20:13",
            "upload_time_iso_8601": "2025-10-24T12:20:13.078694Z",
            "url": "https://files.pythonhosted.org/packages/fa/ad/496932c644fadc0aa4b8b64a2837b415f164f3fa5135daf6cc84b8d9dd2e/prek-0.2.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dc730ed4a8469d1dd7d0971f6a97ed88684ef68ce2a8a5423e722b710e9604e4",
                "md5": "51b81f2bec90bf6f36edec045b53d862",
                "sha256": "5462e5b0c80c79e2e646a99a5451313e289f901c1118557f7bff8f4b2071ad37"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "51b81f2bec90bf6f36edec045b53d862",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5147521,
            "upload_time": "2025-10-24T12:20:16",
            "upload_time_iso_8601": "2025-10-24T12:20:16.524843Z",
            "url": "https://files.pythonhosted.org/packages/dc/73/0ed4a8469d1dd7d0971f6a97ed88684ef68ce2a8a5423e722b710e9604e4/prek-0.2.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1eb85abf44aec683bbe60d33ecbfb923799bd096772c83f5716d1a556f30b1a7",
                "md5": "76d8920dd1f6ce90bbf5ca80fe88d6ff",
                "sha256": "da1f9020947473e2b7a35ef3166d333f6cfb696aaa2263d5d3572f4698df69fe"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "76d8920dd1f6ce90bbf5ca80fe88d6ff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4717052,
            "upload_time": "2025-10-24T12:20:17",
            "upload_time_iso_8601": "2025-10-24T12:20:17.982286Z",
            "url": "https://files.pythonhosted.org/packages/1e/b8/5abf44aec683bbe60d33ecbfb923799bd096772c83f5716d1a556f30b1a7/prek-0.2.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5616f841ace84adb5125b291879ea6ee5bcaa2e00911818d7eadb82749aae3e1",
                "md5": "eb7d08ee8b6e31baa8c880884b9da339",
                "sha256": "307adacd5d6ab928b35a971f6e452f237812cb1c1140a4f770e8374911941bbb"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "eb7d08ee8b6e31baa8c880884b9da339",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4427203,
            "upload_time": "2025-10-24T12:20:19",
            "upload_time_iso_8601": "2025-10-24T12:20:19.246810Z",
            "url": "https://files.pythonhosted.org/packages/56/16/f841ace84adb5125b291879ea6ee5bcaa2e00911818d7eadb82749aae3e1/prek-0.2.11-py3-none-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "306a4c7d5a40577c3999e8630ca73c31753b1a21c8b66bf50a110d60630bc7f8",
                "md5": "3d14adc4ee01ea6ab2a009dc275108e1",
                "sha256": "836ddcf228f00ece156ae62fcc9663399b335e2dc02c7b60ea74855b8d4a8d48"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-manylinux_2_31_riscv64.whl",
            "has_sig": false,
            "md5_digest": "3d14adc4ee01ea6ab2a009dc275108e1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4527125,
            "upload_time": "2025-10-24T12:20:20",
            "upload_time_iso_8601": "2025-10-24T12:20:20.910146Z",
            "url": "https://files.pythonhosted.org/packages/30/6a/4c7d5a40577c3999e8630ca73c31753b1a21c8b66bf50a110d60630bc7f8/prek-0.2.11-py3-none-manylinux_2_31_riscv64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fce0091c95935c008f686b85f50ff69be31729655a968a78216710ff6bcf9df4",
                "md5": "a4b46fa86e96f824c0b55b36edcf9313",
                "sha256": "48edc10267cf75a0ad2d4cb38ab7044af67fec852fc5c17cecbed611f5abae4f"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-musllinux_1_1_armv7l.whl",
            "has_sig": false,
            "md5_digest": "a4b46fa86e96f824c0b55b36edcf9313",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4344067,
            "upload_time": "2025-10-24T12:20:22",
            "upload_time_iso_8601": "2025-10-24T12:20:22.520957Z",
            "url": "https://files.pythonhosted.org/packages/fc/e0/091c95935c008f686b85f50ff69be31729655a968a78216710ff6bcf9df4/prek-0.2.11-py3-none-musllinux_1_1_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b7c9262cf6b86c2cec693bb3639e8ade85e0193943089ab05671641688af7d28",
                "md5": "966cf305de14b8a57df6fe7cee2de5a7",
                "sha256": "2b51af0193fcee30275b3c8ce1996ff872838942599354e3961bb9ec8a746b53"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "966cf305de14b8a57df6fe7cee2de5a7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4552707,
            "upload_time": "2025-10-24T12:20:23",
            "upload_time_iso_8601": "2025-10-24T12:20:23.921163Z",
            "url": "https://files.pythonhosted.org/packages/b7/c9/262cf6b86c2cec693bb3639e8ade85e0193943089ab05671641688af7d28/prek-0.2.11-py3-none-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4620520150d3327aac463ef172dbc6b15b1e3b0095dfc43dfc0e3b86a0015b22",
                "md5": "c9e71d1db4f54819f0cbe424bbb29e3e",
                "sha256": "84db699302fc8e79cc74e08f870c0c61ca27398c14bf5250e43ed0d469b3b63a"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c9e71d1db4f54819f0cbe424bbb29e3e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4822208,
            "upload_time": "2025-10-24T12:20:25",
            "upload_time_iso_8601": "2025-10-24T12:20:25.330200Z",
            "url": "https://files.pythonhosted.org/packages/46/20/520150d3327aac463ef172dbc6b15b1e3b0095dfc43dfc0e3b86a0015b22/prek-0.2.11-py3-none-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "737c2822a498f83014f6bf7802ec46bf7b7bbba037668ec6848b8ef3853e0961",
                "md5": "e95d29754da799afb9e6de0ddfeee795",
                "sha256": "9a5d8bcd77c9b5c48d40cd3c3ce96c15219cfec09fe4dd740eb8a7b4906a99d1"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-win32.whl",
            "has_sig": false,
            "md5_digest": "e95d29754da799afb9e6de0ddfeee795",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4254570,
            "upload_time": "2025-10-24T12:20:29",
            "upload_time_iso_8601": "2025-10-24T12:20:29.299284Z",
            "url": "https://files.pythonhosted.org/packages/73/7c/2822a498f83014f6bf7802ec46bf7b7bbba037668ec6848b8ef3853e0961/prek-0.2.11-py3-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de2936ab8a0bab87a95c50cf04beacb89d6ef4c7f33c3d2ee348cd8ee7ad622a",
                "md5": "a51d1b07a317f47c1d65a6025a99297b",
                "sha256": "4aeade26663e251ae28abb1290c79c875788e64fe3c88cfa7f43cd504336dbcd"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a51d1b07a317f47c1d65a6025a99297b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4827114,
            "upload_time": "2025-10-24T12:20:31",
            "upload_time_iso_8601": "2025-10-24T12:20:31.554622Z",
            "url": "https://files.pythonhosted.org/packages/de/29/36ab8a0bab87a95c50cf04beacb89d6ef4c7f33c3d2ee348cd8ee7ad622a/prek-0.2.11-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74574164923438d156052faaa407e3a86c83702737fec762d39709885730a866",
                "md5": "38dfd7153af4a7c69d8e85fffb3314b7",
                "sha256": "884ffd39a6a65d49eb5a985f7951e525519944c49d53949744b66e1ce6d5f868"
            },
            "downloads": -1,
            "filename": "prek-0.2.11-py3-none-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "38dfd7153af4a7c69d8e85fffb3314b7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4509305,
            "upload_time": "2025-10-24T12:20:33",
            "upload_time_iso_8601": "2025-10-24T12:20:33.145643Z",
            "url": "https://files.pythonhosted.org/packages/74/57/4164923438d156052faaa407e3a86c83702737fec762d39709885730a866/prek-0.2.11-py3-none-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09c797de76c547f21648280414786fbcb1c9ff0b6c4fb7f869bf0e885ecc4abb",
                "md5": "4d923d1bc3855833011f021755a1ac71",
                "sha256": "ccf5b269a9370f709187379e2a7403bd8ffe820a84aa8603da3d80624180154c"
            },
            "downloads": -1,
            "filename": "prek-0.2.11.tar.gz",
            "has_sig": false,
            "md5_digest": "4d923d1bc3855833011f021755a1ac71",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 317998,
            "upload_time": "2025-10-24T12:20:34",
            "upload_time_iso_8601": "2025-10-24T12:20:34.807791Z",
            "url": "https://files.pythonhosted.org/packages/09/c7/97de76c547f21648280414786fbcb1c9ff0b6c4fb7f869bf0e885ecc4abb/prek-0.2.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-24 12:20:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "j178",
    "github_project": "prek",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "prek"
}
        
Elapsed time: 1.99123s