[Checkins] SVN: zope.interface/branches/wosc-test-stacking/src/zope/interface/adapter.py Snapshot: Mark state stackable
Wolfgang Schnerring
wosc at wosc.de
Thu May 12 05:18:51 EDT 2011
Log message for revision 121659:
Snapshot: Mark state stackable
- 'stackable' needs a better name (and maybe even its own egg)
- we probably haven't caught all the state yet, but we'll find that as we write more tests in zope.component
Changed:
U zope.interface/branches/wosc-test-stacking/src/zope/interface/adapter.py
-=-
Modified: zope.interface/branches/wosc-test-stacking/src/zope/interface/adapter.py
===================================================================
--- zope.interface/branches/wosc-test-stacking/src/zope/interface/adapter.py 2011-05-12 08:11:21 UTC (rev 121658)
+++ zope.interface/branches/wosc-test-stacking/src/zope/interface/adapter.py 2011-05-12 09:18:50 UTC (rev 121659)
@@ -14,6 +14,7 @@
"""Adapter management
"""
+from zope.component.stackable import stackable
import weakref
from zope.interface import providedBy, Interface, ro
@@ -44,15 +45,15 @@
# but for order == 2 (that is, self._adapters[2]), we have:
# {r1 -> {r2 -> {provided -> {name -> value}}}}
#
- self._adapters = []
+ self._adapters = stackable([])
# {order -> {required -> {provided -> {name -> [value]}}}}
# where the remarks about adapters above apply
- self._subscribers = []
+ self._subscribers = stackable([])
# Set, with a reference count, keeping track of the interfaces
# for which we have provided components:
- self._provided = {}
+ self._provided = stackable({})
# Create ``_v_lookup`` object to perform lookup. We make this a
# separate object to to make it easier to implement just the
@@ -104,14 +105,14 @@
order = len(required)
byorder = self._adapters
while len(byorder) <= order:
- byorder.append({})
+ byorder.append(stackable({}))
components = byorder[order]
key = required + (provided,)
for k in key:
d = components.get(k)
if d is None:
- d = {}
+ d = stackable({})
components[k] = d
components = d
@@ -202,14 +203,14 @@
order = len(required)
byorder = self._subscribers
while len(byorder) <= order:
- byorder.append({})
+ byorder.append(stackable({}))
components = byorder[order]
key = required + (provided,)
for k in key:
d = components.get(k)
if d is None:
- d = {}
+ d = stackable({})
components[k] = d
components = d
@@ -295,9 +296,9 @@
class LookupBasePy(object):
def __init__(self):
- self._cache = {}
- self._mcache = {}
- self._scache = {}
+ self._cache = stackable({})
+ self._mcache = stackable({})
+ self._scache = stackable({})
def changed(self, ignored=None):
self._cache.clear()
@@ -307,12 +308,12 @@
def _getcache(self, provided, name):
cache = self._cache.get(provided)
if cache is None:
- cache = {}
+ cache = stackable({})
self._cache[provided] = cache
if name:
c = cache.get(name)
if c is None:
- c = {}
+ c = stackable({})
cache[name] = c
cache = c
return cache
@@ -367,7 +368,7 @@
def lookupAll(self, required, provided):
cache = self._mcache.get(provided)
if cache is None:
- cache = {}
+ cache = stackable({})
self._mcache[provided] = cache
required = tuple(required)
@@ -382,7 +383,7 @@
def subscriptions(self, required, provided):
cache = self._scache.get(provided)
if cache is None:
- cache = {}
+ cache = stackable({})
self._scache[provided] = cache
required = tuple(required)
@@ -433,7 +434,7 @@
def __init__(self, registry):
self._registry = registry
- self._required = {}
+ self._required = stackable({})
self.init_extendors()
super(AdapterLookupBase, self).__init__()
@@ -469,7 +470,7 @@
# we'll take our chances for now.
def init_extendors(self):
- self._extendors = {}
+ self._extendors = stackable({})
for p in self._registry._provided:
self.add_extendor(p)
More information about the checkins
mailing list