You may fancy me mad, but this is my standard python pre-commit stack: end-of-file-fixer trailing-whitespace fix-byte-order-marker mixed-line-ending name-tests-test no-commit-to-branch autoflake args: [ "--in-place", "--remove-unused-variables", "--remove-all-unused-imports" ] isort black cspell doc8 args: [ "--max-line-length", "112", "--file-encoding", "utf-8" ] flake8 additional_dependencies: [ flake8-pytest-style, flake8-bugbear, flake8-comprehensions, flake8-print, darglint ] bandit pylint Answer from Grintor on reddit.com
🌐
pre-commit
pre-commit.com
pre-commit
Now whenever you clone a pre-commit enabled repo, the hooks will already be set up! $ git clone -q [email protected]:asottile/pyupgrade $ cd pyupgrade $ git commit --allow-empty -m 'Hello world!' Check docstring is first.............................(no files to check)Skipped Check Yaml...........................................(no files to check)Skipped Debug Statements (Python)............................(no files to check)Skipped ...
🌐
GitHub
github.com › pre-commit › pre-commit
GitHub - pre-commit/pre-commit: A framework for managing and maintaining multi-language pre-commit hooks. · GitHub
A framework for managing and maintaining multi-language pre-commit hooks. - pre-commit/pre-commit
Starred by 15.2K users
Forked by 961 users
Languages   Python 97.4% | R 2.0% | Shell 0.5% | Dockerfile 0.1% | Lua 0.0% | Ruby 0.0%
Discussions

What are your favourite pre-commit hooks and why?
You may fancy me mad, but this is my standard python pre-commit stack: end-of-file-fixer trailing-whitespace fix-byte-order-marker mixed-line-ending name-tests-test no-commit-to-branch autoflake args: [ "--in-place", "--remove-unused-variables", "--remove-all-unused-imports" ] isort black cspell doc8 args: [ "--max-line-length", "112", "--file-encoding", "utf-8" ] flake8 additional_dependencies: [ flake8-pytest-style, flake8-bugbear, flake8-comprehensions, flake8-print, darglint ] bandit pylint More on reddit.com
🌐 r/Python
83
120
April 24, 2024
pre commit.com - Should I install `pre-commit` into a python virtual environment or python global environment? - Stack Overflow
When I have a new python package ... with python -m venv .venv. I activate the venv using .venv\Scripts\activate. When working on the package I install package dependencies such as numpy with (.venv) C:\...\my_package> pip install numpy. I am trying to figure out how I should install the pre-commit package so ... More on stackoverflow.com
🌐 stackoverflow.com
Using pre-commit hooks makes software development life easier
I find pre-commits very useful for the reason you mentioned in your other reply: failing fast (or shift left) philosophies. If there is a linting issue, it should be spotted before any CI is triggered. I use pre-commit when working with python with black (auto format), isort (for import sorting), flake8 (linting), and sometimes mypy for type checking. I disagree with the other comment about having save hooks on the ide because I save on every line change even if the change at that point would break everything. So it wouldn't make sense to perform any of the checks I perform with the pre-commit at that point. It's just a useful tool to use, it means CI runners aren't wasting time or compute resources failing jobs for things that could have been spotted before the commit was pushed. Yeah you can bypass, but that's why I will have the lint checks on the CI job too, it just means these checks are less likely to fail. More on reddit.com
🌐 r/programming
11
8
June 22, 2021
is there a python pre-commit tool that can change all relative imports to absolute imports within a project?
https://stackoverflow.com/a/66026470 The repo is archived, but who knows, it might still work :p More on reddit.com
🌐 r/learnpython
3
2
May 29, 2024
🌐
PyPI
pypi.org › project › pre-commit
pre-commit · PyPI
A framework for managing and maintaining multi-language pre-commit hooks. These details have been verified by PyPI · asottile · These details have not been verified by PyPI · Homepage · License: MIT · Author: Anthony Sottile · Requires: Python >=3.10 ·
      » pip install pre-commit
    
Published   Apr 21, 2026
Version   4.6.0
🌐
Better Programming
betterprogramming.pub › 2-use-cases-of-python-pre-commit-hooks-to-tidy-up-your-git-repositories-8d86c9c4f06b
2 Use Cases of Python Pre-commit Hooks to Tidy Up Your Git Repositories | by Eldad Uzman | Better Programming
April 13, 2022 - Pre-commit is a python based tool that allows you to ‘hook’ into your git repository and trigger a simple code whenever changes are committed.
Find elsewhere
🌐
Typicode
typicode.github.io › husky
Husky
Automatically lint your commit messages, code, and run tests upon committing or pushing.
🌐
Claude
code.claude.com › docs › en › best-practices
Best practices for Claude Code - Claude Code Docs
1 week ago - Have Claude list all files that need migrating (e.g., list all 2,000 Python files that need migrating) ... for file in $(cat files.txt); do claude -p "Migrate $file from React to Vue. Return OK or FAIL." \ --allowedTools "Edit,Bash(git commit *)" done
🌐
Python for Data Science
python4data.science › en › latest › productive › git › advanced › hooks › ci.html
pre-commit in CI pipelines - Python for Data Science
March 2, 2025 - stages: - validate pre-commit: stage: validate image: name: python:3.12 variables: PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit only: refs: - merge_requests - tags - main cache: paths: - ${PRE_COMMIT_HOME} before_script: - pip install pre-commit script: - pre-commit run --all-files ·
🌐
Towards Data Science
towardsdatascience.com › home › latest › pre-commit & git hooks: automate high code quality
Pre-Commit & Git Hooks: Automate High Code Quality | Towards Data Science
January 16, 2025 - Pre-commit is a useful Python package that improves your git hook workflow and simplifies your scripts. It is designed to keep the quality of your software high and remove the risk of bugs by automating your code-checking process.
🌐
Principles of Visualization
ericmjl.github.io › essays-on-data-science › terminal › pre-commits
Using pre-commit git hooks to automate code checks - Essays on Data Science
conda install -c conda-forge pre-commit pre-commit sample-config > .pre-commit-config.yaml pre-commit install pre-commit run --all-files · While the default set is nice, you might want to install other hooks. For example, a Python project might want to default to using black as the code formatter.
🌐
GitHub
github.com › pre-commit › pre-commit › releases
Releases · pre-commit/pre-commit
pre-commit hook-impl: allow --hook-dir to be missing to enable easier usage with git 2.54+ git hooks. ... There was an error while loading. Please reload this page. ... There was an error while loading. Please reload this page. ... Fix language: python with repo: local without additional_dependencies.
Author   pre-commit
🌐
Medium
medium.com › @guandika8 › create-clean-python-code-using-pre-commit-b3775f5a52f9
Create clean Python code using pre-commit | by Andika Wirawan | Medium
July 10, 2023 - Pre-commit is a powerful and flexible framework that can help you develop clean and consistent Python code. By using pre-commitments, you can automate various formatting checks and tools on your code before deploying it to a version control system.
🌐
Git LFS
git-lfs.com
Git Large File Storage | Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
Note that defining the file types Git LFS should track will not, by itself, convert any pre-existing files to Git LFS, such as files on other branches or in your prior commit history.
🌐
Pitivi
developer.pitivi.org › Precommit_hooks.html
pre-commit hooks
To update pylint, follow the instructions for updating the Python dependencies. To update the regular hooks, take the repos one by one, check what is the latest version and update the entry in the .pre-commit-config.yaml file.
🌐
Plain English
python.plainenglish.io › how-to-set-up-pre-commit-hooks-in-python-ac95fc7d0989
How to Set up Pre-Commit Hooks in Python | Python in Plain English
May 3, 2022 - Pre-commit, the Python package, makes it easy to manage and run the hooks you need to ensure code is linted and formatted properly before publishing. Pre-commit hooks save time by avoiding mistaken commits with minimal setup.
🌐
Readthedocs
jupytext.readthedocs.io › en › latest › using-pre-commit.html
Pre-commit hook — Jupytext documentation
You don’t need Jupytext’s pre-commit hook if you commit only the .py (or .md) representation of notebooks in your Git repository.
🌐
Hotosm
docs.hotosm.org › dev-guide › repo-management › pre-commit
Pre-Commit - HOTOSM Docs
Pre-commit is a Python tool for simplifying and applying Git pre-commit hooks.
🌐
Medium
medium.com › @fistralpro › pytest-pre-commit-hook-b492edd0560e
Pytest pre-commit hook
January 9, 2024 - 08 -> pre-commit passes filenames as positional arguments and will invoke multiple times in parallel ... - repo: local hooks: - id: pytest name: pytest entry: ./.venv/bin/pytest exclude: ^migrations language: system types: [python]
🌐
Scaling Celeste Mountain I
ljvmiranda921.github.io › notebook › 2018 › 06 › 21 › precommits-using-black-and-flake8
Automate Python workflow using pre-commits: black and flake8
June 21, 2018 - Before I commit my staged Python files, black formats my code and flake8 checks my compliance to PEP8. If everything passes, the commit is made. If not, then I the perform necessary edits and commit again. Less time is spent on code formatting so I can focus more on code logic.