From 7752c4245268b47f0568ad592475c9021f0db3a2 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 21 Jan 2017 18:03:59 -0800 Subject: [PATCH] Add .pre-commit-hooks.yaml for forward compatibility See pre-commit/pre-commit#470 --- .pre-commit-hooks.yaml | 149 +++++++++++++++++++++++++++++++++++++++++ tests/meta_test.py | 7 ++ 2 files changed, 156 insertions(+) create mode 100644 .pre-commit-hooks.yaml create mode 100644 tests/meta_test.py diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml new file mode 100644 index 0000000..0604585 --- /dev/null +++ b/.pre-commit-hooks.yaml @@ -0,0 +1,149 @@ +- id: autopep8-wrapper + name: autopep8 wrapper + description: "Runs autopep8 over python source. If you configure additional arguments you'll want to at least include -i." + entry: autopep8-wrapper + language: python + files: \.py$ + args: [-i] +- id: check-added-large-files + name: Check for added large files + description: Prevent giant files from being committed + entry: check-added-large-files + language: python + # Match all files + files: '' +- id: check-ast + name: Check python ast + description: Simply check whether the files parse as valid python. + entry: check-ast + language: python + files: '\.py$' +- id: check-byte-order-marker + name: Check for byte-order marker + description: Forbid files which have a UTF-8 byte-order marker + entry: check-byte-order-marker + language: python + files: '\.py$' +- id: check-case-conflict + name: Check for case conflicts + description: Check for files that would conflict in case-insensitive filesystems + entry: check-case-conflict + language: python + # Match all files + files: '' +- id: check-docstring-first + name: Check docstring is first + description: Checks a common error of defining a docstring after code. + entry: check-docstring-first + language: python + files: \.py$ +- id: check-json + name: Check JSON + description: This hook checks json files for parseable syntax. + entry: check-json + language: python + files: \.json$ +- id: pretty-format-json + name: Pretty format JSON + description: This hook sets a standard for formatting JSON files. + entry: pretty-format-json + language: python + files: \.json$ +- id: check-merge-conflict + name: Check for merge conflicts + description: Check for files that contain merge conflict strings. + entry: check-merge-conflict + language: python + # Match all files + files: '' +- id: check-symlinks + name: Check for broken symlinks + description: Checks for symlinks which do not point to anything. + entry: check-symlinks + language: python + # Match all files + files: '' +- id: check-xml + name: Check Xml + description: This hook checks xml files for parseable syntax. + entry: check-xml + language: python + files: \.xml$ +- id: check-yaml + name: Check Yaml + description: This hook checks yaml files for parseable syntax. + entry: check-yaml + language: python + files: \.(yaml|yml|eyaml)$ +- id: debug-statements + name: Debug Statements (Python) + description: This hook checks that debug statements (pdb, ipdb, pudb) are not imported on commit. + entry: debug-statement-hook + language: python + files: \.py$ +- id: detect-aws-credentials + name: Detect AWS Credentials + description: Detects *your* aws credentials from the aws cli credentials file + entry: detect-aws-credentials + language: python + files: '' +- id: detect-private-key + name: Detect Private Key + description: Detects the presence of private keys + entry: detect-private-key + language: python + files: '' +- id: double-quote-string-fixer + name: Fix double quoted strings + description: This hook replaces double quoted strings with single quoted strings + entry: double-quote-string-fixer + language: python + files: \.py$ +- id: end-of-file-fixer + name: Fix End of Files + description: Ensures that a file is either empty, or ends with one newline. + entry: end-of-file-fixer + language: python + files: \.(asciidoc|adoc|coffee|cpp|css|c|ejs|erb|groovy|h|haml|hh|hpp|hxx|html|in|j2|jade|json|js|less|markdown|md|ml|mli|pp|py|rb|rs|R|scala|scss|sh|slim|tex|tmpl|ts|txt|yaml|yml)$ +- id: fix-encoding-pragma + name: Fix python encoding pragma + language: python + entry: fix-encoding-pragma + description: 'Add # -*- coding: utf-8 -*- to the top of python files' + files: \.py$ +- id: flake8 + name: Flake8 + description: This hook runs flake8. + entry: flake8 + language: python + files: \.py$ +- id: forbid-new-submodules + name: Forbid new submodules + language: python + entry: forbid-new-submodules + description: Prevent addition of new git submodules + files: '' +- id: name-tests-test + name: Tests should end in _test.py + description: This verifies that test files are named correctly + entry: name-tests-test + language: python + files: tests/.+\.py$ +- id: pyflakes + name: Pyflakes (DEPRECATED, use flake8) + description: This hook runs pyflakes. (This is deprecated, use flake8). + entry: pyflakes + language: python + files: \.py$ +- id: requirements-txt-fixer + name: Fix requirements.txt + description: Sorts entries in requirements.txt + entry: requirements-txt-fixer + language: python + files: requirements.*\.txt$ +- id: trailing-whitespace + name: Trim Trailing Whitespace + description: This hook trims trailing whitespace. + entry: trailing-whitespace-fixer + language: python + files: \.(asciidoc|adoc|coffee|cpp|css|c|ejs|erb|groovy|h|haml|hh|hpp|hxx|html|in|j2|jade|json|js|less|markdown|md|ml|mli|pp|py|rb|rs|R|scala|scss|sh|slim|tex|tmpl|ts|txt|yaml|yml)$ diff --git a/tests/meta_test.py b/tests/meta_test.py new file mode 100644 index 0000000..202b3d7 --- /dev/null +++ b/tests/meta_test.py @@ -0,0 +1,7 @@ +import io + + +def test_hooks_yaml_same_contents(): + legacy_contents = io.open('hooks.yaml').read() + contents = io.open('.pre-commit-hooks.yaml').read() + assert legacy_contents == contents