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 ...
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
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
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
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
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
Videos
04:52
How to Run a Python Script Upon Commit Using a Pre-Commit Hook ...
04:45
Boost Your Python Code Quality: Pre-commit Tutorial (UV & Ruff) ...
12:23
Pre-Commit: Enforce coding best-practices - YouTube
08:36
1. Pre-commit Hooks for Python Projects. - YouTube
29:19
Pre Commit Hooks EXPLAINED | Easy Way Clean Repo! GitHub & PyCharm ...
01:10:03
Pre-commit Hooks for Python Devs - Talk Python to Me Ep.482 - YouTube
GitHub
github.com › pre-commit › pre-commit
GitHub - pre-commit/pre-commit: A framework for managing and maintaining multi-language pre-commit hooks. · GitHub
Starred by 15.2K users
Forked by 957 users
Languages Python 97.4% | R 2.0% | Shell 0.5% | Dockerfile 0.1% | Lua 0.0% | Ruby 0.0%
Reddit
reddit.com › r/python › what are your favourite pre-commit hooks and why?
r/Python on Reddit: What are your favourite pre-commit hooks and why?
April 24, 2024 -
Just getting started with pre-commit and I think it's awesome. Looking to find out what other code automation tools people are using. Let me know what works for you and why. Thanks!
Top answer 1 of 24
65
black Particularly useful on projects with multiple collaborators because everyone’s code will be formatted identically.
2 of 24
53
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
Poetry
python-poetry.org › docs › pre-commit-hooks
pre-commit hooks | Documentation | Poetry - Python dependency management and packaging made easy
pre-commit hooks pre-commit is a framework for building and running git hooks. See the official documentation for more information: pre-commit.com This document provides a list of available pre-commit hooks provided by Poetry. Note If you specify the args: for a hook in your .pre-commit-co...
DEV Community
dev.to › techishdeep › maximize-your-python-efficiency-with-pre-commit-a-complete-but-concise-guide-39a5
The Power of Pre-Commit for Python Developers: Tips and Best Practices - DEV Community
May 1, 2023 - You can do this by adding a .pre-commit-config.yaml file to the root of your project. Define precommit hooks: Now, you can define the hooks that precommit will run. For example, you can add a hook to format your code using black. You can also add a hook to lint your code using a tool flake8 . Here's an example of how to define a precommit hook for these tasks: repos: - repo: https://github.com/psf/black rev: 21.7b0 hooks: - id: black language_version: python3.8 - repo: https://github.com/PyCQA/flake8 rev: 3.9.2 hooks: - id: flake8
Readthedocs
jupytext.readthedocs.io › en › latest › using-pre-commit.html
Pre-commit hook — Jupytext documentation - Read the Docs
If you combine Jupytext with other pre-commit hooks, you must ensure that all hooks will pass on any files you generate. For example, if you have a hook for using black to format all your python code, then you should use Jupytext’s --pipe option to also format newly generated Python scripts ...
PyPI
pypi.org › project › pyproject-pre-commit
pyproject-pre-commit · PyPI
By using pyproject-pre-commit, you can simplify your .pre-commit-config.yaml that you need only repo of https://github.com/rcmdnk/pyproject-pre-commit.
» pip install pyproject-pre-commit
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
Talk Python To Me
talkpython.fm › episodes › show › 482 › pre-commit-hooks-for-python-devs
Episode #482 - Pre-commit Hooks for Python Devs | Talk Python To Me Podcast
October 24, 2024 - Stefanie’s focus on automated code quality checks led her to develop and share various pre-commit hooks, including a specialized one for NumPy docstrings and another for stripping EXIF metadata from images. Check out our course Up and Running with Git: While you don’t need deep Python expertise to use pre-commit hooks, having basic Git and Python knowledge will help you configure them effectively.