[Zope-dev] Deciphering Zope Comments

2008-06-04 Thread Shane Hathaway

Hi all,

I'm trying to get a handle on Zope 3.  I plan to take a bunch of Zope 3 
modules and combine them in a new way.  The goal is to create for myself 
a comfortable working environment that lets me run simple code in a 
small mod_wsgi environment with easy reloading and no ZODB initially.


To achieve this, I need to understand what's going on in the Zope 3 code 
base.  While the code itself is easy to understand, there are many 
comments in the code that suggest changes are coming soon.  Please help 
me figure out what is meant by these comments.


The first cryptic comment comes from zope.component.  The _api module 
starts with this gem:


# SiteManager API. This needs to get deprecated eventually.

But... um... everything in the module uses getSiteManager().  The whole 
component foundation is built on it.  When is it going to be replaced? 
With what?  By whom?


I'm assuming for the moment that the comment is a lie, and that 
getSiteManager() is not going away, since otherwise I have no foundation 
to build upon.


I think I want to use a threading.local as my site manager.  That way, I 
can use a different configuration for each WSGI app even if several apps 
run in different threads of a single Python interpreter.  It looks like 
the zope.app.component.hooks module does something like what I want, but 
that module is complicated and lacks comments in the places that matter, 
so I'm not quite sure what it accomplishes.  I'll add comments to that 
module if anyone can explain it fully.


That led me to the zope.thread module, which is apparently deprecated 
already, yet zope.app.component still depends on it.  Is that an 
hysterical accident?


Shane
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Deciphering Zope Comments

2008-06-04 Thread Wichert Akkerman
Previously Shane Hathaway wrote:
 I think I want to use a threading.local as my site manager.  That way, I 
 can use a different configuration for each WSGI app even if several apps 
 run in different threads of a single Python interpreter.  It looks like 
 the zope.app.component.hooks module does something like what I want, but 
 that module is complicated and lacks comments in the places that matter, 
 so I'm not quite sure what it accomplishes.  I'll add comments to that 
 module if anyone can explain it fully.

You can also use a paste.registry StackedObjectProxy to provide access
to a thread local site manager via the standard wsgi environ.  That
certainly fits well with the WSGI model and other frameworks such as
Pylons and Turbogears use it. I'm not sure if Zope3 exposes that
properly though. Admitedly paste.registry is not the best documented
code either; some cleanup there is still useful but the ideal model has
not been worked out yet.

 That led me to the zope.thread module, which is apparently deprecated 
 already, yet zope.app.component still depends on it.  Is that an 
 hysterical accident?

I only learned yesterday that zope.thread is now basically just a
wrapper around python 2.4's threading module so you can use that
directly.

Wichert.

-- 
Wichert Akkerman [EMAIL PROTECTED]It is simple to make things.
http://www.wiggy.net/   It is hard to make things simple.
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Deciphering Zope Comments

2008-06-04 Thread Shane Hathaway

Wichert Akkerman wrote:

Previously Shane Hathaway wrote:
I think I want to use a threading.local as my site manager.  That way, I 
can use a different configuration for each WSGI app even if several apps 
run in different threads of a single Python interpreter.  It looks like 
the zope.app.component.hooks module does something like what I want, but 
that module is complicated and lacks comments in the places that matter, 
so I'm not quite sure what it accomplishes.  I'll add comments to that 
module if anyone can explain it fully.


You can also use a paste.registry StackedObjectProxy to provide access
to a thread local site manager via the standard wsgi environ.  That
certainly fits well with the WSGI model and other frameworks such as
Pylons and Turbogears use it. I'm not sure if Zope3 exposes that
properly though. Admitedly paste.registry is not the best documented
code either; some cleanup there is still useful but the ideal model has
not been worked out yet.


Thanks for the pointer.  I'm not quite sure how StackedObjectProxy might 
fit in, but if it turns out I need it, at least now I don't have to 
rewrite it.


That led me to the zope.thread module, which is apparently deprecated 
already, yet zope.app.component still depends on it.  Is that an 
hysterical accident?


I only learned yesterday that zope.thread is now basically just a
wrapper around python 2.4's threading module so you can use that
directly.


Fred Drake also confirmed that nothing needs to use zope.thread anymore. 
 I plan to clean it up.


Shane

___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Deciphering Zope Comments

2008-06-04 Thread Stephan Richter
On Tuesday 03 June 2008, Shane Hathaway wrote:
 # SiteManager API. This needs to get deprecated eventually.

 But... um... everything in the module uses getSiteManager().  The whole
 component foundation is built on it.  When is it going to be replaced?
 With what?  By whom?

This is a result of the big zope component cleanup. I forgot the details. Jim 
would be the best person to answer this. If he does not know, we should just 
remove the comment. :-)

Regards,
Stephan
-- 
Stephan Richter
Web Software Design, Development and Training
Google me. Zope Stephan Richter
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Deciphering Zope Comments

2008-06-04 Thread Dieter Maurer
Shane Hathaway wrote at 2008-6-4 00:01 -0600:
 ...
# SiteManager API. This needs to get deprecated eventually.

But... um... everything in the module uses getSiteManager().  The whole 
component foundation is built on it.  When is it going to be replaced? 
With what?  By whom?

I'm assuming for the moment that the comment is a lie, and that 
getSiteManager() is not going away, since otherwise I have no foundation 
to build upon.

I, too, hope (and expect) so.

I think I want to use a threading.local as my site manager.  That way, I 
can use a different configuration for each WSGI app even if several apps 
run in different threads of a single Python interpreter.  It looks like 
the zope.app.component.hooks module does something like what I want, but 
that module is complicated and lacks comments in the places that matter, 
so I'm not quite sure what it accomplishes.  I'll add comments to that 
module if anyone can explain it fully.

That led me to the zope.thread module, which is apparently deprecated 
already, yet zope.app.component still depends on it.  Is that an 
hysterical accident?

As I have read, thread local variables have been invented and
implemented in Zope 3 land and donated to Python.

Now, that it is in Python, the original Zope implementation
can go away. Maybe, that is the purpose of the zope.thread module?



-- 
Dieter
___
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )