import re


def indv_block(st):
    """
    Return the header line and the sequence of individual constructs in a file
    Args:
        st(str): The text contained in a fasta file, as a string. Consists of a
            header, which is initiated by > and ends with a newline. Subsequent
            lines are sequence data, until another > is found.

    Returns:
        A list of strings, where each string is the construct header and sequence,
        as a single string. For example, a file containing 4 proteins would
        a list of 4 strings. Each string begins with >, and contains both the
        headers and the newline characters.
    """
    if st.startswith('>'):
        fstr = re.split('>', st)
        seq_list = []
        for f in fstr:
            if f:
                f = '>' + f
                f = f.rstrip()
                seq_list.append(f)
        return seq_list
    else:
        return [st]