From 2c301419a854808e52897d8918a77cd47dd04bb8 Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Wed, 8 Mar 2017 11:17:51 -0800
Subject: [PATCH] Interim commit before more changes for Py 3 and django

---
 django/generatedssuper.py         |  13 ++++++++++++-
 generateDS.html                   |  17 ++++++++++-------
 generateDS.py                     |  16 ++++++++++------
 generateDS.txt                    |  13 ++++++++-----
 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                          |   4 ++--
 tutorial/generateds_tutorial.html |   6 +++---
 tutorial/generateds_tutorial.txt  |   2 +-
 tutorial/generateds_tutorial.zip  | Bin 48767 -> 48766 bytes
 14 files changed, 56 insertions(+), 35 deletions(-)

diff --git a/django/generatedssuper.py b/django/generatedssuper.py
index e808cd6..60c5b46 100644
--- a/django/generatedssuper.py
+++ b/django/generatedssuper.py
@@ -1,4 +1,5 @@
 
+from __future__ import print_function
 import sys
 from generateds_definedsimpletypes import Defined_simple_type_table
 
@@ -159,6 +160,7 @@ class GeneratedsSuper(object):
             name = spec.get_name()
             prefix, name = cls.get_prefix_name(name)
             data_type = spec.get_data_type()
+            is_optional = spec.get_optional()
             prefix, data_type = cls.get_prefix_name(data_type)
             if data_type in Defined_simple_type_table:
                 data_type = Defined_simple_type_table[data_type]
@@ -213,14 +215,23 @@ class GeneratedsSuper(object):
                         name, data_type, ))
             else:
                 wrtmodels(
-                    '    %s = models.ForeignKey("%s_model")\n' % (
+                    '    %s = models.ForeignKey(\n        "%s_model",\n' % (
                         name, data_type, ))
+                wrtmodels(
+                    '        related_name="{}_{}",\n'.format(
+                        name, data_type, ))
+                if is_optional:
+                    wrtmodels(
+                        '        blank=True, null=True,\n')
+                wrtmodels('    )\n')
                 wrtforms(
                     '    %s = forms.MultipleChoiceField(%s_model.objects'
                     '.all())\n' % (
                         name, data_type, ))
+        wrtmodels('\n')
         wrtmodels('    def __unicode__(self):\n')
         wrtmodels('        return "id: %s" % (self.id, )\n')
+        wrtmodels('\n')
 
 
 #
diff --git a/generateDS.html b/generateDS.html
index 257e460..1ee864e 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.24b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24c</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">January 16, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 01, 2017</td>
 </tr>
 </tbody>
 </table>
@@ -838,10 +838,10 @@ this flag is omitted, is the value returned by
 sys.getdefaultencoding().  You can find a list of standard
 encodings here: <a class="reference external" href="http://docs.python.org/library/codecs.html#id3">http://docs.python.org/library/codecs.html#id3</a>.
 Example use: --external-encoding='utf-8'.</dd>
-<dt>member-specs</dt>
-<dd>Generate member (type) specifications in each class: a
-dictionary of instances of class <tt class="docutils literal">MemberSpec_</tt> containing
-member name, type, and array or not.  See <a class="reference internal" href="#user-methods">User Methods</a>
+<dt>member-specs Generate member (type) specifications in each class</dt>
+<dd>A dictionary of instances of class <tt class="docutils literal">MemberSpec_</tt> containing
+member name, type, array or not, and whether the item is
+optional (i.e. defined with minOccurs=&quot;0&quot;).  See <a class="reference internal" href="#user-methods">User Methods</a>
 section for more information about <tt class="docutils literal">MemberSpec_</tt>.  Allowed
 values are &quot;list&quot; or &quot;dict&quot;.  Default: do <em>not</em> generate member
 specifications (unless --user-methods specified).</dd>
@@ -2593,6 +2593,9 @@ member variable is a single item or a list/container (i.e.
 generated from maxOccurs &gt; 0): 0 indicates a single item; 1
 indicates a list.</p>
 </li>
+<li><p class="first"><tt class="docutils literal">m.get_optional()</tt> -- (an integer) Returns 0 (zero) if the item
+is optional (defined with minOccurs=&quot;0&quot;), else returns 1.</p>
+</li>
 </ul>
 <p>There are a number of things of interest in this sample file
 (<a class="reference external" href="gends_user_methods.py">gends_user_methods.py</a>):</p>
@@ -3184,7 +3187,7 @@ following among others:</p>
 <div class="footer">
 <hr class="footer" />
 <a class="reference external" href="generateDS.txt">View document source</a>.
-Generated on: 2017-01-17 00:01 UTC.
+Generated on: 2017-03-01 22:05 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 3e9335e..52b6ebb 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -204,7 +204,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.24b'
+VERSION = '2.24c'
 ##VERSION##
 
 if sys.version_info.major == 2:
@@ -4774,13 +4774,14 @@ def generateMemberSpec(wrt, element):
             item3 = 1
         else:
             item3 = 0
+        item4 = 1 if child.getOptional() else 0
         if generateDict:
-            item = "        '%s': MemberSpec_('%s', %s, %d)," % (
-                item1, item1, item2, item3, )
+            item = "        '%s': MemberSpec_('%s', %s, %d, %d)," % (
+                item1, item1, item2, item3, item4, )
         else:
             #item = "        ('%s', '%s', %d)," % (item1, item2, item3, )
-            item = "        MemberSpec_('%s', %s, %d)," % (
-                item1, item2, item3, )
+            item = "        MemberSpec_('%s', %s, %d, %d)," % (
+                item1, item2, item3, item4, )
         add(item)
     simplebase = element.getSimpleBase()
     if element.getSimpleContent() or element.isMixed():
@@ -5584,10 +5585,11 @@ class MixedContainer:
 
 
 class MemberSpec_(object):
-    def __init__(self, name='', data_type='', container=0):
+    def __init__(self, name='', data_type='', container=0, optional=0):
         self.name = name
         self.data_type = data_type
         self.container = container
+        self.optional = optional
     def set_name(self, name): self.name = name
     def get_name(self): return self.name
     def set_data_type(self, data_type): self.data_type = data_type
@@ -5602,6 +5604,8 @@ class MemberSpec_(object):
             return self.data_type
     def set_container(self, container): self.container = container
     def get_container(self): return self.container
+    def set_optional(self, optional): self.optional = optional
+    def get_optional(self): return self.optional
 
 
 def _cast(typ, value):
diff --git a/generateDS.txt b/generateDS.txt
index eebc634..d64c9ee 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.24b
+:revision: 2.24c
 
 .. version
 
@@ -551,10 +551,10 @@ external-encoding=<encoding>
     encodings here: http://docs.python.org/library/codecs.html#id3.
     Example use: --external-encoding='utf-8'.
 
-member-specs
-    Generate member (type) specifications in each class: a
-    dictionary of instances of class ``MemberSpec_`` containing
-    member name, type, and array or not.  See `User Methods`_
+member-specs Generate member (type) specifications in each class
+    A dictionary of instances of class ``MemberSpec_`` containing
+    member name, type, array or not, and whether the item is
+    optional (i.e. defined with minOccurs="0").  See `User Methods`_
     section for more information about ``MemberSpec_``.  Allowed
     values are "list" or "dict".  Default: do *not* generate member
     specifications (unless --user-methods specified).
@@ -2485,6 +2485,9 @@ information in each member specification:
   generated from maxOccurs > 0): 0 indicates a single item; 1
   indicates a list.
 
+- ``m.get_optional()`` -- (an integer) Returns 0 (zero) if the item
+  is optional (defined with minOccurs="0"), else returns 1.
+
 There are a number of things of interest in this sample file
 (`gends_user_methods.py`_):
 
diff --git a/generateds_gui_notes.html b/generateds_gui_notes.html
index 5593b50..7c8b0d5 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.24b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24c</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">January 16, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 01, 2017</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: 2017-01-17 00:01 UTC.
+Generated on: 2017-03-01 22:05 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 25921cc..9afb38e 100644
--- a/generateds_gui_notes.txt
+++ b/generateds_gui_notes.txt
@@ -12,7 +12,7 @@ GenerateDS GUI Notes
 
 .. version
 
-:revision: 2.24b
+:revision: 2.24c
 
 .. version
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index 41864be..c96bf5d 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.24b'
+VERSION = '2.24c'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index 47bc84a..570a071 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.24b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24c</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">January 16, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 01, 2017</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: 2017-01-17 00:01 UTC.
+Generated on: 2017-03-01 22:05 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 6969b4d..7a00efd 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.24b
+:revision: 2.24c
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index 8fe5493..10f5317 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.24b'
+VERSION = '2.24c'
 ##VERSION##
 
 CatalogDict = {}
diff --git a/setup.py b/setup.py
index 7963851..a9055fd 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.24b",
+    version="2.24c",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
@@ -33,7 +33,7 @@ XML document.""",
 ##         "gui.generateds_gui_session",
 ##         ],
     py_modules=[
-        "process_includes", 
+        "process_includes",
         ],
     # include_package_data=True,
     packages = [
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index d4945ec..546272d 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.24b</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.24c</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">January 16, 2017</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">March 01, 2017</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: 2017-01-17 00:01 UTC.
+Generated on: 2017-03-01 22:05 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 560634e..d975b6a 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial
 
 .. version
 
-:revision: 2.24b
+:revision: 2.24c
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index 09649363daf7cb1b00b3b67705d890bd0aac6ec8..e016af18c91626367e07b8bafd18518d7e037bfd 100644
GIT binary patch
delta 12524
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
C%%WZZ

delta 12484
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
J==`67{}1ndkoW)q

-- 
GitLab