def parse_frame_info(frame_info: str) -> Tuple[str, List[str]]:
    """
    Parses a frame_info string, returns a tuple of (identifier, attributes),
    where `identifier` is a unique identifier for this code (e.g. a function
    or method), and `attributes` is a list of invocation-specific attributes
    that were captured at profile-time.
    """

    identifier, _, attributes_str = frame_info.partition(ATTRIBUTES_SEP)

    if not attributes_str:
        return identifier, []

    return identifier, attributes_str.split(ATTRIBUTES_SEP)

    Parses a frame_info string, returns a tuple of (identifier, attributes),
    where `identifier` is a unique identifier for this code (e.g. a function
    or method), and `attributes` is a list of invocation-specific attributes
    that were captured at profile-time.
    
pyinstrument/frame_info.py