[Zodb-checkins] CVS: Packages/ZConfig - matcher.py:1.1.2.18

Fred L. Drake, Jr. fred@zope.com
Fri, 13 Dec 2002 10:41:53 -0500


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

Modified Files:
      Tag: zconfig-schema-devel-branch
	matcher.py 
Log Message:
When constructing the value for a section, *always* get the datatype
from the value's __type__, since ci.datatype isn't always right for
section groups.


=== Packages/ZConfig/matcher.py 1.1.2.17 => 1.1.2.18 ===
--- Packages/ZConfig/matcher.py:1.1.2.17	Fri Dec 13 09:53:47 2002
+++ Packages/ZConfig/matcher.py	Fri Dec 13 10:41:52 2002
@@ -124,11 +124,16 @@
         values = self._values
         for i in range(len(values)):
             name, ci = self.type[i]
-            dt = ci.datatype
             if ci.ismulti():
-                values[i] = [dt.convert(s) for s in values[i]]
+                if ci.issection():
+                    values[i] = [s.__type__.datatype.convert(s)
+                                 for s in values[i]]
+                else:
+                    values[i] = [ci.datatype.convert(s) for s in values[i]]
+            elif ci.issection():
+                values[i] = values[i].__type__.datatype.convert(values[i])
             else:
-                values[i] = dt.convert(values[i])
+                values[i] = ci.datatype.convert(values[i])
         v = self.createValue(attrnames)
         # XXX  Really should delay this until after all the
         # XXX  sibling SectionValue instances have been created and