[Zope3-checkins] CVS: Packages/ZConfig - info.py:1.1.2.6 matcher.py:1.1.2.11 schema.py:1.1.2.7

Fred L. Drake, Jr. fred@zope.com
Thu, 12 Dec 2002 00:03:09 -0500


Update of /cvs-repository/Packages/ZConfig
In directory cvs.zope.org:/tmp/cvs-serv2628

Modified Files:
      Tag: zconfig-schema-devel-branch
	info.py matcher.py schema.py 
Log Message:
Make sure the datatype for the complete schema is passed through where needed
and applied at the end.


=== Packages/ZConfig/info.py 1.1.2.5 => 1.1.2.6 ===
--- Packages/ZConfig/info.py:1.1.2.5	Wed Dec 11 15:18:15 2002
+++ Packages/ZConfig/info.py	Thu Dec 12 00:03:08 2002
@@ -222,8 +222,8 @@
 
 
 class SchemaInfo(SectionInfo):
-    def __init__(self, handler, keytype):
-        SectionInfo.__init__(self, None, None, 1, 1, handler, None,
+    def __init__(self, datatype, handler, keytype):
+        SectionInfo.__init__(self, None, datatype, 1, 1, handler, None,
                              keytype, (), None)
 
     def allowUnnamed(self):


=== Packages/ZConfig/matcher.py 1.1.2.10 => 1.1.2.11 ===
--- Packages/ZConfig/matcher.py:1.1.2.10	Wed Dec 11 22:09:59 2002
+++ Packages/ZConfig/matcher.py	Thu Dec 12 00:03:08 2002
@@ -138,6 +138,12 @@
     def __init__(self, info):
         SectionMatcher.__init__(self, info, None)
 
+    def finish(self):
+        # Since there's no outer container to call datatype.convert()
+        # for the schema, we convert on the way out.
+        v = SectionMatcher.finish(self)
+        return self.info.datatype.convert(v)
+
 
 class SectionValue:
     """Generic 'bag-of-values' object for a section."""


=== Packages/ZConfig/schema.py 1.1.2.6 => 1.1.2.7 ===
--- Packages/ZConfig/schema.py:1.1.2.6	Wed Dec 11 22:12:23 2002
+++ Packages/ZConfig/schema.py	Thu Dec 12 00:03:08 2002
@@ -123,7 +123,10 @@
             keytype = datatypes.get(attrs["keytype"])
         else:
             keytype = default_key_type
-        self._schema = info.SchemaInfo(handler, keytype)
+        datatype = attrs.get("type")
+        if datatype:
+            datatype = datatypes.get(self.get_classname(datatype))
+        self._schema = info.SchemaInfo(datatype, handler, keytype)
         self._sections = [self._schema]
         self._stack = [self._schema]