def create_group(self, name, app=None, enabled=True): """ Creates a child group :param name: name of group :param app: name of app the group belongs to. If not set will be the group's parent's app. :param enabled: (optional) if group is enabled :type enabled: bool """ if name in self.groups: return self.groups[name] if app is None: if self.app is None: raise OrphanedMatchableGroupError( "Top-level group '%s' must have an app declared in " "create_group()" % name) app = self.app elif apps.valid(app) is False: raise AppNotFound("Unable to find app named '%s'" % app) if self.__class__ in (TriggerMasterGroup, TriggerGroup): klass = TriggerGroup else: klass = AliasGroup self.groups[name] = klass(name, self, app, enabled) return self.groups[name]
def __init__(self, name, parent, app, enabled=True): self.name = name self.parent = weakref.ref(parent) self.app = app self.enabled = enabled self.groups = {} self.matchables = {} if apps.valid(app) is False: raise AppNotFound("Unable to find app named '%s'" % app) apps.add_group(app, self)