[Zope3-Users] factories for an object
Stephan Richter
srichter at cosmos.phy.tufts.edu
Tue Jun 19 18:36:44 EDT 2007
On Friday 01 June 2007 16:01, Lorenzo Gil Sanchez wrote:
> def getFactoriesForObject(obj):
> factories = []
> ifaces = tuple(zope.interface.providedBy(obj))
> for iface in ifaces:
> for name, factory in zope.component.getFactoriesFor(iface):
> factoryIfaces = tuple(factory.getInterfaces())
> if ifaces == factoryIfaces and name not in factories:
> factories.append(name)
> return factories
>
> I works quite well for content types objects (the ones I'm interested
> in) but I'm curious about why this function return two factories in many
I think APIDOC provides that information as well.
> cases:
> >>> folder = zope.app.folder.folder.Folder()
> >>> getFactoriesForObject(folder)
>
> [u'zope.app.content.Folder',
> 'BrowserAdd__zope.app.folder.folder.Folder']
>
> Is that because the <browser:addMenuItem> ZCML directive adding always a
> factory for its class attribute?
Yep, exactely. :-)
> I'm curious about what zope gurus thing about my function and if anybody
> think if could be useful in zope.component.
I think it is not that useful. In fact, I would like to see the explicit
factory support to be gone from zope.component, because it can be simply
implemented using adapters.
Regards,
Stephan
--
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
More information about the Zope3-users
mailing list