@@ -7,45 +7,34 @@ def decompress(compressed_block):
77 """
88 Decompress a Block.
99
10- :param bytes block: Compressed Block
11- :returns: Decompressed Block
12- :rtype: bytes
13- """
14- return decompress_with_magic_header (compressed_block ) \
15- if compressed_block .startswith (b'\x82 SNAPPY\x00 ' ) else decompress_without_magic_header (compressed_block )
16-
17-
18- def decompress_with_magic_header (compressed_block ):
19- """
20- Decompress a Block.
21-
2210 :param bytes block: Compressed Block
2311 :returns: Decompressed Block
2412 :rtype: bytes
2513 """
2614 try :
27- logging .getLogger ('cterasdk.direct' ).debug ('Decompressing Block.' )
28- decompressed_block = bytearray ()
29- size_of_data = len (compressed_block )
30- chunk_size , chunk_start = 4 , 16
31- while chunk_start < size_of_data :
32- chunk_end = chunk_start + chunk_size + int .from_bytes (compressed_block [chunk_start :chunk_start + chunk_size ])
33- chunk_start = chunk_start + chunk_size
34- if chunk_end > size_of_data :
35- break
36- decompressed_block .extend (snappy .decompress (compressed_block [chunk_start :chunk_end ]))
37- chunk_start = chunk_end
38- return decompressed_block
15+ return decompress_with_magic_header (compressed_block ) \
16+ if compressed_block .startswith (b'\x82 SNAPPY\x00 ' ) else snappy .uncompress (compressed_block )
3917 except snappy .UncompressError :
4018 raise DirectIOError ()
4119
4220
43- def decompress_without_magic_header (compressed_block ):
21+ def decompress_with_magic_header (compressed_block ):
4422 """
4523 Decompress a Block.
4624
47- :param bytes compressed_block : Compressed Block
25+ :param bytes block : Compressed Block
4826 :returns: Decompressed Block
4927 :rtype: bytes
5028 """
51- return snappy .uncompress (compressed_block [:compressed_block .rfind (b'EOF' ) + 3 ])
29+ logging .getLogger ('cterasdk.direct' ).debug ('Decompressing Block.' )
30+ decompressed_block = bytearray ()
31+ size_of_data = len (compressed_block )
32+ chunk_size , chunk_start = 4 , 16
33+ while chunk_start < size_of_data :
34+ chunk_end = chunk_start + chunk_size + int .from_bytes (compressed_block [chunk_start :chunk_start + chunk_size ])
35+ chunk_start = chunk_start + chunk_size
36+ if chunk_end > size_of_data :
37+ break
38+ decompressed_block .extend (snappy .decompress (compressed_block [chunk_start :chunk_end ]))
39+ chunk_start = chunk_end
40+ return decompressed_block
0 commit comments