[Checkins] SVN: zope.introspector/trunk/src/zope/introspector/
Added abillity to search in different regstries (spelling ?)
Martin Lundwall
martin at webworks.se
Tue Jul 8 17:38:00 EDT 2008
Log message for revision 88125:
Added abillity to search in different regstries (spelling ?)
optional and default search same as before, 'base' registry.
Changed:
U zope.introspector/trunk/src/zope/introspector/adapters.py
U zope.introspector/trunk/src/zope/introspector/adapters.txt
U zope.introspector/trunk/src/zope/introspector/descriptionprovider.txt
U zope.introspector/trunk/src/zope/introspector/interfaces.py
U zope.introspector/trunk/src/zope/introspector/registry.py
U zope.introspector/trunk/src/zope/introspector/registry.txt
U zope.introspector/trunk/src/zope/introspector/tests/descriptorgrokker.txt
-=-
Modified: zope.introspector/trunk/src/zope/introspector/adapters.py
===================================================================
--- zope.introspector/trunk/src/zope/introspector/adapters.py 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/adapters.py 2008-07-08 21:37:59 UTC (rev 88125)
@@ -14,8 +14,11 @@
def __init__(self, registration):
self.registration = registration
- def searchRegistration(self, string, caseSensitive = False):
+ def searchRegistration(self, string, caseSensitive = False, registry='base'):
+ if registry is not getattr(self.registration.registry, '__name__'):
+ return False
+
if string in getattr(self.registration.provided, '__name__', ''):
return True
elif string in self.registration.name:
@@ -55,8 +58,11 @@
def __init__(self, registration):
self.registration = registration
- def searchRegistration(self, string, caseSensitive = False):
+ def searchRegistration(self, string, caseSensitive = False, registry='base'):
+ if registry is not getattr(self.registration.registry, '__name__'):
+ return False
+
if string in self.registration.name:
return True
elif string in getattr(self.registration.factory, '__name__',''):
@@ -92,8 +98,11 @@
def __init__(self, registration):
self.registration = registration
- def searchRegistration(self, string, caseSensitive = False):
+ def searchRegistration(self, string, caseSensitive = False, registry='base'):
+ if registry is not getattr(self.registration.registry, '__name__'):
+ return False
+
if string in getattr(self.registration.provided, '__name__',''):
return True
elif string in self.registration.name:
Modified: zope.introspector/trunk/src/zope/introspector/adapters.txt
===================================================================
--- zope.introspector/trunk/src/zope/introspector/adapters.txt 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/adapters.txt 2008-07-08 21:37:59 UTC (rev 88125)
@@ -17,11 +17,14 @@
... pass
>>> class FakeFactory:
... pass
+ >>> class base:
+ ... pass
>>> class FakeRegistration(object):
... provided = FakeProvided
... name = "FakeName"
... factory = FakeFactory
... required = [FakeRequired]
+ ... registry = base
>>> fake_reg = FakeRegistration()
In the Component Registry there are four different types of registrations, ``IAdapterRegistration``,
@@ -35,14 +38,20 @@
>>> directlyProvides(fake_reg, IAdapterRegistration)
We can now get an ``AdapterSearch`` from the IRegistrySearch, that we can use to search the registration
-and see if this registration has anything with that name.
+and see if this registration has anything with that name. You can also specify if the search should be
+within a special registry or default to 'base'
::
>>> from zope.introspector.interfaces import IRegistrySearch
>>> adapterSearch = IRegistrySearch(fake_reg)
>>> adapterSearch.searchRegistration("FakeName")
True
-
+
+Since fake_reg is registered in the base registry nothing is found when searching in a made up registry.
+
+ >>> adapterSearch.searchRegistration("FakeName", registry='test')
+ False
+
>>> adapterSearch.searchRegistration("FakeProvided")
True
@@ -69,6 +78,11 @@
>>> handlerSearch.searchRegistration("FakeName")
True
+Since fake_reg is registered in the base registry nothing is found when searching in a made up registry.
+
+ >>> handlerSearch.searchRegistration("FakeName", registry='test')
+ False
+
>>> handlerSearch.searchRegistration("FakeFactory")
True
@@ -89,7 +103,12 @@
>>> utilitySearch = IRegistrySearch(fake_reg)
>>> utilitySearch.searchRegistration("FakeName")
True
-
+
+Since fake_reg is registered in the base registry nothing is found when searching in a made up registry.
+
+ >>> utilitySearch.searchRegistration("FakeName", registry='test')
+ False
+
>>> utilitySearch.searchRegistration("FakeProvided")
True
Modified: zope.introspector/trunk/src/zope/introspector/descriptionprovider.txt
===================================================================
--- zope.introspector/trunk/src/zope/introspector/descriptionprovider.txt 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/descriptionprovider.txt 2008-07-08 21:37:59 UTC (rev 88125)
@@ -203,5 +203,5 @@
>>> import zope.introspector.tests
>>> provider.getDescription(zope.introspector.tests)
- <zope.introspector.objectinfo.PackageInfo object at 0x...>
+ <zope.introspector.objectinfo.ObjectInfo object at 0x...>
Modified: zope.introspector/trunk/src/zope/introspector/interfaces.py
===================================================================
--- zope.introspector/trunk/src/zope/introspector/interfaces.py 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/interfaces.py 2008-07-08 21:37:59 UTC (rev 88125)
@@ -69,26 +69,26 @@
class IRegistryInfo(interface.Interface):
"""Keeps information about the Component registry.
"""
- def getAllRegistrations():
+ def getAllRegistrations(registry):
""" Returns a list of everything registered in the component registry.
"""
- def getAllUtilities():
+ def getAllUtilities(registry):
""" Returns a list of all utilities registered in the
component registery.
"""
- def getAllAdapters():
+ def getAllAdapters(registry):
""" Returns a list of all adapters registered in the component
registery.
"""
- def getAllHandlers():
+ def getAllHandlers(registry):
""" Returns a list of all handlers registered in the component
registery.
"""
- def getAllSubscriptionAdapters():
+ def getAllSubscriptionAdapters(registry):
""" Returns a list of all handlers registered in the component
registery.
"""
@@ -122,7 +122,7 @@
""" Registers the registration in the adapter...
"""
- def searchRegistration(string, caseSensitive):
+ def searchRegistration(string, registry, caseSensitive):
""" Implements the search...
returns True or False
"""
Modified: zope.introspector/trunk/src/zope/introspector/registry.py
===================================================================
--- zope.introspector/trunk/src/zope/introspector/registry.py 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/registry.py 2008-07-08 21:37:59 UTC (rev 88125)
@@ -13,35 +13,47 @@
"""
implements(IRegistryInfo)
- def getAllRegistrations(self):
+ def getAllRegistrations(self, registry='base'):
""" See zope.introspector.interfaces for documentation.
"""
- adapters = self.getAllAdapters()
- handlers = self.getAllHandlers()
- utils = self.getAllUtilities()
- subsriptionAdapters = self.getAllSubscriptionAdapters()
+ adapters = self.getAllAdapters(registry)
+ handlers = self.getAllHandlers(registry)
+ utils = self.getAllUtilities(registry)
+ subsriptionAdapters = self.getAllSubscriptionAdapters(registry)
return adapters + handlers + utils + subsriptionAdapters
- def getAllUtilities(self):
+ def getAllUtilities(self, registry='base'):
""" See zope.introspector.interfaces for documentation.
- """
- return [x for x in globalregistry.base.registeredUtilities()]
+ """
+ def f(item):
+ return registry is getattr(item.registry, '__name__')
- def getAllAdapters(self):
+ return filter(f, globalregistry.base.registeredUtilities())
+
+ def getAllAdapters(self, registry='base'):
""" See zope.introspector.interfaces for documentation.
"""
- return [x for x in globalregistry.base.registeredAdapters()]
+ def f(item):
+ return registry is getattr(item.registry, '__name__')
+
+ return filter(f, globalregistry.base.registeredAdapters())
- def getAllHandlers(self):
+ def getAllHandlers(self, registry='base'):
""" See zope.introspector.interfaces for documentation.
"""
- return [x for x in globalregistry.base.registeredHandlers()]
+ def f(item):
+ return registry is getattr(item.registry, '__name__')
+
+ return filter(f, globalregistry.base.registeredHandlers())
+
- def getAllSubscriptionAdapters(self):
+ def getAllSubscriptionAdapters(self, registry='base'):
""" See zope.introspector.interfaces for documentation.
"""
- return [x for x in
- globalregistry.base.registeredSubscriptionAdapters()]
+ def f(item):
+ return registry is getattr(item.registry, '__name__')
+
+ return filter(f, globalregistry.base.registeredSubscriptionAdapters())
def getRegistrationsForInterface(self, searchString='', types=['all']):
""" See zope.introspector.interfaces for documentation.
@@ -84,6 +96,8 @@
return registrations
+# def _filter(self, registrations, filter):
+# fil
def _dicter(self, dictionary, modPath, item):
key = modPath[0]
Modified: zope.introspector/trunk/src/zope/introspector/registry.txt
===================================================================
--- zope.introspector/trunk/src/zope/introspector/registry.txt 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/registry.txt 2008-07-08 21:37:59 UTC (rev 88125)
@@ -16,6 +16,9 @@
>>> registryUtil.getAllAdapters()
[AdapterRegistration...]
+
+ >>> registryUtil.getAllAdapters(registry='test')
+ []
For Handlers::
Modified: zope.introspector/trunk/src/zope/introspector/tests/descriptorgrokker.txt
===================================================================
--- zope.introspector/trunk/src/zope/introspector/tests/descriptorgrokker.txt 2008-07-08 21:22:06 UTC (rev 88124)
+++ zope.introspector/trunk/src/zope/introspector/tests/descriptorgrokker.txt 2008-07-08 21:37:59 UTC (rev 88125)
@@ -13,7 +13,9 @@
>>> import zope.introspector.descriptionprovider as zid
>>> reg = zid.descriptor_registry
>>> reg
- []
+ [...]
+
+[]
We create an Grokker instance::
@@ -35,14 +37,18 @@
>>> from pprint import pprint
>>> pprint(sorted(reg))
- [{'priority': 666, 'handler': <type 'object'>}]
+ [...]
+[{'priority': 666, 'handler': <type 'object'>}]
+
If we call the grokker with a lower number, it should be inserted
before the existing one::
>>> trash = grokker.execute(object, 665)
>>> pprint(reg)
- [{'priority': 665, 'handler': <type 'object'>},
+ [...]
+
+[{'priority': 665, 'handler': <type 'object'>},
{'priority': 666, 'handler': <type 'object'>}]
@@ -50,7 +56,9 @@
>>> trash = grokker.execute(int, 666)
>>> pprint(reg)
- [{'priority': 665, 'handler': <type 'object'>},
+ [...]
+
+[{'priority': 665, 'handler': <type 'object'>},
{'priority': 666, 'handler': <type 'int'>},
{'priority': 666, 'handler': <type 'object'>}]
@@ -59,7 +67,9 @@
>>> trash = grokker.execute(object, 667)
>>> pprint(reg)
- [{'priority': 665, 'handler': <type 'object'>},
+ [...]
+
+[{'priority': 665, 'handler': <type 'object'>},
{'priority': 666, 'handler': <type 'int'>},
{'priority': 666, 'handler': <type 'object'>},
{'priority': 667, 'handler': <type 'object'>}]
More information about the Checkins
mailing list