[Zope3-dev] PROPOSAL: Make ItoIRegistry part of Interface package

Tres Seaver tseaver@zope.com
05 Jun 2002 08:51:05 -0400


On Wed, 2002-06-05 at 08:21, Phillip J. Eby wrote:
> Rationale: ItoIRegistry has virtually no dependencies to the rest of Zope, 
> but would be useful as part of a generally-distributed Interface 
> package.  Other frameworks such as TransWarp and Twisted could make use of 
> ItoIRegistry classes without being dependent on a "sumo" Zope 
> distribution.  Also, ItoIRegistry could be used to implement a PEP 246-like 
> Python adaptation system.  The resulting package would have a stronger case 
> for becoming a Python standard library in the future.
> 
> Changes needed:
> 
> * ItoIRegistry currently strips proxies in the getForObject() and 
> getAllForObject() methods.  Most of its callers (all the global services) 
> *also* strip proxies, others (Event-related channels/services) do 
> not.  This would need to change to either all callers stripping proxies, or 
> else the proxy stripping registry would need to move to the Interface 
> package, or be shipped with it.  (Ugh.)  I think that the semantics are 
> actually cleaner if callers explicitly strip their own proxies, since there 
> is currently no way to use an ItoIRegistry which looks up things for 
> proxies themselves (as opposed to what they proxy)!
> 
> * ItoIRegistry uses the 'Invalid' exception from 
> Zope.ComponentArchitecture.Exceptions to indicate a failed registration due 
> to a component lacking a promised interface.  This would need to be 
> replaced with a TypeError or something else available from the Interface 
> package.
> 
> With these changes, ItoIRegistry could move to the Interface package, 
> making it an even more valuable tool for third-party frameworks.  That 
> should help to make the Interface package more popular, which benefits Zope 
> and everyone else who uses Interfaces.  (Because the more standard it 
> becomes, the more people want to use it, so the more standard it becomes, 
> so it's accepted in more places, and so on, and so on...)

+1.
-- 
===============================================================
Tres Seaver                                tseaver@zope.com
Zope Corporation      "Zope Dealers"       http://www.zope.com