Source code for pycallgraph.grouper
from fnmatch import fnmatch
[docs]
class Grouper(object):
'''Group module names.
By default, objects are grouped by their top-level module name. Additional
groups can be specified with the groups list and all objects will be
matched against it.
'''
def __init__(self, groups=None):
if groups is None:
groups = []
self.groups = groups
def __call__(self, full_name=None):
for pattern in self.groups:
if fnmatch(full_name, pattern):
if pattern[-2:] == ".*":
# a wilcard in the middle is probably meaningful, while at
# the end, it's only noise and can be removed
return pattern[:-2]
return pattern
return full_name.split('.', 1)[0]