default_language_version: python: python3.7 repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: # list of supported hooks: https://pre-commit.com/hooks.html - id: trailing-whitespace - id: end-of-file-fixer - id: check-docstring-first - id: check-yaml - id: debug-statements - id: detect-private-key - id: check-toml - id: check-case-conflict - id: check-added-large-files args: [--maxkb=1000] - id: check-json - id: check-merge-conflict - id: check-shebang-scripts-are-executable - id: fix-byte-order-marker - id: fix-encoding-pragma args: [--remove] - id: mixed-line-ending args: [--fix=lf] # python code formatting - repo: https://github.com/psf/black rev: 22.6.0 hooks: - id: black args: [--line-length, "79"] language_version: python3.7 # python import sorting # - repo: https://github.com/PyCQA/isort # rev: 5.12.0 # hooks: # - id: isort # args: # [ # "--line-length=79", # "--multi-line=3", # "--profile=black", # "--filter-files", # ] # language_version: python3.7 # python upgrading syntax to newer version # - repo: https://github.com/asottile/pyupgrade # rev: v2.32.1 # hooks: # - id: pyupgrade # args: [--py38-plus] # python docstring formatting - repo: https://github.com/myint/docformatter rev: v1.4 hooks: - id: docformatter args: [--in-place, --wrap-summaries=79, --wrap-descriptions=79] # python check (PEP8), programming errors and code complexity - repo: https://github.com/PyCQA/flake8 rev: 4.0.1 hooks: - id: flake8 args: [ "--extend-ignore", "E203,E402,E501,F401,F841", "--exclude", "logs/*,data/*", ] # python security linter - repo: https://github.com/PyCQA/bandit rev: "1.7.1" hooks: - id: bandit args: ["-s", "B101"] # yaml formatting - repo: https://github.com/pre-commit/mirrors-prettier rev: v2.7.1 hooks: - id: prettier types: [yaml] # shell scripts linter - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.8.0.4 hooks: - id: shellcheck # md formatting - repo: https://github.com/executablebooks/mdformat rev: 0.7.14 hooks: - id: mdformat args: ["--number"] additional_dependencies: - mdformat-gfm - mdformat-tables - mdformat_frontmatter # - mdformat-toc # - mdformat-black # jupyter notebook cell output clearing # - repo: https://github.com/kynan/nbstripout # rev: 0.5.0 # hooks: # - id: nbstripout # jupyter notebook linting - repo: https://github.com/nbQA-dev/nbQA rev: 1.4.0 hooks: - id: nbqa-black args: ["--line-length=79"] - id: nbqa-isort args: ["--profile=black"] - id: nbqa-flake8 args: [ "--extend-ignore=E203,E402,E501,F401,F841", "--exclude=logs/*,data/*", ]