Welcome, guest | Sign In | My Account | Store | Cart
def grep(*matches):
   
"""Returns a generator function that operates on an iterable:
        filters items in the iterable that match any of the patterns.

    match: a callable returning a True value if it matches the item

    >>> import re
    >>> input = ["
alpha\n", "beta\n", "gamma\n", "delta\n"]
    >>> list(grep(re.compile('b').match)(input))
    ['beta\n']
    """

   
def _do_grep_wrapper(*matches):
       
def _do_grep(lines):
           
for line in lines:
               
for match in matches:
                   
if match(line):
                       
yield line
                       
break
       
return _do_grep
   
return _do_grep_wrapper(*matches)

History