Source code for pycallgraph.globbing_filter

from fnmatch import fnmatch


[docs]class GlobbingFilter(object): '''Filter module names using a set of globs. Objects are matched against the exclude list first, then the include list. Anything that passes through without matching either, is excluded. ''' def __init__(self, include=None, exclude=None): if include is None and exclude is None: include = ['*'] exclude = [] elif include is None: include = ['*'] elif exclude is None: exclude = [] self.include = include self.exclude = exclude def __call__(self, full_name=None): for pattern in self.exclude: if fnmatch(full_name, pattern): return False for pattern in self.include: if fnmatch(full_name, pattern): return True return False