Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
CLASS
NAME "Class1"
COLOR 0 0 -8
END
END
END
"""
d = mappyfile.loads(s)
pth = ["layers", 1]
cmp = mappyfile.findkey(d, *pth)
assert cmp["name"] == "Layer2"
pth = ["layers", 1, "classes", 0]
cmp = mappyfile.findkey(d, *pth)
assert cmp["name"] == "Class1"
END
LAYER
NAME "Layer2"
TYPE POLYGON
CLASS
NAME "Class1"
COLOR 0 0 -8
END
END
END
"""
d = mappyfile.loads(s)
pth = ["layers", 1]
cmp = mappyfile.findkey(d, *pth)
assert cmp["name"] == "Layer2"
pth = ["layers", 1, "classes", 0]
cmp = mappyfile.findkey(d, *pth)
assert cmp["name"] == "Class1"
path is the path to the error object, it can be empty if the error is in the root object
http://python-jsonschema.readthedocs.io/en/latest/errors/#jsonschema.exceptions.ValidationError.absolute_path
It can also reference an object in a list e.g. [u'layers', 0]
Unfortunately it is not currently possible to get the name of the failing property from the
JSONSchema error object, even though it is in the error message.
See https://github.com/Julian/jsonschema/issues/119
"""
if not path:
# error applies to the root type
d = rootdict
key = d["__type__"]
elif isinstance(path[-1], int):
# the error is on an object in a list
d = utils.findkey(rootdict, *path)
key = d["__type__"]
else:
key = path[-1]
d = utils.findkey(rootdict, *path[:-1])
error_message = "ERROR: Invalid value in {}".format(key.upper())
# add a comment to the dict structure
if add_comments:
if "__comments__" not in d:
d["__comments__"] = OrderedDict()
d["__comments__"][key] = "# {}".format(error_message)
error_message = {"error": error.message,