From 3276fa217a6ae7604c025ccb54767d53f2563068 Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Thu, 17 Nov 2016 09:49:28 -0800
Subject: [PATCH] Version 2.24a

---
 README                            |  22 +++++++++++-----
 generateDS.html                   |  18 ++++++++-----
 generateDS.py                     |  42 ++++++++++++++++--------------
 generateDS.txt                    |  16 ++++++++----
 generateds_gui_notes.html         |   6 ++---
 generateds_gui_notes.txt          |   2 +-
 gui/generateds_gui.py             |   2 +-
 librarytemplate_howto.html        |   6 ++---
 librarytemplate_howto.txt         |   2 +-
 process_includes.py               |   2 +-
 setup.py                          |   2 +-
 tests/check_results.rb            |   2 ++
 tests/copy_all                    |   2 ++
 tests/test.py                     |  26 ++++++++++++++++++
 tutorial/generateds_tutorial.html |   6 ++---
 tutorial/generateds_tutorial.txt  |   2 +-
 tutorial/generateds_tutorial.zip  | Bin 48767 -> 48764 bytes
 17 files changed, 105 insertions(+), 53 deletions(-)

diff --git a/README b/README
index 5e8629c..bdd0179 100644
--- a/README
+++ b/README
@@ -141,7 +141,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
-Version 2.23c (11/03/2016)
+Version 2.24a (11/16/2016)
 
 - Added entry_points to setup.py so that distutils will generate
   executable scripts for executable .py files (for example,
@@ -150,12 +150,20 @@ Version 2.23c (11/03/2016)
 - Fixed function call signature mismatch in MixedContainer call to
   export method.  Thanks to Lev Israel for catching this and
   providing the solution.
-- Fix to catch duplicate definitions of child elements with the same
-  name inside a single parent element.  This fix does the following:
-  (1) removes duplicate child; (2) makes the remaining child a
-  Python list (effectively maxOccurs="unbounded"); (3) prints a
-  warning message when it finds and removes a duplicate.  Thanks to
-  Pietro Saccardi for catching and reporting this.
+- Added "remove duplicate elements" fix to catch duplicate
+  definitions of child elements with the same name inside a single
+  parent element.  This fix does the following: (1) removes
+  duplicate child; (2) makes the remaining child a Python list
+  (effectively maxOccurs="unbounded"); (3) prints a warning message
+  when it finds and removes a duplicate.  Thanks to Pietro Saccardi
+  for catching and reporting this.
+- More fixes for "remove duplicate elements".
+- Removed command line option for "remove duplicate elements".  This
+  behavior will now always be performed.
+- Added unit test for "remove duplicate elements".
+- Added command line option "--no-warnings" to turn off warning
+  messages.  I needed it for the unit test for "remove duplicate
+  elements".
 
 Version 2.23b (09/26/2016)
 
diff --git a/generateDS.html b/generateDS.html
index e58fca6..5312fd5 100644
--- a/generateDS.html
+++ b/generateDS.html
@@ -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.23c</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24a</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">October 13, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">November 16, 2016</td>
 </tr>
 </tbody>
 </table>
@@ -531,7 +531,7 @@ python generateDS.py -o people.py -s peoplesubs.py people.xsd
 <p>Here is the usage message displayed by <tt class="docutils literal">generateDS.py</tt>:</p>
 <pre class="literal-block">
 Synopsis:
-    Generate Python classes from XML Schema definition.
+    Generate Python classes from XML schema definition.
     Input is read from in_xsd_file or, if &quot;-&quot; (dash) arg, from stdin.
     Output is written to files named in &quot;-o&quot; and &quot;-s&quot; options.
 Usage:
@@ -561,7 +561,7 @@ Options:
                              top level class; if YY omitted XX is the default.
                              class. Also see section &quot;Recognizing the top level
                              element&quot; in the documentation.
-    --super=&quot;XXX&quot;            Super module name in generated in subclass
+    --super=&quot;XXX&quot;            Super module name in generated subclass
                              module. Default=&quot;???&quot;
     --validator-bodies=path  Path to a directory containing files that provide
                              bodies (implementations) of validator methods.
@@ -586,10 +586,10 @@ Options:
                              generated files. This is useful if you want
                              to minimize the amount of (no-operation)
                              changes to the generated python code.
-    --no-process-includes    Do not process included XML Schema files.  By
+    --no-process-includes    Do not process included XML schema files.  By
                              default, generateDS.py will insert content
                              from files referenced by &lt;include ... /&gt;
-                             elements into the XML Schema to be processed.
+                             elements into the XML schema to be processed.
     --silence                Normally, the code generated with generateDS
                              echoes the information being parsed. To prevent
                              the echo from occurring, use the --silence switch.
@@ -630,6 +630,7 @@ Options:
                              Default: &quot;[('[-:.]', '_')]&quot;
     -q, --no-questions       Do not ask questions, for example,
                              force overwrite.
+    --no-warnings            Do not print warning messages.
     --session=mysession.session
                              Load and use options from session file. You can
                              create session file in generateds_gui.py.  Or,
@@ -894,6 +895,9 @@ option is omitted and the ouput file exists, then generateDS.py
 will not ask whether the file should be overwritten.  (In this
 case, when &quot;-q&quot; is used, the &quot;-f&quot; must be used to force the
 output file to be written.</dd>
+<dt>no-warnings</dt>
+<dd>While running generateDS.py, do not print warning messages that
+would be written to stderr.</dd>
 <dt>session=mysession.session</dt>
 <dd>Load and use options from session file. You can create a
 session file in generateds_gui.py, the graphical front-end for
@@ -3180,7 +3184,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-10-13 22:29 UTC.
+Generated on: 2016-11-16 20:28 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 1da2d2f..465a61c 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -98,12 +98,9 @@ Options:
                              search pattern and second is a replacement.
                              Example: "[('[-:.]', '_'), ('^__', 'Special')]"
                              Default: "[('[-:.]', '_')]"
-    --remove-duplicate-child-elements
-                             If a child element with the same name is
-                             defined multiple times under a parent, then
-                             remove it and issue a warning.
     -q, --no-questions       Do not ask questions, for example,
                              force overwrite.
+    --no-warnings            Do not print warning messages.
     --session=mysession.session
                              Load and use options from session file. You can
                              create session file in generateds_gui.py.  Or,
@@ -207,7 +204,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.23c'
+VERSION = '2.24a'
 ##VERSION##
 
 if sys.version_info.major == 2:
@@ -279,7 +276,7 @@ SingleFileOutput = True
 OutputDirectory = None
 ModuleSuffix = ""
 PreserveCdataTags = False
-RemoveDuplicateChildElements = False
+NoWarnings = False
 
 SchemaToPythonTypeMap = {}
 
@@ -922,12 +919,11 @@ class XschemaElement(XschemaElementBase):
         self.expandGroupReferences_tree(visited)
         self.collect_element_dict()
         self.annotate_find_type()
-        element_dict = {}
-        to_be_removed = []
+        element_dict = None
+        to_be_removed = None
         self.annotate_tree(
             element_dict=element_dict,
             to_be_removed=to_be_removed)
-        self.remove_children(to_be_removed)
         self.fix_dup_names()
         self.coerce_attr_types()
         self.checkMixedBases()
@@ -1163,11 +1159,18 @@ class XschemaElement(XschemaElementBase):
             child.annotate_find_type()
 
     def annotate_tree(self, element_dict, to_be_removed):
-        if RemoveDuplicateChildElements:
-            name = self.getName()
-            if name in element_dict:
-                # If we've already seen this element (name), make it a
-                # list and throw the previous one away.
+        name = self.getName()
+        if element_dict is not None:
+            dup_element = element_dict.get(name)
+            if (dup_element is not None and
+                    # The element_dict keys are the element name.
+                    # So, we do not need to compare names.
+                    #dup_element.getName() == name and
+                    not self.complexType and
+                    not dup_element.complexType):
+                # If we've already seen this element (name), and
+                # these are both xsd:complexType, then
+                # make it a list and throw the previous one away.
                 self.maxOccurs = 2
                 to_be_removed.append(element_dict[name])
                 err_msg(
@@ -6894,7 +6897,8 @@ def capture_cleanup_name_list(option):
 
 
 def err_msg(msg):
-    sys.stderr.write(msg)
+    if not NoWarnings:
+        sys.stderr.write(msg)
 
 
 USAGE_TEXT = __doc__
@@ -6916,7 +6920,7 @@ def main():
         FixTypeNames, SingleFileOutput, OutputDirectory, \
         ModuleSuffix, UseOldSimpleTypeValidators, \
         PreserveCdataTags, CleanupNameList, \
-        RemoveDuplicateChildElements
+        NoWarnings
     outputText = True
     args = sys.argv[1:]
     try:
@@ -6934,7 +6938,7 @@ def main():
                 'one-file-per-xsd', 'output-directory=',
                 'module-suffix=', 'use-old-simpletype-validators',
                 'preserve-cdata-tags', 'cleanup-name-list=',
-                'remove-duplicate-child-elements',
+                'no-warnings',
             ])
     except getopt.GetoptError:
         usage()
@@ -7119,8 +7123,8 @@ def main():
             PreserveCdataTags = True
         elif option[0] == '--cleanup-name-list':
             CleanupNameList = capture_cleanup_name_list(option[1])
-        elif option[0] == '--remove-duplicate-child-elements':
-            RemoveDuplicateChildElements = True
+        elif option[0] == '--no-warnings':
+            NoWarnings = True
     if showVersion:
         print('generateDS.py version %s' % VERSION)
         sys.exit(0)
diff --git a/generateDS.txt b/generateDS.txt
index 4169ac8..09a490e 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.23c
+:revision: 2.24a
 
 .. version
 
@@ -223,7 +223,7 @@ Here is the usage message displayed by ``generateDS.py``::
 
 
     Synopsis:
-        Generate Python classes from XML Schema definition.
+        Generate Python classes from XML schema definition.
         Input is read from in_xsd_file or, if "-" (dash) arg, from stdin.
         Output is written to files named in "-o" and "-s" options.
     Usage:
@@ -253,7 +253,7 @@ Here is the usage message displayed by ``generateDS.py``::
                                  top level class; if YY omitted XX is the default.
                                  class. Also see section "Recognizing the top level
                                  element" in the documentation.
-        --super="XXX"            Super module name in generated in subclass
+        --super="XXX"            Super module name in generated subclass
                                  module. Default="???"
         --validator-bodies=path  Path to a directory containing files that provide
                                  bodies (implementations) of validator methods.
@@ -278,10 +278,10 @@ Here is the usage message displayed by ``generateDS.py``::
                                  generated files. This is useful if you want
                                  to minimize the amount of (no-operation)
                                  changes to the generated python code.
-        --no-process-includes    Do not process included XML Schema files.  By
+        --no-process-includes    Do not process included XML schema files.  By
                                  default, generateDS.py will insert content
                                  from files referenced by <include ... />
-                                 elements into the XML Schema to be processed.
+                                 elements into the XML schema to be processed.
         --silence                Normally, the code generated with generateDS
                                  echoes the information being parsed. To prevent
                                  the echo from occurring, use the --silence switch.
@@ -322,6 +322,7 @@ Here is the usage message displayed by ``generateDS.py``::
                                  Default: "[('[-:.]', '_')]"
         -q, --no-questions       Do not ask questions, for example,
                                  force overwrite.
+        --no-warnings            Do not print warning messages.
         --session=mysession.session
                                  Load and use options from session file. You can
                                  create session file in generateds_gui.py.  Or,
@@ -344,6 +345,7 @@ Here is the usage message displayed by ``generateDS.py``::
     also generates member specifications in each class (in a dictionary).
 
 
+
 Command line options
 ----------------------
 
@@ -613,6 +615,10 @@ q, no-questions
     case, when "-q" is used, the "-f" must be used to force the
     output file to be written.
 
+no-warnings
+    While running generateDS.py, do not print warning messages that
+    would be written to stderr.
+
 session=mysession.session
     Load and use options from session file. You can create a
     session file in generateds_gui.py, the graphical front-end for
diff --git a/generateds_gui_notes.html b/generateds_gui_notes.html
index 4906de5..c3958eb 100644
--- a/generateds_gui_notes.html
+++ b/generateds_gui_notes.html
@@ -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.23c</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24a</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">October 13, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">November 16, 2016</td>
 </tr>
 </tbody>
 </table>
@@ -401,7 +401,7 @@ $ mv generateds_gui.mo locale/ru/LC_MESSAGES/
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateds_gui_notes.txt">View document source</a>.
-Generated on: 2016-10-13 22:29 UTC.
+Generated on: 2016-11-16 20:28 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_gui_notes.txt b/generateds_gui_notes.txt
index 1c11460..0086f3d 100644
--- a/generateds_gui_notes.txt
+++ b/generateds_gui_notes.txt
@@ -12,7 +12,7 @@ GenerateDS GUI Notes
 
 .. version
 
-:revision: 2.23c
+:revision: 2.24a
 
 .. version
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index 64b8c7c..8c99e30 100755
--- a/gui/generateds_gui.py
+++ b/gui/generateds_gui.py
@@ -41,7 +41,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.23c'
+VERSION = '2.24a'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index 84adafc..785be91 100644
--- a/librarytemplate_howto.html
+++ b/librarytemplate_howto.html
@@ -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.23c</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24a</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">October 13, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">November 16, 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-10-13 22:29 UTC.
+Generated on: 2016-11-16 20:28 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 61fa8f8..4b30ec1 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.23c
+:revision: 2.24a
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index ec67d80..3325f9d 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.23c'
+VERSION = '2.24a'
 ##VERSION##
 
 CatalogDict = {}
diff --git a/setup.py b/setup.py
index 8866826..2bf1e46 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.23c",
+    version="2.24a",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
diff --git a/tests/check_results.rb b/tests/check_results.rb
index fd60745..bdbec1e 100755
--- a/tests/check_results.rb
+++ b/tests/check_results.rb
@@ -63,6 +63,8 @@ $commands = [
   "diff -u defaults_cases1_sup.py defaults_cases2_sup.py",
   "diff -u cleanupname1_sub.py cleanupname2_sub.py",
   "diff -u cleanupname1_sup.py cleanupname2_sup.py",
+  "diff -u rem_dup_elems1_sub.py rem_dup_elems2_sub.py",
+  "diff -u rem_dup_elems1_sup.py rem_dup_elems2_sup.py",
 ]
 
 def check
diff --git a/tests/copy_all b/tests/copy_all
index 62b953a..b89ea43 100755
--- a/tests/copy_all
+++ b/tests/copy_all
@@ -55,3 +55,5 @@ cp cleanupname2_sup.py cleanupname1_sup.py
 cp cleanupname2_sub.py cleanupname1_sub.py
 cp catalogtest2_sup.py catalogtest1_sup.py
 cp catalogtest2_sub.py catalogtest1_sub.py
+cp rem_dup_elems2_sup.py rem_dup_elems1_sup.py
+cp rem_dup_elems2_sub.py rem_dup_elems1_sub.py
diff --git a/tests/test.py b/tests/test.py
index 7558302..84135e0 100755
--- a/tests/test.py
+++ b/tests/test.py
@@ -797,6 +797,32 @@ class GenTest(unittest.TestCase):
         self.remove('{}2_sup.py'.format(t_))
         self.remove('{}2_sub.py'.format(t_))
 
+    def test_032_rem_dup_elems(self):
+        cmdTempl = (
+            'python generateDS.py --no-dates --no-versions '
+            '--member-specs=list -f -a "xsd:" '
+            '-o tests/%s2_sup.py -s tests/%s2_sub.py '
+            '--super=%s2_sup --no-warnings '
+            'tests/%s.xsd'
+        )
+        t_ = 'rem_dup_elems'
+        cmd = cmdTempl % (t_, t_, t_, t_, )
+        self.executeClean(cmd, cwd='..')
+        self.compareFiles(
+            '{}1_sup.py'.format(t_),
+            '{}2_sup.py'.format(t_),
+            ('sys.stdout.write',))
+        self.compareFiles('{}1_sub.py'.format(t_), '{}2_sub.py'.format(t_))
+        # Need to preserve generated files for next command, cleanup at end
+        cmdTempl = 'python tests/%s2_sup.py tests/%s.xml > tests/%s2_out.xml'
+        cmd = cmdTempl % (t_, t_, t_, )
+        self.executeClean(cmd, cwd='..')
+        self.compareFiles('{}1_out.xml'.format(t_), '{}2_out.xml'.format(t_))
+        # cleanup generated files
+        self.remove('{}2_sup.py'.format(t_))
+        self.remove('{}2_sub.py'.format(t_))
+        self.remove('{}2_out.xml'.format(t_))
+
     def compareFiles(self, left, right, ignore=None):
         with open(left) as left_file:
             with open(right) as right_file:
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index 6e3d467..212e6af 100644
--- a/tutorial/generateds_tutorial.html
+++ b/tutorial/generateds_tutorial.html
@@ -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.23c</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24a</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">October 13, 2016</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">November 16, 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-10-13 22:29 UTC.
+Generated on: 2016-11-16 20:28 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 7c71690..e334ec3 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial
 
 .. version
 
-:revision: 2.23c
+:revision: 2.24a
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index b43776a27c1672ffa3296d877d8bedfd5b46d742..31b243add61d581c179eadee276101e0113a622c 100644
GIT binary patch
delta 13103
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
JU%3DP005m?(`^6%

delta 13063
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
QhL@t;M+s%p^*=oS52z8|EdT%j

-- 
GitLab