code: def filter_rows(filters, rows):
      
      for row in rows:
          if all(condition(row, row.get(col))
                 for (cols, condition) in filters
                 for col in cols
                 if col is None or col in row):
              yield row
docs: Yield rows matching all applicable filters.
  
      Filter functions have binary arity (e.g. `filter(row, col)`) where
      the first parameter is the dictionary of row data, and the second
      parameter is the data at one particular column.
  
      Args:
          filters: a tuple of (cols, filter_func) where filter_func will
              be tested (filter_func(row, col)) for each col in cols where
              col exists in the row
          rows: an iterable of rows to filter
      Yields:
          Rows matching all applicable filters
  
      .. deprecated:: v0.7.0