Skip to content

Instantly share code, notes, and snippets.

@iced

iced/validate.py Secret

Last active July 13, 2019 17:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iced/d18f4f401ce7d71db185 to your computer and use it in GitHub Desktop.
Save iced/d18f4f401ce7d71db185 to your computer and use it in GitHub Desktop.
chebotarev
for key0 in cls.TEMPLATE.keys():
#isinstance(data[key], dict)
if cls.TEMPLATE[key0].__class__.__name__ == cls.DESC_CLASS_DICT and \
cls.TEMPLATE[key0].get(cls.DESC_TAG_CLASS) is not None:
for key in cls.TEMPLATE[key0].keys():
if cls.TEMPLATE[key0][key].__class__.__name__ == cls.DESC_CLASS_DICT and \
cls.TEMPLATE[key0][key].get(cls.DESC_TAG_CLASS) is not None:
if cls.TEMPLATE[key0][key][cls.DESC_TAG_CLASS] == cls.DESC_CLASS_JSON:
for key2 in cls.TEMPLATE[key0][key].keys():
if key2 == cls.DESC_TAG_CLASS:
continue
if cls.TEMPLATE[key0][key][key2].__class__.__name__ != cls.DESC_CLASS_DICT:
raise BAPIErrorJSONType, cls.MESSAGE_BAD_WRONG_DESCRIPTION % \
(key, key2, cls.GAME)
if data[key0][key].get(key2) is None:
raise BAPIErrorJSONStructure, cls.MESSAGE_BAD_WRONG_DESCRIPTION % \
(key, key2, cls.GAME)
if cls.TEMPLATE[key0][key][key2][cls.DESC_TAG_CLASS] == cls.DESC_CLASS_JSON:
for key3 in cls.TEMPLATE[key0][key][key2].keys():
if key3 == cls.DESC_TAG_CLASS:
continue
if cls.TEMPLATE[key0][key][key2][key3].__class__.__name__ != cls.DESC_CLASS_DICT and \
cls.TEMPLATE[key0][key].get(cls.DESC_TAG_CLASS) is not None:
raise BAPIErrorJSONStructure, cls.MESSAGE_BAD_WRONG_DESCRIPTION2 % \
(key, key2, key3, cls.GAME)
else:
if data[key0][key][key2].get(key3) is None:
if cls.TEMPLATE[key0][key][key2][key3].__class__.__name__ == cls.DESC_CLASS_DICT and \
cls.TEMPLATE[key0][key][key2][key3].get(cls.DESC_TAG_DEFAULT) is not None:
data[key0][key][key2][key3] = cls.TEMPLATE[key0][key][key2][key3][cls.DESC_TAG_DEFAULT]
else:
raise BAPIErrorJSONValue, cls.MESSAGE_BAD_DEFAULT_VALUE2 % \
(key, key2, key3, cls.GAME)
# else:
# print data[key0][key][key2][key3]
for key3 in set(data[key0][key][key2].keys()) - set(cls.TEMPLATE[key0][key][key2].keys()):
del(data[key0][key][key2][key3])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment