code: 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(sf 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)
docs: 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'}, ..])