Use 0.15.0 types

This commit is contained in:
Anthony Sottile 2017-07-02 20:57:10 -07:00
parent 5e4e5b3bcb
commit abea6d293d
4 changed files with 255 additions and 165 deletions

View file

@ -13,7 +13,7 @@
- id: requirements-txt-fixer - id: requirements-txt-fixer
- id: flake8 - id: flake8
- repo: https://github.com/pre-commit/pre-commit - repo: https://github.com/pre-commit/pre-commit
sha: v0.12.2 sha: v0.15.0
hooks: hooks:
- id: validate_config - id: validate_config
- id: validate_manifest - id: validate_manifest

View file

@ -3,109 +3,153 @@
description: "Runs autopep8 over python source. If you configure additional arguments you'll want to at least include -i." description: "Runs autopep8 over python source. If you configure additional arguments you'll want to at least include -i."
entry: autopep8-wrapper entry: autopep8-wrapper
language: python language: python
files: \.py$ types: [python]
args: [-i] args: [-i]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-added-large-files - id: check-added-large-files
name: Check for added large files name: Check for added large files
description: Prevent giant files from being committed description: Prevent giant files from being committed
entry: check-added-large-files entry: check-added-large-files
language: python language: python
# Match all files # for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-ast - id: check-ast
name: Check python ast name: Check python ast
description: Simply check whether the files parse as valid python. description: Simply check whether the files parse as valid python.
entry: check-ast entry: check-ast
language: python language: python
files: '\.py$' types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-byte-order-marker - id: check-byte-order-marker
name: Check for byte-order marker name: Check for byte-order marker
description: Forbid files which have a UTF-8 byte-order marker description: Forbid files which have a UTF-8 byte-order marker
entry: check-byte-order-marker entry: check-byte-order-marker
language: python language: python
files: '\.py$' types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-case-conflict - id: check-case-conflict
name: Check for case conflicts name: Check for case conflicts
description: Check for files that would conflict in case-insensitive filesystems description: Check for files that would conflict in case-insensitive filesystems
entry: check-case-conflict entry: check-case-conflict
language: python language: python
# Match all files # for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-docstring-first - id: check-docstring-first
name: Check docstring is first name: Check docstring is first
description: Checks a common error of defining a docstring after code. description: Checks a common error of defining a docstring after code.
entry: check-docstring-first entry: check-docstring-first
language: python language: python
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-json - id: check-json
name: Check JSON name: Check JSON
description: This hook checks json files for parseable syntax. description: This hook checks json files for parseable syntax.
entry: check-json entry: check-json
language: python language: python
files: \.json$ types: [json]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: pretty-format-json - id: pretty-format-json
name: Pretty format JSON name: Pretty format JSON
description: This hook sets a standard for formatting JSON files. description: This hook sets a standard for formatting JSON files.
entry: pretty-format-json entry: pretty-format-json
language: python language: python
files: \.json$ types: [json]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-merge-conflict - id: check-merge-conflict
name: Check for merge conflicts name: Check for merge conflicts
description: Check for files that contain merge conflict strings. description: Check for files that contain merge conflict strings.
entry: check-merge-conflict entry: check-merge-conflict
language: python language: python
# Match all files types: [text]
# for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-symlinks - id: check-symlinks
name: Check for broken symlinks name: Check for broken symlinks
description: Checks for symlinks which do not point to anything. description: Checks for symlinks which do not point to anything.
entry: check-symlinks entry: check-symlinks
language: python language: python
# Match all files
files: ''
types: [symlink] types: [symlink]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-xml - id: check-xml
name: Check Xml name: Check Xml
description: This hook checks xml files for parseable syntax. description: This hook checks xml files for parseable syntax.
entry: check-xml entry: check-xml
language: python language: python
files: \.xml$ types: [xml]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: check-yaml - id: check-yaml
name: Check Yaml name: Check Yaml
description: This hook checks yaml files for parseable syntax. description: This hook checks yaml files for parseable syntax.
entry: check-yaml entry: check-yaml
language: python language: python
files: \.(yaml|yml|eyaml)$ types: [yaml]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: debug-statements - id: debug-statements
name: Debug Statements (Python) name: Debug Statements (Python)
description: This hook checks that debug statements (pdb, ipdb, pudb) are not imported on commit. description: This hook checks that debug statements (pdb, ipdb, pudb) are not imported on commit.
entry: debug-statement-hook entry: debug-statement-hook
language: python language: python
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: detect-aws-credentials - id: detect-aws-credentials
name: Detect AWS Credentials name: Detect AWS Credentials
description: Detects *your* aws credentials from the aws cli credentials file description: Detects *your* aws credentials from the aws cli credentials file
entry: detect-aws-credentials entry: detect-aws-credentials
language: python language: python
types: [text]
# for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: detect-private-key - id: detect-private-key
name: Detect Private Key name: Detect Private Key
description: Detects the presence of private keys description: Detects the presence of private keys
entry: detect-private-key entry: detect-private-key
language: python language: python
types: [text]
# for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: double-quote-string-fixer - id: double-quote-string-fixer
name: Fix double quoted strings name: Fix double quoted strings
description: This hook replaces double quoted strings with single quoted strings description: This hook replaces double quoted strings with single quoted strings
entry: double-quote-string-fixer entry: double-quote-string-fixer
language: python language: python
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: end-of-file-fixer - id: end-of-file-fixer
name: Fix End of Files name: Fix End of Files
description: Ensures that a file is either empty, or ends with one newline. description: Ensures that a file is either empty, or ends with one newline.
entry: end-of-file-fixer entry: end-of-file-fixer
language: python 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)$ types: [text]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: file-contents-sorter - id: file-contents-sorter
name: File Contents Sorter name: File Contents Sorter
description: Sort the lines in specified files (defaults to alphabetical). You must provide list of target files as input in your .pre-commit-config.yaml file. description: Sort the lines in specified files (defaults to alphabetical). You must provide list of target files as input in your .pre-commit-config.yaml file.
@ -117,19 +161,27 @@
language: python language: python
entry: fix-encoding-pragma entry: fix-encoding-pragma
description: 'Add # -*- coding: utf-8 -*- to the top of python files' description: 'Add # -*- coding: utf-8 -*- to the top of python files'
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: flake8 - id: flake8
name: Flake8 name: Flake8
description: This hook runs flake8. description: This hook runs flake8.
entry: flake8 entry: flake8
language: python language: python
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: forbid-new-submodules - id: forbid-new-submodules
name: Forbid new submodules name: Forbid new submodules
language: python language: python
entry: forbid-new-submodules entry: forbid-new-submodules
description: Prevent addition of new git submodules description: Prevent addition of new git submodules
# for backward compatibility
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: name-tests-test - id: name-tests-test
name: Tests should end in _test.py name: Tests should end in _test.py
description: This verifies that test files are named correctly description: This verifies that test files are named correctly
@ -140,14 +192,19 @@
name: "Don't commit to branch" name: "Don't commit to branch"
entry: no-commit-to-branch entry: no-commit-to-branch
language: python language: python
files: .*
always_run: true always_run: true
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: pyflakes - id: pyflakes
name: Pyflakes (DEPRECATED, use flake8) name: Pyflakes (DEPRECATED, use flake8)
description: This hook runs pyflakes. (This is deprecated, use flake8). description: This hook runs pyflakes. (This is deprecated, use flake8).
entry: pyflakes entry: pyflakes
language: python language: python
files: \.py$ types: [python]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0
- id: requirements-txt-fixer - id: requirements-txt-fixer
name: Fix requirements.txt name: Fix requirements.txt
description: Sorts entries in requirements.txt description: Sorts entries in requirements.txt
@ -165,4 +222,7 @@
description: This hook trims trailing whitespace. description: This hook trims trailing whitespace.
entry: trailing-whitespace-fixer entry: trailing-whitespace-fixer
language: python 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)$ types: [text]
# for backward compatibility
files: ''
minimum_pre_commit_version: 0.15.0

View file

@ -1,168 +1,162 @@
- id: autopep8-wrapper - id: autopep8-wrapper
name: autopep8 wrapper language: system
description: "Runs autopep8 over python source. If you configure additional arguments you'll want to at least include -i." name: upgrade-your-pre-commit-version
entry: autopep8-wrapper entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.py$ minimum_pre_commit_version: 0.15.0
args: [-i]
- id: check-added-large-files - id: check-added-large-files
name: Check for added large files language: system
description: Prevent giant files from being committed name: upgrade-your-pre-commit-version
entry: check-added-large-files entry: upgrade-your-pre-commit-version
language: python
# Match all files
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-ast - id: check-ast
name: Check python ast language: system
description: Simply check whether the files parse as valid python. name: upgrade-your-pre-commit-version
entry: check-ast entry: upgrade-your-pre-commit-version
language: python files: ''
files: '\.py$' minimum_pre_commit_version: 0.15.0
- id: check-byte-order-marker - id: check-byte-order-marker
name: Check for byte-order marker language: system
description: Forbid files which have a UTF-8 byte-order marker name: upgrade-your-pre-commit-version
entry: check-byte-order-marker entry: upgrade-your-pre-commit-version
language: python files: ''
files: '\.py$' minimum_pre_commit_version: 0.15.0
- id: check-case-conflict - id: check-case-conflict
name: Check for case conflicts language: system
description: Check for files that would conflict in case-insensitive filesystems name: upgrade-your-pre-commit-version
entry: check-case-conflict entry: upgrade-your-pre-commit-version
language: python
# Match all files
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-docstring-first - id: check-docstring-first
name: Check docstring is first language: system
description: Checks a common error of defining a docstring after code. name: upgrade-your-pre-commit-version
entry: check-docstring-first entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.py$ minimum_pre_commit_version: 0.15.0
- id: check-json - id: check-json
name: Check JSON language: system
description: This hook checks json files for parseable syntax. name: upgrade-your-pre-commit-version
entry: check-json entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.json$ minimum_pre_commit_version: 0.15.0
- id: pretty-format-json - id: pretty-format-json
name: Pretty format JSON language: system
description: This hook sets a standard for formatting JSON files. name: upgrade-your-pre-commit-version
entry: pretty-format-json entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.json$ minimum_pre_commit_version: 0.15.0
- id: check-merge-conflict - id: check-merge-conflict
name: Check for merge conflicts language: system
description: Check for files that contain merge conflict strings. name: upgrade-your-pre-commit-version
entry: check-merge-conflict entry: upgrade-your-pre-commit-version
language: python
# Match all files
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: check-symlinks - id: check-symlinks
name: Check for broken symlinks language: system
description: Checks for symlinks which do not point to anything. name: upgrade-your-pre-commit-version
entry: check-symlinks entry: upgrade-your-pre-commit-version
language: python
# Match all files
files: '' files: ''
types: [symlink] minimum_pre_commit_version: 0.15.0
- id: check-xml - id: check-xml
name: Check Xml language: system
description: This hook checks xml files for parseable syntax. name: upgrade-your-pre-commit-version
entry: check-xml entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.xml$ minimum_pre_commit_version: 0.15.0
- id: check-yaml - id: check-yaml
name: Check Yaml language: system
description: This hook checks yaml files for parseable syntax. name: upgrade-your-pre-commit-version
entry: check-yaml entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.(yaml|yml|eyaml)$ minimum_pre_commit_version: 0.15.0
- id: debug-statements - id: debug-statements
name: Debug Statements (Python) language: system
description: This hook checks that debug statements (pdb, ipdb, pudb) are not imported on commit. name: upgrade-your-pre-commit-version
entry: debug-statement-hook entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.py$ minimum_pre_commit_version: 0.15.0
- id: detect-aws-credentials - id: detect-aws-credentials
name: Detect AWS Credentials language: system
description: Detects *your* aws credentials from the aws cli credentials file name: upgrade-your-pre-commit-version
entry: detect-aws-credentials entry: upgrade-your-pre-commit-version
language: python
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: detect-private-key - id: detect-private-key
name: Detect Private Key language: system
description: Detects the presence of private keys name: upgrade-your-pre-commit-version
entry: detect-private-key entry: upgrade-your-pre-commit-version
language: python
files: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: double-quote-string-fixer - id: double-quote-string-fixer
name: Fix double quoted strings language: system
description: This hook replaces double quoted strings with single quoted strings name: upgrade-your-pre-commit-version
entry: double-quote-string-fixer entry: upgrade-your-pre-commit-version
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: file-contents-sorter
name: File Contents Sorter
description: Sort the lines in specified files (defaults to alphabetical). You must provide list of target files as input in your .pre-commit-config.yaml file.
entry: file-contents-sorter
language: python
files: '^$'
- 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: '' files: ''
minimum_pre_commit_version: 0.15.0
- id: end-of-file-fixer
language: system
name: upgrade-your-pre-commit-version
entry: upgrade-your-pre-commit-version
files: ''
minimum_pre_commit_version: 0.15.0
- id: file-contents-sorter
language: system
name: upgrade-your-pre-commit-version
entry: upgrade-your-pre-commit-version
files: ''
minimum_pre_commit_version: 0.15.0
- id: fix-encoding-pragma
language: system
name: upgrade-your-pre-commit-version
entry: upgrade-your-pre-commit-version
files: ''
minimum_pre_commit_version: 0.15.0
- id: flake8
language: system
name: upgrade-your-pre-commit-version
entry: upgrade-your-pre-commit-version
files: ''
minimum_pre_commit_version: 0.15.0
- id: forbid-new-submodules
language: system
name: upgrade-your-pre-commit-version
entry: upgrade-your-pre-commit-version
files: ''
minimum_pre_commit_version: 0.15.0
- id: name-tests-test - id: name-tests-test
name: Tests should end in _test.py language: system
description: This verifies that test files are named correctly name: upgrade-your-pre-commit-version
entry: name-tests-test entry: upgrade-your-pre-commit-version
language: python files: ''
files: tests/.+\.py$ minimum_pre_commit_version: 0.15.0
- id: no-commit-to-branch - id: no-commit-to-branch
name: "Don't commit to branch" language: system
entry: no-commit-to-branch name: upgrade-your-pre-commit-version
language: python entry: upgrade-your-pre-commit-version
files: .* files: ''
always_run: true minimum_pre_commit_version: 0.15.0
- id: pyflakes - id: pyflakes
name: Pyflakes (DEPRECATED, use flake8) language: system
description: This hook runs pyflakes. (This is deprecated, use flake8). name: upgrade-your-pre-commit-version
entry: pyflakes entry: upgrade-your-pre-commit-version
language: python files: ''
files: \.py$ minimum_pre_commit_version: 0.15.0
- id: requirements-txt-fixer - id: requirements-txt-fixer
name: Fix requirements.txt language: system
description: Sorts entries in requirements.txt name: upgrade-your-pre-commit-version
entry: requirements-txt-fixer entry: upgrade-your-pre-commit-version
language: python files: ''
files: requirements.*\.txt$ minimum_pre_commit_version: 0.15.0
- id: sort-simple-yaml - id: sort-simple-yaml
name: Sort simple YAML files language: system
language: python name: upgrade-your-pre-commit-version
entry: sort-simple-yaml entry: upgrade-your-pre-commit-version
description: Sorts simple YAML files which consist only of top-level keys, preserving comments and blocks. files: ''
files: '^$' minimum_pre_commit_version: 0.15.0
- id: trailing-whitespace - id: trailing-whitespace
name: Trim Trailing Whitespace language: system
description: This hook trims trailing whitespace. name: upgrade-your-pre-commit-version
entry: trailing-whitespace-fixer entry: upgrade-your-pre-commit-version
language: python files: ''
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)$ minimum_pre_commit_version: 0.15.0

View file

@ -1,7 +1,43 @@
from __future__ import absolute_import
from __future__ import unicode_literals
import io import io
import yaml
def test_hooks_yaml_same_contents():
legacy_contents = io.open('hooks.yaml').read() def _assert_parseable_in_old_pre_commit(hooks):
contents = io.open('.pre-commit-hooks.yaml').read() for hook in hooks:
assert legacy_contents == contents assert {'id', 'name', 'entry', 'files', 'language'} <= set(hook)
def test_legacy_hooks():
with io.open('hooks.yaml') as legacy_file:
legacy = yaml.load(legacy_file.read())
with io.open('.pre-commit-hooks.yaml') as hooks_file:
hooks = yaml.load(hooks_file.read())
# The same set of hooks should be defined in both files
new_hook_ids = {hook['id'] for hook in hooks}
legacy_hook_ids = {hook['id'] for hook in legacy}
assert new_hook_ids == legacy_hook_ids
# Both files should be parseable by pre-commit<0.15.0
_assert_parseable_in_old_pre_commit(legacy)
_assert_parseable_in_old_pre_commit(hooks)
# The legacy file should force upgrading
for hook in legacy:
del hook['id']
assert hook == {
'language': 'system',
'name': 'upgrade-your-pre-commit-version',
'entry': 'upgrade-your-pre-commit-version',
'files': '',
'minimum_pre_commit_version': '0.15.0',
}
# Each hook should require a new version if it uses types
for hook in hooks:
if 'types' in hook:
assert hook['minimum_pre_commit_version'] == '0.15.0'