code: def _findAll(self, name, attrs, text, limit, generator, **kwargs):
          "Iterates over a generator looking for things that match."
  
          if isinstance(name, SoupStrainer):
              strainer = name
          else:
              # Build a SoupStrainer
              strainer = SoupStrainer(name, attrs, text, **kwargs)
          results = ResultSet(strainer)
          g = generator()
          while True:
              try:
                  i = g.next()
              except StopIteration:
                  break
              if i:
                  found = strainer.search(i)
                  if found:
                      results.append(found)
                      if limit and len(results) >= limit:
                          break
          return resultf _findAll(self, name, attrs, text, limit, generator, **kwargs):
          "Iterates over a generator looking for things that match."
  
          if isinstance(name, SoupStrainer):
              strainer = name
          else:
              # Build a SoupStrainer
              strainer = SoupStrainer(name, attrs, text, **kwargs)
          results = ResultSet(strainer)
          g = generator()
          while True:
              try:
                  i = g.next()
              except StopIteration:
                  break
              if i:
                  found = strainer.search(i)
                  if found:
                      results.append(found)
                      if limit and len(results) >= limit:
                          break
          return results
docs: Iterates over a generator looking for things that match.