flake8 VS pre-commit-hooks

Compare flake8 vs pre-commit-hooks and see what are their differences.

pre-commit-hooks

Some out-of-the-box hooks for pre-commit (by pre-commit)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
flake8 pre-commit-hooks
10 22
- 4,786
- 3.1%
- 7.2
- 1 day ago
Python
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

flake8

Posts with mentions or reviews of flake8. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-19.
  • How I start every new Python backend API project
    14 projects | dev.to | 19 Jan 2023
    repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: - id: trailing-whitespace - id: check-merge-conflict - id: check-yaml args: [--unsafe] - id: check-json - id: detect-private-key - id: end-of-file-fixer - repo: https://github.com/timothycrosley/isort rev: 5.10.1 hooks: - id: isort - repo: https://github.com/psf/black rev: 22.8.0 hooks: - id: black - repo: https://gitlab.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 - repo: https://github.com/pre-commit/mirrors-mypy rev: v0.971 hooks: - id: mypy args: [ --warn-unused-configs, --ignore-missing-imports, --disallow-untyped-defs, --follow-imports=silent, --install-types, --non-interactive ]
  • Flake8 took down the gitlab repository in favor of github
    13 projects | /r/Python | 14 Nov 2022
    I just ran `pre-commit autoupdate`. It's asking for a username for https://gitlab.com/pycqa/flake8. :-(
    13 projects | /r/Python | 14 Nov 2022
    So if your pre-commit starts to mysteriously fail, you probably want to switch https://gitlab.com/PyCQA/flake8 for https://github.com/PyCQA/flake8 in your .pre-commit-config.yaml (like here)
  • flake8-length: Flake8 plugin for a smart line length validation.
    3 projects | /r/Python | 4 Oct 2022
    Flake8 plugin for a smart line length validation.
  • Should I follow the warnings in Pycharm? Does anyone do this?
    6 projects | /r/learnpython | 18 Jul 2022
    repo: https://gitlab.com/pycqa/flake8 rev: 3.9.2 hooks:
  • flake8-pylint: Flake8 plugin that runs PyLint
    3 projects | /r/Python | 14 Apr 2022
    Flake8 plugin that runs PyLint.
  • Ask HN: Did somebody have success with the migration of Python 2.7 to Java/C#?
    3 projects | news.ycombinator.com | 15 Oct 2021
  • Make your Django project newbie contributor friendly with pre-commit
    5 projects | dev.to | 4 Jul 2021
    $ pre-commit install pre-commit installed at .git/hooks/pre-commit $ git add .pre-commit-config.yaml $ git commit -m "Add pre-commit config" [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Initializing environment for https://gitlab.com/pycqa/flake8. [INFO] Initializing environment for https://github.com/pycqa/isort. [INFO] Initializing environment for https://github.com/python/black. [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://gitlab.com/pycqa/flake8. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/pycqa/isort. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/python/black. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... Trim Trailing Whitespace.................................................Passed Check Yaml...............................................................Passed Check for merge conflicts................................................Passed Debug Statements (Python)............................(no files to check)Skipped Check for added large files..............................................Passed Fix requirements.txt.................................(no files to check)Skipped Check django project for potential problems..........(no files to check)Skipped Check django project for missing migrations..........(no files to check)Skipped flake8...............................................(no files to check)Skipped isort................................................(no files to check)Skipped black................................................(no files to check)Skipped
  • Python: Setting Up Project Environment
    12 projects | dev.to | 13 Oct 2020
    flake8 is Python style checker based on PEP8(Python Enhance Proposal 8). black is a good code formatter. But some items such as Documentation String, black is not provided the check option. flake8 not only helps for lack of black but also can be easily applied with black.

pre-commit-hooks

Posts with mentions or reviews of pre-commit-hooks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-13.
  • Implementing Quality Checks In Your Git Workflow With Hooks and pre-commit
    6 projects | dev.to | 13 Dec 2023
    # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-added-large-files - repo: local hooks: - id: tox lint name: tox-validation entry: pdm run tox -e test,lint language: system files: ^src\/.+py$|pyproject.toml|^tests\/.+py$ types_or: [python, toml] pass_filenames: false - id: tox docs name: tox-docs language: system entry: pdm run tox -e docs types_or: [python, rst, toml] files: ^src\/.+py$|pyproject.toml|^docs\/ pass_filenames: false - repo: https://github.com/pdm-project/pdm rev: 2.10.4 # a PDM release exposing the hook hooks: - id: pdm-lock-check - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 3.0.0 hooks: - id: markdownlint
  • How to Write Impeccably Clean Code That Will Save Your Sanity
    7 projects | dev.to | 27 Jul 2023
    repos: - repo: https://github.com/ambv/black rev: 23.3.0 hooks: - id: black args: [--config=./pyproject.toml] language_version: python3.11 - repo: https://github.com/pycqa/flake8 rev: 6.0.0 hooks: - id: flake8 args: [--config=./tox.ini] language_version: python3.11 - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort args: ["--profile", "black", "--filter-files"] language_version: python3.11 - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: requirements-txt-fixer language_version: python3.11 - id: debug-statements - id: detect-aws-credentials - id: detect-private-key
  • Setting Up Pre-Commit Hooks in GitHub: Ensuring Code Quality and Consistency
    4 projects | dev.to | 11 Jul 2023
    repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: hooks: - id: check-json
  • Level up your development in Git
    3 projects | dev.to | 3 Jun 2023
    $ pre-commit run --all-files [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Initializing environment for https://github.com/psf/black. [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/psf/black. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... Check Yaml...............................................................Passed Fix End of Files.........................................................Passed Trim Trailing Whitespace.................................................Failed - hook id: trailing-whitespace - exit code: 1 Files were modified by this hook. Additional output: Fixing sample.py black....................................................................Passed
  • What happens when you leak AWS credentials and how AWS minimizes the damage
    3 projects | news.ycombinator.com | 6 Apr 2023
    The excellent pre-commit framework (https://pre-commit.com/) has a hook for that in its official hook collection: https://github.com/pre-commit/pre-commit-hooks#detect-aws-cr...
  • Improve your Django Code with pre-commit
    13 projects | dev.to | 5 Apr 2023
    exclude: .*migrations\/.* repos: - repo: https://github.com/pre-commit/pre-commit-hooks ... - repo: https://github.com/psf/black rev: 22.12.0 hooks: - id: black language_version: python3.9
  • ChatGPT based PR Reviewer and Summarizer (GH Action)
    2 projects | /r/sre | 12 Mar 2023
    This is what we use β€” https://github.com/pre-commit/pre-commit-hooks/blob/main/pre_commit_hooks/detect_private_key.py
  • Gitlab CI with docker compose
    2 projects | dev.to | 6 Aug 2022
    repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.3.0 hooks: - id: check-yaml args: ["--allow-multiple-documents"] - repo: local hooks: - id: forbidden-files name: forbidden files entry: found copier update rejection files; review them and remove them language: fail files: "\\.rej$" - id: black name: black entry: poetry run black language: system types: [python] - id: flake8 name: flake8 entry: poetry run flake8 language: system types: [python] - id: isort name: isort entry: poetry run isort --settings-path=. language: system types: [python] - id: pyupgrade name: pyupgrade entry: poetry run pyupgrade language: system types: [python] args: [--py310-plus] - id: mypy name: mypy description: Check python types. entry: poetry run mypy language: system types: [python]
  • How to create a Python package in 2022
    10 projects | dev.to | 29 Jul 2022
    # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: check-toml - id: check-yaml - id: end-of-file-fixer - id: mixed-line-ending - repo: https://github.com/psf/black rev: 22.3.0 hooks: - id: black args: ["--check"] - repo: https://github.com/PyCQA/isort rev: 5.10.1 hooks: - id: isort args: ["--check", "--profile", "black"] - repo: https://github.com/PyCQA/flake8 rev: 4.0.1 hooks: - id: flake8 additional_dependencies: [mccabe] args: ["--max-line-length", "88", "--max-complexity", "10"] - repo: https://github.com/PyCQA/pylint/ rev: v2.14.5 hooks: - id: pylint exclude: tests/ # Prevent files in tests/ to be passed in to pylint.
  • Does anyone here use pre-commit with golang?
    2 projects | /r/learngolang | 27 Jun 2022
    I usually use [pre-commit](https://pre-commit.com/) with my repos, but I don't know what common tools I should use for golang apart from the built in [pre-commit hooks](https://github.com/pre-commit/pre-commit-hooks). Has anyone got any suggestions? Perhaps a github link so I can see the various things. How do you run gofmt through it? Thank you. :)

What are some alternatives?

When comparing flake8 and pre-commit-hooks you can also consider the following projects:

pyright - Static Type Checker for Python

black - The uncompromising Python code formatter [Moved to: https://github.com/psf/black]

yapf - A formatter for Python files

bandit - Bandit is a tool designed to find common security issues in Python code.

pyupgrade - A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.

tfsec - Security scanner for your Terraform code [Moved to: https://github.com/aquasecurity/tfsec]

pyre-check - Performant type-checking for python.

codespell - check code for common misspellings

tflint - A Pluggable Terraform Linter

terraform-docs - Generate documentation from Terraform modules in various output formats

pre-commit-terraform - pre-commit git hooks to take care of Terraform configurations πŸ‡ΊπŸ‡¦