πŸ“
pypc-tlbx
  • py_poc_toolbox
  • pages
    • Sphinx
    • pre-commit
    • line_profiler
    • Postgres
    • ΠŸΠΈΡ‚ΠΎΠ½-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ PyPI
    • ElasticSearch
    • Π Π°Π½Π΄ΠΎΠΌ
    • DDD
  • Devops
    • Supervisor
    • Jenkins
    • Docker
    • Jenkins + Docker
Powered by GitBook
On this page
  • Установка
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°
  • Запуск

Was this helpful?

  1. pages

pre-commit

PreviousSphinxNextline_profiler

Last updated 5 years ago

Was this helpful?

- Π»ΠΈΠ±Π° для написания pre-commit Ρ…ΡƒΠΊΠΎΠ².

Pre-commit Ρ…ΡƒΠΊΠΈ - ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°; ΠΏΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ успСхом, ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄: ΠΏΡ€ΠΎΠ³ΠΎΠ½ тСстов, Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ².

Установка

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΈΠ±Ρƒ: pip install pre-commit

  2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³: .pre-commit-config.yaml

  3. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ…ΡƒΠΊΠΈ: pre-commit install

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°

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

pre-commit