def encode_file(file: List[str]) -> 'BitArray': encode = Encode() file_content = ''.join(file) frequencies = encode.get_frequencies(file_content) parent = encode.get_node_tree(frequencies) hash_table = {} parent.generate_hashT(hash_table, "") encoded_text = encode.encode_text(file_content, hash_table) char_size = Utils.get_largest_char_size(hash_table) encoded_header = BitArray() encoded_header = Utils.save_char_size_bits(encoded_header, char_size) encode.encode_headers(parent, encoded_header, char_size) bits = encoded_header.bin + encoded_text return BitArray('0b' + bits)