dsa.huffman API documentation
Description: Module to access functions for Huffman Compression.

# Module `dsa.huffman`

Module to access functions for Huffman Compression.

## Functions

`def bitstring_to_bytes(s: str) ‑> bytes`

  Convert a bitstring to bytes.

  ## Args

  `s` :`str`
    The bitstring.

  ## Returns

  Bitstring converted to bytes.

`def build_frequency_table(s: str) ‑> PriorityQueue`

  Accepts a string to encode and returns a heap of the characters.

  ## Args

  `s` :`str`
    The string to encode.

  ## Returns

  A priority queue of the characters based on frequencies.

`def build_huffman_dictionary(node: TreeNode, bit_string: str = '') ‑> dict`

  Given a TreeNode, build a Huffman Dictionary.

  ## Args

  `node` :`TreeNode`
    The Huffman Node.
  `bit_string` :`str`
    The bit string.

  ## Returns

  A Huffman Dictionary.

`def build_huffman_tree(pq: PriorityQueue) ‑> Tree`

  Accepts a priority queue and returns a Huffman Tree.

  ## Args

  `pq` :`PriorityQueue`
    A PriorityQueue containing TreeNodes of characters based on frequencies.

  ## Returns

  A Huffman Tree.

`def bytes_to_bitstring(ba: bytes, bitlength: int = 8) ‑> str`

  Convert bytes to bitstring.

  ## Args

  `ba` :`bytes`
    The bytes to convert.
  `bitlength` :`int`
    The bit length.

  ## Returns

  The bytes converted to bitstring.

`def character_frequency(s: str) ‑> dict`

  Takes a string a returns a dictionary of character frequencies.

  ## Args

  `s` :`str`
    The string to analyze.

  ## Returns

  Dictionary containing character frequency.

`def huffman_decode(encoded_data: str, tree: Tree) ‑> str`

  Decode the encoded data using the Huffman Tree.

  ## Args

  `encoded_data` :`str`
    The encoded data.
  `tree` :`Tree`
    The Huffman Tree.

  ## Returns

  The decoded data.

`def huffman_encode(st: str, hd: dict) ‑> str`

  Encode the string using the Huffman Dictionary.

  ## Args

  `st` :`str`
    The string to encode.
  `hd` :`dict`
    The Huffman Dictionary.

  ## Returns

  The encoded string.