[Zope-Checkins] CVS: Zope3/lib/python/Zope/PageTemplate - SafeMapping.py:1.1.2.5 TALES.py:1.1.2.15

Jim Fulton jim@zope.com
Mon, 10 Jun 2002 15:34:56 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/PageTemplate
In directory cvs.zope.org:/tmp/cvs-serv5490/lib/python/Zope/PageTemplate

Modified Files:
      Tag: Zope-3x-branch
	SafeMapping.py TALES.py 
Log Message:
Implemented 

http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/IContainerPythonification

Along the way:

- Converted most uses of has_key to use in.

- Fixed a bug in Interface names and namesAndDescriptions methods 
  that caused base class attributes to be missed.



=== Zope3/lib/python/Zope/PageTemplate/SafeMapping.py 1.1.2.4 => 1.1.2.5 ===
     def __getitem__(self, key):
         for d in self._mappings:
-            if d.has_key(key):
+            if key in d:
                 return d[key]
         raise KeyError, key
 
-    def has_get(self, key, _marker=[]):
+    def __contains__(self, key):
         for d in self._mappings:
-            if d.has_key(key):
-                return 1, d[key]
-        return 0, None
-
-    def has_key(self, key):
-        for d in self._mappings:
-            if d.has_key(key):
+            if key in d:
                 return 1
         return 0
 
+    has_key = __contains__
+
     def get(self, key, default=None):
         for d in self._mappings:
-            if d.has_key(key):
+            if key in d:
                 return d[key]
         return default
 


=== Zope3/lib/python/Zope/PageTemplate/TALES.py 1.1.2.14 => 1.1.2.15 ===
                 'Invalid expression type name "%s".' % name)
         types = self.types
-        if types.has_key(name):
+        if name in types:
             raise RegistrationError, (
                 'Multiple registrations for Expression type "%s".' %
                 name)
@@ -112,7 +112,7 @@
         if not _valid_name(name):
             raise RegistrationError, 'Invalid base name "%s".' % name
         base_names = self.base_names
-        if base_names.has_key(name):
+        if name in base_names:
             raise RegistrationError, (
                 'Multiple registrations for base name "%s".' % name)
         base_names[name] = object