def test_dump_record(self): docinfo_stream = self.hwp5file['DocInfo'] record = read_record(docinfo_stream.open(), 0) stream = BytesIO() dump_record(stream, record) stream.seek(0) record2 = read_record(stream, 0) self.assertEqual(record2, record)
def test_dump_record(self): from hwp5.recordstream import dump_record from hwp5.recordstream import read_record docinfo_stream = self.hwp5file['DocInfo'] record = read_record(docinfo_stream.open(), 0) from StringIO import StringIO stream = StringIO() dump_record(stream, record) stream.seek(0) record2 = read_record(stream, 0) self.assertEquals(record2, record)
def main(args): import sys filename = args['<hwp5file>'] if filename: from hwp5.recordstream import Hwp5File from hwp5.proc import parse_recordstream_name hwpfile = Hwp5File(filename) streamname = args['<record-stream>'] stream = parse_recordstream_name(hwpfile, streamname) else: from hwp5.storage import Open2Stream from hwp5.recordstream import RecordStream stream = RecordStream(Open2Stream(lambda: sys.stdin), None) opts = dict() rng = args['--range'] if rng: rng = rng.split('-', 1) rng = tuple(int(x) for x in rng) if len(rng) == 1: rng = (rng[0], rng[0] + 1) opts['range'] = rng treegroup = args['--treegroup'] if treegroup is not None: opts['treegroup'] = int(treegroup) if args['--simple']: for record in stream.records(**opts): print '%04d' % record['seqno'], print ' ' * record['level'], record['tagname'] elif args['--raw']: from hwp5.recordstream import dump_record for record in stream.records(**opts): dump_record(sys.stdout, record) elif args['--raw-header']: from hwp5.recordstream import encode_record_header for record in stream.records(**opts): hdr = encode_record_header(record) sys.stdout.write(hdr) elif args['--raw-payload']: for record in stream.records(**opts): sys.stdout.write(record['payload']) else: stream.records_json(**opts).dump(sys.stdout)