Pre-commit Ρ
ΡΠΊΠΈ - ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°; ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠΏΠ΅Ρ
ΠΎΠΌ, ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄: ΠΏΡΠΎΠ³ΠΎΠ½ ΡΠ΅ΡΡΠΎΠ², Π»ΠΈΠ½ΡΠΈΠ½Π³, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ².
fail_fast: true # ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ
ΡΠΊΠ°, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Ρ
ΡΠΊΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ
repos:
# ΠΏΡΠΎΠ³ΠΎΠ½ ΡΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytest
- repo: local # Ρ
ΡΠΊ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅
hooks:
- id: pytest
name: pytest
entry: pipenv run pytest
args: [tests, -x]
pass_filenames: false # ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° - ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ
language: system # ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ pipenv-ΡΡΠ΅Π΄Π°
# ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ mypy
- repo: local
hooks:
- id: mypy
name: mypy
entry: pipenv run mypy
args: [--ignore-missing-imports, --disallow-untyped-defs, {package_name}] # todo ΡΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ mypy
pass_filenames: false
language: system
# Π»ΠΈΠ½ΡΠΈΠ½Π³ Ρ ΠΏΠΎΠΌΠΎΡΡΡ flake8
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v1.3.0
hooks:
- id: flake8
# ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ black
- repo: https://github.com/psf/black
rev: stable
hooks:
- id: black
language_version: python3.6
Π₯ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Ρ
ΡΠΊΠΎΠ² Π²ΡΡΡΠ½ΡΡ - pre-commit run -a