def skipdata(self, schm, decoder): fn = self.__skipfn.get(schm.gettype()) if fn is not None: return fn(schm, decoder) else: raise schema.AvroException("Unknown type: " + schema.stringval(schm))
def check(self, string): schm = schema.parse(string) st = schema.stringval(schm) self.assertEquals(string.replace(" ", ""), st.replace(" ", "")) #test __eq__ self.assertEquals(schm, schema.parse(string)) #test hashcode doesn't generate infinite recursion schm.__hash__() randomdata = self.__random(schm) for i in range(1, 10): self.checkser(schm, randomdata) self.checkdatafile(schm)
def readdata(self, actual, expected, decoder): if actual.gettype() == schema.UNION: actual = actual.getelementtypes()[int(decoder.readlong())] if expected.gettype() == schema.UNION: expected = self._resolve(actual, expected) if actual.gettype() == schema.NULL: return None fn = self.__readfn.get(actual.gettype()) if fn is not None: return fn(actual, expected, decoder) else: raise schema.AvroException("Unknown type: "+schema.stringval(actual));
def check(self, string): schm = schema.parse(string) st = schema.stringval(schm) self.assertEquals(string.replace(" ",""), st.replace(" ","")) #test __eq__ self.assertEquals(schm, schema.parse(string)) #test hashcode doesn't generate infinite recursion schm.__hash__() randomdata = self.__random(schm) for i in range(1,10): self.checkser(schm, randomdata) self.checkdatafile(schm)
def readdata(self, actual, expected, decoder): if actual.gettype() == schema.UNION: actual = actual.getelementtypes()[int(decoder.readlong())] if expected.gettype() == schema.UNION: expected = self._resolve(actual, expected) if actual.gettype() == schema.NULL: return None fn = self.__readfn.get(actual.gettype()) if fn is not None: return fn(actual, expected, decoder) else: raise schema.AvroException("Unknown type: " + schema.stringval(actual))
def __init__(self, schm, writer, dwriter): self.__writer = writer self.__encoder = Encoder(writer) self.__dwriter = dwriter self.__dwriter.setschema(schm) self.__count = 0 #entries in file self.__blockcount = 0 #entries in current block self.__buffer = cStringIO.StringIO() self.__bufwriter = Encoder(self.__buffer) self.__meta = dict() self.__sync = uuid.uuid4().bytes self.__meta["sync"] = self.__sync self.__meta["codec"] = "null" self.__meta["schema"] = schema.stringval(schm) self.__writer.write(struct.pack(len(_MAGIC).__str__() + 's', _MAGIC))
def _defaultfieldvalue(self, schm, defaultnode): if schm.gettype() == schema.RECORD: record = self.createrecord(schm) for field in schm.getfields().values(): v = defaultnode.get(field.getname()) if v is None: v = field.getdefaultvalue() if v is not None: record[field.getname()] = self._defaultfieldvalue( field.getschema(), v) return record elif schm.gettype() == schema.ENUM: return defaultnode elif schm.gettype() == schema.ARRAY: array = list() for node in defaultnode: array.append( self._defaultfieldvalue(schm.getelementtype(), node)) return array elif schm.gettype() == schema.MAP: map = dict() for k, v in defaultnode.items(): map[k] = self._defaultfieldvalue(schm.getvaluetype(), v) return map elif schm.gettype() == schema.UNION: return self._defaultfieldvalue(schm.getelementtypes()[0], defaultnode) elif schm.gettype() == schema.FIXED: return defaultnode elif schm.gettype() == schema.STRING: return defaultnode elif schm.gettype() == schema.BYTES: return defaultnode elif schm.gettype() == schema.INT: return int(defaultnode) elif schm.gettype() == schema.LONG: return long(defaultnode) elif schm.gettype() == schema.FLOAT: return float(defaultnode) elif schm.gettype() == schema.DOUBLE: return float(defaultnode) elif schm.gettype() == schema.BOOLEAN: return bool(defaultnode) elif schm.gettype() == schema.NULL: return None else: raise schema.AvroException("Unknown type: " + schema.stringval(actual))
def __init__(self, schm, writer, dwriter): self.__writer = writer self.__encoder = Encoder(writer) self.__dwriter = dwriter self.__dwriter.setschema(schm) self.__count = 0 #entries in file self.__blockcount = 0 #entries in current block self.__buffer = cStringIO.StringIO() self.__bufwriter = Encoder(self.__buffer) self.__meta = dict() self.__sync = uuid.uuid4().bytes self.__meta["sync"] = self.__sync self.__meta["codec"] = "null" self.__meta["schema"] = schema.stringval(schm) self.__writer.write(struct.pack(len(_MAGIC).__str__()+'s', _MAGIC))
def _defaultfieldvalue(self, schm, defaultnode): if schm.gettype() == schema.RECORD: record = self.createrecord(schm) for field in schm.getfields().values(): v = defaultnode.get(field.getname()) if v is None: v = field.getdefaultvalue() if v is not None: record[field.getname()] = self._defaultfieldvalue( field.getschema(), v) return record elif schm.gettype() == schema.ENUM: return defaultnode elif schm.gettype() == schema.ARRAY: array = list() for node in defaultnode: array.append(self._defaultfieldvalue(schm.getelementtype(), node)) return array elif schm.gettype() == schema.MAP: map = dict() for k,v in defaultnode.items(): map[k] = self._defaultfieldvalue(schm.getvaluetype(), v) return map elif schm.gettype() == schema.UNION: return self._defaultfieldvalue(schm.getelementtypes()[0], defaultnode) elif schm.gettype() == schema.FIXED: return defaultnode elif schm.gettype() == schema.STRING: return defaultnode elif schm.gettype() == schema.BYTES: return defaultnode elif schm.gettype() == schema.INT: return int(defaultnode) elif schm.gettype() == schema.LONG: return long(defaultnode) elif schm.gettype() == schema.FLOAT: return float(defaultnode) elif schm.gettype() == schema.DOUBLE: return float(defaultnode) elif schm.gettype() == schema.BOOLEAN: return bool(defaultnode) elif schm.gettype() == schema.NULL: return None else: raise schema.AvroException("Unknown type: "+schema.stringval(actual))
def __raisematchException(self, actual, expected): raise schema.AvroException("Expected " + schema.stringval(expected) + ", found " + schema.stringval(actual))
def __raisematchException(self, actual, expected): raise schema.AvroException("Expected "+schema.stringval(expected)+ ", found "+schema.stringval(actual))
def skipdata(self, schm, decoder): fn = self.__skipfn.get(schm.gettype()) if fn is not None: return fn(schm, decoder) else: raise schema.AvroException("Unknown type: "+schema.stringval(schm));
def __init__(self, schm=None, datum=None, msg=None): if msg is None: msg = "Not a "+schema.stringval(schm)+": "+datum.__str__() schema.AvroException.__init__(self, msg)
def __init__(self, schm=None, datum=None, msg=None): if msg is None: msg = "Not a " + schema.stringval(schm) + ": " + datum.__str__() schema.AvroException.__init__(self, msg)