Пример #1
0
    def execute(self, factory, configContext=None, **kw):
        value = behavior.bind(default=_marker).get(factory)
        if value is _marker:
            return False

        name, iface, schema, type, t, d, info = value

        config.addAction(
            configContext,
            discriminator=("memphis.content:behavior", name),
            callable=registry.registerBehavior,
            args=(name, iface, factory(), schema, type, t, d),
            order=(config.moduleNum(factory.__module__), 91),
            info=info,
        )

        return True
Пример #2
0
    def execute(self, klass, configContext=None, **kw):
        value = behavior.bind(default=_marker).get(klass)
        if value is _marker:
            return False

        name, iface, schema, type, t, d, info = value

        if iface is None:
            provides = list(interface.implementedBy(klass))
            if len(provides) == 1:
                iface = provides[0]
            else:
                raise TypeError("Missing 'spec' attribute")

        config.addAction(
            configContext,
            discriminator=("memphis.content:behavior", name),
            callable=registry.registerBehavior,
            args=(name, iface, klass, schema, type, t, d),
            order=(config.moduleNum(klass.__module__), 91),
            info=info,
        )

        return True