code: def _iter_cache(cachefile, gpstype=LIGOTimeGPS):
      
      try:
          path = os.path.abspath(cachefile.name)
      except AttributeError:
          path = None
      for line in cachefile:
          try:
              yield _CacheEntry.parse(line, gpstype=LIGOTimeGPS)
          except ValueError:
              # virgo FFL format (seemingly) supports nested FFL files
              parts = line.split()
              if len(parts) == 3 and os.path.abspath(parts[0]) != path:
                  with open(parts[0], 'r') as cache2:
                      for entry in _iter_cache(cache2):
                          yield entry
              else:
                  raise
docs: Internal method that yields a `_CacheEntry` for each line in the file
  
      This method supports reading LAL- and (nested) FFL-format cache files.