from typing import List


def chop(sequence: str, fragment_len: int) -> List[str]:
    """Chop a whole sequence into subsequences of length fragment_len.

    The subsequences are not-overlapping and their length is exactly fragment_len.
    so the ends of the sequences will usually be chopped off.

    Returns
    -------
        list: a list of subsequences
    """
    n_fragments = len(sequence) // fragment_len
    if n_fragments == 0:
        return [sequence]
    else:
        return [
            sequence[i * fragment_len : i * fragment_len + fragment_len]
            for i in range(n_fragments)
        ]