Source code for compressor.lib

"""compressor.lib

High-level functions exposed as a library, that can be imported.
"""
from compressor.core import retrieve_compressed_file as extract_file  # pylint: disable=unused-import
from compressor.core import (create_tree_code, parse_tree_code,
                             process_frequencies, save_compressed_file)


[docs]def compress_file(filename: str, dest_file: str = "") -> None: """ Open the <filename> and compress its contents on a new one. :param filename: The path to the source file to compress. :param dest_file: The name of the target file. If not provided (None), a default will be used with `<filename>.comp` """ with open(filename, 'r') as source: freqs = process_frequencies(source.read()) checksum = sum(c.freq for c in freqs) # bytes tree_code = create_tree_code(freqs) table = parse_tree_code(tree_code) save_compressed_file(filename, table, checksum, dest_file)