Class: CompressionUtils
This abstract class provides utility functions for compression and decompression of data.
Abstract
Methods
compress()
@staticmethodcompress(algorithm: str, data: List[bytes]) -> List[bytes]
The purpose of this function is to provide a way to programmatically compress data using a specific algorithm. This functionality can be useful in scenarios where you need to compress data before storing it or sending it over a network. The function takes a list of bytes objects as input and returns a list of compressed bytes objects. The algorithm parameter specifies the compression algorithm to use, such as "gzip" or "deflate". If the algorithm is not supported, the function will raise an exception.
Parameters
-
algorithm:
strThe compression algorithm to use, such as "gzip" or "deflate". The following algorithms are supported:
bz, "bzip2: Bzip2 compression algorithm.deflate: Deflate compression algorithm.gz, "gzip": Gzip compression algorithm.lz4framed: LZ4 compression algorithm.lz4block": LZ4 block compression algorithm.lzma: LZMA compression algorithm.snappy: Snappy compression algorithm.xz: XZ compression algorithm.zstd: Zstandard compression algorithm.
-
data:
List[bytes]A list of bytes objects to compress.
Returns
List[bytes]
- A list of compressed bytes objects.
Example
# Compress data using the gzip algorithm.
data = get_uncompressed_data() # Assume this returns the data as a byte array
compressed_data = CompressionUtils.compress('gzip', [data])
decompress()
@staticmethoddecompress(algorithm: str, data: List[bytes]) -> List[bytes]
The purpose of this function is to provide a way to programmatically decompress data using a specific algorithm. This functionality can be useful in scenarios where you need to decompress data that was previously compressed. The function takes a list of bytes objects as input and returns a list of decompressed bytes objects. The algorithm parameter specifies the compression algorithm to use, such as "gzip" or "deflate". If the algorithm is not supported, the function will raise an exception.
Parameters
-
algorithm:
strThe compression algorithm to use, such as "gzip" or "deflate". The following algorithms are supported:
autoAutomatically detect the compression algorithm.brotliBrotli compression algorithm.bz"bzip2: Bzip2 compression algorithm.deflateDeflate compression algorithm.deflate64Deflate64 compression algorithm.gz"gzip": Gzip compression algorithm.lz4framedLZ4 compression algorithm.lz4block: LZ4 block compression algorithm.lzmaLZMA compression algorithm.snappySnappy compression algorithm.xzXZ compression algorithm.zZlib compression algorithm.zstdZstandard compression algorithm.
-
data:
List[bytes]A list of bytes objects to decompress.
Returns
List[bytes]
- A list of decompressed bytes objects.
Example
# Decompress data using the gzip algorithm.
compressed_data = get_compressed_data() # Assume this returns the compressed data as a byte array
decompressed_data = CompressionUtils.decompress('gzip', [compressed_data])
zipList()
@staticmethodzipList(data: bytes, password: Optional[str] = None) -> List[str]
The purpose of this code is to provide a way to extract the list of file names from a zip archive, optionally using a password to decrypt the content. This functionality can be useful in scenarios where you need to programmatically access the contents of a zip file without actually extracting the entire archive.
Parameters
-
data:
bytesThe zip archive data as a bytes object.
-
password:
Optional[str]Optional password to use for reading the zip archive.
Returns
List[str]
- The list of file names in the zip archive.
Example
# Extract the list of file names from a zip archive.
zip_data = get_zip_data() # Assume this returns the zip file as a byte array
file_names = CompressionUtils.zipList(zip_data)
zipRead()
@staticmethodzipRead(data: bytes, file: str, password: Optional[str] = None) -> List[str]
The purpose of this function is to provide a way to read the contents of a specific file from a zip archive, either with or without a password. This functionality can be useful in scenarios where you need to programmatically access the contents of a file inside a zip archive without extracting the entire archive.
Parameters
-
data:
bytesThe zip archive data as a bytes object.
-
file:
strThe name of the file to read from the zip archive.
-
password:
Optional[str]Optional password to use for reading the zip archive.
Returns
List[str]
- The contents of the file as a list of strings.
Example
# Read the contents of a file from a zip archive.
zip_data = get_zip_data() # Assume this returns the zip file as a byte array
file_contents = CompressionUtils.zipRead(zip_data, 'file.txt')
# Reading a file with password
zip_data = get_zip_data() # Assume this returns the zip file as a byte array
file_content = CompressionUtils.zipRead(zip_data, "example.txt", "password123")