old_contents: from __future__ import absolute_import
  import argparse
  import json
  import sys
  
  from jsonschema._reflect import namedAny
  from jsonschema.validators import validator_for
  
  
  def _namedAnyWithDefault(name):
      if "." not in name:
          name = "jsonschema." + name
      return namedAny(name)
  
  
  def _json_file(path):
      with open(path) as file:
          return json.load(file)
  
  
  parser = argparse.ArgumentParser(
      description="JSON Schema Validation CLI",
  )
  parser.add_argument(
      "-i", "--instance",
      action="append",
      dest="instances",
      type=_json_file,
      help=(
          "a path to a JSON instance (i.e. filename.json)"
          "to validate (may be specified multiple times)"
      ),
  )
  parser.add_argument(
      "-F", "--error-format",
      default="{error.instance}: {error.message}\n",
      help=(
          "the format to use for each error output message, specified in "
          "a form suitable for passing to str.format, which will be called "
          "with 'error' for each error"
      ),
  )
  parser.add_argument(
      "-V", "--validator",
      type=_namedAnyWithDefault,
      help=(
          "the fully qualified object name of a validator to use, or, for "
          "validators that are registered with jsonschema, simply the name "
          "of the class."
      ),
  )
  parser.add_argument(
      "schema",
      help="the JSON Schema to validate with (i.e. filename.schema)",
      type=_json_file,
  )
  
  
  def parse_args(args):
      arguments = vars(parser.parse_args(args=args or ["--help"]))
      if arguments["validator"] is None:
          arguments["validator"] = validator_for(arguments["schema"])
      return arguments
  
  
  def main(args=sys.argv[1:]):
      sys.exit(run(arguments=parse_args(args=args)))
  
  
  def run(arguments, stdout=sys.stdout, stderr=sys.stderr):
      error_format = arguments["error_format"]
      validator = arguments["validator"](schema=arguments["schema"])
  
      validator.check_schema(arguments["schema"])
  
      errored = False
      for instance in arguments["instances"] or ():
          for error in validator.iter_errors(instance):
              stderr.write(error_format.format(error=error))
              errored = True
      return errored
  
new_contents: from __future__ import absolute_import
  import argparse
  import json
  import sys
  
  from jsonschema import __version__
  from jsonschema._reflect import namedAny
  from jsonschema.validators import validator_for
  
  
  def _namedAnyWithDefault(name):
      if "." not in name:
          name = "jsonschema." + name
      return namedAny(name)
  
  
  def _json_file(path):
      with open(path) as file:
          return json.load(file)
  
  
  parser = argparse.ArgumentParser(
      description="JSON Schema Validation CLI",
  )
  parser.add_argument(
      "-i", "--instance",
      action="append",
      dest="instances",
      type=_json_file,
      help=(
          "a path to a JSON instance (i.e. filename.json)"
          "to validate (may be specified multiple times)"
      ),
  )
  parser.add_argument(
      "-F", "--error-format",
      default="{error.instance}: {error.message}\n",
      help=(
          "the format to use for each error output message, specified in "
          "a form suitable for passing to str.format, which will be called "
          "with 'error' for each error"
      ),
  )
  parser.add_argument(
      "-V", "--validator",
      type=_namedAnyWithDefault,
      help=(
          "the fully qualified object name of a validator to use, or, for "
          "validators that are registered with jsonschema, simply the name "
          "of the class."
      ),
  )
  parser.add_argument(
      "--version",
      action='version',
      version=__version__,
  )
  parser.add_argument(
      "schema",
      help="the JSON Schema to validate with (i.e. filename.schema)",
      type=_json_file,
  )
  
  
  def parse_args(args):
      arguments = vars(parser.parse_args(args=args or ["--help"]))
      if arguments["validator"] is None:
          arguments["validator"] = validator_for(arguments["schema"])
      return arguments
  
  
  def main(args=sys.argv[1:]):
      sys.exit(run(arguments=parse_args(args=args)))
  
  
  def run(arguments, stdout=sys.stdout, stderr=sys.stderr):
      error_format = arguments["error_format"]
      validator = arguments["validator"](schema=arguments["schema"])
  
      validator.check_schema(arguments["schema"])
  
      errored = False
      for instance in arguments["instances"] or ():
          for error in validator.iter_errors(instance):
              stderr.write(error_format.format(error=error))
              errored = True
      return errored
  
subject: Add --version argument