示例#1
0
    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]
示例#2
0
    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)