From 4a1b1e0be63537d82166eccd1d6ddb60d5458b18 Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Mon, 28 Mar 2016 11:51:57 -0700
Subject: [PATCH] Release of v. 2.20b

---
 README                            |   9 ++++++++
 generateDS.html                   |   8 +++----
 generateDS.py                     |  34 ++++++++++++++++++------------
 generateDS.txt                    |   2 +-
 gui/generateds_gui.py             |   2 +-
 librarytemplate_howto.html        |   8 +++----
 librarytemplate_howto.txt         |   2 +-
 process_includes.py               |   2 +-
 setup.py                          |   2 +-
 tutorial/generateds_tutorial.html |   8 +++----
 tutorial/generateds_tutorial.txt  |   2 +-
 tutorial/generateds_tutorial.zip  | Bin 48767 -> 48766 bytes
 12 files changed, 47 insertions(+), 32 deletions(-)

diff --git a/README b/README
index 9eeca0d..f32d746 100644
--- a/README
+++ b/README
@@ -141,6 +141,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
+Version 2.20b (03/28/2016)
+
+- Fixes to handling of simpleType with and without restrictions on
+  another defined simpleType.  These were not being handled
+  correctly when the name of the simpleType contained a dash.
+  Thanks to Ryku for identifying this problem and for a very helpful
+  description of what was wrong and for providing schemas to
+  reproduce the problem.
+
 Version 2.20a (02/25/2016)
 
 - Another patch for Python 2 and 3.  We needed to protect against
diff --git a/generateDS.html b/generateDS.html
index 2253775..bf07b0e 100644
--- a/generateDS.html
+++ b/generateDS.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.13: http://docutils.sourceforge.net/" />
 <title>generateDS -- Generate Data Structures from XML Schema</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -220,7 +220,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20b</td>
 </tr>
 </tbody>
 </table>
@@ -229,7 +229,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">February 25, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 28, 2016</td>
 </tr>
 </tbody>
 </table>
@@ -3171,7 +3171,7 @@ following among others:</p>
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateDS.txt">View document source</a>.
-Generated on: 2016-02-26 00:54 UTC.
+Generated on: 2016-03-28 18:25 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/generateDS.py b/generateDS.py
index 2d90b8f..3d81eb6 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -202,7 +202,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.20a'
+VERSION = '2.20b'
 ##VERSION##
 
 if sys.version_info.major == 2:
@@ -1711,9 +1711,9 @@ class XschemaHandler(handler.ContentHandler):
                 # Save the name of the simpleType, but ignore everything
                 #   else about it (for now).
                 if 'name' in attrs:
-                    stName = cleanupName(attrs['name'])
+                    stName = attrs['name']
                 elif len(self.stack) > 0:
-                    stName = cleanupName(self.stack[-1].getName())
+                    stName = self.stack[-1].getName()
                 else:
                     stName = None
                 # If the parent is an element, mark it as a simpleType.
@@ -3356,7 +3356,7 @@ def generateBuildAttributes(wrt, element, hasAttributes):
         if typeName and typeName in SimpleTypeDict:
             wrt("            self.validate_%s(self.%s)    "
                 "# validate type %s\n" %
-                (typeName, mappedName, typeName, ))
+                (cleanupName(typeName), mappedName, typeName, ))
     if element.getAnyAttribute():
         hasAttributes += 1
         wrt('        self.anyAttributes_ = {}\n')
@@ -3779,11 +3779,11 @@ def generateBuildStandard_1(
         if child.getMaxOccurs() > 1:
             wrt("            # validate type %s\n" % (typeName, ))
             wrt("            self.validate_%s(self.%s[-1])\n" % (
-                typeName, mappedName))
+                cleanupName(typeName), mappedName, ))
         else:
             wrt("            # validate type %s\n" % (typeName, ))
             wrt("            self.validate_%s(self.%s)\n" % (
-                typeName, mappedName, ))
+                cleanupName(typeName), mappedName, ))
 # end generateBuildStandard_1
 
 
@@ -4594,8 +4594,10 @@ def generateValidatorDefs(wrt, element):
         if (typeName and
                 typeName in SimpleTypeDict and
                 typeName not in generatedSimpleTypes):
+            cleanTypeName = cleanupName(typeName)
             generatedSimpleTypes.append(typeName)
-            wrt('    def validate_%s(self, value):\n' % (typeName, ))
+            wrt('    def validate_%s(self, value):\n' % (
+                cleanupName(typeName), ))
             if typeName in SimpleTypeDict:
                 stObj = SimpleTypeDict[typeName]
                 wrt('        # Validate type %s, a restriction '
@@ -4609,15 +4611,15 @@ def generateValidatorDefs(wrt, element):
             if patterns:
                 wrt('            if not self.gds_validate_simple_patterns(\n')
                 wrt('                    self.validate_%s_patterns_, '
-                    'value):\n' % (typeName, ))
+                    'value):\n' % (cleanTypeName, ))
                 s1 = ("                warnings_.warn('Value \"%%s\" "
                       "does not match xsd pattern restrictions: %%s' "
                       "%% (value.encode('utf-8'), "
-                      "self.validate_%s_patterns_, ))\n" % (typeName, )
+                      "self.validate_%s_patterns_, ))\n" % (cleanTypeName, )
                       )
                 wrt(s1)
                 wrt('    validate_%s_patterns_ = %s\n' % (
-                    typeName, patterns, ))
+                    cleanTypeName, patterns, ))
     attrDefs = element.getAttributeDefs()
     for key in element.getAttributeDefsList():
         attrDef = attrDefs[key]
@@ -4625,8 +4627,10 @@ def generateValidatorDefs(wrt, element):
         if (typeName and
                 typeName in SimpleTypeDict and
                 typeName not in generatedSimpleTypes):
+            cleanTypeName = cleanupName(typeName)
             generatedSimpleTypes.append(typeName)
-            wrt('    def validate_%s(self, value):\n' % (typeName, ))
+            wrt('    def validate_%s(self, value):\n' % (
+                cleanupName(typeName), ))
             if typeName in SimpleTypeDict:
                 stObj = SimpleTypeDict[typeName]
                 wrt('        # Validate type %s, a restriction on %s.\n' % (
@@ -4639,15 +4643,15 @@ def generateValidatorDefs(wrt, element):
             if patterns:
                 wrt('            if not self.gds_validate_simple_patterns(\n')
                 wrt('                    self.validate_%s_patterns_, '
-                    'value):\n' % (typeName, ))
+                    'value):\n' % (cleanTypeName, ))
                 s1 = ("                warnings_.warn('Value \"%%s\" "
                       "does not match xsd pattern restrictions: %%s' "
                       "%% (value.encode('utf-8'), "
-                      "self.validate_%s_patterns_, ))\n" % (typeName, )
+                      "self.validate_%s_patterns_, ))\n" % (cleanTypeName, )
                       )
                 wrt(s1)
                 wrt('    validate_%s_patterns_ = %s\n' % (
-                    typeName, patterns, ))
+                    cleanTypeName, patterns, ))
 # end generateValidatorDefs
 
 
@@ -6491,6 +6495,7 @@ def generate(outfileName, subclassFilename, behaviorFilename,
         generateSubclasses(
             root, subclassFilename, behaviorFilename,
             prefix, options, args, superModule)
+# end generate
 
 
 def makeFile(outFileName):
@@ -6714,6 +6719,7 @@ def parseAndGenerate(
                 outfile = open(modulePath, "a")
                 outfile.write(exportLine)
                 outfile.close()
+# end parseAndGenerate
 
 
 # Function that gets called recursively in order to expand nested references
diff --git a/generateDS.txt b/generateDS.txt
index c83f331..504406d 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.20a
+:revision: 2.20b
 
 .. version
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index 8005633..bd08890 100755
--- a/gui/generateds_gui.py
+++ b/gui/generateds_gui.py
@@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.20a'
+VERSION = '2.20b'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index 7ba967b..2bbc82d 100644
--- a/librarytemplate_howto.html
+++ b/librarytemplate_howto.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.13: http://docutils.sourceforge.net/" />
 <title>How to package a generateDS.py generated library</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -217,7 +217,7 @@ dkuhlman (at) davekuhlman (dot) org
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20b</td>
 </tr>
 </tbody>
 </table>
@@ -226,7 +226,7 @@ dkuhlman (at) davekuhlman (dot) org
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">February 25, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 28, 2016</td>
 </tr>
 </tbody>
 </table>
@@ -380,7 +380,7 @@ this command for your needs.  For example, you may need to use
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="librarytemplate_howto.txt">View document source</a>.
-Generated on: 2016-02-26 00:54 UTC.
+Generated on: 2016-03-28 18:25 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/librarytemplate_howto.txt b/librarytemplate_howto.txt
index 4abf50f..d90b767 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.20a
+:revision: 2.20b
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index c4f5e57..4dcab5a 100755
--- a/process_includes.py
+++ b/process_includes.py
@@ -40,7 +40,7 @@ except ImportError:
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.20a'
+VERSION = '2.20b'
 ##VERSION##
 
 CatalogDict = {}
diff --git a/setup.py b/setup.py
index 6f9c281..9a8f42f 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ setup(name="generateDS",
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-    version="2.20a",
+    version="2.20b",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index dde286b..daffbe1 100644
--- a/tutorial/generateds_tutorial.html
+++ b/tutorial/generateds_tutorial.html
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.13: http://docutils.sourceforge.net/" />
 <title>generateDS -- Introduction and Tutorial</title>
 <meta name="author" content="Dave Kuhlman" />
 <style type="text/css">
@@ -219,7 +219,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.20b</td>
 </tr>
 </tbody>
 </table>
@@ -228,7 +228,7 @@ They are used by updateversion.py. -->
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">date:</th><td class="field-body">February 25, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 28, 2016</td>
 </tr>
 </tbody>
 </table>
@@ -1210,7 +1210,7 @@ named <tt class="docutils literal">garden_api.py</tt>, you can create an instanc
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateds_tutorial.txt">View document source</a>.
-Generated on: 2016-02-26 00:54 UTC.
+Generated on: 2016-03-28 18:25 UTC.
 Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
 
 </div>
diff --git a/tutorial/generateds_tutorial.txt b/tutorial/generateds_tutorial.txt
index c2e27d5..291674e 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial
 
 .. version
 
-:revision: 2.20a
+:revision: 2.20b
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index ea26f8a381ffe394295bbb216537f991ddfcfd55..46a5c5d8e8421887428115def7fe27484ec50054 100644
GIT binary patch
delta 11273
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

delta 11295
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
SfWPokY<p2)OgsPQ!T$%^oM58>

-- 
GitLab