[Twisted-Python] Components

Bob Ippolito bob at redivi.com
Thu Feb 26 12:43:19 MST 2004


On Feb 26, 2004, at 2:16 PM, James Y Knight wrote:

> On Feb 26, 2004, at 12:19 PM, Christopher Armstrong wrote:
>
>> Glyph Lefkowitz wrote:
>>> I think James makes a compelling argument: if NewReality was the only
>>> thing stopping this fix from going through, forget about it.
>>> But still, make sure that the first version that changes this 
>>> behaviour
>>> bumps at least a minor version number - a major reason I've been 
>>> afraid
>>> of changes like this is that folks expect micro-versions to behave
>>> _exactly_ the same.
>>
>> Cool! Sounds like a good idea. It just means 1.3 might be sooner than 
>> later :-)
>
> Anothing few things:
> - Does getRegistry's context.get(AdapterRegistry, theAdapterRegistry) 
> actually have a use? It seems like it might just be slowing down the 
> process without any gain.
> - Why hasn't AdapterRegistry.getAdapterClassWithInheritance been 
> deprecated yet? Is it because Componentized.locateAdapterClass calls 
> it? But then, why does Componentized.locateAdapterClass exist.
> - What's Adapter.isuper? Yes it forwards itself but what *IS* it?
> - The persist argument is kind of strange. It's a tristate with 3 
> options: persist=None means lookup in the persistence table but don't 
> add the newly created adapter to the table if one wasn't found, 
> persist=False means don't lookup and don't add, and persist=True means 
> lookup and add if necessary. Is that complication actually necessary? 
> Also it doesn't seem to be documented.

How about just migrating off of t.p.components and switching to 
PyProtocols?  The license is compatible, it has PEP-backing, it is a 
superset of what t.p.components does, has optional Pyrex acceleration, 
and is compatible with Interfaces from itself, t.p.components, and 
zope.components.  The default Interface implementation does not support 
the __call__ adaptation that we all know and love, but it is actually 
generic enough to allow it.

As a side note, PEAK's peak.util.imports.whenImported hooks, 
importString, and lazyModule might also be pretty useful to Twisted 
(among so many other things).

-bob





More information about the Twisted-Python mailing list