[Checkins] SVN: zope.site/trunk/ Moved the zope.site.hooks functionality to zope.component.hooks as it isn't
Thomas Lotze
tl at gocept.com
Mon Nov 9 02:37:18 EST 2009
Log message for revision 105534:
Moved the zope.site.hooks functionality to zope.component.hooks as it isn't
actually dealing with zope.site's concept of a site.
Changed:
U zope.site/trunk/CHANGES.txt
U zope.site/trunk/setup.py
U zope.site/trunk/src/zope/site/hooks.py
-=-
Modified: zope.site/trunk/CHANGES.txt
===================================================================
--- zope.site/trunk/CHANGES.txt 2009-11-08 11:40:38 UTC (rev 105533)
+++ zope.site/trunk/CHANGES.txt 2009-11-09 07:37:17 UTC (rev 105534)
@@ -5,9 +5,9 @@
3.7.1 (unreleased)
------------------
-- Nothing changed yet.
+- Moved the zope.site.hooks functionality to zope.component.hooks as it isn't
+ actually dealing with zope.site's concept of a site.
-
3.7.0 (2009-09-29)
------------------
@@ -32,7 +32,6 @@
are not required to have those attributes at all, so we're not
adding them anymore.
-
3.6.3 (2009-07-27)
------------------
Modified: zope.site/trunk/setup.py
===================================================================
--- zope.site/trunk/setup.py 2009-11-08 11:40:38 UTC (rev 105533)
+++ zope.site/trunk/setup.py 2009-11-09 07:37:17 UTC (rev 105534)
@@ -64,7 +64,7 @@
'zope.annotation',
'zope.container',
'zope.security',
- 'zope.component>=3.6.0',
+ 'zope.component>=3.8.0dev',
'zope.event',
'zope.interface',
'zope.lifecycleevent',
Modified: zope.site/trunk/src/zope/site/hooks.py
===================================================================
--- zope.site/trunk/src/zope/site/hooks.py 2009-11-08 11:40:38 UTC (rev 105533)
+++ zope.site/trunk/src/zope/site/hooks.py 2009-11-09 07:37:17 UTC (rev 105534)
@@ -17,100 +17,14 @@
"""
__docformat__ = 'restructuredtext'
-import threading
-import zope.component
-import zope.security
-
-class read_property(object):
- def __init__(self, func):
- self.func = func
-
- def __get__(self, inst, cls):
- if inst is None:
- return self
-
- return self.func(inst)
-
-class SiteInfo(threading.local):
- site = None
- sm = zope.component.getGlobalSiteManager()
-
- def adapter_hook(self):
- adapter_hook = self.sm.adapters.adapter_hook
- self.adapter_hook = adapter_hook
- return adapter_hook
-
- adapter_hook = read_property(adapter_hook)
-
-siteinfo = SiteInfo()
-
-def setSite(site=None):
- if site is None:
- sm = zope.component.getGlobalSiteManager()
- else:
-
- # We remove the security proxy because there's no way for
- # untrusted code to get at it without it being proxied again.
-
- # We should really look look at this again though, especially
- # once site managers do less. There's probably no good reason why
- # they can't be proxied. Well, except maybe for performance.
-
- site = zope.security.proxy.removeSecurityProxy(site)
- sm = site.getSiteManager()
-
- siteinfo.site = site
- siteinfo.sm = sm
- try:
- del siteinfo.adapter_hook
- except AttributeError:
- pass
-
-def getSite():
- return siteinfo.site
-
-
-def getSiteManager(context=None):
- """A special hook for getting the site manager.
-
- Here we take the currently set site into account to find the appropriate
- site manager.
- """
- if context is None:
- return siteinfo.sm
-
- # We remove the security proxy because there's no way for
- # untrusted code to get at it without it being proxied again.
-
- # We should really look look at this again though, especially
- # once site managers do less. There's probably no good reason why
- # they can't be proxied. Well, except maybe for performance.
- sm = zope.component.interfaces.IComponentLookup(
- context, zope.component.getGlobalSiteManager())
- return zope.security.proxy.removeSecurityProxy(sm)
-
-
-def adapter_hook(interface, object, name='', default=None):
- try:
- return siteinfo.adapter_hook(interface, object, name, default)
- except zope.component.interfaces.ComponentLookupError:
- return default
-
-
-def setHooks():
- zope.component.adapter_hook.sethook(adapter_hook)
- zope.component.getSiteManager.sethook(getSiteManager)
-
-def resetHooks():
- # Reset hookable functions to original implementation.
- zope.component.adapter_hook.reset()
- zope.component.getSiteManager.reset()
-
-# Clear the site thread global
-clearSite = setSite
-try:
- from zope.testing.cleanup import addCleanUp
-except ImportError:
- pass
-else:
- addCleanUp(resetHooks)
+from zope.component.hooks import (read_property,
+ SiteInfo,
+ siteinfo,
+ setSite,
+ getSite,
+ getSiteManager,
+ adapter_hook,
+ setHooks,
+ resetHooks,
+ setSite,
+ clearSite) # BBB
More information about the checkins
mailing list