Effortlessly improve the quality and consistency of your code with these pre-commit Hooks!

Effortlessly improve the quality and consistency of your code with these pre-commit Hooks!

Streamline your development workflow and enforce coding standards with pre-commit hooks

Table of contents

No heading

No headings in the article.

Using pre-commit tools can be a great way to improve the quality and consistency of your code, as well as streamline your development workflow. Pre-commit tools are tools that run automatically before you commit your code changes to a version control system like Git. They can check your code for syntax errors, style issues, and other problems, and can even automatically fix some of these issues for you.

To use pre-commit tools, you will first need to install the pre-commit framework, which is a tool that allows you to manage and automate pre-commit hooks. You can install the pre-commit framework using pip:

pip install pre-commit

Once the pre-commit framework is installed, you can configure it to use specific pre-commit tools by creating a .pre-commit-config.yaml file in the root directory of your project. This file should specify the pre-commit hooks that you want to use, as well as any arguments or configuration options that you want to pass to these hooks.

For example, here is a .pre-commit-config.yaml file that configures the pre-commit framework to use the black and flake8 pre-commit tools:

exclude: "^docs/|/migrations/"
default_stages: [commit]

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml

  - repo: https://github.com/asottile/pyupgrade
    rev: v3.3.1
    hooks:
      - id: pyupgrade
        args: [--py310-plus]

  - repo: https://github.com/psf/black
    rev: 22.12.0
    hooks:
      - id: black

  - repo: https://github.com/PyCQA/isort
    rev: 5.11.4
    hooks:
      - id: isort

  - repo: https://github.com/PyCQA/flake8
    rev: 6.0.0
    hooks:
      - id: flake8
        args: ["--config=setup.cfg"]
        additional_dependencies: [flake8-isort]

In this example, the black tool is used to automatically format Python code using the Black code style, while the flake8 tool is used to check for syntax errors and style.

To use the pre-commit tools configured in your .pre-commit-config.yaml file, you will need to install the pre-commit framework's git hook. You can do this by running the following command from the root directory of your project:

pre-commit install

This will install a git hook that will run the configured pre-commit tools automatically before you commit any changes to your code.

You can also run the pre-commit tools manually at any time by using the pre-commit run command. This can be useful if you want to check your code for problems without actually committing it, or if you want to run the pre-commit tools on specific files or directories.

By using pre-commit tools, you can automate many of the tedious and error-prone tasks involved in code review and quality assurance, and can focus on the more important aspects of your project. Pre-commit tools can also help you enforce consistent coding standards and practices across your team, and can make it easier to maintain and update your code over time.

To know more about pre-commits, check this pre commit docs

If you want a Django developer who can bring your project to life, don't hesitate to contact me and let's discuss your needs! 😀

Did you find this article valuable?

Support Saurav Sharma by becoming a sponsor. Any amount is appreciated!