repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: trailing-whitespace # убирает лишние пробелы - id: check-added-large-files # проверяет тяжелые файлы на изменения - id: end-of-file-fixer # добавляет пустую строку в конце файла - id: check-yaml # проверяет синтаксис .yaml файлов - id: check-json # проверяет синтаксис .json файлов - id: check-case-conflict # проверяет файлы, которые могут конфликтовать в файловых системах без учета регистра. - id: check-merge-conflict # проверяет файлы, содержащие конфликтные строки слияния. # Отсортировывает импорты в проекте - repo: https://github.com/pycqa/isort rev: 5.13.2 hooks: - id: isort exclude: __init__.py args: [ --profile, black, --filter-files ] # Обновляет синтаксис Python кода в соответствии с последними версиями - repo: https://github.com/asottile/pyupgrade rev: v3.15.2 hooks: - id: pyupgrade args: [ --py3-plus ] # Форматирует код под PEP8 - repo: https://github.com/pre-commit/mirrors-autopep8 rev: v2.0.4 hooks: - id: autopep8 args: [ "-i", "--in-place", "--max-line-length=120" ] # Сканер стилистических ошибок, нарушающие договоренности PEP8 - repo: https://github.com/PyCQA/flake8 rev: 7.0.0 hooks: - id: flake8 additional_dependencies: [pep8-naming, flake8-bugbear] exclude: __init__.py args: [ "--ignore=E501,F821,E704", "--max-line-length=120" ] # Форматирует код под PEP8 c помощью black - repo: https://github.com/psf/black rev: 24.3.0 hooks: - id: black language_version: python3 args: [ "--line-length=120" ] # Проверка статических типов с помощью mypy - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.9.0 hooks: - id: mypy exclude: 'migrations' args: [--no-strict-optional, --ignore-missing-imports]