export partlist by eagle, then parse it

    :param input: .sch or .brd file name
    :param timeout: int
    :param showgui: Bool, True -> do not hide eagle GUI
    :rtype: tuple of header list and dict list: (['part','value',..], [{'part':'C1', 'value':'1n'}, ..])

def structured_partlist(input, timeout=20, showgui=False):
    '''export partlist by eagle, then parse it

    :param input: .sch or .brd file name
    :param timeout: int
    :param showgui: Bool, True -> do not hide eagle GUI
    :rtype: tuple of header list and dict list: (['part','value',..], [{'part':'C1', 'value':'1n'}, ..])
    '''

    s = raw_partlist(input=input, timeout=timeout, showgui=showgui)
    return parse_partlist(s)