Merge pull request #28 from pre-commit/use_c_loader Use the CLoader when present to validate yaml
diff --git a/.travis.yml b/.travis.yml index 720eec7..39d83d3 100644 --- a/.travis.yml +++ b/.travis.yml
@@ -5,7 +5,6 @@ - TOXENV=py33 - TOXENV=py34 - TOXENV=pypy - - TOXENV=pypy3 install: pip install coveralls tox --use-mirrors script: tox # Special snowflake. Our tests depend on making real commits.
diff --git a/pre_commit_hooks/check_yaml.py b/pre_commit_hooks/check_yaml.py index 0085807..293352f 100644 --- a/pre_commit_hooks/check_yaml.py +++ b/pre_commit_hooks/check_yaml.py
@@ -6,6 +6,12 @@ import yaml +try: + from yaml.cyaml import CLoader as Loader +except ImportError: # pragma: no cover (no libyaml-dev / pypy) + Loader = yaml.Loader + + def check_yaml(argv=None): parser = argparse.ArgumentParser() parser.add_argument('filenames', nargs='*', help='Yaml filenames to check.') @@ -14,7 +20,7 @@ retval = 0 for filename in args.filenames: try: - yaml.load(open(filename)) + yaml.load(open(filename), Loader=Loader) except yaml.YAMLError as exc: print(exc) retval = 1
diff --git a/tox.ini b/tox.ini index b37a773..4b043ba 100644 --- a/tox.ini +++ b/tox.ini
@@ -1,7 +1,7 @@ [tox] project = pre_commit_hooks # These should match the travis env list -envlist = py26,py27,py33,py34,pypy,pypy3 +envlist = py26,py27,py33,py34,pypy [testenv] install_command = pip install --use-wheel {opts} {packages}