old_contents: #! /usr/bin/env python
  """ Script to validate YAML file(s) against a YAML schema file """
  
  from __future__ import print_function
  
  import argparse
  import os
  import sys
  
  try:
      import yaml
  except:
      print("Failed to import yaml.")
      print("You may need to install it with 'sudo pip install pyyaml'")
      print("")
      raise
  
  try:
      import cerberus
  except:
      print("Failed to import cerberus.")
      print("You may need to install it with 'sudo pip install cerberus'")
      print("")
      raise
  
  
  parser = argparse.ArgumentParser(description='Validate YAML file(s) against a schema')
  
  parser.add_argument('yaml_file', nargs='+', help='YAML config file(s)')
  parser.add_argument('--schema-file', type=str, action='store',
                      help='YAML schema file', required=True)
  parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
                      help='Verbose Output')
  
  args = parser.parse_args()
  schema_file = args.schema_file
  yaml_files = args.yaml_file
  verbose = args.verbose
  
  def load_yaml_file(file_name):
      with open(file_name, 'r') as stream:
          try:
              return yaml.safe_load(stream)
          except yaml.YAMLError as exc:
              print(exc)
              raise
  
  # load the schema
  schema = load_yaml_file(schema_file)
  validator = cerberus.Validator(schema)
  
  # validate yaml files
  for yaml_file in yaml_files:
      if verbose: print("Validating {:}".format(yaml_file))
      document = load_yaml_file(yaml_file)
      # ignore top-level entries prefixed with __
      for key in document.keys():
          if key.startswith('__'): del document[key]
  
      if not validator.validate(document):
          print("Validation Errors:")
          print(validator.errors)
          print("")
          raise Exception("Validation of {:} failed".format(yaml_file))
  
  
new_contents: #! /usr/bin/env python
  """ Script to validate YAML file(s) against a YAML schema file """
  
  from __future__ import print_function
  
  import argparse
  import os
  import sys
  
  try:
      import yaml
  except:
      print("Failed to import yaml.")
      print("You may need to install it with 'sudo pip install pyyaml'")
      print("")
      raise
  
  try:
      import cerberus
  except:
      print("Failed to import cerberus.")
      print("You may need to install it with 'sudo pip install cerberus'")
      print("")
      raise
  
  
  parser = argparse.ArgumentParser(description='Validate YAML file(s) against a schema')
  
  parser.add_argument('yaml_file', nargs='+', help='YAML config file(s)')
  parser.add_argument('--schema-file', type=str, action='store',
                      help='YAML schema file', required=True)
  parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
                      help='Verbose Output')
  
  args = parser.parse_args()
  schema_file = args.schema_file
  yaml_files = args.yaml_file
  verbose = args.verbose
  
  def load_yaml_file(file_name):
      with open(file_name, 'r') as stream:
          try:
              return yaml.safe_load(stream)
          except yaml.YAMLError as exc:
              print(exc)
              raise
  
  # load the schema
  schema = load_yaml_file(schema_file)
  validator = cerberus.Validator(schema)
  
  # validate yaml files
  for yaml_file in yaml_files:
      if verbose: print("Validating {:}".format(yaml_file))
      document = load_yaml_file(yaml_file)
      # ignore top-level entries prefixed with __
      for key in list(document.keys()):
          if key.startswith('__'): del document[key]
  
      if not validator.validate(document):
          print("Validation Errors:")
          print(validator.errors)
          print("")
          raise Exception("Validation of {:} failed".format(yaml_file))
  
  
subject: fix for python3