@@ -15,59 +15,59 @@ Latest version on PyPi can be installed by command `pip3 install dfparser`
1515## Usage
1616#### Create simple message
1717 - 0x14000 protocol version
18- >>> import dfparser
19- >>> dfparser.create_message({"param": "abc"}, data=b'bnary')
20- b'#!\x00\x01@\x00pY_2\x00\x01\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x05!#\r\n{\n "param": "abc"\n}\r\n\r\nbnary'
18+ >>> import dfparser
19+ >>> dfparser.create_message({"param": "abc"}, data=b'bnary')
20+ b'#!\x00\x01@\x00pY_2\x00\x01\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x05!#\r\n{\n "param": "abc"\n}\r\n\r\nbnary'
2121 - DF02 version
22- >>> import dfparser
23- >>> dfparser.create_message({"param": "abc"}, b'binary', version=b'DF02')
24- b'#~ DF02JS\x00\x00\x00\x1a\x00\x00\x00\x06~ #\r\n{\n "param": "abc"\n}\r\n\r\nbinary'
22+ >>> import dfparser
23+ >>> dfparser.create_message({"param": "abc"}, b'binary', version=b'DF02')
24+ b'#~ DF02JS\x00\x00\x00\x1a\x00\x00\x00\x06~ #\r\n{\n "param": "abc"\n}\r\n\r\nbinary'
2525
2626#### Parse message
2727 - From file
28- >>> import dfparser
29- >>> header, meta, data = envelope_parser.parse_from_file("df02.df")
30- >>> # Or read only metadata
31- >>> header, meta, _ = envelope_parser.parse_from_file("df02.df", nodata=True)
28+ >>> import dfparser
29+ >>> header, meta, data = envelope_parser.parse_from_file("df02.df")
30+ >>> # Or read only metadata
31+ >>> header, meta, _ = envelope_parser.parse_from_file("df02.df", nodata=True)
3232 - From bytes
33- >>> import dfparser
34- >>> data = b'#~ DF02JS\x00\x00\x00\x1a\x00\x00\x00\x06~ #\r\n{\n "param": "abc"\n}\r\n\r\nbinary'
35- >>> envelope_parser.parse_message(data)
36- ({'data_len': 6, 'meta_len': 26, 'meta_type': b'JS', 'type': b'DF02'},
37- {'param': 'abc'},
38- b'binary')
33+ >>> import dfparser
34+ >>> data = b'#~ DF02JS\x00\x00\x00\x1a\x00\x00\x00\x06~ #\r\n{\n "param": "abc"\n}\r\n\r\nbinary'
35+ >>> envelope_parser.parse_message(data)
36+ ({'data_len': 6, 'meta_len': 26, 'meta_type': b'JS', 'type': b'DF02'},
37+ {'param': 'abc'},
38+ b'binary')
3939
4040 - From stream
41- >>> import dfparser
42- >>> # stream.df contains multiple messages sequentaly written
43- >>> data = open("/home/chernov/stream.df", 'rb').read()
44- >>> dfparser.get_messages_from_stream(data)
45- ([ {'data': b'bnary',
46- 'header': {'data_len': 5,
47- 'data_type': 0,
48- 'meta_len': 26,
49- 'meta_type': 65536,
50- 'time': 1885524830,
51- 'type': b'\x00\x01@\x00'},
52- 'meta': {'param': 'abc'}},
53- {'data': b'binary',
54- 'header': {'data_len': 6,
55- 'meta_len': 26,
56- 'meta_type': b'JS',
57- 'type': b'DF02'},
58- 'meta': {'param': 'abc'}}] ,
59- b'')
41+ >>> import dfparser
42+ >>> # stream.df contains multiple messages sequentaly written
43+ >>> data = open("/home/chernov/stream.df", 'rb').read()
44+ >>> dfparser.get_messages_from_stream(data)
45+ ([ {'data': b'bnary',
46+ 'header': {'data_len': 5,
47+ 'data_type': 0,
48+ 'meta_len': 26,
49+ 'meta_type': 65536,
50+ 'time': 1885524830,
51+ 'type': b'\x00\x01@\x00'},
52+ 'meta': {'param': 'abc'}},
53+ {'data': b'binary',
54+ 'header': {'data_len': 6,
55+ 'meta_len': 26,
56+ 'meta_type': b'JS',
57+ 'type': b'DF02'},
58+ 'meta': {'param': 'abc'}}] ,
59+ b'')
6060
6161### Transparent compression
6262 To apply transparent compression to message meta should contains field ` "compression": "zlib" `
63- >>> import dfparser
64- >>> data = b''.join(b'0' for _ in range(100))
65- >>> compr = dfparser.create_message({"compression": "zlib"}, data)
66- >>> compr
67- b'#!\x00\x01@\x00pt\xf7\xa7\x00\x01\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\x00\x00\x0c!#\r\n{\n "compression": "zlib"\n}\r\n\r\nx\x9c30\xa0=\x00\x00\xb3q\x12\xc1'
68- >>> _ , _ , decompr = envelope_parser.parse_message(compr)
69- >>> data == decompr
70- True
63+ >>> import dfparser
64+ >>> data = b''.join(b'0' for _ in range(100))
65+ >>> compr = dfparser.create_message({"compression": "zlib"}, data)
66+ >>> compr
67+ b'#!\x00\x01@\x00pt\xf7\xa7\x00\x01\x00\x00\x00\x00\x00!\x00\x00\x00\x00\x00\x00\x00\x0c!#\r\n{\n "compression": "zlib"\n}\r\n\r\nx\x9c30\xa0=\x00\x00\xb3q\x12\xc1'
68+ >>> _ , _ , decompr = envelope_parser.parse_message(compr)
69+ >>> data == decompr
70+ True
7171
7272## Build
7373 # Update protobuf formats use:
0 commit comments