Decompress a block of data. For incremental decompression, use a BZ2Decompressor object instead.
(data)
| 322 | |
| 323 | |
| 324 | def decompress(data): |
| 325 | """Decompress a block of data. |
| 326 | |
| 327 | For incremental decompression, use a BZ2Decompressor object instead. |
| 328 | """ |
| 329 | results = [] |
| 330 | while data: |
| 331 | decomp = BZ2Decompressor() |
| 332 | try: |
| 333 | res = decomp.decompress(data) |
| 334 | except OSError: |
| 335 | if results: |
| 336 | break # Leftover data is not a valid bzip2 stream; ignore it. |
| 337 | else: |
| 338 | raise # Error on the first iteration; bail out. |
| 339 | results.append(res) |
| 340 | if not decomp.eof: |
| 341 | raise ValueError("Compressed data ended before the " |
| 342 | "end-of-stream marker was reached") |
| 343 | data = decomp.unused_data |
| 344 | return b"".join(results) |
no test coverage detected