def loads(cls, string): self = cls(json.loads(string)) for field in self.required_fields: if not field in self: raise TypeError("Required field '%s' missing" % field) return self
def json_reader(fd, size, filename): from disco.func import netstr_reader from discodex import json for k, v in netstr_reader(fd, size, filename): yield json.loads(k), json.loads(v)