[Zope-dev] Re: unregistering components?

Chris Withers chris at simplistix.co.uk
Mon Nov 26 13:22:49 EST 2007


Philipp von Weitershausen wrote:
>> I'm guessing that if you are, you either need to stick with the one 
>> global registry or manage either ISites or IComponentLookup's yourself?
> 
> Not sure what you mean by "if you are".

Sorry, meant "if you aren't"...

>> If you mean a different ISite, where is it defined?
> 
> zope.app.component.interfaces. Well, it moved to 
> zope.location.interfaces recently in order to reduce the amount of 
> interdependencies between the eggs, but it's still available w/o 
> deprecation from zope.app.component.interfaces.

OK.

>> (and I'm guessing there is an ISite somewhere, as I could find no 
>> definition of setSiteManager, but how does IComponentArchitecture's 
>> getSiteManager relate to that of ISite?)
> 
> zope.component.getSiteManager() will return whichever component registry 
> is active.  site.getSiteManager() will return the local component 
> registry that has been associated with site (which provides ISite).

Okay, what's the difference between these two registries?

>> I think I'm misreading the code in _api then. It looks to me that most 
>> things use getSiteManager (even though the comment says it needs to be 
>> deprecated) which always appears to return either the global registry 
>> or do an IComponentLookup adaptation. If no explicit context is 
>> supplied, how does anything other than the global registry end up 
>> getting used?
> 
> getSiteManager is "overloaded" from zope.app.component. See hooks.py. 
> Yay for indirection :).

So zope.app.component replaces the getSiteManager implementation in 
zope.component? :-(

> A quick look through zope.app.component/configure.zcml reveals that the 

My bad, I assumed that particular configure.zcml would, in some way, be 
"special" and so didn't read...

> subscriber is in site.py. The rest of the machinery is in hooks.py.

As an aside, I assume zope.thread is needed because Zope doesn't yet run 
with Python 2.5 as a whole?

Also, where's the code which, in the local registry, defers to the 
global registry to find more adapters/subscribers/whatever?

> I guess I'm nitpicking. I would just like to stress the focus of the 
> zope-dev list. 

Well, I guess with splitting zope into seeprately usable components, 
this all becomes a much greyer area. I'm exploring the realtionship 
between components and trying to understand their implementation. That 
feels like development *of* zope to me, whereas zope3-users has felt 
like a list for people using "the whole of zope 3", whatever that is 
nowadays...

I'd be happy to use either list and even happier to see all 3 lists 
merge now that they're low volume enough (ie: just have zope at zope.org, 
rather than zope-dev, zope and zope3-users)

cheers,

Chris

PS: I am quite excited that it looks like I may actually be able to use 
bits of zope independently, and this wsgi stuff looks pretty cool too :-)

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the Zope-Dev mailing list