def utility(_context, provides=None, component=None, factory=None, name=''):
if factory and component:
raise TypeError("Can't specify factory and component.")
if provides is None:
if factory:
provides = list(implementedBy(factory))
else:
provides = list(providedBy(component))
if len(provides) == 1:
provides = provides[0]
else:
raise TypeError("Missing 'provides' attribute")
if name == '':
if factory:
name = getName(factory)
else:
name = getName(component)
_context.action(
discriminator=('utility', provides, name),
callable=handler,
args=('registerUtility', component, provides, name),
kw=dict(factory=factory))
_context.action(
discriminator=None,
callable=provide_interface,
args=('', provides))
评论列表
文章目录