from typing import List


def split_features_text(
        features_text: str) -> List[str]:
    """
    Args:
        features_text:
            The FEATURES (i.e. annotation) section of genbank file, for example:

            'FEATURES             Location/Qualifiers
            '     source          1..168903
            '                     /organism="Enterobacteria phage T4"
            '                     /mol_type="genomic DNA"
            '                     /db_xref="taxon:10665"
            '     CDS             complement(12..2189)
            '                     /gene="rIIA"
            '                     /locus_tag="T4p001"
            '                     /db_xref="GeneID:1258593"

    Returns:
        Break it into a list of single feature text, for example

        feature_text_1:
            '     source          1..168903
            '                     /organism="Enterobacteria phage T4"
            '                     /mol_type="genomic DNA"
            '                     /db_xref="taxon:10665"

        feature_text_2:
            '     CDS             complement(12..2189)
            '                     /gene="rIIA"
            '                     /locus_tag="T4p001"
            '                     /db_xref="GeneID:1258593"
    """
    list_ = []
    for line in features_text.splitlines()[1:]:  # first line is always 'Location/Qualifiers', so we don't need it.
        if line.strip() == '':  # skip empty line
            continue
        if line.startswith(' '*21): # not the first line of a new feature
            list_[-1] += line + '\n'
        else: # the first line of a new feature, because it doesn't start with 21 spaces.
            list_.append(line + '\n')
    return list_