##// END OF EJS Templates
SList.grep()
vivainio -
Show More
@@ -5,7 +5,7 b' General purpose utilities.'
5 This is a grab-bag of stuff I find useful in most programs I write. Some of
5 This is a grab-bag of stuff I find useful in most programs I write. Some of
6 these things are also convenient when working at the command line.
6 these things are also convenient when working at the command line.
7
7
8 $Id: genutils.py 2661 2007-08-22 20:43:34Z vivainio $"""
8 $Id: genutils.py 2726 2007-09-07 15:07:17Z vivainio $"""
9
9
10 #*****************************************************************************
10 #*****************************************************************************
11 # Copyright (C) 2001-2006 Fernando Perez. <fperez@colorado.edu>
11 # Copyright (C) 2001-2006 Fernando Perez. <fperez@colorado.edu>
@@ -1008,9 +1008,24 b' class SList(list):'
1008
1008
1009 p = paths = property(get_paths)
1009 p = paths = property(get_paths)
1010
1010
1011 def grep(self, pattern, prune = False):
1012 """ Return all strings matching 'pattern' (a regex or callable)
1013
1014 This is case-insensitive. If prune is true, return all items
1015 NOT matching the pattern.
1016 """
1017 if isinstance(pattern, basestring):
1018 pred = lambda x : re.search(pattern, x, re.IGNORECASE)
1019 else:
1020 pred = pattern
1021 if not prune:
1022 return SList([el for el in self if pred(el)])
1023 else:
1024 return SList([el for el in self if not pred(el)])
1025
1011 def print_slist(arg):
1026 def print_slist(arg):
1012 """ Prettier (non-repr-like) and more informative printer for SList """
1027 """ Prettier (non-repr-like) and more informative printer for SList """
1013 print "SList (.p, .n, .l, .s available). Value:"
1028 print "SList (.p, .n, .l, .s, .grep() available). Value:"
1014 nlprint(arg)
1029 nlprint(arg)
1015
1030
1016 print_slist = result_display.when_type(SList)(print_slist)
1031 print_slist = result_display.when_type(SList)(print_slist)
@@ -2,6 +2,8 b''
2
2
3 * iplib.py: do not auto-alias "dir", it screws up other dir auto
3 * iplib.py: do not auto-alias "dir", it screws up other dir auto
4 aliases.
4 aliases.
5
6 * genutils.py: SList.grep() implemented.
5
7
6 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
8 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
7
9
General Comments 0
You need to be logged in to leave comments. Login now