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}