# pre-commit is a tool to perform a predefined set of tasks manually and/or # automatically before git commits are made. # # Config reference: https://pre-commit.com/#pre-commit-configyaml---top-level # # Common tasks # # - Run on all files: pre-commit run --all-files # - Register git hooks: pre-commit install --install-hooks # repos: # Autoformat: Python code, syntax patterns are modernized - repo: https://github.com/asottile/pyupgrade rev: v3.15.2 hooks: - id: pyupgrade args: - --py36-plus # We need the bootstrap.py script to be parsable with Python 3.5, so we # exclude it from the pyupgrade hook that will apply f-strings etc. exclude: bootstrap/bootstrap.py # Autoformat: Python code - repo: https://github.com/PyCQA/autoflake rev: v2.3.1 hooks: - id: autoflake # args ref: https://github.com/PyCQA/autoflake#advanced-usage args: - --in-place # Autoformat: Python code - repo: https://github.com/pycqa/isort rev: 5.13.2 hooks: - id: isort # Autoformat: Python code - repo: https://github.com/psf/black rev: 24.3.0 hooks: - id: black # Autoformat: markdown, yaml - repo: https://github.com/pre-commit/mirrors-prettier rev: v4.0.0-alpha.8 hooks: - id: prettier # Misc... - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 # ref: https://github.com/pre-commit/pre-commit-hooks#hooks-available hooks: # Autoformat: Makes sure files end in a newline and only a newline. - id: end-of-file-fixer # Lint: Check for files with names that would conflict on a # case-insensitive filesystem like MacOS HFS+ or Windows FAT. - id: check-case-conflict # Lint: Checks that non-binary executables have a proper shebang. - id: check-executables-have-shebangs # Lint: Python code - repo: https://github.com/pycqa/flake8 rev: "7.0.0" hooks: - id: flake8 # pre-commit.ci config reference: https://pre-commit.ci/#configuration ci: autoupdate_schedule: monthly