Skip to content

Instantly share code, notes, and snippets.

@lenards
Last active February 17, 2016 17:52
Show Gist options
  • Save lenards/8bc83707ae48cdee4df4 to your computer and use it in GitHub Desktop.
Save lenards/8bc83707ae48cdee4df4 to your computer and use it in GitHub Desktop.
A variation of the pre-commit-hook of the same name: [check_yaml.py](https://github.com/pre-commit/pre-commit-hooks/blob/master/pre_commit_hooks/check_yaml.py)
#!/usr/bin/env python
"""
Code governed by [LICENSE](https://github.com/pre-commit/pre-commit-hooks/blob/master/LICENSE)
Thank you pre-commit dev team: Anthony Sottile, Ken Struys
Original source:
- https://github.com/pre-commit/pre-commit-hooks/blob/master/pre_commit_hooks/check_yaml.py
This is from commit [e1c091a4e31b346bbe9b2bffc33ccf4e82ef1beb](https://github.com/pre-commit/pre-commit-hooks/blob/e1c091a4e31b346bbe9b2bffc33ccf4e82ef1beb/pre_commit_hooks/check_yaml.py)
"""
import argparse
import sys
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.')
args = parser.parse_args(argv)
retval = 0
for filename in args.filenames:
try:
yaml.load(open(filename), Loader=Loader)
print "Successful ..."
except yaml.YAMLError as exc:
print exc
retval = 1
return retval
if __name__ == '__main__':
sys.exit(check_yaml())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment