1"""Fast Avro file iteration.
2
3Example usage::
4
5 # Reading
6 import fastavro
7
8 with open('some-file.avro', 'rb') as fo:
9 reader = fastavro.reader(fo)
10 schema = reader.schema
11
12 for record in reader:
13 process_record(record)
14
15
16 # Writing
17 from fastavro import writer
18
19 schema = {
20 'doc': 'A weather reading.',
21 'name': 'Weather',
22 'namespace': 'test',
23 'type': 'record',
24 'fields': [
25 {'name': 'station', 'type': 'string'},
26 {'name': 'time', 'type': 'long'},
27 {'name': 'temp', 'type': 'int'},
28 ],
29 }
30
31 # 'records' can be an iterable (including generator)
32 records = [
33 {u'station': u'011990-99999', u'temp': 0, u'time': 1433269388},
34 {u'station': u'011990-99999', u'temp': 22, u'time': 1433270389},
35 {u'station': u'011990-99999', u'temp': -11, u'time': 1433273379},
36 {u'station': u'012650-99999', u'temp': 111, u'time': 1433275478},
37 ]
38
39 with open('weather.avro', 'wb') as out:
40 writer(out, schema, records)
41"""
42
43__version_info__ = (1, 11, 1)
44__version__ = "%s.%s.%s" % __version_info__
45
46
47import fastavro.read
48import fastavro.write
49import fastavro.schema
50import fastavro.validation
51
52reader = fastavro.read.reader
53json_reader = fastavro.json_read.json_reader
54block_reader = fastavro.read.block_reader
55schemaless_reader = fastavro.read.schemaless_reader
56writer = fastavro.write.writer
57json_writer = fastavro.json_write.json_writer
58schemaless_writer = fastavro.write.schemaless_writer
59is_avro = fastavro.read.is_avro
60validate = fastavro.validation.validate
61parse_schema = fastavro.schema.parse_schema
62
63__all__ = [n for n in locals().keys() if not n.startswith("_")] + ["__version__"]