summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jsonschema-0.6/build/lib.linux-x86_64-2.6/jsonschema.py658
-rw-r--r--jsonschema-0.6/debian/README.Debian6
-rw-r--r--jsonschema-0.6/debian/README.source9
-rw-r--r--jsonschema-0.6/debian/changelog5
-rw-r--r--jsonschema-0.6/debian/compat1
-rw-r--r--jsonschema-0.6/debian/control14
-rw-r--r--jsonschema-0.6/debian/copyright42
-rw-r--r--jsonschema-0.6/debian/docs1
-rw-r--r--jsonschema-0.6/debian/emacsen-install.ex45
-rw-r--r--jsonschema-0.6/debian/emacsen-remove.ex15
-rw-r--r--jsonschema-0.6/debian/emacsen-startup.ex25
-rw-r--r--jsonschema-0.6/debian/files1
-rw-r--r--jsonschema-0.6/debian/init.d.ex154
-rw-r--r--jsonschema-0.6/debian/manpage.1.ex59
-rw-r--r--jsonschema-0.6/debian/manpage.sgml.ex154
-rw-r--r--jsonschema-0.6/debian/manpage.xml.ex291
-rw-r--r--jsonschema-0.6/debian/menu.ex2
-rw-r--r--jsonschema-0.6/debian/postinst.ex39
-rw-r--r--jsonschema-0.6/debian/postrm.ex37
-rw-r--r--jsonschema-0.6/debian/preinst.ex35
-rw-r--r--jsonschema-0.6/debian/prerm.ex38
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.cron.d.ex4
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.debhelper.log45
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.default.ex10
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.doc-base.EX20
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.postinst.debhelper5
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.prerm.debhelper5
-rw-r--r--jsonschema-0.6/debian/python-jsonschema.substvars4
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/DEBIAN/control12
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/DEBIAN/md5sums7
-rwxr-xr-xjsonschema-0.6/debian/python-jsonschema/DEBIAN/postinst7
-rwxr-xr-xjsonschema-0.6/debian/python-jsonschema/DEBIAN/prerm7
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.Debian6
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.rst135
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/changelog.Debian.gzbin0 -> 181 bytes
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/copyright42
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema-0.6.egg-info158
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema.py658
-rw-r--r--jsonschema-0.6/debian/python-jsonschema/usr/share/python-support/python-jsonschema.public4
-rw-r--r--jsonschema-0.6/debian/pyversions1
-rwxr-xr-xjsonschema-0.6/debian/rules13
-rw-r--r--jsonschema-0.6/debian/source/format1
-rw-r--r--jsonschema-0.6/debian/watch.ex23
-rw-r--r--jsonschema-0.6/jsonschema.pycbin0 -> 23331 bytes
-rw-r--r--python-jsonschema_0.6-1.debian.tar.gzbin0 -> 11232 bytes
-rw-r--r--python-jsonschema_0.6-1.dsc40
-rw-r--r--python-jsonschema_0.6-1_all.debbin0 -> 10408 bytes
-rw-r--r--python-jsonschema_0.6-1_amd64.build129
-rw-r--r--python-jsonschema_0.6-1_amd64.changes53
-rw-r--r--python-jsonschema_0.6.orig.tar.gzbin0 -> 13779 bytes
50 files changed, 3020 insertions, 0 deletions
diff --git a/jsonschema-0.6/build/lib.linux-x86_64-2.6/jsonschema.py b/jsonschema-0.6/build/lib.linux-x86_64-2.6/jsonschema.py
new file mode 100644
index 0000000..9910c84
--- /dev/null
+++ b/jsonschema-0.6/build/lib.linux-x86_64-2.6/jsonschema.py
@@ -0,0 +1,658 @@
+"""
+An implementation of JSON Schema for Python
+
+The main functionality is provided by the :class:`Validator` class, with the
+:function:`validate` function being the most common way to quickly create a
+:class:`Validator` object and validate an instance with a given schema.
+
+The :class:`Validator` class generally attempts to be as strict as possible
+under the JSON Schema specification. See its docstring for details.
+
+"""
+
+from __future__ import division, unicode_literals
+
+import collections
+import itertools
+import operator
+import re
+import sys
+import warnings
+
+
+PY3 = sys.version_info[0] >= 3
+
+if PY3:
+ basestring = unicode = str
+ iteritems = operator.methodcaller("items")
+else:
+ from itertools import izip as zip
+ iteritems = operator.methodcaller("iteritems")
+
+
+def _uniq(container):
+ """
+ Check if all of a container's elements are unique.
+
+ Successively tries first to rely that the elements are hashable, then
+ falls back on them being sortable, and finally falls back on brute
+ force.
+
+ """
+
+ try:
+ return len(set(container)) == len(container)
+ except TypeError:
+ try:
+ sort = sorted(container)
+ sliced = itertools.islice(container, 1, None)
+ for i, j in zip(container, sliced):
+ if i == j:
+ return False
+ except (NotImplementedError, TypeError):
+ seen = []
+ for e in container:
+ if e in seen:
+ return False
+ seen.append(e)
+ return True
+
+
+__version__ = "0.6"
+
+
+DRAFT_3 = {
+ "$schema" : "http://json-schema.org/draft-03/schema#",
+ "id" : "http://json-schema.org/draft-03/schema#",
+ "type" : "object",
+
+ "properties" : {
+ "type" : {
+ "type" : ["string", "array"],
+ "items" : {"type" : ["string", {"$ref" : "#"}]},
+ "uniqueItems" : True,
+ "default" : "any"
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {"$ref" : "#", "type": "object"},
+ "default" : {}
+ },
+ "patternProperties" : {
+ "type" : "object",
+ "additionalProperties" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "additionalProperties" : {
+ "type" : [{"$ref" : "#"}, "boolean"], "default" : {}
+ },
+ "items" : {
+ "type" : [{"$ref" : "#"}, "array"],
+ "items" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "additionalItems" : {
+ "type" : [{"$ref" : "#"}, "boolean"], "default" : {}
+ },
+ "required" : {"type" : "boolean", "default" : False},
+ "dependencies" : {
+ "type" : ["string", "array", "object"],
+ "additionalProperties" : {
+ "type" : ["string", "array", {"$ref" : "#"}],
+ "items" : {"type" : "string"}
+ },
+ "default" : {}
+ },
+ "minimum" : {"type" : "number"},
+ "maximum" : {"type" : "number"},
+ "exclusiveMinimum" : {"type" : "boolean", "default" : False},
+ "exclusiveMaximum" : {"type" : "boolean", "default" : False},
+ "minItems" : {"type" : "integer", "minimum" : 0, "default" : 0},
+ "maxItems" : {"type" : "integer", "minimum" : 0},
+ "uniqueItems" : {"type" : "boolean", "default" : False},
+ "pattern" : {"type" : "string", "format" : "regex"},
+ "minLength" : {"type" : "integer", "minimum" : 0, "default" : 0},
+ "maxLength" : {"type" : "integer"},
+ "enum" : {"type" : "array", "minItems" : 1, "uniqueItems" : True},
+ "default" : {"type" : "any"},
+ "title" : {"type" : "string"},
+ "description" : {"type" : "string"},
+ "format" : {"type" : "string"},
+ "maxDecimal" : {"type" : "number", "minimum" : 0},
+ "divisibleBy" : {
+ "type" : "number",
+ "minimum" : 0,
+ "exclusiveMinimum" : True,
+ "default" : 1
+ },
+ "disallow" : {
+ "type" : ["string", "array"],
+ "items" : {"type" : ["string", {"$ref" : "#"}]},
+ "uniqueItems" : True
+ },
+ "extends" : {
+ "type" : [{"$ref" : "#"}, "array"],
+ "items" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "id" : {"type" : "string", "format" : "uri"},
+ "$ref" : {"type" : "string", "format" : "uri"},
+ "$schema" : {"type" : "string", "format" : "uri"},
+ },
+ "dependencies" : {
+ "exclusiveMinimum" : "minimum", "exclusiveMaximum" : "maximum"
+ },
+}
+
+EPSILON = 10 ** -15
+
+
+class SchemaError(Exception):
+ """
+ The provided schema is malformed.
+
+ The same attributes exist for ``SchemaError``s as for ``ValidationError``s.
+
+ """
+
+ validator = None
+
+ def __init__(self, message):
+ super(SchemaError, self).__init__(message)
+ self.message = message
+ self.path = []
+
+
+class ValidationError(Exception):
+ """
+ The instance didn't properly validate with the provided schema.
+
+ Relevant attributes are:
+ * ``message`` : a human readable message explaining the error
+ * ``path`` : a list containing the path to the offending element (or []
+ if the error happened globally) in *reverse* order (i.e.
+ deepest index first).
+
+ """
+
+ # the failing validator will be set externally at whatever recursion level
+ # is immediately above the validation failure
+ validator = None
+
+ def __init__(self, message):
+ super(ValidationError, self).__init__(message)
+ self.message = message
+
+ # Any validator that recurses must append to the ValidationError's
+ # path (e.g., properties and items)
+ self.path = []
+
+
+class Validator(object):
+ """
+ A JSON Schema validator.
+
+ """
+
+ DEFAULT_TYPES = {
+ "array" : list, "boolean" : bool, "integer" : int, "null" : type(None),
+ "number" : (int, float), "object" : dict, "string" : basestring,
+ }
+
+ def __init__(
+ self, version=DRAFT_3, unknown_type="skip",
+ unknown_property="skip", types=(),
+ ):
+ """
+ Initialize a Validator.
+
+ ``version`` specifies which version of the JSON Schema specification to
+ validate with. Currently only draft-03 is supported (and is the
+ default).
+
+ ``unknown_type`` and ``unknown_property`` control what to do when an
+ unknown type (resp. property) is encountered. By default, the
+ metaschema is respected (which e.g. for draft 3 allows a schema to have
+ additional properties), but if for some reason you want to modify this
+ behavior, you can do so without needing to modify the metaschema by
+ passing ``"error"`` or ``"warn"`` to these arguments.
+
+ ``types`` is a mapping (or iterable of 2-tuples) containing additional
+ types or alternate types to verify via the 'type' property. For
+ instance, the default types for the 'number' JSON Schema type are
+ ``int`` and ``float``. To override this behavior (e.g. for also
+ allowing ``decimal.Decimal``), pass ``types={"number" : (int, float,
+ decimal.Decimal)} *including* the default types if so desired, which
+ are fairly obvious but can be accessed via ``Validator.DEFAULT_TYPES``
+ if necessary.
+
+ """
+
+ self._unknown_type = unknown_type
+ self._unknown_property = unknown_property
+ self._version = version
+
+ self._types = dict(self.DEFAULT_TYPES)
+ self._types.update(types)
+ self._types["any"] = tuple(self._types.values())
+
+ def is_type(self, instance, type):
+ """
+ Check if an ``instance`` is of the provided ``type``.
+
+ """
+
+ py_type = self._types.get(type)
+
+ if py_type is None:
+ return self.schema_error(
+ self._unknown_type, "%r is not a known type" % (type,)
+ )
+
+ # the only thing we're careful about here is evading bool inheriting
+ # from int, so let's be even dirtier than usual
+
+ elif (
+ # it's not a bool, so no worries
+ not isinstance(instance, bool) or
+
+ # it is a bool, but we're checking for a bool, so no worries
+ (
+ py_type is bool or
+ isinstance(py_type, tuple) and bool in py_type
+ )
+
+ ):
+ return isinstance(instance, py_type)
+
+ def schema_error(self, level, msg):
+ if level == "skip":
+ return
+ elif level == "warn":
+ warnings.warn(msg)
+ else:
+ raise SchemaError(msg)
+
+ def is_valid(self, instance, schema, meta_validate=True):
+ """
+ Check if the ``instance`` is valid under the ``schema``.
+
+ Returns a bool indicating whether validation succeeded.
+
+ """
+
+ error = next(self.iter_errors(instance, schema, meta_validate), None)
+ return error is None
+
+ def iter_errors(self, instance, schema, meta_validate=True):
+ """
+ Lazily yield each of the errors in the given ``instance``.
+
+ If you are unsure whether your schema itself is valid,
+ ``meta_validate`` will first validate that the schema is valid before
+ attempting to validate the instance. ``meta_validate`` is ``True`` by
+ default, since setting it to ``False`` can lead to confusing error
+ messages with an invalid schema. If you're sure your schema is in fact
+ valid, or don't care, feel free to set this to ``False``. The meta
+ validation will be done using the appropriate ``version``.
+
+ """
+
+ if meta_validate:
+ for error in self.iter_errors(
+ schema, self._version, meta_validate=False
+ ):
+ s = SchemaError(error.message)
+ s.path = error.path
+ s.validator = error.validator
+ # I think we're safer raising these always, not yielding them
+ raise s
+
+ for k, v in iteritems(schema):
+ validator = getattr(self, "validate_%s" % (k.lstrip("$"),), None)
+
+ if validator is None:
+ errors = self.unknown_property(k, instance, schema)
+ else:
+ errors = validator(v, instance, schema)
+
+ for error in errors or ():
+ # if the validator hasn't already been set (due to recursion)
+ # make sure to set it
+ error.validator = error.validator or k
+ yield error
+
+ def validate(self, *args, **kwargs):
+ """
+ Validate an ``instance`` under the given ``schema``.
+
+ """
+
+ for error in self.iter_errors(*args, **kwargs):
+ raise error
+
+ def unknown_property(self, property, instance, schema):
+ self.schema_error(
+ self._unknown_property,
+ "%r is not a known schema property" % (property,)
+ )
+
+ def validate_type(self, types, instance, schema):
+ types = _list(types)
+
+ for type in types:
+ # Ouch. Brain hurts. Two paths here, either we have a schema, then
+ # check if the instance is valid under it
+ if ((
+ self.is_type(type, "object") and
+ self.is_valid(instance, type)
+
+ # Or we have a type as a string, just check if the instance is that
+ # type. Also, HACK: we can reach the `or` here if skip_types is
+ # something other than error. If so, bail out.
+
+ ) or (
+ self.is_type(type, "string") and
+ (self.is_type(instance, type) or type not in self._types)
+ )):
+ return
+ else:
+ yield ValidationError(
+ "%r is not of type %r" % (instance, _delist(types))
+ )
+
+ def validate_properties(self, properties, instance, schema):
+ if not self.is_type(instance, "object"):
+ return
+
+ for property, subschema in iteritems(properties):
+ if property in instance:
+ for error in self.iter_errors(
+ instance[property], subschema, meta_validate=False
+ ):
+ error.path.append(property)
+ yield error
+ elif subschema.get("required", False):
+ error = ValidationError(
+ "%r is a required property" % (property,)
+ )
+ error.path.append(property)
+ error.validator = "required"
+ yield error
+
+ def validate_patternProperties(self, patternProperties, instance, schema):
+ for pattern, subschema in iteritems(patternProperties):
+ for k, v in iteritems(instance):
+ if re.match(pattern, k):
+ for error in self.iter_errors(
+ v, subschema, meta_validate=False
+ ):
+ yield error
+
+ def validate_additionalProperties(self, aP, instance, schema):
+ if not self.is_type(instance, "object"):
+ return
+
+ # no viewkeys in <2.7, and pypy seems to fail on vk - vk anyhow, so...
+ extras = set(instance) - set(schema.get("properties", {}))
+
+ if self.is_type(aP, "object"):
+ for extra in extras:
+ for error in self.iter_errors(
+ instance[extra], aP, meta_validate=False
+ ):
+ yield error
+ elif not aP and extras:
+ error = "Additional properties are not allowed (%s %s unexpected)"
+ yield ValidationError(error % _extras_msg(extras))
+
+ def validate_dependencies(self, dependencies, instance, schema):
+ for property, dependency in iteritems(dependencies):
+ if property not in instance:
+ continue
+
+ if self.is_type(dependency, "object"):
+ for error in self.iter_errors(
+ instance, dependency, meta_validate=False
+ ):
+ yield error
+ else:
+ dependencies = _list(dependency)
+ for dependency in dependencies:
+ if dependency not in instance:
+ yield ValidationError(
+ "%r is a dependency of %r" % (dependency, property)
+ )
+
+ def validate_items(self, items, instance, schema):
+ if not self.is_type(instance, "array"):
+ return
+
+ if self.is_type(items, "object"):
+ for index, item in enumerate(instance):
+ for error in self.iter_errors(
+ item, items, meta_validate=False
+ ):
+ error.path.append(index)
+ yield error
+ else:
+ for (index, item), subschema in zip(enumerate(instance), items):
+ for error in self.iter_errors(
+ item, subschema, meta_validate=False
+ ):
+ error.path.append(index)
+ yield error
+
+ def validate_additionalItems(self, aI, instance, schema):
+ if not self.is_type(instance, "array"):
+ return
+
+ if self.is_type(aI, "object"):
+ for item in instance[len(schema):]:
+ for error in self.iter_errors(item, aI, meta_validate=False):
+ yield error
+ elif not aI and len(instance) > len(schema.get("items", [])):
+ error = "Additional items are not allowed (%s %s unexpected)"
+ yield ValidationError(
+ error % _extras_msg(instance[len(schema) - 1:])
+ )
+
+ def validate_minimum(self, minimum, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ instance = float(instance)
+ if schema.get("exclusiveMinimum", False):
+ failed = instance <= minimum
+ cmp = "less than or equal to"
+ else:
+ failed = instance < minimum
+ cmp = "less than"
+
+ if failed:
+ yield ValidationError(
+ "%r is %s the minimum of %r" % (instance, cmp, minimum)
+ )
+
+ def validate_maximum(self, maximum, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ instance = float(instance)
+ if schema.get("exclusiveMaximum", False):
+ failed = instance >= maximum
+ cmp = "greater than or equal to"
+ else:
+ failed = instance > maximum
+ cmp = "greater than"
+
+ if failed:
+ yield ValidationError(
+ "%r is %s the maximum of %r" % (instance, cmp, maximum)
+ )
+
+ def validate_minItems(self, mI, instance, schema):
+ if self.is_type(instance, "array") and len(instance) < mI:
+ yield ValidationError("%r is too short" % (instance,))
+
+ def validate_maxItems(self, mI, instance, schema):
+ if self.is_type(instance, "array") and len(instance) > mI:
+ yield ValidationError("%r is too long" % (instance,))
+
+ def validate_uniqueItems(self, uI, instance, schema):
+ if uI and self.is_type(instance, "array") and not _uniq(instance):
+ yield ValidationError("%r has non-unique elements" % instance)
+
+ def validate_pattern(self, patrn, instance, schema):
+ if self.is_type(instance, "string") and not re.match(patrn, instance):
+ yield ValidationError("%r does not match %r" % (instance, patrn))
+
+ def validate_minLength(self, mL, instance, schema):
+ if self.is_type(instance, "string") and len(instance) < mL:
+ yield ValidationError("%r is too short" % (instance,))
+
+ def validate_maxLength(self, mL, instance, schema):
+ if self.is_type(instance, "string") and len(instance) > mL:
+ yield ValidationError("%r is too long" % (instance,))
+
+ def validate_enum(self, enums, instance, schema):
+ if instance not in enums:
+ yield ValidationError("%r is not one of %r" % (instance, enums))
+
+ def validate_divisibleBy(self, dB, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ if isinstance(dB, float):
+ mod = instance % dB
+ failed = (mod > EPSILON) and (dB - mod) > EPSILON
+ else:
+ failed = instance % dB
+
+ if failed:
+ yield ValidationError("%r is not divisible by %r" % (instance, dB))
+
+ def validate_disallow(self, disallow, instance, schema):
+ for disallowed in _list(disallow):
+ if self.is_valid(instance, {"type" : [disallowed]}):
+ yield ValidationError(
+ "%r is disallowed for %r" % (disallowed, instance)
+ )
+
+ def validate_extends(self, extends, instance, schema):
+ if self.is_type(extends, "object"):
+ extends = [extends]
+ for subschema in extends:
+ for error in self.iter_errors(
+ instance, subschema, meta_validate=False
+ ):
+ yield error
+
+
+for no_op in [ # handled in:
+ "required", # properties
+ "exclusiveMinimum", "exclusiveMaximum", # min*/max*
+ "default", "description", "format", "id", # no validation needed
+ "links", "name", "title",
+ "ref", "schema", # not yet supported
+]:
+ setattr(Validator, "validate_" + no_op, lambda *args, **kwargs : None)
+
+
+class ErrorTree(object):
+ """
+ ErrorTrees make it easier to check which validations failed.
+
+ """
+
+ def __init__(self, errors=()):
+ self.errors = {}
+ self._contents = collections.defaultdict(self.__class__)
+
+ for error in errors:
+ container = self
+ for element in reversed(error.path):
+ container = container[element]
+ container.errors[error.validator] = error
+
+ def __contains__(self, k):
+ return k in self._contents
+
+ def __getitem__(self, k):
+ return self._contents[k]
+
+ def __setitem__(self, k, v):
+ self._contents[k] = v
+
+ def __iter__(self):
+ return iter(self._contents)
+
+ def __len__(self):
+ child_errors = sum(len(tree) for _, tree in iteritems(self._contents))
+ return len(self.errors) + child_errors
+
+ def __repr__(self):
+ return "<%s (%s errors)>" % (self.__class__.__name__, len(self))
+
+
+def _extras_msg(extras):
+ """
+ Create an error message for extra items or properties.
+
+ """
+
+ if len(extras) == 1:
+ verb = "was"
+ else:
+ verb = "were"
+ return ", ".join(repr(extra) for extra in extras), verb
+
+
+def _list(thing):
+ """
+ Wrap ``thing`` in a list if it's a single str.
+
+ Otherwise, return it unchanged.
+
+ """
+
+ if isinstance(thing, basestring):
+ return [thing]
+ return thing
+
+
+def _delist(thing):
+ """
+ Unwrap ``thing`` to a single element if its a single str in a list.
+
+ Otherwise, return it unchanged.
+
+ """
+
+ if (
+ isinstance(thing, list) and
+ len(thing) == 1
+ and isinstance(thing[0], basestring)
+ ):
+ return thing[0]
+ return thing
+
+
+def validate(
+ instance, schema, meta_validate=True, cls=Validator, *args, **kwargs
+):
+ """
+ Validate an ``instance`` under the given ``schema``.
+
+ By default, the :class:`Validator` class from this module is used to
+ perform the validation. To use another validator, pass it into the ``cls``
+ argument.
+
+ Any other provided positional and keyword arguments will be provided to the
+ ``cls``. See the :class:`Validator` class' docstring for details on the
+ arguments it accepts.
+
+ """
+
+ validator = cls(*args, **kwargs)
+ validator.validate(instance, schema, meta_validate=meta_validate)
diff --git a/jsonschema-0.6/debian/README.Debian b/jsonschema-0.6/debian/README.Debian
new file mode 100644
index 0000000..7dd7563
--- /dev/null
+++ b/jsonschema-0.6/debian/README.Debian
@@ -0,0 +1,6 @@
+python-jsonschema for Debian
+----------------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- Kristina Clair <kclair@leap.se> Wed, 03 Oct 2012 11:34:56 -0700
diff --git a/jsonschema-0.6/debian/README.source b/jsonschema-0.6/debian/README.source
new file mode 100644
index 0000000..408eac3
--- /dev/null
+++ b/jsonschema-0.6/debian/README.source
@@ -0,0 +1,9 @@
+python-jsonschema for Debian
+----------------------------
+
+<this file describes information about the source package, see Debian policy
+manual section 4.14. You WILL either need to modify or delete this file>
+
+
+
+
diff --git a/jsonschema-0.6/debian/changelog b/jsonschema-0.6/debian/changelog
new file mode 100644
index 0000000..b13938b
--- /dev/null
+++ b/jsonschema-0.6/debian/changelog
@@ -0,0 +1,5 @@
+python-jsonschema (0.6-1) unstable; urgency=low
+
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+
+ -- Kristina Clair <kclair@leap.se> Wed, 03 Oct 2012 11:34:56 -0700
diff --git a/jsonschema-0.6/debian/compat b/jsonschema-0.6/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/jsonschema-0.6/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/jsonschema-0.6/debian/control b/jsonschema-0.6/debian/control
new file mode 100644
index 0000000..7cbef5e
--- /dev/null
+++ b/jsonschema-0.6/debian/control
@@ -0,0 +1,14 @@
+Source: python-jsonschema
+Section: python
+Priority: optional
+Maintainer: Kristina Clair <kclair@leap.se>
+Build-Depends: debhelper (>= 7.0.50~), python-support, python (>=2.6)
+Standards-Version: 3.9.4.0
+Homepage: http://pypi.python.org/pypi/jsonschema
+
+Package: python-jsonschema
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: Provides the jsonschema python package
+ Provides the jsonschema python package,
+ which is an implementation of JSON Schema for python.
diff --git a/jsonschema-0.6/debian/copyright b/jsonschema-0.6/debian/copyright
new file mode 100644
index 0000000..e483d9c
--- /dev/null
+++ b/jsonschema-0.6/debian/copyright
@@ -0,0 +1,42 @@
+This work was packaged for Debian by:
+
+ Kristina Clair <kclair@leap.se> on Tue, 02 Oct 2012 22:53:20 -0700
+
+It was downloaded from:
+
+ http://pypi.python.org/packages/source/j/jsonschema/jsonschema-0.6.tar.gz
+
+Upstream Author(s):
+
+ Julian Berman
+
+Copyright:
+
+ Copyright (c) 2011 Julian Berman
+
+License:
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+The Debian packaging is:
+
+ Copyright (C) 2012 Kristina Clair <kclair@leap.se>
+
+ and is licensed under the GPL version 3,
+ see "/usr/share/common-licenses/GPL-3".
diff --git a/jsonschema-0.6/debian/docs b/jsonschema-0.6/debian/docs
new file mode 100644
index 0000000..a1320b1
--- /dev/null
+++ b/jsonschema-0.6/debian/docs
@@ -0,0 +1 @@
+README.rst
diff --git a/jsonschema-0.6/debian/emacsen-install.ex b/jsonschema-0.6/debian/emacsen-install.ex
new file mode 100644
index 0000000..2e3b34f
--- /dev/null
+++ b/jsonschema-0.6/debian/emacsen-install.ex
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/python-jsonschema
+
+# Written by Jim Van Zandt <jrv@debian.org>, borrowing heavily
+# from the install scripts for gettext by Santiago Vila
+# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
+
+FLAVOR=$1
+PACKAGE=python-jsonschema
+
+if [ ${FLAVOR} = emacs ]; then exit 0; fi
+
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+
+#FLAVORTEST=`echo $FLAVOR | cut -c-6`
+#if [ ${FLAVORTEST} = xemacs ] ; then
+# SITEFLAG="-no-site-file"
+#else
+# SITEFLAG="--no-site-file"
+#fi
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+
+# Install-info-altdir does not actually exist.
+# Maybe somebody will write it.
+if test -x /usr/sbin/install-info-altdir; then
+ echo install/${PACKAGE}: install Info links for ${FLAVOR}
+ install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/share/info/${PACKAGE}.info.gz
+fi
+
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cp ${FILES} ${ELCDIR}
+cd ${ELCDIR}
+
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+exit 0
diff --git a/jsonschema-0.6/debian/emacsen-remove.ex b/jsonschema-0.6/debian/emacsen-remove.ex
new file mode 100644
index 0000000..bc73c67
--- /dev/null
+++ b/jsonschema-0.6/debian/emacsen-remove.ex
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/python-jsonschema
+
+FLAVOR=$1
+PACKAGE=python-jsonschema
+
+if [ ${FLAVOR} != emacs ]; then
+ if test -x /usr/sbin/install-info-altdir; then
+ echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
+ install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/share/info/python-jsonschema.info.gz
+ fi
+
+ echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+ rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
diff --git a/jsonschema-0.6/debian/emacsen-startup.ex b/jsonschema-0.6/debian/emacsen-startup.ex
new file mode 100644
index 0000000..e1efeb7
--- /dev/null
+++ b/jsonschema-0.6/debian/emacsen-startup.ex
@@ -0,0 +1,25 @@
+;; -*-emacs-lisp-*-
+;;
+;; Emacs startup file, e.g. /etc/emacs/site-start.d/50python-jsonschema.el
+;; for the Debian python-jsonschema package
+;;
+;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
+;; Modified by Dirk Eddelbuettel <edd@debian.org>
+;; Adapted for dh-make by Jim Van Zandt <jrv@debian.org>
+
+;; The python-jsonschema package follows the Debian/GNU Linux 'emacsen' policy and
+;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
+;; xemacs19, emacs20, xemacs20...). The compiled code is then
+;; installed in a subdirectory of the respective site-lisp directory.
+;; We have to add this to the load-path:
+(let ((package-dir (concat "/usr/share/"
+ (symbol-name flavor)
+ "/site-lisp/python-jsonschema")))
+;; If package-dir does not exist, the python-jsonschema package must have
+;; removed but not purged, and we should skip the setup.
+ (when (file-directory-p package-dir)
+ (setq load-path (cons package-dir load-path))
+ (autoload 'python-jsonschema-mode "python-jsonschema-mode"
+ "Major mode for editing python-jsonschema files." t)
+ (add-to-list 'auto-mode-alist '("\\.python-jsonschema$" . python-jsonschema-mode))))
+
diff --git a/jsonschema-0.6/debian/files b/jsonschema-0.6/debian/files
new file mode 100644
index 0000000..de09905
--- /dev/null
+++ b/jsonschema-0.6/debian/files
@@ -0,0 +1 @@
+python-jsonschema_0.6-1_all.deb python optional
diff --git a/jsonschema-0.6/debian/init.d.ex b/jsonschema-0.6/debian/init.d.ex
new file mode 100644
index 0000000..02d24fd
--- /dev/null
+++ b/jsonschema-0.6/debian/init.d.ex
@@ -0,0 +1,154 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: python-jsonschema
+# Required-Start: $network $local_fs
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: <Enter a short description of the sortware>
+# Description: <Enter a long description of the software>
+# <...>
+# <...>
+### END INIT INFO
+
+# Author: Kristina Clair <kclair@leap.se>
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC=python-jsonschema # Introduce a short description here
+NAME=python-jsonschema # Introduce the short server's name here
+DAEMON=/usr/sbin/python-jsonschema # Introduce the server's location here
+DAEMON_ARGS="" # Arguments to run the daemon with
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x $DAEMON ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+ $DAEMON_ARGS \
+ || return 2
+ # Add code here, if necessary, that waits for the process to be ready
+ # to handle requests from services started subsequently which depend
+ # on this one. As a last resort, sleep for some time.
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ # Wait for children to finish too if this is a daemon that forks
+ # and if the daemon is only ever run from this initscript.
+ # If the above conditions are not satisfied then add some other code
+ # that waits for the process to drop all resources that could be
+ # needed by services started subsequently. A last resort is to
+ # sleep for some time.
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ [ "$?" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ #
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ #
+ start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+ return 0
+}
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+ ;;
+ #reload|force-reload)
+ #
+ # If do_reload() is not implemented then leave this commented out
+ # and leave 'force-reload' as an alias for 'restart'.
+ #
+ #log_daemon_msg "Reloading $DESC" "$NAME"
+ #do_reload
+ #log_end_msg $?
+ #;;
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented then remove the
+ # 'force-reload' alias
+ #
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/jsonschema-0.6/debian/manpage.1.ex b/jsonschema-0.6/debian/manpage.1.ex
new file mode 100644
index 0000000..72d98b9
--- /dev/null
+++ b/jsonschema-0.6/debian/manpage.1.ex
@@ -0,0 +1,59 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH PYTHON-JSONSCHEMA SECTION "October 3, 2012"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+python-jsonschema \- program to do something
+.SH SYNOPSIS
+.B python-jsonschema
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B python-jsonschema
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBpython-jsonschema\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+python-jsonschema was written by <upstream author>.
+.PP
+This manual page was written by Kristina Clair <kclair@leap.se>,
+for the Debian project (and may be used by others).
diff --git a/jsonschema-0.6/debian/manpage.sgml.ex b/jsonschema-0.6/debian/manpage.sgml.ex
new file mode 100644
index 0000000..9ff6206
--- /dev/null
+++ b/jsonschema-0.6/debian/manpage.sgml.ex
@@ -0,0 +1,154 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>October 3, 2012</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>kclair@leap.se</email>">
+ <!ENTITY dhusername "Kristina Clair">
+ <!ENTITY dhucpackage "<refentrytitle>PYTHON-JSONSCHEMA</refentrytitle>">
+ <!ENTITY dhpackage "python-jsonschema">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (and may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
diff --git a/jsonschema-0.6/debian/manpage.xml.ex b/jsonschema-0.6/debian/manpage.xml.ex
new file mode 100644
index 0000000..f3e32bb
--- /dev/null
+++ b/jsonschema-0.6/debian/manpage.xml.ex
@@ -0,0 +1,291 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+
+<!--
+
+`xsltproc -''-nonet \
+ -''-param man.charmap.use.subset "0" \
+ -''-param make.year.ranges "1" \
+ -''-param make.single.year.ranges "1" \
+ /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
+ manpage.xml'
+
+A manual page <package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A typical entry
+in a Makefile or Makefile.am is:
+
+DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/docbook-xsl/manpages/docbook.xsl
+XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
+
+manpage.1: manpage.xml
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The XSL files are in
+docbook-xsl. A description of the parameters you can use can be found in the
+docbook-xsl-doc-* packages. Please remember that if you create the nroff
+version in one of the debian/rules file targets (such as build), you will need
+to include xsltproc and docbook-xsl in your Build-Depends control field.
+Alternatively use the xmlto command/package. That will also automatically
+pull in xsltproc and docbook-xsl.
+
+Notes for using docbook2x: docbook2x-man does not automatically create the
+AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
+<refsect1> ... </refsect1>.
+
+To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
+read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
+found in the docbook-xsl-doc-html package.
+
+Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
+
+General documentation about man-pages and man-page-formatting:
+man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "FIRSTNAME">
+ <!ENTITY dhsurname "SURNAME">
+ <!-- dhusername could also be set to "&dhfirstname; &dhsurname;". -->
+ <!ENTITY dhusername "Kristina Clair">
+ <!ENTITY dhemail "kclair@leap.se">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1) and
+ http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
+ <!ENTITY dhsection "SECTION">
+ <!-- TITLE should be something like "User commands" or similar (see
+ http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
+ <!ENTITY dhtitle "python-jsonschema User Manual">
+ <!ENTITY dhucpackage "PYTHON-JSONSCHEMA">
+ <!ENTITY dhpackage "python-jsonschema">
+]>
+
+<refentry>
+ <refentryinfo>
+ <title>&dhtitle;</title>
+ <productname>&dhpackage;</productname>
+ <authorgroup>
+ <author>
+ <firstname>&dhfirstname;</firstname>
+ <surname>&dhsurname;</surname>
+ <contrib>Wrote this manpage for the Debian system.</contrib>
+ <address>
+ <email>&dhemail;</email>
+ </address>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>2007</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ <legalnotice>
+ <para>This manual page was written for the Debian system
+ (and may be used by others).</para>
+ <para>Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU General Public License,
+ Version 2 or (at your option) any later version published by
+ the Free Software Foundation.</para>
+ <para>On Debian systems, the complete text of the GNU General Public
+ License can be found in
+ <filename>/usr/share/common-licenses/GPL</filename>.</para>
+ </legalnotice>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>&dhucpackage;</refentrytitle>
+ <manvolnum>&dhsection;</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <!-- These are several examples, how syntaxes could look -->
+ <arg choice="plain"><option>-e <replaceable>this</replaceable></option></arg>
+ <arg choice="opt"><option>--example=<parameter>that</parameter></option></arg>
+ <arg choice="opt">
+ <group choice="req">
+ <arg choice="plain"><option>-e</option></arg>
+ <arg choice="plain"><option>--example</option></arg>
+ </group>
+ <replaceable class="option">this</replaceable>
+ </arg>
+ <arg choice="opt">
+ <group choice="req">
+ <arg choice="plain"><option>-e</option></arg>
+ <arg choice="plain"><option>--example</option></arg>
+ </group>
+ <group choice="req">
+ <arg choice="plain"><replaceable>this</replaceable></arg>
+ <arg choice="plain"><replaceable>that</replaceable></arg>
+ </group>
+ </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <!-- Normally the help and version options make the programs stop
+ right after outputting the requested information. -->
+ <group choice="opt">
+ <arg choice="plain">
+ <group choice="req">
+ <arg choice="plain"><option>-h</option></arg>
+ <arg choice="plain"><option>--help</option></arg>
+ </group>
+ </arg>
+ <arg choice="plain">
+ <group choice="req">
+ <arg choice="plain"><option>-v</option></arg>
+ <arg choice="plain"><option>--version</option></arg>
+ </group>
+ </arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description">
+ <title>DESCRIPTION</title>
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+ <para>This manual page was written for the Debian distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the GNU <citerefentry>
+ <refentrytitle>info</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry> format; see below.</para>
+ <para><command>&dhpackage;</command> is a program that...</para>
+ </refsect1>
+ <refsect1 id="options">
+ <title>OPTIONS</title>
+ <para>The program follows the usual GNU command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <citerefentry>
+ <refentrytitle>info</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry> files.</para>
+ <variablelist>
+ <!-- Use the variablelist.term.separator and the
+ variablelist.term.break.after parameters to
+ control the term elements. -->
+ <varlistentry>
+ <term><option>-e <replaceable>this</replaceable></option></term>
+ <term><option>--example=<replaceable>that</replaceable></option></term>
+ <listitem>
+ <para>Does this and that.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <term><option>--help</option></term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option></term>
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="files">
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/foo.conf</filename></term>
+ <listitem>
+ <para>The system-wide configuration file to control the
+ behaviour of <application>&dhpackage;</application>. See
+ <citerefentry>
+ <refentrytitle>foo.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for further details.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>${HOME}/.foo.conf</filename></term>
+ <listitem>
+ <para>The per-user configuration file to control the
+ behaviour of <application>&dhpackage;</application>. See
+ <citerefentry>
+ <refentrytitle>foo.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry> for further details.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="environment">
+ <title>ENVIONMENT</title>
+ <variablelist>
+ <varlistentry>
+ <term><envar>FOO_CONF</envar></term>
+ <listitem>
+ <para>If used, the defined file is used as configuration
+ file (see also <xref linkend="files"/>).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="diagnostics">
+ <title>DIAGNOSTICS</title>
+ <para>The following diagnostics may be issued
+ on <filename class="devicefile">stderr</filename>:</para>
+ <variablelist>
+ <varlistentry>
+ <term><errortext>Bad configuration file. Exiting.</errortext></term>
+ <listitem>
+ <para>The configuration file seems to contain a broken configuration
+ line. Use the <option>--verbose</option> option, to get more info.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para><command>&dhpackage;</command> provides some return codes, that can
+ be used in scripts:</para>
+ <segmentedlist>
+ <segtitle>Code</segtitle>
+ <segtitle>Diagnostic</segtitle>
+ <seglistitem>
+ <seg><errorcode>0</errorcode></seg>
+ <seg>Program exited successfully.</seg>
+ </seglistitem>
+ <seglistitem>
+ <seg><errorcode>1</errorcode></seg>
+ <seg>The configuration file seems to be broken.</seg>
+ </seglistitem>
+ </segmentedlist>
+ </refsect1>
+ <refsect1 id="bugs">
+ <!-- Or use this section to tell about upstream BTS. -->
+ <title>BUGS</title>
+ <para>The program is currently limited to only work
+ with the <package>foobar</package> library.</para>
+ <para>The upstreams <acronym>BTS</acronym> can be found
+ at <ulink url="http://bugzilla.foo.tld"/>.</para>
+ </refsect1>
+ <refsect1 id="see_also">
+ <title>SEE ALSO</title>
+ <!-- In alpabetical order. -->
+ <para><citerefentry>
+ <refentrytitle>bar</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>baz</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry>, <citerefentry>
+ <refentrytitle>foo.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </citerefentry></para>
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the <citerefentry>
+ <refentrytitle>info</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </citerefentry> system.</para>
+ </refsect1>
+</refentry>
+
diff --git a/jsonschema-0.6/debian/menu.ex b/jsonschema-0.6/debian/menu.ex
new file mode 100644
index 0000000..6d7e56d
--- /dev/null
+++ b/jsonschema-0.6/debian/menu.ex
@@ -0,0 +1,2 @@
+?package(python-jsonschema):needs="X11|text|vc|wm" section="Applications/see-menu-manual"\
+ title="python-jsonschema" command="/usr/bin/python-jsonschema"
diff --git a/jsonschema-0.6/debian/postinst.ex b/jsonschema-0.6/debian/postinst.ex
new file mode 100644
index 0000000..445e986
--- /dev/null
+++ b/jsonschema-0.6/debian/postinst.ex
@@ -0,0 +1,39 @@
+#!/bin/sh
+# postinst script for python-jsonschema
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ configure)
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/jsonschema-0.6/debian/postrm.ex b/jsonschema-0.6/debian/postrm.ex
new file mode 100644
index 0000000..f5a6373
--- /dev/null
+++ b/jsonschema-0.6/debian/postrm.ex
@@ -0,0 +1,37 @@
+#!/bin/sh
+# postrm script for python-jsonschema
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <overwriter>
+# <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/jsonschema-0.6/debian/preinst.ex b/jsonschema-0.6/debian/preinst.ex
new file mode 100644
index 0000000..26c64f8
--- /dev/null
+++ b/jsonschema-0.6/debian/preinst.ex
@@ -0,0 +1,35 @@
+#!/bin/sh
+# preinst script for python-jsonschema
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ install|upgrade)
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/jsonschema-0.6/debian/prerm.ex b/jsonschema-0.6/debian/prerm.ex
new file mode 100644
index 0000000..19725fe
--- /dev/null
+++ b/jsonschema-0.6/debian/prerm.ex
@@ -0,0 +1,38 @@
+#!/bin/sh
+# prerm script for python-jsonschema
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <prerm> `remove'
+# * <old-prerm> `upgrade' <new-version>
+# * <new-prerm> `failed-upgrade' <old-version>
+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+# * <deconfigured's-prerm> `deconfigure' `in-favour'
+# <package-being-installed> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ ;;
+
+ failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/jsonschema-0.6/debian/python-jsonschema.cron.d.ex b/jsonschema-0.6/debian/python-jsonschema.cron.d.ex
new file mode 100644
index 0000000..c51b78f
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.cron.d.ex
@@ -0,0 +1,4 @@
+#
+# Regular cron jobs for the python-jsonschema package
+#
+0 4 * * * root [ -x /usr/bin/python-jsonschema_maintenance ] && /usr/bin/python-jsonschema_maintenance
diff --git a/jsonschema-0.6/debian/python-jsonschema.debhelper.log b/jsonschema-0.6/debian/python-jsonschema.debhelper.log
new file mode 100644
index 0000000..2d06fcd
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.debhelper.log
@@ -0,0 +1,45 @@
+dh_auto_configure
+dh_auto_build
+dh_auto_test
+dh_prep
+dh_installdirs
+dh_auto_install
+dh_install
+dh_installdocs
+dh_installchangelogs
+dh_installexamples
+dh_installman
+dh_installcatalogs
+dh_installcron
+dh_installdebconf
+dh_installemacsen
+dh_installifupdown
+dh_installinfo
+dh_pysupport
+dh_installinit
+dh_installmenu
+dh_installmime
+dh_installmodules
+dh_installlogcheck
+dh_installlogrotate
+dh_installpam
+dh_installppp
+dh_installudev
+dh_installwm
+dh_installxfonts
+dh_bugfiles
+dh_lintian
+dh_gconf
+dh_icons
+dh_perl
+dh_usrlocal
+dh_link
+dh_compress
+dh_fixperms
+dh_strip
+dh_makeshlibs
+dh_shlibdeps
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/jsonschema-0.6/debian/python-jsonschema.default.ex b/jsonschema-0.6/debian/python-jsonschema.default.ex
new file mode 100644
index 0000000..cbabd06
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.default.ex
@@ -0,0 +1,10 @@
+# Defaults for python-jsonschema initscript
+# sourced by /etc/init.d/python-jsonschema
+# installed at /etc/default/python-jsonschema by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Additional options that are passed to the Daemon.
+DAEMON_OPTS=""
diff --git a/jsonschema-0.6/debian/python-jsonschema.doc-base.EX b/jsonschema-0.6/debian/python-jsonschema.doc-base.EX
new file mode 100644
index 0000000..60692d2
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.doc-base.EX
@@ -0,0 +1,20 @@
+Document: python-jsonschema
+Title: Debian python-jsonschema Manual
+Author: <insert document author here>
+Abstract: This manual describes what python-jsonschema is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/python-jsonschema/python-jsonschema.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/python-jsonschema/python-jsonschema.ps.gz
+
+Format: text
+Files: /usr/share/doc/python-jsonschema/python-jsonschema.text.gz
+
+Format: HTML
+Index: /usr/share/doc/python-jsonschema/html/index.html
+Files: /usr/share/doc/python-jsonschema/html/*.html
diff --git a/jsonschema-0.6/debian/python-jsonschema.postinst.debhelper b/jsonschema-0.6/debian/python-jsonschema.postinst.debhelper
new file mode 100644
index 0000000..07ec4f3
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_pysupport
+if which update-python-modules >/dev/null 2>&1; then
+ update-python-modules python-jsonschema.public
+fi
+# End automatically added section
diff --git a/jsonschema-0.6/debian/python-jsonschema.prerm.debhelper b/jsonschema-0.6/debian/python-jsonschema.prerm.debhelper
new file mode 100644
index 0000000..e51b2a1
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.prerm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_pysupport
+if which update-python-modules >/dev/null 2>&1; then
+ update-python-modules -c python-jsonschema.public
+fi
+# End automatically added section
diff --git a/jsonschema-0.6/debian/python-jsonschema.substvars b/jsonschema-0.6/debian/python-jsonschema.substvars
new file mode 100644
index 0000000..9241abb
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema.substvars
@@ -0,0 +1,4 @@
+python:Versions=2.6
+python:Provides=python2.6-jsonschema
+python:Depends=python (>= 2.6), python-support (>= 0.90.0)
+misc:Depends=
diff --git a/jsonschema-0.6/debian/python-jsonschema/DEBIAN/control b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/control
new file mode 100644
index 0000000..548bcf5
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/control
@@ -0,0 +1,12 @@
+Package: python-jsonschema
+Version: 0.6-1
+Architecture: all
+Maintainer: Kristina Clair <kclair@leap.se>
+Installed-Size: 92
+Depends: python (>= 2.6), python-support (>= 0.90.0)
+Section: python
+Priority: optional
+Homepage: http://pypi.python.org/pypi/jsonschema
+Description: Provides the jsonschema python package
+ Provides the jsonschema python package,
+ which is an implementation of JSON Schema for python.
diff --git a/jsonschema-0.6/debian/python-jsonschema/DEBIAN/md5sums b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/md5sums
new file mode 100644
index 0000000..467f834
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/md5sums
@@ -0,0 +1,7 @@
+39440ee04f8451db46af9b324e36bf60 usr/share/doc/python-jsonschema/README.Debian
+96fe96b300c2eed023c601be503a78aa usr/share/doc/python-jsonschema/README.rst
+925e05fb5e93ec64cdd5d7dd696b8c70 usr/share/doc/python-jsonschema/changelog.Debian.gz
+705bc94b94d9a542833c37c0cc1a6728 usr/share/doc/python-jsonschema/copyright
+26722d006c9bc3cb6956939886478e13 usr/share/pyshared/jsonschema-0.6.egg-info
+6fd447dc9ac61fb54314443a6f8b60d5 usr/share/pyshared/jsonschema.py
+cf99d8fd284d97fac533d1caf10b1c59 usr/share/python-support/python-jsonschema.public
diff --git a/jsonschema-0.6/debian/python-jsonschema/DEBIAN/postinst b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/postinst
new file mode 100755
index 0000000..5be270c
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_pysupport
+if which update-python-modules >/dev/null 2>&1; then
+ update-python-modules python-jsonschema.public
+fi
+# End automatically added section
diff --git a/jsonschema-0.6/debian/python-jsonschema/DEBIAN/prerm b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/prerm
new file mode 100755
index 0000000..bf381c4
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/DEBIAN/prerm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_pysupport
+if which update-python-modules >/dev/null 2>&1; then
+ update-python-modules -c python-jsonschema.public
+fi
+# End automatically added section
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.Debian b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.Debian
new file mode 100644
index 0000000..7dd7563
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.Debian
@@ -0,0 +1,6 @@
+python-jsonschema for Debian
+----------------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- Kristina Clair <kclair@leap.se> Wed, 03 Oct 2012 11:34:56 -0700
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.rst b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.rst
new file mode 100644
index 0000000..28e0451
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/README.rst
@@ -0,0 +1,135 @@
+==========
+jsonschema
+==========
+
+``jsonschema`` is an implementation of JSON Schema (currently in `Draft 3
+<http://tools.ietf.org/html/draft-zyp-json-schema-03>`_) for Python (supporting
+2.6+ including Python 3).
+
+::
+
+ >>> from jsonschema import validate
+
+ >>> # A sample schema, like what we'd get from json.load()
+ >>> schema = {
+ ... "type" : "object",
+ ... "properties" : {
+ ... "price" : {"type" : "number"},
+ ... "name" : {"type" : "string"},
+ ... },
+ ... }
+
+ >>> # If no exception is raised by validate(), the instance is valid.
+ >>> validate({"name" : "Eggs", "price" : 34.99}, schema)
+
+ >>> validate(
+ ... {"name" : "Eggs", "price" : "Invalid"}, schema
+ ... ) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ ValidationError: 'Invalid' is not of type 'number'
+
+
+Features
+--------
+
+* Support for Draft 3 of the Schema with the exception of
+
+ * ``$ref``, and ``extends`` that use ``$ref``\s
+
+* Lazy validation that can iteratively report *all* validation errors.
+
+::
+
+ >>> from jsonschema import Validator
+ >>> schema = {
+ ... "type" : "array",
+ ... "items" : {"enum" : [1, 2, 3]},
+ ... "maxItems" : 2,
+ ... }
+ >>> v = Validator()
+ >>> for error in sorted(v.iter_errors([2, 3, 4], schema), key=str):
+ ... print(error)
+ 4 is not one of [1, 2, 3]
+ [2, 3, 4] is too long
+
+* Small and extensible
+
+* Programmatic querying of which properties or items failed validation.
+
+::
+
+ >>> from jsonschema import ErrorTree, Validator
+ >>> schema = {
+ ... "type" : "array",
+ ... "items" : {"type" : "number", "enum" : [1, 2, 3]},
+ ... "minItems" : 3,
+ ... }
+ >>> instance = ["spam", 2]
+ >>> v = Validator()
+ >>> tree = ErrorTree(v.iter_errors(instance, schema))
+
+ >>> sorted(tree.errors)
+ ['minItems']
+
+ >>> 0 in tree
+ True
+
+ >>> 1 in tree
+ False
+
+ >>> sorted(tree[0].errors)
+ ['enum', 'type']
+
+ >>> print(tree[0].errors["type"].message)
+ 'spam' is not of type 'number'
+
+
+Schema Versioning
+-----------------
+
+JSON Schema is, at the time of this writing, seemingly at Draft 3, with
+preparations for Draft 4 underway. The ``Validator`` class and ``validate``
+function take a ``version`` argument that you can use to specify what version
+of the Schema you are validating under.
+
+As of right now, Draft 3 (``jsonschema.DRAFT_3``) is the only supported
+version, and the default when validating. Whether it will remain the default
+version in the future when it is superceeded is undecided, so if you want to be
+safe, *explicitly* declare which version to use when validating.
+
+
+Release Notes
+-------------
+
+``0.6`` fixes the behavior for the ``dependencies`` property, which was
+mis-implemented.
+
+
+Running the Test Suite
+----------------------
+
+``jsonschema`` uses the wonderful `Tox <http://tox.readthedocs.org>`_ for its
+test suite. (It really is wonderful, if for some reason you haven't heard of
+it, you really should use it for your projects).
+
+Assuming you have ``tox`` installed (perhaps via ``pip install tox`` or your
+package manager), just run ``tox`` in the directory of your source checkout to
+run ``jsonschema``'s test suite on all of the versions of Python ``jsonschema``
+supports. Note that you'll need to have all of those versions installed in
+order to run the tests on each of them, otherwise ``tox`` will skip (and fail)
+the tests on that version.
+
+
+Contributing
+------------
+
+I'm Julian Berman.
+
+``jsonschema`` is on `GitHub <http://github.com/Julian/jsonschema>`_.
+
+Get in touch, via GitHub or otherwise, if you've got something to contribute,
+it'd be most welcome!
+
+You can also generally find me on Freenode (nick: ``tos9``) in various
+channels, including ``#python``.
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/changelog.Debian.gz b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/changelog.Debian.gz
new file mode 100644
index 0000000..5617af4
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/changelog.Debian.gz
Binary files differ
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/copyright b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/copyright
new file mode 100644
index 0000000..e483d9c
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/doc/python-jsonschema/copyright
@@ -0,0 +1,42 @@
+This work was packaged for Debian by:
+
+ Kristina Clair <kclair@leap.se> on Tue, 02 Oct 2012 22:53:20 -0700
+
+It was downloaded from:
+
+ http://pypi.python.org/packages/source/j/jsonschema/jsonschema-0.6.tar.gz
+
+Upstream Author(s):
+
+ Julian Berman
+
+Copyright:
+
+ Copyright (c) 2011 Julian Berman
+
+License:
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+The Debian packaging is:
+
+ Copyright (C) 2012 Kristina Clair <kclair@leap.se>
+
+ and is licensed under the GPL version 3,
+ see "/usr/share/common-licenses/GPL-3".
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema-0.6.egg-info b/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema-0.6.egg-info
new file mode 100644
index 0000000..3e98e17
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema-0.6.egg-info
@@ -0,0 +1,158 @@
+Metadata-Version: 1.0
+Name: jsonschema
+Version: 0.6
+Summary: An implementation of JSON-Schema validation for Python
+Home-page: http://github.com/Julian/jsonschema
+Author: Julian Berman
+Author-email: Julian@GrayVines.com
+License: MIT/X
+Description: ==========
+ jsonschema
+ ==========
+
+ ``jsonschema`` is an implementation of JSON Schema (currently in `Draft 3
+ <http://tools.ietf.org/html/draft-zyp-json-schema-03>`_) for Python (supporting
+ 2.6+ including Python 3).
+
+ ::
+
+ >>> from jsonschema import validate
+
+ >>> # A sample schema, like what we'd get from json.load()
+ >>> schema = {
+ ... "type" : "object",
+ ... "properties" : {
+ ... "price" : {"type" : "number"},
+ ... "name" : {"type" : "string"},
+ ... },
+ ... }
+
+ >>> # If no exception is raised by validate(), the instance is valid.
+ >>> validate({"name" : "Eggs", "price" : 34.99}, schema)
+
+ >>> validate(
+ ... {"name" : "Eggs", "price" : "Invalid"}, schema
+ ... ) # doctest: +IGNORE_EXCEPTION_DETAIL
+ Traceback (most recent call last):
+ ...
+ ValidationError: 'Invalid' is not of type 'number'
+
+
+ Features
+ --------
+
+ * Support for Draft 3 of the Schema with the exception of
+
+ * ``$ref``, and ``extends`` that use ``$ref``\s
+
+ * Lazy validation that can iteratively report *all* validation errors.
+
+ ::
+
+ >>> from jsonschema import Validator
+ >>> schema = {
+ ... "type" : "array",
+ ... "items" : {"enum" : [1, 2, 3]},
+ ... "maxItems" : 2,
+ ... }
+ >>> v = Validator()
+ >>> for error in sorted(v.iter_errors([2, 3, 4], schema), key=str):
+ ... print(error)
+ 4 is not one of [1, 2, 3]
+ [2, 3, 4] is too long
+
+ * Small and extensible
+
+ * Programmatic querying of which properties or items failed validation.
+
+ ::
+
+ >>> from jsonschema import ErrorTree, Validator
+ >>> schema = {
+ ... "type" : "array",
+ ... "items" : {"type" : "number", "enum" : [1, 2, 3]},
+ ... "minItems" : 3,
+ ... }
+ >>> instance = ["spam", 2]
+ >>> v = Validator()
+ >>> tree = ErrorTree(v.iter_errors(instance, schema))
+
+ >>> sorted(tree.errors)
+ ['minItems']
+
+ >>> 0 in tree
+ True
+
+ >>> 1 in tree
+ False
+
+ >>> sorted(tree[0].errors)
+ ['enum', 'type']
+
+ >>> print(tree[0].errors["type"].message)
+ 'spam' is not of type 'number'
+
+
+ Schema Versioning
+ -----------------
+
+ JSON Schema is, at the time of this writing, seemingly at Draft 3, with
+ preparations for Draft 4 underway. The ``Validator`` class and ``validate``
+ function take a ``version`` argument that you can use to specify what version
+ of the Schema you are validating under.
+
+ As of right now, Draft 3 (``jsonschema.DRAFT_3``) is the only supported
+ version, and the default when validating. Whether it will remain the default
+ version in the future when it is superceeded is undecided, so if you want to be
+ safe, *explicitly* declare which version to use when validating.
+
+
+ Release Notes
+ -------------
+
+ ``0.6`` fixes the behavior for the ``dependencies`` property, which was
+ mis-implemented.
+
+
+ Running the Test Suite
+ ----------------------
+
+ ``jsonschema`` uses the wonderful `Tox <http://tox.readthedocs.org>`_ for its
+ test suite. (It really is wonderful, if for some reason you haven't heard of
+ it, you really should use it for your projects).
+
+ Assuming you have ``tox`` installed (perhaps via ``pip install tox`` or your
+ package manager), just run ``tox`` in the directory of your source checkout to
+ run ``jsonschema``'s test suite on all of the versions of Python ``jsonschema``
+ supports. Note that you'll need to have all of those versions installed in
+ order to run the tests on each of them, otherwise ``tox`` will skip (and fail)
+ the tests on that version.
+
+
+ Contributing
+ ------------
+
+ I'm Julian Berman.
+
+ ``jsonschema`` is on `GitHub <http://github.com/Julian/jsonschema>`_.
+
+ Get in touch, via GitHub or otherwise, if you've got something to contribute,
+ it'd be most welcome!
+
+ You can also generally find me on Freenode (nick: ``tos9``) in various
+ channels, including ``#python``.
+
+Platform: UNKNOWN
+Classifier: Development Status :: 3 - Alpha
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.1
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema.py b/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema.py
new file mode 100644
index 0000000..9910c84
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/pyshared/jsonschema.py
@@ -0,0 +1,658 @@
+"""
+An implementation of JSON Schema for Python
+
+The main functionality is provided by the :class:`Validator` class, with the
+:function:`validate` function being the most common way to quickly create a
+:class:`Validator` object and validate an instance with a given schema.
+
+The :class:`Validator` class generally attempts to be as strict as possible
+under the JSON Schema specification. See its docstring for details.
+
+"""
+
+from __future__ import division, unicode_literals
+
+import collections
+import itertools
+import operator
+import re
+import sys
+import warnings
+
+
+PY3 = sys.version_info[0] >= 3
+
+if PY3:
+ basestring = unicode = str
+ iteritems = operator.methodcaller("items")
+else:
+ from itertools import izip as zip
+ iteritems = operator.methodcaller("iteritems")
+
+
+def _uniq(container):
+ """
+ Check if all of a container's elements are unique.
+
+ Successively tries first to rely that the elements are hashable, then
+ falls back on them being sortable, and finally falls back on brute
+ force.
+
+ """
+
+ try:
+ return len(set(container)) == len(container)
+ except TypeError:
+ try:
+ sort = sorted(container)
+ sliced = itertools.islice(container, 1, None)
+ for i, j in zip(container, sliced):
+ if i == j:
+ return False
+ except (NotImplementedError, TypeError):
+ seen = []
+ for e in container:
+ if e in seen:
+ return False
+ seen.append(e)
+ return True
+
+
+__version__ = "0.6"
+
+
+DRAFT_3 = {
+ "$schema" : "http://json-schema.org/draft-03/schema#",
+ "id" : "http://json-schema.org/draft-03/schema#",
+ "type" : "object",
+
+ "properties" : {
+ "type" : {
+ "type" : ["string", "array"],
+ "items" : {"type" : ["string", {"$ref" : "#"}]},
+ "uniqueItems" : True,
+ "default" : "any"
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {"$ref" : "#", "type": "object"},
+ "default" : {}
+ },
+ "patternProperties" : {
+ "type" : "object",
+ "additionalProperties" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "additionalProperties" : {
+ "type" : [{"$ref" : "#"}, "boolean"], "default" : {}
+ },
+ "items" : {
+ "type" : [{"$ref" : "#"}, "array"],
+ "items" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "additionalItems" : {
+ "type" : [{"$ref" : "#"}, "boolean"], "default" : {}
+ },
+ "required" : {"type" : "boolean", "default" : False},
+ "dependencies" : {
+ "type" : ["string", "array", "object"],
+ "additionalProperties" : {
+ "type" : ["string", "array", {"$ref" : "#"}],
+ "items" : {"type" : "string"}
+ },
+ "default" : {}
+ },
+ "minimum" : {"type" : "number"},
+ "maximum" : {"type" : "number"},
+ "exclusiveMinimum" : {"type" : "boolean", "default" : False},
+ "exclusiveMaximum" : {"type" : "boolean", "default" : False},
+ "minItems" : {"type" : "integer", "minimum" : 0, "default" : 0},
+ "maxItems" : {"type" : "integer", "minimum" : 0},
+ "uniqueItems" : {"type" : "boolean", "default" : False},
+ "pattern" : {"type" : "string", "format" : "regex"},
+ "minLength" : {"type" : "integer", "minimum" : 0, "default" : 0},
+ "maxLength" : {"type" : "integer"},
+ "enum" : {"type" : "array", "minItems" : 1, "uniqueItems" : True},
+ "default" : {"type" : "any"},
+ "title" : {"type" : "string"},
+ "description" : {"type" : "string"},
+ "format" : {"type" : "string"},
+ "maxDecimal" : {"type" : "number", "minimum" : 0},
+ "divisibleBy" : {
+ "type" : "number",
+ "minimum" : 0,
+ "exclusiveMinimum" : True,
+ "default" : 1
+ },
+ "disallow" : {
+ "type" : ["string", "array"],
+ "items" : {"type" : ["string", {"$ref" : "#"}]},
+ "uniqueItems" : True
+ },
+ "extends" : {
+ "type" : [{"$ref" : "#"}, "array"],
+ "items" : {"$ref" : "#"},
+ "default" : {}
+ },
+ "id" : {"type" : "string", "format" : "uri"},
+ "$ref" : {"type" : "string", "format" : "uri"},
+ "$schema" : {"type" : "string", "format" : "uri"},
+ },
+ "dependencies" : {
+ "exclusiveMinimum" : "minimum", "exclusiveMaximum" : "maximum"
+ },
+}
+
+EPSILON = 10 ** -15
+
+
+class SchemaError(Exception):
+ """
+ The provided schema is malformed.
+
+ The same attributes exist for ``SchemaError``s as for ``ValidationError``s.
+
+ """
+
+ validator = None
+
+ def __init__(self, message):
+ super(SchemaError, self).__init__(message)
+ self.message = message
+ self.path = []
+
+
+class ValidationError(Exception):
+ """
+ The instance didn't properly validate with the provided schema.
+
+ Relevant attributes are:
+ * ``message`` : a human readable message explaining the error
+ * ``path`` : a list containing the path to the offending element (or []
+ if the error happened globally) in *reverse* order (i.e.
+ deepest index first).
+
+ """
+
+ # the failing validator will be set externally at whatever recursion level
+ # is immediately above the validation failure
+ validator = None
+
+ def __init__(self, message):
+ super(ValidationError, self).__init__(message)
+ self.message = message
+
+ # Any validator that recurses must append to the ValidationError's
+ # path (e.g., properties and items)
+ self.path = []
+
+
+class Validator(object):
+ """
+ A JSON Schema validator.
+
+ """
+
+ DEFAULT_TYPES = {
+ "array" : list, "boolean" : bool, "integer" : int, "null" : type(None),
+ "number" : (int, float), "object" : dict, "string" : basestring,
+ }
+
+ def __init__(
+ self, version=DRAFT_3, unknown_type="skip",
+ unknown_property="skip", types=(),
+ ):
+ """
+ Initialize a Validator.
+
+ ``version`` specifies which version of the JSON Schema specification to
+ validate with. Currently only draft-03 is supported (and is the
+ default).
+
+ ``unknown_type`` and ``unknown_property`` control what to do when an
+ unknown type (resp. property) is encountered. By default, the
+ metaschema is respected (which e.g. for draft 3 allows a schema to have
+ additional properties), but if for some reason you want to modify this
+ behavior, you can do so without needing to modify the metaschema by
+ passing ``"error"`` or ``"warn"`` to these arguments.
+
+ ``types`` is a mapping (or iterable of 2-tuples) containing additional
+ types or alternate types to verify via the 'type' property. For
+ instance, the default types for the 'number' JSON Schema type are
+ ``int`` and ``float``. To override this behavior (e.g. for also
+ allowing ``decimal.Decimal``), pass ``types={"number" : (int, float,
+ decimal.Decimal)} *including* the default types if so desired, which
+ are fairly obvious but can be accessed via ``Validator.DEFAULT_TYPES``
+ if necessary.
+
+ """
+
+ self._unknown_type = unknown_type
+ self._unknown_property = unknown_property
+ self._version = version
+
+ self._types = dict(self.DEFAULT_TYPES)
+ self._types.update(types)
+ self._types["any"] = tuple(self._types.values())
+
+ def is_type(self, instance, type):
+ """
+ Check if an ``instance`` is of the provided ``type``.
+
+ """
+
+ py_type = self._types.get(type)
+
+ if py_type is None:
+ return self.schema_error(
+ self._unknown_type, "%r is not a known type" % (type,)
+ )
+
+ # the only thing we're careful about here is evading bool inheriting
+ # from int, so let's be even dirtier than usual
+
+ elif (
+ # it's not a bool, so no worries
+ not isinstance(instance, bool) or
+
+ # it is a bool, but we're checking for a bool, so no worries
+ (
+ py_type is bool or
+ isinstance(py_type, tuple) and bool in py_type
+ )
+
+ ):
+ return isinstance(instance, py_type)
+
+ def schema_error(self, level, msg):
+ if level == "skip":
+ return
+ elif level == "warn":
+ warnings.warn(msg)
+ else:
+ raise SchemaError(msg)
+
+ def is_valid(self, instance, schema, meta_validate=True):
+ """
+ Check if the ``instance`` is valid under the ``schema``.
+
+ Returns a bool indicating whether validation succeeded.
+
+ """
+
+ error = next(self.iter_errors(instance, schema, meta_validate), None)
+ return error is None
+
+ def iter_errors(self, instance, schema, meta_validate=True):
+ """
+ Lazily yield each of the errors in the given ``instance``.
+
+ If you are unsure whether your schema itself is valid,
+ ``meta_validate`` will first validate that the schema is valid before
+ attempting to validate the instance. ``meta_validate`` is ``True`` by
+ default, since setting it to ``False`` can lead to confusing error
+ messages with an invalid schema. If you're sure your schema is in fact
+ valid, or don't care, feel free to set this to ``False``. The meta
+ validation will be done using the appropriate ``version``.
+
+ """
+
+ if meta_validate:
+ for error in self.iter_errors(
+ schema, self._version, meta_validate=False
+ ):
+ s = SchemaError(error.message)
+ s.path = error.path
+ s.validator = error.validator
+ # I think we're safer raising these always, not yielding them
+ raise s
+
+ for k, v in iteritems(schema):
+ validator = getattr(self, "validate_%s" % (k.lstrip("$"),), None)
+
+ if validator is None:
+ errors = self.unknown_property(k, instance, schema)
+ else:
+ errors = validator(v, instance, schema)
+
+ for error in errors or ():
+ # if the validator hasn't already been set (due to recursion)
+ # make sure to set it
+ error.validator = error.validator or k
+ yield error
+
+ def validate(self, *args, **kwargs):
+ """
+ Validate an ``instance`` under the given ``schema``.
+
+ """
+
+ for error in self.iter_errors(*args, **kwargs):
+ raise error
+
+ def unknown_property(self, property, instance, schema):
+ self.schema_error(
+ self._unknown_property,
+ "%r is not a known schema property" % (property,)
+ )
+
+ def validate_type(self, types, instance, schema):
+ types = _list(types)
+
+ for type in types:
+ # Ouch. Brain hurts. Two paths here, either we have a schema, then
+ # check if the instance is valid under it
+ if ((
+ self.is_type(type, "object") and
+ self.is_valid(instance, type)
+
+ # Or we have a type as a string, just check if the instance is that
+ # type. Also, HACK: we can reach the `or` here if skip_types is
+ # something other than error. If so, bail out.
+
+ ) or (
+ self.is_type(type, "string") and
+ (self.is_type(instance, type) or type not in self._types)
+ )):
+ return
+ else:
+ yield ValidationError(
+ "%r is not of type %r" % (instance, _delist(types))
+ )
+
+ def validate_properties(self, properties, instance, schema):
+ if not self.is_type(instance, "object"):
+ return
+
+ for property, subschema in iteritems(properties):
+ if property in instance:
+ for error in self.iter_errors(
+ instance[property], subschema, meta_validate=False
+ ):
+ error.path.append(property)
+ yield error
+ elif subschema.get("required", False):
+ error = ValidationError(
+ "%r is a required property" % (property,)
+ )
+ error.path.append(property)
+ error.validator = "required"
+ yield error
+
+ def validate_patternProperties(self, patternProperties, instance, schema):
+ for pattern, subschema in iteritems(patternProperties):
+ for k, v in iteritems(instance):
+ if re.match(pattern, k):
+ for error in self.iter_errors(
+ v, subschema, meta_validate=False
+ ):
+ yield error
+
+ def validate_additionalProperties(self, aP, instance, schema):
+ if not self.is_type(instance, "object"):
+ return
+
+ # no viewkeys in <2.7, and pypy seems to fail on vk - vk anyhow, so...
+ extras = set(instance) - set(schema.get("properties", {}))
+
+ if self.is_type(aP, "object"):
+ for extra in extras:
+ for error in self.iter_errors(
+ instance[extra], aP, meta_validate=False
+ ):
+ yield error
+ elif not aP and extras:
+ error = "Additional properties are not allowed (%s %s unexpected)"
+ yield ValidationError(error % _extras_msg(extras))
+
+ def validate_dependencies(self, dependencies, instance, schema):
+ for property, dependency in iteritems(dependencies):
+ if property not in instance:
+ continue
+
+ if self.is_type(dependency, "object"):
+ for error in self.iter_errors(
+ instance, dependency, meta_validate=False
+ ):
+ yield error
+ else:
+ dependencies = _list(dependency)
+ for dependency in dependencies:
+ if dependency not in instance:
+ yield ValidationError(
+ "%r is a dependency of %r" % (dependency, property)
+ )
+
+ def validate_items(self, items, instance, schema):
+ if not self.is_type(instance, "array"):
+ return
+
+ if self.is_type(items, "object"):
+ for index, item in enumerate(instance):
+ for error in self.iter_errors(
+ item, items, meta_validate=False
+ ):
+ error.path.append(index)
+ yield error
+ else:
+ for (index, item), subschema in zip(enumerate(instance), items):
+ for error in self.iter_errors(
+ item, subschema, meta_validate=False
+ ):
+ error.path.append(index)
+ yield error
+
+ def validate_additionalItems(self, aI, instance, schema):
+ if not self.is_type(instance, "array"):
+ return
+
+ if self.is_type(aI, "object"):
+ for item in instance[len(schema):]:
+ for error in self.iter_errors(item, aI, meta_validate=False):
+ yield error
+ elif not aI and len(instance) > len(schema.get("items", [])):
+ error = "Additional items are not allowed (%s %s unexpected)"
+ yield ValidationError(
+ error % _extras_msg(instance[len(schema) - 1:])
+ )
+
+ def validate_minimum(self, minimum, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ instance = float(instance)
+ if schema.get("exclusiveMinimum", False):
+ failed = instance <= minimum
+ cmp = "less than or equal to"
+ else:
+ failed = instance < minimum
+ cmp = "less than"
+
+ if failed:
+ yield ValidationError(
+ "%r is %s the minimum of %r" % (instance, cmp, minimum)
+ )
+
+ def validate_maximum(self, maximum, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ instance = float(instance)
+ if schema.get("exclusiveMaximum", False):
+ failed = instance >= maximum
+ cmp = "greater than or equal to"
+ else:
+ failed = instance > maximum
+ cmp = "greater than"
+
+ if failed:
+ yield ValidationError(
+ "%r is %s the maximum of %r" % (instance, cmp, maximum)
+ )
+
+ def validate_minItems(self, mI, instance, schema):
+ if self.is_type(instance, "array") and len(instance) < mI:
+ yield ValidationError("%r is too short" % (instance,))
+
+ def validate_maxItems(self, mI, instance, schema):
+ if self.is_type(instance, "array") and len(instance) > mI:
+ yield ValidationError("%r is too long" % (instance,))
+
+ def validate_uniqueItems(self, uI, instance, schema):
+ if uI and self.is_type(instance, "array") and not _uniq(instance):
+ yield ValidationError("%r has non-unique elements" % instance)
+
+ def validate_pattern(self, patrn, instance, schema):
+ if self.is_type(instance, "string") and not re.match(patrn, instance):
+ yield ValidationError("%r does not match %r" % (instance, patrn))
+
+ def validate_minLength(self, mL, instance, schema):
+ if self.is_type(instance, "string") and len(instance) < mL:
+ yield ValidationError("%r is too short" % (instance,))
+
+ def validate_maxLength(self, mL, instance, schema):
+ if self.is_type(instance, "string") and len(instance) > mL:
+ yield ValidationError("%r is too long" % (instance,))
+
+ def validate_enum(self, enums, instance, schema):
+ if instance not in enums:
+ yield ValidationError("%r is not one of %r" % (instance, enums))
+
+ def validate_divisibleBy(self, dB, instance, schema):
+ if not self.is_type(instance, "number"):
+ return
+
+ if isinstance(dB, float):
+ mod = instance % dB
+ failed = (mod > EPSILON) and (dB - mod) > EPSILON
+ else:
+ failed = instance % dB
+
+ if failed:
+ yield ValidationError("%r is not divisible by %r" % (instance, dB))
+
+ def validate_disallow(self, disallow, instance, schema):
+ for disallowed in _list(disallow):
+ if self.is_valid(instance, {"type" : [disallowed]}):
+ yield ValidationError(
+ "%r is disallowed for %r" % (disallowed, instance)
+ )
+
+ def validate_extends(self, extends, instance, schema):
+ if self.is_type(extends, "object"):
+ extends = [extends]
+ for subschema in extends:
+ for error in self.iter_errors(
+ instance, subschema, meta_validate=False
+ ):
+ yield error
+
+
+for no_op in [ # handled in:
+ "required", # properties
+ "exclusiveMinimum", "exclusiveMaximum", # min*/max*
+ "default", "description", "format", "id", # no validation needed
+ "links", "name", "title",
+ "ref", "schema", # not yet supported
+]:
+ setattr(Validator, "validate_" + no_op, lambda *args, **kwargs : None)
+
+
+class ErrorTree(object):
+ """
+ ErrorTrees make it easier to check which validations failed.
+
+ """
+
+ def __init__(self, errors=()):
+ self.errors = {}
+ self._contents = collections.defaultdict(self.__class__)
+
+ for error in errors:
+ container = self
+ for element in reversed(error.path):
+ container = container[element]
+ container.errors[error.validator] = error
+
+ def __contains__(self, k):
+ return k in self._contents
+
+ def __getitem__(self, k):
+ return self._contents[k]
+
+ def __setitem__(self, k, v):
+ self._contents[k] = v
+
+ def __iter__(self):
+ return iter(self._contents)
+
+ def __len__(self):
+ child_errors = sum(len(tree) for _, tree in iteritems(self._contents))
+ return len(self.errors) + child_errors
+
+ def __repr__(self):
+ return "<%s (%s errors)>" % (self.__class__.__name__, len(self))
+
+
+def _extras_msg(extras):
+ """
+ Create an error message for extra items or properties.
+
+ """
+
+ if len(extras) == 1:
+ verb = "was"
+ else:
+ verb = "were"
+ return ", ".join(repr(extra) for extra in extras), verb
+
+
+def _list(thing):
+ """
+ Wrap ``thing`` in a list if it's a single str.
+
+ Otherwise, return it unchanged.
+
+ """
+
+ if isinstance(thing, basestring):
+ return [thing]
+ return thing
+
+
+def _delist(thing):
+ """
+ Unwrap ``thing`` to a single element if its a single str in a list.
+
+ Otherwise, return it unchanged.
+
+ """
+
+ if (
+ isinstance(thing, list) and
+ len(thing) == 1
+ and isinstance(thing[0], basestring)
+ ):
+ return thing[0]
+ return thing
+
+
+def validate(
+ instance, schema, meta_validate=True, cls=Validator, *args, **kwargs
+):
+ """
+ Validate an ``instance`` under the given ``schema``.
+
+ By default, the :class:`Validator` class from this module is used to
+ perform the validation. To use another validator, pass it into the ``cls``
+ argument.
+
+ Any other provided positional and keyword arguments will be provided to the
+ ``cls``. See the :class:`Validator` class' docstring for details on the
+ arguments it accepts.
+
+ """
+
+ validator = cls(*args, **kwargs)
+ validator.validate(instance, schema, meta_validate=meta_validate)
diff --git a/jsonschema-0.6/debian/python-jsonschema/usr/share/python-support/python-jsonschema.public b/jsonschema-0.6/debian/python-jsonschema/usr/share/python-support/python-jsonschema.public
new file mode 100644
index 0000000..c195ff2
--- /dev/null
+++ b/jsonschema-0.6/debian/python-jsonschema/usr/share/python-support/python-jsonschema.public
@@ -0,0 +1,4 @@
+pyversions=2.6-
+
+/usr/share/pyshared/jsonschema-0.6.egg-info
+/usr/share/pyshared/jsonschema.py
diff --git a/jsonschema-0.6/debian/pyversions b/jsonschema-0.6/debian/pyversions
new file mode 100644
index 0000000..0c043f1
--- /dev/null
+++ b/jsonschema-0.6/debian/pyversions
@@ -0,0 +1 @@
+2.6-
diff --git a/jsonschema-0.6/debian/rules b/jsonschema-0.6/debian/rules
new file mode 100755
index 0000000..b760bee
--- /dev/null
+++ b/jsonschema-0.6/debian/rules
@@ -0,0 +1,13 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+%:
+ dh $@
diff --git a/jsonschema-0.6/debian/source/format b/jsonschema-0.6/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/jsonschema-0.6/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/jsonschema-0.6/debian/watch.ex b/jsonschema-0.6/debian/watch.ex
new file mode 100644
index 0000000..3dc6ee0
--- /dev/null
+++ b/jsonschema-0.6/debian/watch.ex
@@ -0,0 +1,23 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage
+# <Webpage URL> <string match>
+#http://www.example.com/downloads.php python-jsonschema-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/python-jsonschema-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/python-jsonschema-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for devscripts >= 2.9
+# http://sf.net/python-jsonschema/python-jsonschema-(.*)\.tar\.gz
+
+# Uncomment to find new files on GooglePages
+# http://example.googlepages.com/foo.html python-jsonschema-(.*)\.tar\.gz
diff --git a/jsonschema-0.6/jsonschema.pyc b/jsonschema-0.6/jsonschema.pyc
new file mode 100644
index 0000000..f869879
--- /dev/null
+++ b/jsonschema-0.6/jsonschema.pyc
Binary files differ
diff --git a/python-jsonschema_0.6-1.debian.tar.gz b/python-jsonschema_0.6-1.debian.tar.gz
new file mode 100644
index 0000000..4a02872
--- /dev/null
+++ b/python-jsonschema_0.6-1.debian.tar.gz
Binary files differ
diff --git a/python-jsonschema_0.6-1.dsc b/python-jsonschema_0.6-1.dsc
new file mode 100644
index 0000000..9b27fda
--- /dev/null
+++ b/python-jsonschema_0.6-1.dsc
@@ -0,0 +1,40 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+Format: 3.0 (quilt)
+Source: python-jsonschema
+Binary: python-jsonschema
+Architecture: all
+Version: 0.6-1
+Maintainer: Kristina Clair <kclair@leap.se>
+Homepage: http://pypi.python.org/pypi/jsonschema
+Standards-Version: 3.9.4.0
+Build-Depends: debhelper (>= 7.0.50~), python-support, python (>= 2.6)
+Checksums-Sha1:
+ 3d0fa792c0a0da3f40315496060e80006b63fa29 13779 python-jsonschema_0.6.orig.tar.gz
+ 1bb563facbeabded0d8cbac44b77e9abfbf1aee9 11232 python-jsonschema_0.6-1.debian.tar.gz
+Checksums-Sha256:
+ e55d50467b3f1a813e62ab8d2d9d46a095ccc1238e9183e650b078359f5a9356 13779 python-jsonschema_0.6.orig.tar.gz
+ e0244b54889641318d7837a000327e913e285afccb117eeb31d81aa383f40108 11232 python-jsonschema_0.6-1.debian.tar.gz
+Files:
+ f48327683818b2db47611599c7c04cc0 13779 python-jsonschema_0.6.orig.tar.gz
+ 736a56cb3b019ed65e9a0f54a5a330bc 11232 python-jsonschema_0.6-1.debian.tar.gz
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+Comment: GPGTools - http://gpgtools.org
+
+iQIcBAEBAgAGBQJQbIWlAAoJEJ6m/xxX04Tjya0P/0S9lTXCbNfg1ile7hWoBaKx
+2SlyVbE5TBDe70AcSX6bTd4gTQg18znUvjcWdjWGw0IPqSl2q5y20sXDodasXxlD
+wpi/FVd6FBkfkT4AEndqZO9iQAR1mQkSCrJirgfsEYoLOYmlGRO2jdLrHj37O49P
+BCc3J00OM4nRNRJ52c5C6e4HG0Y7Hpqd++ATMDsQFvJaTFFDqI/0VHWYHBvQJ2LK
+yeIbGSE9wDyOxaaVtsN+NDuWfa3af3UdQ+m5uVSVrvXre8ghMzUqilrTUGI48QbD
+/eBZ5aalqkOJDS0UHJ9QY0MeTAFWFhrCFq2CAGCx101MNUDGMl+KzqQDzCkoMjOH
+PcZ+yHWN8HwK5Wwi2ceNIUKDX/018cJTeS/Jlwv0se6n+sdFNWcxDRHMPWuBUyXo
+Gr/7/ZXLhsqmTD33VlUwc3byvnJPcSs9HWcY+vSOBLvFVzWm8tE+uYVGyK24ZZlB
+vfF2duqnhEiNj/uWSnjZ6ypfVliK0dI6t/ew3118uEfge04bvRBXjNUk/cMYImna
+dCm7ax4gnjQ/D8xmBjY62t1dBOnWNUmAY/Kne0Ut77XgHtc3aOD954lz+Vsd/gg0
+IO4d93IFJ6vel1jcWm3+xIxuXisNmpiiJ1E/VODP5vo5ieuDIHPGnSiZ4Yc+Z2F4
+j1FHoFq6HYntJMwTqTdr
+=z7HP
+-----END PGP SIGNATURE-----
diff --git a/python-jsonschema_0.6-1_all.deb b/python-jsonschema_0.6-1_all.deb
new file mode 100644
index 0000000..851f62f
--- /dev/null
+++ b/python-jsonschema_0.6-1_all.deb
Binary files differ
diff --git a/python-jsonschema_0.6-1_amd64.build b/python-jsonschema_0.6-1_amd64.build
new file mode 100644
index 0000000..6fb110e
--- /dev/null
+++ b/python-jsonschema_0.6-1_amd64.build
@@ -0,0 +1,129 @@
+ dpkg-buildpackage -rfakeroot -D -us -uc
+dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
+dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor):
+dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
+dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
+dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor):
+dpkg-buildpackage: source package python-jsonschema
+dpkg-buildpackage: source version 0.6-1
+dpkg-buildpackage: source changed by Kristina Clair <kclair@leap.se>
+ dpkg-source --before-build jsonschema-0.6
+dpkg-buildpackage: host architecture amd64
+ fakeroot debian/rules clean
+dh clean
+ dh_testdir
+ dh_auto_clean
+running clean
+removing 'build/lib.linux-x86_64-2.6' (and everything under it)
+'build/bdist.linux-x86_64' does not exist -- can't clean it
+'build/scripts-2.6' does not exist -- can't clean it
+removing 'build'
+ dh_clean
+ dpkg-source -b jsonschema-0.6
+dpkg-source: info: using source format `3.0 (quilt)'
+dpkg-source: info: building python-jsonschema using existing ./python-jsonschema_0.6.orig.tar.gz
+dpkg-source: info: building python-jsonschema in python-jsonschema_0.6-1.debian.tar.gz
+dpkg-source: info: building python-jsonschema in python-jsonschema_0.6-1.dsc
+ debian/rules build
+dh build
+ dh_testdir
+ dh_auto_configure
+ dh_auto_build
+running build
+running build_py
+creating build
+creating build/lib.linux-x86_64-2.6
+copying jsonschema.py -> build/lib.linux-x86_64-2.6
+ dh_auto_test
+ fakeroot debian/rules binary
+dh binary
+ dh_testroot
+ dh_prep
+ dh_installdirs
+ dh_auto_install
+running install
+running build
+running build_py
+running install_lib
+creating /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr
+creating /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr/lib
+creating /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr/lib/python2.6
+creating /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr/lib/python2.6/dist-packages
+copying build/lib.linux-x86_64-2.6/jsonschema.py -> /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr/lib/python2.6/dist-packages
+running install_egg_info
+Writing /home/kclair/dev/leap/build-deb/deps/python-jsonschema/jsonschema-0.6/debian/python-jsonschema/usr/lib/python2.6/dist-packages/jsonschema-0.6.egg-info
+ dh_install
+ dh_installdocs
+ dh_installchangelogs
+ dh_installexamples
+ dh_installman
+ dh_installcatalogs
+ dh_installcron
+ dh_installdebconf
+ dh_installemacsen
+ dh_installifupdown
+ dh_installinfo
+ dh_pysupport
+ dh_installinit
+ dh_installmenu
+ dh_installmime
+ dh_installmodules
+ dh_installlogcheck
+ dh_installlogrotate
+ dh_installpam
+ dh_installppp
+ dh_installudev
+ dh_installwm
+ dh_installxfonts
+ dh_bugfiles
+ dh_lintian
+ dh_gconf
+ dh_icons
+ dh_perl
+ dh_usrlocal
+ dh_link
+ dh_compress
+ dh_fixperms
+ dh_strip
+ dh_makeshlibs
+ dh_shlibdeps
+ dh_installdeb
+ dh_gencontrol
+dpkg-gencontrol: warning: package python-jsonschema: unused substitution variable ${python:Versions}
+dpkg-gencontrol: warning: package python-jsonschema: unused substitution variable ${python:Provides}
+ dh_md5sums
+ dh_builddeb
+dpkg-deb: building package `python-jsonschema' in `../python-jsonschema_0.6-1_all.deb'.
+ dpkg-genchanges >../python-jsonschema_0.6-1_amd64.changes
+dpkg-genchanges: including full source code in upload
+ dpkg-source --after-build jsonschema-0.6
+dpkg-buildpackage: full upload (original source is included)
+Now running lintian...
+W: python-jsonschema source: dh-make-template-in-source debian/emacsen-startup.ex
+W: python-jsonschema source: dh-make-template-in-source debian/python-jsonschema.default.ex
+W: python-jsonschema source: dh-make-template-in-source debian/python-jsonschema.doc-base.EX
+W: python-jsonschema source: dh-make-template-in-source debian/init.d.ex
+W: python-jsonschema source: dh-make-template-in-source debian/manpage.1.ex
+W: python-jsonschema source: dh-make-template-in-source debian/postinst.ex
+W: python-jsonschema source: dh-make-template-in-source debian/menu.ex
+W: python-jsonschema source: dh-make-template-in-source debian/watch.ex
+W: python-jsonschema source: dh-make-template-in-source debian/manpage.sgml.ex
+W: python-jsonschema source: dh-make-template-in-source debian/emacsen-install.ex
+W: python-jsonschema source: dh-make-template-in-source debian/emacsen-remove.ex
+W: python-jsonschema source: dh-make-template-in-source debian/manpage.xml.ex
+W: python-jsonschema source: dh-make-template-in-source debian/python-jsonschema.cron.d.ex
+W: python-jsonschema source: dh-make-template-in-source debian/postrm.ex
+W: python-jsonschema source: dh-make-template-in-source debian/preinst.ex
+W: python-jsonschema source: dh-make-template-in-source debian/prerm.ex
+W: python-jsonschema source: newer-standards-version 3.9.4.0 (current is 3.9.1)
+W: python-jsonschema: readme-debian-contains-debmake-template
+E: python-jsonschema: description-synopsis-is-duplicated
+W: python-jsonschema: new-package-should-close-itp-bug
+W: python-jsonschema: wrong-bug-number-in-closes l3:#nnnn
+Finished running lintian.
+Now signing changes and any dsc files...
+ signfile python-jsonschema_0.6-1.dsc Kristina Clair <kclair@leap.se>
+
+ signfile python-jsonschema_0.6-1_amd64.changes Kristina Clair <kclair@leap.se>
+
+Successfully signed dsc and changes files
diff --git a/python-jsonschema_0.6-1_amd64.changes b/python-jsonschema_0.6-1_amd64.changes
new file mode 100644
index 0000000..2753961
--- /dev/null
+++ b/python-jsonschema_0.6-1_amd64.changes
@@ -0,0 +1,53 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+Format: 1.8
+Date: Wed, 03 Oct 2012 11:34:56 -0700
+Source: python-jsonschema
+Binary: python-jsonschema
+Architecture: source all
+Version: 0.6-1
+Distribution: unstable
+Urgency: low
+Maintainer: Kristina Clair <kclair@leap.se>
+Changed-By: Kristina Clair <kclair@leap.se>
+Description:
+ python-jsonschema - Provides the jsonschema python package
+Changes:
+ python-jsonschema (0.6-1) unstable; urgency=low
+ .
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+Checksums-Sha1:
+ 4edc0478111eed411fdd8d86e22593e6ca4e4a18 1800 python-jsonschema_0.6-1.dsc
+ 3d0fa792c0a0da3f40315496060e80006b63fa29 13779 python-jsonschema_0.6.orig.tar.gz
+ 1bb563facbeabded0d8cbac44b77e9abfbf1aee9 11232 python-jsonschema_0.6-1.debian.tar.gz
+ 72b63b053651f52f81b58ae68f489b008ef6a047 10408 python-jsonschema_0.6-1_all.deb
+Checksums-Sha256:
+ 7e6e584a621959f721163619e091de45b4c5eba9990be6d77ce6f3476ed7ad7a 1800 python-jsonschema_0.6-1.dsc
+ e55d50467b3f1a813e62ab8d2d9d46a095ccc1238e9183e650b078359f5a9356 13779 python-jsonschema_0.6.orig.tar.gz
+ e0244b54889641318d7837a000327e913e285afccb117eeb31d81aa383f40108 11232 python-jsonschema_0.6-1.debian.tar.gz
+ f5a3c5cd142af264c907eb8a88601e5dff5ecb56d2dd418bacc155de14e5127c 10408 python-jsonschema_0.6-1_all.deb
+Files:
+ 0044615c46297c00724db451f08c1d4e 1800 python optional python-jsonschema_0.6-1.dsc
+ f48327683818b2db47611599c7c04cc0 13779 python optional python-jsonschema_0.6.orig.tar.gz
+ 736a56cb3b019ed65e9a0f54a5a330bc 11232 python optional python-jsonschema_0.6-1.debian.tar.gz
+ 96eba09046ae9f6a7eac00dc4f3e00bb 10408 python optional python-jsonschema_0.6-1_all.deb
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+Comment: GPGTools - http://gpgtools.org
+
+iQIcBAEBAgAGBQJQbIWqAAoJEJ6m/xxX04TjYacP/2a8ALh+aBjv1N3HbG9yfhdx
+E8/rnBQZmxW4nwCeC2ByX+ANzje+rveW5B7ptsqL2hqRdgJWkBNTgzA1bvoA8T7X
+JpD5MlX5X1paoZx/3XXBlbSx8AdSPDv5ad82mfyfQTCiACvHNRXa6Y3bmB3sgP5Y
+yyAx52kFa00XOoyCXisLXtuJyfaMmzJMEN7Hi02jQmjfxPNwTgecgIANNINl97Tz
+vUIi+kS7m/6byCGIZHWdls/Gjs5x7AeLzaW0U28mL6F+2u4QrZS5gw0SBGpCd/LC
+UnJZ6gSxvy4BnmP1RBnBnskGHtQpymxNa7yRxjJZ+68MRw1TZhZIFeiM6yBDqJM1
+DvhiuRO1bLtrMPq4VZouh9uJhQ8IT+mv4aROvpiZfdZE1uSMxdSzD/cDxVQaGChL
+j7waIL30Xsu/7UWNW9btVAVqUZ9VUsxayn5XhSiYzsvVupjKm7Pd2GOKABvNPV6H
+Vrw9w2fF2HWdEa2t9LzNT0a9qaunQVJ7lwPBFvLoqbQMGtLGI+LOb4EY+lHYliXm
+i9KiPA2x2tNFfAz3nrhODY5/MT6yzwU8cIu82+0XiBN9FXcDy2TiaZY9pW1/Vy4P
+/zA7o0qCqyg+R0Rd7OdDCHkZVAGwiwXkMOnULfNpJaWZh6bQmJ1s0UPEzcWmnscF
+lpXhdKCDUlVWMzTEyfIp
+=Jc3o
+-----END PGP SIGNATURE-----
diff --git a/python-jsonschema_0.6.orig.tar.gz b/python-jsonschema_0.6.orig.tar.gz
new file mode 100644
index 0000000..51ee84b
--- /dev/null
+++ b/python-jsonschema_0.6.orig.tar.gz
Binary files differ