[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