def test_load_multiple_messages(): f = _get_many_messages() p1 = load(f, Struct) assert p1._read_primitive(0, Types.int64.ifmt) == 1 assert p1._read_primitive(8, Types.int64.ifmt) == 2 p2 = load(f, Struct) assert p2._read_primitive(0, Types.int64.ifmt) == 3 assert p2._read_primitive(8, Types.int64.ifmt) == 4
def test_load(): buf = b('\x00\x00\x00\x00\x03\x00\x00\x00' # message header: 1 segment, size 3 words '\x00\x00\x00\x00\x02\x00\x00\x00' # ptr to payload (Point {x, y}) '\x01\x00\x00\x00\x00\x00\x00\x00' # x == 1 '\x02\x00\x00\x00\x00\x00\x00\x00') # y == 2 f = BytesIO(buf) p = load(f, Struct) assert isinstance(p, Struct) assert p._read_primitive(0, Types.int64.ifmt) == 1 assert p._read_primitive(8, Types.int64.ifmt) == 2
def decode(args): print('Loading schema...', file=sys.stderr) a = time.time() mod = load_schema(modname=args['SCHEMA'], convert_case=args['--convert-case'], pyx=args['--pyx']) b = time.time() print('schema loaded in %.2f secs' % (b - a), file=sys.stderr) print('decoding stream...', file=sys.stderr) cls = getattr(mod, args['CLASS']) with open(args['FILE'], 'rb') as f: i = 0 while True: try: obj = load(f, cls) except ValueError: break print(obj.shortrepr()) i += 1 if i % 10000 == 0: print(i, file=sys.stderr, end='\r') c = time.time() print('\nstream decoded in %.2f secs' % (c - b), file=sys.stderr)
def decode(args): print >> sys.stderr, 'Loading schema...' a = time.time() mod = load_schema(args['SCHEMA'], convert_case=args['--convert-case'], pyx=args['--pyx']) b = time.time() print >> sys.stderr, 'schema loaded in %.2f secs' % (b - a) print >> sys.stderr, 'decoding stream...' cls = getattr(mod, args['CLASS']) with open(args['FILE']) as f: i = 0 while True: try: obj = load(f, cls) except ValueError: break print obj.shortrepr() i += 1 if i % 10000 == 0: print >> sys.stderr, i c = time.time() print >> sys.stderr, 'stream decoded in %.2f secs' % (c - b)
def check(self, f): p = load(f, Struct) assert isinstance(p, Struct) assert p._read_primitive(0, Types.int64.ifmt) == 1 assert p._read_primitive(8, Types.int64.ifmt) == 2