diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..5d0f808360 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,72 @@ + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + # - id: check-added-large-files + - id: check-case-conflict + - id: check-json + - id: check-merge-conflict + - id: check-yaml + - id: end-of-file-fixer + - id: fix-encoding-pragma + args: [--remove] + - id: mixed-line-ending + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + exclude: "__snapshots__/" + # this is not technically always safe but usually is + # use comments `# isort: off` and `# isort: on` to disable/re-enable isort + - repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + args: [--line-length=240, --profile=black] + + # this is slightly dangerous because python imports have side effects + # and this tool removes unused imports, which may be providing + # necessary side effects for the code to run + - repo: https://github.com/PyCQA/autoflake + rev: v1.6.1 + hooks: + - id: autoflake + args: + - "--in-place" + - "--expand-star-imports" + - "--remove-duplicate-keys" + - "--remove-unused-variables" + - "--remove-all-unused-imports" + + - repo: https://github.com/psf/black + rev: 22.8.0 + hooks: + - id: black + args: [--line-length=240, --exclude=""] + + - repo: local + hooks: + - id: mypy + name: mypy + entry: mypy + language: system + types: [python] + exclude: migrations/|commands/|scripts/|sandbox/|samples + args: + [ + --pretty, + --show-error-codes, + --implicit-optional, + --follow-imports=silent, + --warn-redundant-casts, + --warn-unused-ignores, + --disallow-any-generics, + --check-untyped-defs, + --no-implicit-reexport, + --disallow-untyped-defs, + --install-types, + --non-interactive, + ] + - repo: https://github.com/Yelp/detect-secrets + rev: v1.4.0 + hooks: + - id: detect-secrets