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 2 |
|
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