예제 #1
0
 def read_error(self, writers_schema, readers_schema, decoder):
     datum_reader = io.DatumReader(writers_schema, readers_schema)
     return AvroRemoteException(datum_reader.read(decoder))
예제 #2
0
#
# Constants
#

# Handshake schema is pulled in during build
HANDSHAKE_REQUEST_SCHEMA = schema.parse("""
@HANDSHAKE_REQUEST_SCHEMA@
""")

HANDSHAKE_RESPONSE_SCHEMA = schema.parse("""
@HANDSHAKE_RESPONSE_SCHEMA@
""")

HANDSHAKE_REQUESTOR_WRITER = io.DatumWriter(HANDSHAKE_REQUEST_SCHEMA)
HANDSHAKE_REQUESTOR_READER = io.DatumReader(HANDSHAKE_RESPONSE_SCHEMA)
HANDSHAKE_RESPONDER_WRITER = io.DatumWriter(HANDSHAKE_RESPONSE_SCHEMA)
HANDSHAKE_RESPONDER_READER = io.DatumReader(HANDSHAKE_REQUEST_SCHEMA)

META_SCHEMA = schema.parse('{"type": "map", "values": "bytes"}')
META_WRITER = io.DatumWriter(META_SCHEMA)
META_READER = io.DatumReader(META_SCHEMA)

SYSTEM_ERROR_SCHEMA = schema.parse('["string"]')

# protocol cache
REMOTE_HASHES = {}
REMOTE_PROTOCOLS = {}

BIG_ENDIAN_INT_STRUCT = io.struct_class('!I')
BUFFER_HEADER_LENGTH = 4
예제 #3
0
 def read_response(self, writers_schema, readers_schema, decoder):
     datum_reader = io.DatumReader(writers_schema, readers_schema)
     result = datum_reader.read(decoder)
     return result
예제 #4
0
 def _ReadRequest(self, writer_schema, reader_schema, decoder):
   datum_reader = avro_io.DatumReader(writer_schema, reader_schema)
   return datum_reader.read(decoder)
예제 #5
0
# Test writing avros
from avro import schema, datafile, io
import pprint

OUTFILE_NAME = 'tmp/messages.avro'
# Test reading avros
rec_reader = io.DatumReader()

# Create a 'data file' (avro file) reader
df_reader = datafile.DataFileReader(
  open(OUTFILE_NAME),
  rec_reader
)

# Read all records stored inside
pp = pprint.PrettyPrinter()
for record in df_reader:
    pp.pprint(record)
예제 #6
0
 def _ReadError(self, writer_schema, reader_schema, decoder):
   datum_reader = avro_io.DatumReader(writer_schema, reader_schema)
   return AvroRemoteException(datum_reader.read(decoder))
예제 #7
0
 def _ReadResponse(self, writer_schema, reader_schema, decoder):
   datum_reader = avro_io.DatumReader(writer_schema, reader_schema)
   result = datum_reader.read(decoder)
   return result
예제 #8
0
def read_datum(buffer, writers_schema, readers_schema=None):
    reader = StringIO(buffer.getvalue())
    decoder = io.BinaryDecoder(reader)
    datum_reader = io.DatumReader(writers_schema, readers_schema)
    return datum_reader.read(decoder)
예제 #9
0
 def read_request(self, writers_schema, readers_schema, decoder):
     datum_reader = io.DatumReader(writers_schema, readers_schema)
     return datum_reader.read(decoder)
예제 #10
0
def read_avro(filename):

    rec_reader = io.DatumReader()
    df_reader = datafile.DataFileReader(open(filename), rec_reader)
    for record in df_reader:
        print record