from passgeny import bhash, phogen_map

def encode(bh: bhash.Bhash, ph_len: int):
    """
    Consume the Bhash and return a string of length ph_len

    This function generates a phonetic representation of the binary data in
    Bhash.
    """
    phogen = ''
    ngram = '  '
    for x in range(ph_len):
        ngram_space = phogen_map.g_phonetic_map[ngram]
        n = bh.modulo(len(ngram_space))
        letter = ngram_space[n]
        ngram = ngram[1:] + letter
        phogen += letter

    return phogen
