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
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