
I would rather add a grep method to regular expression objects: def grep(self,sequence): for s in sequence: if self.search(s): yield s And a global function to the re module: def grep(regex,sequence,flags=0): return re.compile(regex,flags).grep(sequence) Then you could do: re.grep("^i", dir(sp.fft)) Yes, it would be more to type but it would be more general. OT: I think it would be good if regular expressions would be callable with this method: def __call__(self,s): return self.search(s) is not None Then one could use it in a filter expression: filter(re.compile("^i"), dir(sp.fft)) On 06/30/2011 01:38 PM, Sturla Molden wrote:
Often when exploring an object with the 'dir' function, particularly in large packages like SciPy, I find that I need to filter the outout. Since a dir reminds me of a dos 'dir' or linux 'ls', a glob feels like the most natural to use.
For example, none of these would work:
dir(sp.fft.i*) # syntax error dir('sp.fft.i*') # returns the attributes a string
I believe a new dir functions is needed, or a change in the behviour of the current version.
Of course a 'glob aware dir function' can be implemented by monitoring the call stack (cf. sys._getframe().f_back), but I think the problem is general enough to warrant an official sultion.
Sturla