Beispiel #1
0
 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))
Beispiel #2
0
 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));
Beispiel #4
0
 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)
Beispiel #5
0
 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))
Beispiel #6
0
 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))
Beispiel #7
0
 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))
Beispiel #8
0
 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))
Beispiel #10
0
 def __raisematchException(self, actual, expected):
     raise schema.AvroException("Expected " + schema.stringval(expected) +
                                ", found " + schema.stringval(actual))
Beispiel #11
0
 def __raisematchException(self, actual, expected):
   raise schema.AvroException("Expected "+schema.stringval(expected)+
                       ", found "+schema.stringval(actual))
Beispiel #12
0
 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));
Beispiel #13
0
 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)
Beispiel #14
0
 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)