code: def identify(file_elements):
      
  
      if not file_elements:
          return
  
      _validate_file_elements(file_elements)
  
      # An iterator over enumerate(the non-metadata) elements
      iterator = PeekableIterator((element_i, element) for (element_i, element) in enumerate(file_elements)
                                  if element.type != elements.TYPE_METADATA)
  
      try:
          _, first_element = iterator.peek()
          if isinstance(first_element, TableElement):
              iterator.next()
              yield AnonymousTable(first_element)
      except KeyError:
          pass
      except StopIteration:
          return
  
      for element_i, element in iterator:
  
          if not isinstance(element, TableHeaderElement):
              continue
  
          # If TableHeader of a regular table, return Table following it
          if not element.is_array_of_tables:
              table_element_i, table_element = next(iterator)
              yield Table(names=element.names, table_element=table_element)
  
          # If TableHeader of an array of tables, do your thing
          else:
              table_element_i, table_element = next(iterator)
              yield ArrayOfTables(names=element.names, table_element=table_element)
docs: Outputs an ordered sequence of instances of TopLevel types.
  
      Elements start with an optional TableElement, followed by zero or more pairs of (TableHeaderElement, TableElement).