[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