From dfe21aaf070a481064e42d96e79e9eee528d6257 Mon Sep 17 00:00:00 2001 From: Dave Kuhlman <dkuhlman@davekuhlman.org> Date: Fri, 5 Oct 2018 13:06:16 -0700 Subject: [PATCH] v. 2.29.25 Derived types, converted unit tests to Py 3 --- README.rst | 13 + generateDS.html | 343 +++++++++++++++-------- generateDS.py | 30 +- generateDS.txt | 113 +++++++- 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/OnePer/oneperType00_2One.py | 8 +- tests/OnePer/oneperType01_2One.py | 10 +- tests/OnePer/oneperType02_2One.py | 10 +- tests/OnePer/oneperType03_2One.py | 10 +- tests/abstract_type1_sub.py | 2 +- tests/abstract_type1_sup.py | 6 +- tests/annotations1_sub.py | 2 +- tests/annotations1_sup.py | 18 +- tests/anonymous_type1_sub.py | 2 +- tests/anonymous_type1_sup.py | 16 +- tests/anysimpletype1_sub.py | 2 +- tests/anysimpletype1_sup.py | 6 +- tests/anywildcard1_sub.py | 2 +- tests/anywildcard1_sup.py | 28 +- tests/attr_groups1_sub.py | 2 +- tests/attr_groups1_sup.py | 6 +- tests/catalogtest1_sub.py | 2 +- tests/catalogtest1_sup.py | 4 +- tests/cdata1_sub.py | 2 +- tests/cdata1_sup.py | 8 +- tests/cleanupname1_sub.py | 2 +- tests/cleanupname1_sup.py | 24 +- tests/copy_all | 2 + tests/defaults_cases1_sub.py | 2 +- tests/defaults_cases1_sup.py | 44 +-- tests/defaults_cases_always1_sub.py | 2 +- tests/defaults_cases_always1_sup.py | 24 +- tests/defaults_cases_always2_sub.py | 2 +- tests/defaults_cases_always2_sup.py | 24 +- tests/defaults_coverage1_sub.py | 2 +- tests/defaults_coverage1_sup.py | 76 ++--- tests/disable_xml_super1_sub.py | 2 +- tests/disable_xml_super1_sup.py | 6 +- tests/extensions1_sub.py | 2 +- tests/extensions1_sup.py | 12 +- tests/ipo1_sub.py | 2 +- tests/ipo1_sup.py | 38 +-- tests/ipo2_sub.py | 2 +- tests/ipo2_sup.py | 38 +-- tests/mapcleanname1_sub.py | 2 +- tests/mapcleanname1_sup.py | 48 ++-- tests/mixedcontent1_sub.py | 2 +- tests/mixedcontent1_sup.py | 24 +- tests/mixedcontent2_sub.py | 2 +- tests/mixedcontent2_sup.py | 24 +- tests/nested_def1_sub.py | 2 +- tests/nested_def1_sup.py | 12 +- tests/no_namespace_defs1_sub.py | 2 +- tests/no_namespace_defs1_sup.py | 16 +- tests/out1_sub.py | 2 +- tests/out1_sup.py | 92 +++--- tests/people_procincl1_sub.py | 2 +- tests/people_procincl1_sup.py | 102 +++---- tests/prefix_classname1_sub.py | 2 +- tests/prefix_classname1_sup.py | 92 +++--- tests/recursive_simpletype1_sub.py | 2 +- tests/recursive_simpletype1_sup.py | 10 +- tests/reference_simpletype1_sub.py | 2 +- tests/reference_simpletype1_sup.py | 8 +- tests/rem_dup_elems1_sub.py | 2 +- tests/rem_dup_elems1_sup.py | 10 +- tests/simplecontent_restriction1_sub.py | 2 +- tests/simplecontent_restriction1_sup.py | 18 +- tests/simpletype_memberspecs1_sub.py | 2 +- tests/simpletype_memberspecs1_sup.py | 4 +- tests/simpletypes_other1_sub.py | 2 +- tests/simpletypes_other1_sup.py | 48 ++-- tests/test.py | 63 ++++- tests/to_etree1_sub.py | 2 +- tests/to_etree1_sup.py | 176 ++++++------ tests/validate_simpletypes1_sub.py | 2 +- tests/validate_simpletypes1_sup.py | 74 ++--- tests/validate_simpletypes1_warnings.txt | 22 +- tests/validate_simpletypes2_sub.py | 2 +- tests/validate_simpletypes2_sup.py | 74 ++--- tutorial/generateds_tutorial.html | 6 +- tutorial/generateds_tutorial.txt | 2 +- tutorial/generateds_tutorial.zip | Bin 48771 -> 48770 bytes 89 files changed, 1098 insertions(+), 834 deletions(-) diff --git a/README.rst b/README.rst index 011aaa9..a61ad3e 100644 --- a/README.rst +++ b/README.rst @@ -141,6 +141,19 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Change history -------------- +Version 2.29.25 (10/05/2018) + +- Added a section to the documentation (generateDS.txt) for types + derived by extension, i.e. types that use the xsi:type attribute + in the XML instance document. Thanks to Justin McManus for + motivating me to learn about this and for providing guidance and + pointers along the way. +- Added a unit test for types derived by extension. +- Converted unit tests so that we can use Python 3 not Python 2. +- Changes in ``generateDS.py`` so that it uses the ``six`` + compatibility library to handle the ``urllib`` name changes + between Python 2 and 3. + Version 2.29.24 (08/27/2018) - Changed name of parameter in the export method from "namespace_" diff --git a/generateDS.html b/generateDS.html index 5d20287..c1ff2ca 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.29.24</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.25</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">August 27, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">October 05, 2018</td> </tr> </tbody> </table> @@ -303,94 +303,95 @@ to process the contents of an XML document.</td> </li> <li><a class="reference internal" href="#include-file-processing" id="id41">8.11 Include file processing</a></li> <li><a class="reference internal" href="#abstract-types" id="id42">8.12 Abstract types</a></li> +<li><a class="reference internal" href="#types-derived-by-extension" id="id43">8.13 Types derived by extension</a></li> </ul> </li> -<li><a class="reference internal" href="#the-xml-schema-input-to-generateds" id="id43">9 The XML schema input to generateDS</a><ul class="auto-toc"> -<li><a class="reference internal" href="#additional-constructions" id="id44">9.1 Additional constructions</a><ul class="auto-toc"> -<li><a class="reference internal" href="#complextype-at-top-level" id="id45">9.1.1 <complexType> at top-level</a></li> -<li><a class="reference internal" href="#use-of-ref-instead-of-name-and-type-attributes" id="id46">9.1.2 Use of "ref" instead of "name" and "type" attributes</a></li> -<li><a class="reference internal" href="#extension-types" id="id47">9.1.3 Extension types</a></li> -<li><a class="reference internal" href="#elements-containing-mixed-content" id="id48">9.1.4 Elements containing mixed content</a></li> +<li><a class="reference internal" href="#the-xml-schema-input-to-generateds" id="id44">9 The XML schema input to generateDS</a><ul class="auto-toc"> +<li><a class="reference internal" href="#additional-constructions" id="id45">9.1 Additional constructions</a><ul class="auto-toc"> +<li><a class="reference internal" href="#complextype-at-top-level" id="id46">9.1.1 <complexType> at top-level</a></li> +<li><a class="reference internal" href="#use-of-ref-instead-of-name-and-type-attributes" id="id47">9.1.2 Use of "ref" instead of "name" and "type" attributes</a></li> +<li><a class="reference internal" href="#extension-types" id="id48">9.1.3 Extension types</a></li> +<li><a class="reference internal" href="#elements-containing-mixed-content" id="id49">9.1.4 Elements containing mixed content</a></li> </ul> </li> </ul> </li> -<li><a class="reference internal" href="#id2" id="id49">10 XMLBehaviors</a><ul class="auto-toc"> -<li><a class="reference internal" href="#the-xmlbehaviors-input-file" id="id50">10.1 The XMLBehaviors input file</a></li> -<li><a class="reference internal" href="#implementing-other-sources-for-implementation-bodies" id="id51">10.2 Implementing other sources for implementation bodies</a></li> +<li><a class="reference internal" href="#id2" id="id50">10 XMLBehaviors</a><ul class="auto-toc"> +<li><a class="reference internal" href="#the-xmlbehaviors-input-file" id="id51">10.1 The XMLBehaviors input file</a></li> +<li><a class="reference internal" href="#implementing-other-sources-for-implementation-bodies" id="id52">10.2 Implementing other sources for implementation bodies</a></li> </ul> </li> -<li><a class="reference internal" href="#additional-features" id="id52">11 Additional features</a><ul class="auto-toc"> -<li><a class="reference internal" href="#xsd-list-element-support" id="id53">11.1 xsd:list element support</a></li> -<li><a class="reference internal" href="#xsd-enumeration-support" id="id54">11.2 xsd:enumeration support</a></li> -<li><a class="reference internal" href="#xsd-union-support" id="id55">11.3 xsd:union support</a></li> -<li><a class="reference internal" href="#extended-xsd-choice-support" id="id56">11.4 Extended xsd:choice support</a></li> -<li><a class="reference internal" href="#arity-minoccurs-maxoccurs-etc" id="id57">11.5 Arity, minOccurs, maxOccurs, etc</a></li> -<li><a class="reference internal" href="#more-thorough-content-type-and-base-type-resolution" id="id58">11.6 More thorough content type and base type resolution</a></li> -<li><a class="reference internal" href="#making-top-level-simpletypes-available-from-xschemahandler" id="id59">11.7 Making top level simpleTypes available from XschemaHandler</a></li> -<li><a class="reference internal" href="#namespaces-inserting-namespace-definition-in-exported-documents" id="id60">11.8 Namespaces -- inserting namespace definition in exported documents</a></li> -<li><a class="reference internal" href="#support-for-xs-any" id="id61">11.9 Support for xs:any</a></li> -<li><a class="reference internal" href="#generating-lxml-element-tree" id="id62">11.10 Generating Lxml Element tree</a><ul class="auto-toc"> -<li><a class="reference internal" href="#mapping-generateds-objects-to-lxml-elements-and-back" id="id63">11.10.1 Mapping generateDS objects to Lxml Elements and back</a></li> +<li><a class="reference internal" href="#additional-features" id="id53">11 Additional features</a><ul class="auto-toc"> +<li><a class="reference internal" href="#xsd-list-element-support" id="id54">11.1 xsd:list element support</a></li> +<li><a class="reference internal" href="#xsd-enumeration-support" id="id55">11.2 xsd:enumeration support</a></li> +<li><a class="reference internal" href="#xsd-union-support" id="id56">11.3 xsd:union support</a></li> +<li><a class="reference internal" href="#extended-xsd-choice-support" id="id57">11.4 Extended xsd:choice support</a></li> +<li><a class="reference internal" href="#arity-minoccurs-maxoccurs-etc" id="id58">11.5 Arity, minOccurs, maxOccurs, etc</a></li> +<li><a class="reference internal" href="#more-thorough-content-type-and-base-type-resolution" id="id59">11.6 More thorough content type and base type resolution</a></li> +<li><a class="reference internal" href="#making-top-level-simpletypes-available-from-xschemahandler" id="id60">11.7 Making top level simpleTypes available from XschemaHandler</a></li> +<li><a class="reference internal" href="#namespaces-inserting-namespace-definition-in-exported-documents" id="id61">11.8 Namespaces -- inserting namespace definition in exported documents</a></li> +<li><a class="reference internal" href="#support-for-xs-any" id="id62">11.9 Support for xs:any</a></li> +<li><a class="reference internal" href="#generating-lxml-element-tree" id="id63">11.10 Generating Lxml Element tree</a><ul class="auto-toc"> +<li><a class="reference internal" href="#mapping-generateds-objects-to-lxml-elements-and-back" id="id64">11.10.1 Mapping generateDS objects to Lxml Elements and back</a></li> </ul> </li> -<li><a class="reference internal" href="#specifying-names-for-anonymous-nested-type-definitions" id="id64">11.11 Specifying names for anonymous nested type definitions</a></li> +<li><a class="reference internal" href="#specifying-names-for-anonymous-nested-type-definitions" id="id65">11.11 Specifying names for anonymous nested type definitions</a></li> </ul> </li> -<li><a class="reference internal" href="#how-to-use-the-generated-source-code" id="id65">12 How to use the generated source code</a><ul class="auto-toc"> -<li><a class="reference internal" href="#the-parsing-functions" id="id66">12.1 The parsing functions</a></li> -<li><a class="reference internal" href="#recognizing-the-top-level-element" id="id67">12.2 Recognizing the top level element</a></li> -<li><a class="reference internal" href="#the-export-methods" id="id68">12.3 The export methods</a><ul class="auto-toc"> -<li><a class="reference internal" href="#method-export" id="id69">12.3.1 Method export</a></li> -<li><a class="reference internal" href="#method-exportliteral" id="id70">12.3.2 Method <tt class="docutils literal">exportLiteral</tt></a><ul class="auto-toc"> -<li><a class="reference internal" href="#what-it-does" id="id71">12.3.2.1 What It Does</a></li> -<li><a class="reference internal" href="#why-you-might-care" id="id72">12.3.2.2 Why You Might Care</a></li> -<li><a class="reference internal" href="#how-to-use-it" id="id73">12.3.2.3 How to use it</a></li> +<li><a class="reference internal" href="#how-to-use-the-generated-source-code" id="id66">12 How to use the generated source code</a><ul class="auto-toc"> +<li><a class="reference internal" href="#the-parsing-functions" id="id67">12.1 The parsing functions</a></li> +<li><a class="reference internal" href="#recognizing-the-top-level-element" id="id68">12.2 Recognizing the top level element</a></li> +<li><a class="reference internal" href="#the-export-methods" id="id69">12.3 The export methods</a><ul class="auto-toc"> +<li><a class="reference internal" href="#method-export" id="id70">12.3.1 Method export</a></li> +<li><a class="reference internal" href="#method-exportliteral" id="id71">12.3.2 Method <tt class="docutils literal">exportLiteral</tt></a><ul class="auto-toc"> +<li><a class="reference internal" href="#what-it-does" id="id72">12.3.2.1 What It Does</a></li> +<li><a class="reference internal" href="#why-you-might-care" id="id73">12.3.2.2 Why You Might Care</a></li> +<li><a class="reference internal" href="#how-to-use-it" id="id74">12.3.2.3 How to use it</a></li> </ul> </li> -<li><a class="reference internal" href="#exporting-compact-xml-documents" id="id74">12.3.3 Exporting compact XML documents</a></li> +<li><a class="reference internal" href="#exporting-compact-xml-documents" id="id75">12.3.3 Exporting compact XML documents</a></li> </ul> </li> -<li><a class="reference internal" href="#building-instances" id="id75">12.4 Building instances</a></li> -<li><a class="reference internal" href="#using-the-subclass-module" id="id76">12.5 Using the subclass module</a></li> -<li><a class="reference internal" href="#elements-with-attributes-but-no-nested-children" id="id77">12.6 Elements with attributes but no nested children</a></li> -<li><a class="reference internal" href="#id4" id="id78">12.7 Mixed content</a></li> -<li><a class="reference internal" href="#id6" id="id79">12.8 anyAttribute</a></li> -<li><a class="reference internal" href="#user-methods" id="id80">12.9 User Methods</a></li> -<li><a class="reference internal" href="#overridable-methods-generatedssuper-py" id="id81">12.10 Overridable methods -- generatedssuper.py</a></li> -<li><a class="reference internal" href="#the-element-name-to-class-name-dictionary" id="id82">12.11 The element name to class name dictionary</a></li> -<li><a class="reference internal" href="#adding-custom-exported-attributes-and-namespace-prefix-definitions" id="id83">12.12 Adding custom exported attributes and namespace prefix definitions</a></li> +<li><a class="reference internal" href="#building-instances" id="id76">12.4 Building instances</a></li> +<li><a class="reference internal" href="#using-the-subclass-module" id="id77">12.5 Using the subclass module</a></li> +<li><a class="reference internal" href="#elements-with-attributes-but-no-nested-children" id="id78">12.6 Elements with attributes but no nested children</a></li> +<li><a class="reference internal" href="#id4" id="id79">12.7 Mixed content</a></li> +<li><a class="reference internal" href="#id6" id="id80">12.8 anyAttribute</a></li> +<li><a class="reference internal" href="#user-methods" id="id81">12.9 User Methods</a></li> +<li><a class="reference internal" href="#overridable-methods-generatedssuper-py" id="id82">12.10 Overridable methods -- generatedssuper.py</a></li> +<li><a class="reference internal" href="#the-element-name-to-class-name-dictionary" id="id83">12.11 The element name to class name dictionary</a></li> +<li><a class="reference internal" href="#adding-custom-exported-attributes-and-namespace-prefix-definitions" id="id84">12.12 Adding custom exported attributes and namespace prefix definitions</a></li> </ul> </li> -<li><a class="reference internal" href="#one-per-generating-separate-files-from-imported-included-schemas" id="id84">13 "One Per" -- generating separate files from imported/included schemas</a><ul class="auto-toc"> -<li><a class="reference internal" href="#approach-1-command-line-option-one-file-per-xsd" id="id85">13.1 Approach 1 -- Command line option --one-file-per-xsd</a></li> -<li><a class="reference internal" href="#approach-2-extraction-and-generation-utilities" id="id86">13.2 Approach 2 -- Extraction and generation utilities</a></li> +<li><a class="reference internal" href="#one-per-generating-separate-files-from-imported-included-schemas" id="id85">13 "One Per" -- generating separate files from imported/included schemas</a><ul class="auto-toc"> +<li><a class="reference internal" href="#approach-1-command-line-option-one-file-per-xsd" id="id86">13.1 Approach 1 -- Command line option --one-file-per-xsd</a></li> +<li><a class="reference internal" href="#approach-2-extraction-and-generation-utilities" id="id87">13.2 Approach 2 -- Extraction and generation utilities</a></li> </ul> </li> -<li><a class="reference internal" href="#how-to-modify-the-generated-code" id="id87">14 How to modify the generated code</a><ul class="auto-toc"> -<li><a class="reference internal" href="#adding-features-to-class-definitions" id="id88">14.1 Adding features to class definitions</a></li> +<li><a class="reference internal" href="#how-to-modify-the-generated-code" id="id88">14 How to modify the generated code</a><ul class="auto-toc"> +<li><a class="reference internal" href="#adding-features-to-class-definitions" id="id89">14.1 Adding features to class definitions</a></li> </ul> </li> -<li><a class="reference internal" href="#examples-and-demonstrations" id="id89">15 Examples and demonstrations</a><ul class="auto-toc"> -<li><a class="reference internal" href="#django-generating-models-and-forms" id="id90">15.1 Django -- Generating Models and Forms</a><ul class="auto-toc"> -<li><a class="reference internal" href="#how-to-generate-django-models-and-forms" id="id91">15.1.1 How to generate Django models and forms</a></li> -<li><a class="reference internal" href="#how-it-works" id="id92">15.1.2 How it works</a></li> +<li><a class="reference internal" href="#examples-and-demonstrations" id="id90">15 Examples and demonstrations</a><ul class="auto-toc"> +<li><a class="reference internal" href="#django-generating-models-and-forms" id="id91">15.1 Django -- Generating Models and Forms</a><ul class="auto-toc"> +<li><a class="reference internal" href="#how-to-generate-django-models-and-forms" id="id92">15.1.1 How to generate Django models and forms</a></li> +<li><a class="reference internal" href="#how-it-works" id="id93">15.1.2 How it works</a></li> </ul> </li> </ul> </li> -<li><a class="reference internal" href="#sample-code-and-extensions" id="id93">16 Sample code and extensions</a><ul class="auto-toc"> -<li><a class="reference internal" href="#capturing-xs-date-elements-as-dates" id="id94">16.1 Capturing xs:date elements as dates</a></li> +<li><a class="reference internal" href="#sample-code-and-extensions" id="id94">16 Sample code and extensions</a><ul class="auto-toc"> +<li><a class="reference internal" href="#capturing-xs-date-elements-as-dates" id="id95">16.1 Capturing xs:date elements as dates</a></li> </ul> </li> -<li><a class="reference internal" href="#limitations-of-generateds" id="id95">17 Limitations of generateDS</a><ul class="auto-toc"> -<li><a class="reference internal" href="#xml-schema-limitations" id="id96">17.1 XML Schema limitations</a></li> +<li><a class="reference internal" href="#limitations-of-generateds" id="id96">17 Limitations of generateDS</a><ul class="auto-toc"> +<li><a class="reference internal" href="#xml-schema-limitations" id="id97">17.1 XML Schema limitations</a></li> </ul> </li> -<li><a class="reference internal" href="#includes-the-xml-schema-xs-include-and-xs-import-elements" id="id97">18 Includes -- The XML schema xs:include and xs:import elements</a></li> -<li><a class="reference internal" href="#processing-relaxng-schemas" id="id98">19 Processing RelaxNG schemas</a></li> -<li><a class="reference internal" href="#acknowledgments" id="id99">20 Acknowledgments</a></li> -<li><a class="reference internal" href="#see-also" id="id100">21 See also</a></li> +<li><a class="reference internal" href="#includes-the-xml-schema-xs-include-and-xs-import-elements" id="id98">18 Includes -- The XML schema xs:include and xs:import elements</a></li> +<li><a class="reference internal" href="#processing-relaxng-schemas" id="id99">19 Processing RelaxNG schemas</a></li> +<li><a class="reference internal" href="#acknowledgments" id="id100">20 Acknowledgments</a></li> +<li><a class="reference internal" href="#see-also" id="id101">21 See also</a></li> </ul> </div> <div class="section" id="introduction"> @@ -1659,9 +1660,113 @@ this, see: <a class="reference external" href="http://www.w3.org/TR/xmlschema-0/#abstract">XML Schema Part 0: Primer Second Edition: Abstract Elements and Types -- http://www.w3.org/TR/xmlschema-0/#abstract</a>.</p> </div> +<div class="section" id="types-derived-by-extension"> +<h2><a class="toc-backref" href="#id43">8.13 Types derived by extension</a></h2> +<p>This section describes some of the support for types derived by +extension and also how to use the data bindings generated for those +types in Python.</p> +<p>For example, suppose you have an XML schema that looks like this +(<tt class="docutils literal">example.xsd</tt>):</p> +<pre class="literal-block"> +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0"> + +<xs:element name="animalCollection"> + <xs:complexType> + <xs:sequence> + <xs:element name="animal" type="animal" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> +</xs:element> + +<xs:complexType name="animal" abstract="true"></xs:complexType> + +<xs:complexType name="dog"> + <xs:complexContent> + <xs:extension base="animal"> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> +</xs:complexType> +</xs:schema> +</pre> +<p>An XML instance document for this document type might be the +following:</p> +<pre class="literal-block"> +<?xml version="1.0"?> +<animalCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <animal xsi:type="dog"> + <name>fido</name> + </animal> +</animalCollection> +</pre> +<p>Question: How would you, in Python, using bindings generated by +<tt class="docutils literal">generateDS.py</tt>, create an instance of type <tt class="docutils literal">dog</tt> that is +derived from type <tt class="docutils literal">animal</tt> and when exported to XML, appears as an +animal with attribute <tt class="docutils literal"><span class="pre">xsi:type="dog"</span></tt>?</p> +<p>First, we need to generate our bindings:</p> +<pre class="literal-block"> +$ generateDS.py -o example01.py example.xsd +</pre> +<p>And, now, here is Python some code that creates those instances and +exports them:</p> +<pre class="literal-block"> +# sample01.py + +import sys +import example01 + +def test(): + animal_collection = example01.animalCollection() + animal = example01.dog(name='milicent') + # + # must set original_tagname_ and extensiontype_ for + # type derived by extension. See: + # https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt + animal.original_tagname_ = 'animal' + animal.extensiontype_ = 'dog' + animal_collection.add_animal(animal) + animal_collection.export(sys.stdout, 0) + return animal_collection, animal + +test() +</pre> +<p>Notes:</p> +<ul class="simple"> +<li>The above code creates an instance of class <tt class="docutils literal">animalCollection</tt> +and an instance of class <tt class="docutils literal">dog</tt>.</li> +<li>Because we want the <tt class="docutils literal">dog</tt> to be represented in XML as a +"<animal>" with an "xsi:type" attribute, we must set the +<tt class="docutils literal">original_tagname_</tt> and <tt class="docutils literal">extensiontype_</tt> attributes in the +instance of class <tt class="docutils literal">dog</tt>.</li> +<li>Then we add our <tt class="docutils literal">dog</tt> to the <tt class="docutils literal">animalCollection</tt>, and finally, +we export it.</li> +<li>We can get some clues about this by reading the code generated for +classes <tt class="docutils literal">animalCollection</tt>, <tt class="docutils literal">animal</tt>, and <tt class="docutils literal">dog</tt>.</li> +</ul> +<p>When we run it, we'll see:</p> +<pre class="literal-block"> +$ python sample01.py +<animalCollection> + <animal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="dog"> + <name>milicent</name> + </animal> +</animalCollection> +</pre> +<p>For more information on types derived by extension, see "XML Schema +Part 0: Primer Second Edition", specifically:</p> +<ul class="simple"> +<li>"Deriving Types by Extension" -- +<a class="reference external" href="https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt">https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt</a></li> +<li>"Using Derived Types in Instance Documents" -- +<a class="reference external" href="https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#UseDerivInInstDocs">https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#UseDerivInInstDocs</a></li> +</ul> +</div> </div> <div class="section" id="the-xml-schema-input-to-generateds"> -<h1><a class="toc-backref" href="#id43">9 The XML schema input to generateDS</a></h1> +<h1><a class="toc-backref" href="#id44">9 The XML schema input to generateDS</a></h1> <p><strong>Note:</strong> Quite a bit of work has been done on <tt class="docutils literal">generateDS.py</tt> since this section was written. So, it accepts and processes more of features in XML Schema than earlier. The best advice is to @@ -1781,11 +1886,11 @@ order to define a member data item that takes an instance or list of instances of a Python class.</li> </ul> <div class="section" id="additional-constructions"> -<h2><a class="toc-backref" href="#id44">9.1 Additional constructions</a></h2> +<h2><a class="toc-backref" href="#id45">9.1 Additional constructions</a></h2> <p>Here are a few additional constructions that <tt class="docutils literal">generateDS.py</tt> understands.</p> <div class="section" id="complextype-at-top-level"> -<h3><a class="toc-backref" href="#id45">9.1.1 <complexType> at top-level</a></h3> +<h3><a class="toc-backref" href="#id46">9.1.1 <complexType> at top-level</a></h3> <p>You can use the <complexType> element at top level (instead of <element>) to define an element. So, for example, instead of:</p> <pre class="literal-block"> @@ -1809,7 +1914,7 @@ understands.</p> </pre> </div> <div class="section" id="use-of-ref-instead-of-name-and-type-attributes"> -<h3><a class="toc-backref" href="#id46">9.1.2 Use of "ref" instead of "name" and "type" attributes</a></h3> +<h3><a class="toc-backref" href="#id47">9.1.2 Use of "ref" instead of "name" and "type" attributes</a></h3> <p>You can use the "ref" attribute to refer to another element definition, instead of using the "name" and "type" attributes. So, for example, you can use the following:</p> @@ -1834,7 +1939,7 @@ for example, you can use the following:</p> </pre> </div> <div class="section" id="extension-types"> -<h3><a class="toc-backref" href="#id47">9.1.3 Extension types</a></h3> +<h3><a class="toc-backref" href="#id48">9.1.3 Extension types</a></h3> <p><tt class="docutils literal">generateDS.py</tt> generates a subclass for each element that that is defined as the extension of a base element. So, for the following:</p> @@ -1856,7 +1961,7 @@ class BType(AType): </pre> </div> <div class="section" id="elements-containing-mixed-content"> -<h3><a class="toc-backref" href="#id48">9.1.4 Elements containing mixed content</a></h3> +<h3><a class="toc-backref" href="#id49">9.1.4 Elements containing mixed content</a></h3> <p><tt class="docutils literal">generateDS.py</tt> generates special code to handle elements defined as containing mixed content, that is elements defined with attribute <tt class="docutils literal"><span class="pre">mixed="true"</span></tt>. See section <a class="reference internal" href="#id3">Mixed content</a> for more @@ -1865,7 +1970,7 @@ details.</p> </div> </div> <div class="section" id="id2"> -<span id="xmlbehaviors"></span><h1><a class="toc-backref" href="#id49">10 XMLBehaviors</a></h1> +<span id="xmlbehaviors"></span><h1><a class="toc-backref" href="#id50">10 XMLBehaviors</a></h1> <p>With the use of the "-b" command line option, <tt class="docutils literal">generateDS.py</tt> will also accept as input an XML document instance that describes behaviors to be added to subclasses when the subclass file is @@ -1877,7 +1982,7 @@ for the most part, designed by gian paolo ciceri (<a class="reference external" href="mailto:gp.ciceri@suddenthinks.com">gp.ciceri@suddenthinks.com</a>). This work is part of our work on our application development project for Quixote.</p> <div class="section" id="the-xmlbehaviors-input-file"> -<h2><a class="toc-backref" href="#id50">10.1 The XMLBehaviors input file</a></h2> +<h2><a class="toc-backref" href="#id51">10.1 The XMLBehaviors input file</a></h2> <p>This section describes the XMLBehavior XML document that is used as input to <tt class="docutils literal">generateDS.py</tt>. The XMLBehavior XML document is an XML instance document (given as an argument to the "-b" command @@ -1950,7 +2055,7 @@ of the base-impl-url.</li> </ul> </div> <div class="section" id="implementing-other-sources-for-implementation-bodies"> -<h2><a class="toc-backref" href="#id51">10.2 Implementing other sources for implementation bodies</a></h2> +<h2><a class="toc-backref" href="#id52">10.2 Implementing other sources for implementation bodies</a></h2> <p><tt class="docutils literal">generateDS.py</tt> contains a function <tt class="docutils literal">get_impl_body()</tt> that implements the ability to retrieve implementation bodies. The current implementation retrieves implementation bodies from an @@ -1991,11 +2096,11 @@ def get_impl_body(classBehavior, baseImplUrl, implUrl): </div> </div> <div class="section" id="additional-features"> -<h1><a class="toc-backref" href="#id52">11 Additional features</a></h1> +<h1><a class="toc-backref" href="#id53">11 Additional features</a></h1> <p>Here are additional features, contributed by users such as Chris Allan. Many thanks.</p> <div class="section" id="xsd-list-element-support"> -<h2><a class="toc-backref" href="#id53">11.1 xsd:list element support</a></h2> +<h2><a class="toc-backref" href="#id54">11.1 xsd:list element support</a></h2> <p>xsd:list elements can be used with a child xsd:simpleType which confuses the XschemaHandler stack unrolling. xsd:list element support should allow the following XML Schema definition to be @@ -2013,18 +2118,18 @@ supported in <tt class="docutils literal">generateDS.py</tt>:</p> </pre> </div> <div class="section" id="xsd-enumeration-support"> -<h2><a class="toc-backref" href="#id54">11.2 xsd:enumeration support</a></h2> +<h2><a class="toc-backref" href="#id55">11.2 xsd:enumeration support</a></h2> <p>The enumerated values for the parent element are resolved and made available through the instance attribute <tt class="docutils literal">values</tt>.</p> </div> <div class="section" id="xsd-union-support"> -<h2><a class="toc-backref" href="#id55">11.3 xsd:union support</a></h2> +<h2><a class="toc-backref" href="#id56">11.3 xsd:union support</a></h2> <p>In order to properly resolve and query types which are unions in an XML Schema, an element's membership in an xsd:union is available through the instance attribute <tt class="docutils literal">unionOf</tt>.</p> </div> <div class="section" id="extended-xsd-choice-support"> -<h2><a class="toc-backref" href="#id56">11.4 Extended xsd:choice support</a></h2> +<h2><a class="toc-backref" href="#id57">11.4 Extended xsd:choice support</a></h2> <p>When a parent xsd:choice is exists, an element's "maxOccurs" and "minOccurs" values can be inherited from the xsd:choice rather than the element itself. xsd:choice elements have been added to @@ -2044,7 +2149,7 @@ supported in <tt class="docutils literal">generateDS.py</tt>:</p> </pre> </div> <div class="section" id="arity-minoccurs-maxoccurs-etc"> -<h2><a class="toc-backref" href="#id57">11.5 Arity, minOccurs, maxOccurs, etc</a></h2> +<h2><a class="toc-backref" href="#id58">11.5 Arity, minOccurs, maxOccurs, etc</a></h2> <p>Some applications require information about the "minOccurs" and "maxOccurs" attributes in the XML Schema. Some of that information can be obtained by using the --member-specs= (list|dict) command line @@ -2053,7 +2158,7 @@ that it generates in each data representation class. In particular, look at the <tt class="docutils literal">get_container</tt> method (from class <tt class="docutils literal">MemberSpec_</tt>).</p> </div> <div class="section" id="more-thorough-content-type-and-base-type-resolution"> -<h2><a class="toc-backref" href="#id58">11.6 More thorough content type and base type resolution</a></h2> +<h2><a class="toc-backref" href="#id59">11.6 More thorough content type and base type resolution</a></h2> <p>The previous content type and base type resolution is insufficient for some needs. Basically it was unable to handle more complex and shared element and simpleType definitions. This support has @@ -2066,7 +2171,7 @@ achieved is available as comments in the source code of class <tt class="docutils literal">XschemaElement</tt>.</p> </div> <div class="section" id="making-top-level-simpletypes-available-from-xschemahandler"> -<h2><a class="toc-backref" href="#id59">11.7 Making top level simpleTypes available from XschemaHandler</a></h2> +<h2><a class="toc-backref" href="#id60">11.7 Making top level simpleTypes available from XschemaHandler</a></h2> <p>Some developers working to extend the analysis and code generation in <tt class="docutils literal">generateDS.py</tt> may be helped by additional information collected during the parsing of the XML Schema file.</p> @@ -2077,7 +2182,7 @@ available as an instance attribute <tt class="docutils literal">topLevelSimpleTy <tt class="docutils literal">XschemaHandler</tt>.</p> </div> <div class="section" id="namespaces-inserting-namespace-definition-in-exported-documents"> -<h2><a class="toc-backref" href="#id60">11.8 Namespaces -- inserting namespace definition in exported documents</a></h2> +<h2><a class="toc-backref" href="#id61">11.8 Namespaces -- inserting namespace definition in exported documents</a></h2> <p>In some cases, the document produced by a call to an export method will contain elements that have namespace prefixes. For example, the following snippet contains namespace prefix "abc":</p> @@ -2123,7 +2228,7 @@ generateDS.py --namespacedef='xmlns:abc="http://www.abc.com/namespace.xsd&q <tt class="docutils literal">namespacedef_</tt> argument to the call to export.</p> </div> <div class="section" id="support-for-xs-any"> -<h2><a class="toc-backref" href="#id61">11.9 Support for xs:any</a></h2> +<h2><a class="toc-backref" href="#id62">11.9 Support for xs:any</a></h2> <p>There is minimal support for the <tt class="docutils literal">xs:any</tt> wild card declaration. Effectively, an element defined by an <tt class="docutils literal">xs:complexType</tt> containing <tt class="docutils literal">xs:any</tt> can contain any element type as a child element. Because @@ -2150,7 +2255,7 @@ with <tt class="docutils literal">xs:any</tt> should help you understand what is copy, paste, and edit code from there.</p> </div> <div class="section" id="generating-lxml-element-tree"> -<h2><a class="toc-backref" href="#id62">11.10 Generating Lxml Element tree</a></h2> +<h2><a class="toc-backref" href="#id63">11.10 Generating Lxml Element tree</a></h2> <p>Once you have build the tree of objects that are instances of the classes generated by <tt class="docutils literal">generateDS.py</tt>, you can use this to produce a tree of instances of the Lxml Element instances. See @@ -2180,7 +2285,7 @@ def parseEtree(inFileName): return rootObj, rootElement, mapping, reverse_mapping </pre> <div class="section" id="mapping-generateds-objects-to-lxml-elements-and-back"> -<h3><a class="toc-backref" href="#id63">11.10.1 Mapping generateDS objects to Lxml Elements and back</a></h3> +<h3><a class="toc-backref" href="#id64">11.10.1 Mapping generateDS objects to Lxml Elements and back</a></h3> <p>Now suppose that you have produced the tree of instances of the generated classes, and suppose that you have used that to produce a tree of instances of the Element class from Lxml. It may be useful @@ -2194,7 +2299,7 @@ convenience method <tt class="docutils literal">gds_reverse_node_mapping</tt> fr </div> </div> <div class="section" id="specifying-names-for-anonymous-nested-type-definitions"> -<h2><a class="toc-backref" href="#id64">11.11 Specifying names for anonymous nested type definitions</a></h2> +<h2><a class="toc-backref" href="#id65">11.11 Specifying names for anonymous nested type definitions</a></h2> <p><tt class="docutils literal">generateDS.py</tt> automatically assigns names for types (and the classes generated from them), when that type definition (for example, <tt class="docutils literal">xs:complexType</tt>) does not have a name and it is nested @@ -2255,9 +2360,9 @@ schema.</li> </div> </div> <div class="section" id="how-to-use-the-generated-source-code"> -<h1><a class="toc-backref" href="#id65">12 How to use the generated source code</a></h1> +<h1><a class="toc-backref" href="#id66">12 How to use the generated source code</a></h1> <div class="section" id="the-parsing-functions"> -<h2><a class="toc-backref" href="#id66">12.1 The parsing functions</a></h2> +<h2><a class="toc-backref" href="#id67">12.1 The parsing functions</a></h2> <p>The simplest use is to call one of the parsing functions in the generated source file. You may be able to use one of these functions without change, or can modify one to fit your needs. @@ -2283,7 +2388,7 @@ rootObject = people.parse('people.xml') </pre> </div> <div class="section" id="recognizing-the-top-level-element"> -<h2><a class="toc-backref" href="#id67">12.2 Recognizing the top level element</a></h2> +<h2><a class="toc-backref" href="#id68">12.2 Recognizing the top level element</a></h2> <p>It might be that the generated module, when parsing an XML instance document, does not, by default, recognize the top level (root) element in an instance document. This might happen because @@ -2404,14 +2509,14 @@ function can parse and export it.</p> </ol> </div> <div class="section" id="the-export-methods"> -<h2><a class="toc-backref" href="#id68">12.3 The export methods</a></h2> +<h2><a class="toc-backref" href="#id69">12.3 The export methods</a></h2> <p>The generated classes contain methods <tt class="docutils literal">export</tt> and <tt class="docutils literal">exportLiteral</tt> which can be called to export classes to several text formats, in particular to an XML instance document and a Python module containing Python literals. See the generated parse functions for examples showing how to call the export methods.</p> <div class="section" id="method-export"> -<h3><a class="toc-backref" href="#id69">12.3.1 Method export</a></h3> +<h3><a class="toc-backref" href="#id70">12.3.1 Method export</a></h3> <p>The export method in generated classes writes out an XML document that represents the instance that contains it and its child elements. So, for example, if your instance tree was created by @@ -2420,14 +2525,14 @@ one of the parsing functions described above, then calling document, differing only with respect to ignorable white space.</p> </div> <div class="section" id="method-exportliteral"> -<h3><a class="toc-backref" href="#id70">12.3.2 Method <tt class="docutils literal">exportLiteral</tt></a></h3> +<h3><a class="toc-backref" href="#id71">12.3.2 Method <tt class="docutils literal">exportLiteral</tt></a></h3> <p><tt class="docutils literal">generateDS.py</tt> generates Python classes that represent the elements in an XML document, given an Xschema definition of the XML document type. The <tt class="docutils literal">exportLiteral</tt> method will export a Python literal representation of the Python instances of the classes that represent an XML document.</p> <div class="section" id="what-it-does"> -<h4><a class="toc-backref" href="#id71">12.3.2.1 What It Does</a></h4> +<h4><a class="toc-backref" href="#id72">12.3.2.1 What It Does</a></h4> <p>When <tt class="docutils literal">generateDS.py</tt> generates the Python source code for your classes, this new feature also generates an <tt class="docutils literal">exportLiteral</tt> method in each class. If you call this method on the root @@ -2441,7 +2546,7 @@ that you can import to (re-)create instances of the classes that represent your XML document.</p> </div> <div class="section" id="why-you-might-care"> -<h4><a class="toc-backref" href="#id72">12.3.2.2 Why You Might Care</a></h4> +<h4><a class="toc-backref" href="#id73">12.3.2.2 Why You Might Care</a></h4> <p><tt class="docutils literal">generateDS.py</tt> was designed and built with the assumption that we are <em>not</em> interested in marking up text content at all. What we really want is a way to represent structured and nested date in @@ -2484,13 +2589,13 @@ import.</li> </ul> </div> <div class="section" id="how-to-use-it"> -<h4><a class="toc-backref" href="#id73">12.3.2.3 How to use it</a></h4> +<h4><a class="toc-backref" href="#id74">12.3.2.3 How to use it</a></h4> <p>See the generated function <tt class="docutils literal">parseLiteral</tt> for an example of how to use <tt class="docutils literal">exportLiteral</tt>.</p> </div> </div> <div class="section" id="exporting-compact-xml-documents"> -<h3><a class="toc-backref" href="#id74">12.3.3 Exporting compact XML documents</a></h3> +<h3><a class="toc-backref" href="#id75">12.3.3 Exporting compact XML documents</a></h3> <p>You can also export "compact" XML documents. A compact document is one that is exported <em>without</em> the ignorable whitespace that is used to produce pretty printed documents. In contrast, a pretty printed @@ -2504,7 +2609,7 @@ default.</p> </div> </div> <div class="section" id="building-instances"> -<h2><a class="toc-backref" href="#id75">12.4 Building instances</a></h2> +<h2><a class="toc-backref" href="#id76">12.4 Building instances</a></h2> <p>If you have an instance of a minidom node that represents an element in an XML document, you can also use the 'build' member function to populate an instance of the corresponding class. Here @@ -2524,7 +2629,7 @@ for child in rootNode.childNodes: </pre> </div> <div class="section" id="using-the-subclass-module"> -<h2><a class="toc-backref" href="#id76">12.5 Using the subclass module</a></h2> +<h2><a class="toc-backref" href="#id77">12.5 Using the subclass module</a></h2> <p>If you choose to use the generated subclass module, and I encourage you to do so, you may need to edit and modify that file. Here are some of the things that you must do (look for @@ -2551,14 +2656,14 @@ accessed through getter and setter methods in the class in which they are referenced.</p> </div> <div class="section" id="elements-with-attributes-but-no-nested-children"> -<h2><a class="toc-backref" href="#id77">12.6 Elements with attributes but no nested children</a></h2> +<h2><a class="toc-backref" href="#id78">12.6 Elements with attributes but no nested children</a></h2> <p>Element definitions that contain attributes but <em>no</em> nested child elements provide access to their data content through getter and setter methods <tt class="docutils literal">getValueOf_</tt> and <tt class="docutils literal">setValueOf_</tt> and member variable <tt class="docutils literal">valueOf_</tt>.</p> </div> <div class="section" id="id4"> -<span id="id3"></span><h2><a class="toc-backref" href="#id78">12.7 Mixed content</a></h2> +<span id="id3"></span><h2><a class="toc-backref" href="#id79">12.7 Mixed content</a></h2> <p>The goal of <tt class="docutils literal">generateDS.py</tt> is to support data structures represented in XML as opposed to text mark-up. However, it does provides some support for mixed content. But, for mixed content, @@ -2626,7 +2731,7 @@ elements, character data is captured in a member variable <tt class="docutils literal">getValueOf_</tt> and <tt class="docutils literal">setValueOf_</tt>.</p> </div> <div class="section" id="id6"> -<span id="id5"></span><h2><a class="toc-backref" href="#id79">12.8 anyAttribute</a></h2> +<span id="id5"></span><h2><a class="toc-backref" href="#id80">12.8 anyAttribute</a></h2> <p>For elements that specify <tt class="docutils literal">anyAttributes</tt>, <tt class="docutils literal">generateDS.py</tt> produces a class containing the following:</p> <ul class="simple"> @@ -2647,7 +2752,7 @@ are <em>not</em> stored in the dictionary <tt class="docutils literal">anyAttrib <tt class="docutils literal">anyAttribute</tt> element in the XML Schema</p> </div> <div class="section" id="user-methods"> -<h2><a class="toc-backref" href="#id80">12.9 User Methods</a></h2> +<h2><a class="toc-backref" href="#id81">12.9 User Methods</a></h2> <p><tt class="docutils literal">generateDS.py</tt> provides a mechanism that enables you to attach user defined methods to specific generated classes. In order to do so, create a Python module containing specifications of those @@ -2772,7 +2877,7 @@ source code and the class_name pattern in each specification.</li> </ol> </div> <div class="section" id="overridable-methods-generatedssuper-py"> -<h2><a class="toc-backref" href="#id81">12.10 Overridable methods -- generatedssuper.py</a></h2> +<h2><a class="toc-backref" href="#id82">12.10 Overridable methods -- generatedssuper.py</a></h2> <p><tt class="docutils literal">generateDS.py</tt> generates calls to several methods that each have a default implementation in a superclass. The default superclass with default implementations is included in the generated code. @@ -2891,7 +2996,7 @@ option for <tt class="docutils literal">generateDS.py</tt>.</p> </ul> </div> <div class="section" id="the-element-name-to-class-name-dictionary"> -<h2><a class="toc-backref" href="#id82">12.11 The element name to class name dictionary</a></h2> +<h2><a class="toc-backref" href="#id83">12.11 The element name to class name dictionary</a></h2> <p><tt class="docutils literal">generateDS.py</tt> automatically generates a dictionary that maps element/complexType names to the names of the class generated for that complexType definition. This dictionary is named @@ -2899,7 +3004,7 @@ that complexType definition. This dictionary is named with the "-o" option.</p> </div> <div class="section" id="adding-custom-exported-attributes-and-namespace-prefix-definitions"> -<h2><a class="toc-backref" href="#id83">12.12 Adding custom exported attributes and namespace prefix definitions</a></h2> +<h2><a class="toc-backref" href="#id84">12.12 Adding custom exported attributes and namespace prefix definitions</a></h2> <p>You can add additional attributes to exported XML content by (1) providing a module named <tt class="docutils literal">generatedsnamespaces.py</tt>; (2) placing that module somewhere so that it can be imported when you "run" your @@ -2934,7 +3039,7 @@ section (<tt class="docutils literal">generatedsnamespaces.py</tt>).</li> </div> </div> <div class="section" id="one-per-generating-separate-files-from-imported-included-schemas"> -<h1><a class="toc-backref" href="#id84">13 "One Per" -- generating separate files from imported/included schemas</a></h1> +<h1><a class="toc-backref" href="#id85">13 "One Per" -- generating separate files from imported/included schemas</a></h1> <p>The <tt class="docutils literal">generateDS.py</tt> project provides support for two approaches to this task:</p> <ul class="simple"> @@ -2949,7 +3054,7 @@ may be easier to customize or even re-write for your specific needs.</li> </ul> <div class="section" id="approach-1-command-line-option-one-file-per-xsd"> -<h2><a class="toc-backref" href="#id85">13.1 Approach 1 -- Command line option --one-file-per-xsd</a></h2> +<h2><a class="toc-backref" href="#id86">13.1 Approach 1 -- Command line option --one-file-per-xsd</a></h2> <p>The <tt class="docutils literal"><span class="pre">--one-file-per-xsd</span></tt> command line option enables you to generate a separate Python module for each XML schema that is imported or included (using <tt class="docutils literal"><xs:import></tt> or <tt class="docutils literal"><xs:include></tt>) by @@ -3002,7 +3107,7 @@ directory into a Python package.</p> </ul> </div> <div class="section" id="approach-2-extraction-and-generation-utilities"> -<h2><a class="toc-backref" href="#id86">13.2 Approach 2 -- Extraction and generation utilities</a></h2> +<h2><a class="toc-backref" href="#id87">13.2 Approach 2 -- Extraction and generation utilities</a></h2> <p>The <tt class="docutils literal">generateds/utils</tt> subdirectory contains two utility scripts that may help with this task. The procedure is as follows:</p> <ol class="arabic simple"> @@ -3044,11 +3149,11 @@ want to add comments or plan to pre-process them in some way.</li> </div> </div> <div class="section" id="how-to-modify-the-generated-code"> -<h1><a class="toc-backref" href="#id87">14 How to modify the generated code</a></h1> +<h1><a class="toc-backref" href="#id88">14 How to modify the generated code</a></h1> <p>This section attempts to explain how to modify and add features to the generated code.</p> <div class="section" id="adding-features-to-class-definitions"> -<h2><a class="toc-backref" href="#id88">14.1 Adding features to class definitions</a></h2> +<h2><a class="toc-backref" href="#id89">14.1 Adding features to class definitions</a></h2> <p>You can add new member definitions to a generated class. Look at the 'export' and 'exportLiteral' member functions for examples of how to access member variables and how to walk nested @@ -3093,7 +3198,7 @@ parser, for example, since generating the file.</li> </div> </div> <div class="section" id="examples-and-demonstrations"> -<h1><a class="toc-backref" href="#id89">15 Examples and demonstrations</a></h1> +<h1><a class="toc-backref" href="#id90">15 Examples and demonstrations</a></h1> <p>Under the directory Demos are several examples:</p> <ul class="simple"> <li>Demos/People provides a simple demonstration of generating @@ -3119,7 +3224,7 @@ containing explicit control logic, the order in which nodes of the parsed XML document are visited is under your control.</li> </ul> <div class="section" id="django-generating-models-and-forms"> -<h2><a class="toc-backref" href="#id90">15.1 Django -- Generating Models and Forms</a></h2> +<h2><a class="toc-backref" href="#id91">15.1 Django -- Generating Models and Forms</a></h2> <p><tt class="docutils literal">generateDS.py</tt> can be used to generate Django models and Django forms that represent the data structures defined in an XML Schema.</p> <p><strong>Note:</strong> In order to use this capability, you must obtain the @@ -3153,7 +3258,7 @@ use the "-p" command line option. For more information, do:</p> python gends_run_gen_django.py --help </pre> <div class="section" id="how-to-generate-django-models-and-forms"> -<h3><a class="toc-backref" href="#id91">15.1.1 How to generate Django models and forms</a></h3> +<h3><a class="toc-backref" href="#id92">15.1.1 How to generate Django models and forms</a></h3> <p><strong>Warning:</strong> Running this script attempts to over-write the following files in the current directory:</p> <ul class="simple"> @@ -3201,7 +3306,7 @@ Django application.</p> </ol> </div> <div class="section" id="how-it-works"> -<h3><a class="toc-backref" href="#id92">15.1.2 How it works</a></h3> +<h3><a class="toc-backref" href="#id93">15.1.2 How it works</a></h3> <p>Here are a few notes that might be helpful if and when you need to do some debugging or extend the current capabilities or write a new "meta-app" that uses the same approach but does something new and @@ -3228,9 +3333,9 @@ root super class of all generated data representation classes.</p> </div> </div> <div class="section" id="sample-code-and-extensions"> -<h1><a class="toc-backref" href="#id93">16 Sample code and extensions</a></h1> +<h1><a class="toc-backref" href="#id94">16 Sample code and extensions</a></h1> <div class="section" id="capturing-xs-date-elements-as-dates"> -<h2><a class="toc-backref" href="#id94">16.1 Capturing xs:date elements as dates</a></h2> +<h2><a class="toc-backref" href="#id95">16.1 Capturing xs:date elements as dates</a></h2> <p>The following extension employs a user method (see <a class="reference internal" href="#user-methods">User Methods</a>) in order to capture elements defined as xs:date as date objects.</p> @@ -3299,9 +3404,9 @@ import types </div> </div> <div class="section" id="limitations-of-generateds"> -<h1><a class="toc-backref" href="#id95">17 Limitations of generateDS</a></h1> +<h1><a class="toc-backref" href="#id96">17 Limitations of generateDS</a></h1> <div class="section" id="xml-schema-limitations"> -<h2><a class="toc-backref" href="#id96">17.1 XML Schema limitations</a></h2> +<h2><a class="toc-backref" href="#id97">17.1 XML Schema limitations</a></h2> <p>There are things in Xschema that are not supported. You will have to use a restricted sub-set of Xschema to define your data structures. See above for supported features. See people.xsd and @@ -3311,7 +3416,7 @@ does not work.</p> </div> </div> <div class="section" id="includes-the-xml-schema-xs-include-and-xs-import-elements"> -<h1><a class="toc-backref" href="#id97">18 Includes -- The XML schema xs:include and xs:import elements</a></h1> +<h1><a class="toc-backref" href="#id98">18 Includes -- The XML schema xs:include and xs:import elements</a></h1> <p>While <tt class="docutils literal">generateDS.py</tt> itself does not process XML Schema <tt class="docutils literal">include</tt> elements, the distribution provides a script <tt class="docutils literal">process_includes.py</tt> that can be used as a preprocessor. @@ -3345,7 +3450,7 @@ $ python process_includes.py --help </pre> </div> <div class="section" id="processing-relaxng-schemas"> -<h1><a class="toc-backref" href="#id98">19 Processing RelaxNG schemas</a></h1> +<h1><a class="toc-backref" href="#id99">19 Processing RelaxNG schemas</a></h1> <p>RelaxNG is a schema definition language and is an alternative to XML Schema. For more information on RelaxNG, see: <a class="reference external" href="http://relaxng.org/">http://relaxng.org/</a>.</p> <p><tt class="docutils literal">generateDS.py</tt> does not understand or process RelaxNG schemas. @@ -3386,7 +3491,7 @@ through <tt class="docutils literal">generateDS.py</tt>:</p> <a class="reference external" href="https://github.com/relaxng/jing-trang">https://github.com/relaxng/jing-trang</a></p> </div> <div class="section" id="acknowledgments"> -<h1><a class="toc-backref" href="#id99">20 Acknowledgments</a></h1> +<h1><a class="toc-backref" href="#id100">20 Acknowledgments</a></h1> <p>Many thanks to those who have used <tt class="docutils literal">generateDS.py</tt> and have contributed their comments and suggestions. These comments have been valuable both in teaching me about things I needed to know in @@ -3400,7 +3505,7 @@ following among others:</p> </ul> </div> <div class="section" id="see-also"> -<h1><a class="toc-backref" href="#id100">21 See also</a></h1> +<h1><a class="toc-backref" href="#id101">21 See also</a></h1> <p><a class="reference external" href="http://www.python.org">Python</a>: The Python home page.</p> <p><a class="reference external" href="http://www.davekuhlman.org">Dave's Page</a>: My home page, which contains more Python stuff.</p> <!-- vim:ft=rst: --> @@ -3409,7 +3514,7 @@ following among others:</p> <div class="footer"> <hr class="footer" /> <a class="reference external" href="generateDS.txt">View document source</a>. -Generated on: 2018-08-27 21:50 UTC. +Generated on: 2018-10-05 19:59 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 02f8322..57a8507 100755 --- a/generateDS.py +++ b/generateDS.py @@ -187,6 +187,7 @@ also generates member specifications in each class (in a dictionary). from __future__ import print_function from six.moves import input +from six.moves import urllib import six import sys import os.path @@ -202,12 +203,8 @@ import operator import re if sys.version_info.major == 2: - import urllib2 import StringIO else: - import urllib.request - import urllib.error - import urllib.parse import io from functools import reduce @@ -235,7 +232,7 @@ _log = logging.getLogger(__name__) # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.29.24' +VERSION = '2.29.25' ##VERSION## BaseStrTypes = six.string_types @@ -2491,7 +2488,7 @@ def generateToEtree(wrt, element, Targetnamespace): generateToEtreeAttributes(wrt, element) generateToEtreeChildren(wrt, element, Targetnamespace) wrt(" if mapping_ is not None:\n") - wrt(" mapping_[self] = element\n") + wrt(" mapping_[id(self)] = element\n") wrt(" return element\n") # end generateToEtree @@ -5883,7 +5880,7 @@ def generateHeader(wrt, prefix, options, args, externalImports): preserve_cdata_tags_pat = "" preserve_cdata_get_text = Preserve_cdata_get_all_text2 gds_reverse_node_mapping_text = \ - "return dict(((v, k) for k, v in mapping.iteritems()))" + "return dict(((v, k) for k, v in mapping.items()))" quote_xml_text = \ "s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)" quote_attrib_text = \ @@ -6206,21 +6203,13 @@ def get_impl_body(classBehavior, baseImplUrl, implUrl): if implUrl: if baseImplUrl: implUrl = '%s%s' % (baseImplUrl, implUrl) - if sys.version_info.major == 2: - urllib_urlopen = urllib2.urlopen - urllib_httperror = urllib2.HTTPError - urllib_urlerror = urllib2.URLError - else: - urllib_urlopen = urllib.request.urlopen - urllib_httperror = urllib.error.HTTPError - urllib_urlerror = urllib.error.URLError try: - implFile = urllib_urlopen(implUrl) + implFile = urllib.request.urlopen(implUrl) impl = implFile.read() implFile.close() - except urllib_httperror: + except urllib.error.HTTPError: err_msg('*** Implementation at %s not found.\n' % implUrl) - except urllib_urlerror: + except urllib.error.URLError: err_msg('*** Connection refused for URL: %s\n' % implUrl) return impl @@ -7075,16 +7064,17 @@ def parseAndGenerate( for path in rootPaths: if path.startswith('http:') or path.startswith('ftp:'): try: - urlfile = urllib2.urlopen(path) + urlfile = urllib.request.urlopen(path) content = urlfile.read() urlfile.close() if sys.version_info.major == 2: rootFile = StringIO.StringIO() else: rootFile = io.StringIO() + content = content.decode() rootFile.write(content) rootFile.seek(0) - except urllib2.HTTPError: + except urllib.error.HTTPError: msg = "Can't find file %s." % (path, ) raise IOError(msg) else: diff --git a/generateDS.txt b/generateDS.txt index ecc0ff3..9b67203 100644 --- a/generateDS.txt +++ b/generateDS.txt @@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema .. version -:revision: 2.29.24 +:revision: 2.29.25 .. version @@ -1449,6 +1449,117 @@ http://www.w3.org/TR/xmlschema-0/#abstract <http://www.w3.org/TR/xmlschema-0/#abstract>`_. +Types derived by extension +-------------------------- + +This section describes some of the support for types derived by +extension and also how to use the data bindings generated for those +types in Python. + +For example, suppose you have an XML schema that looks like this +(``example.xsd``):: + + <?xml version="1.0"?> + <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0"> + + <xs:element name="animalCollection"> + <xs:complexType> + <xs:sequence> + <xs:element name="animal" type="animal" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:complexType name="animal" abstract="true"></xs:complexType> + + <xs:complexType name="dog"> + <xs:complexContent> + <xs:extension base="animal"> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:schema> + +An XML instance document for this document type might be the +following:: + + <?xml version="1.0"?> + <animalCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <animal xsi:type="dog"> + <name>fido</name> + </animal> + </animalCollection> + +Question: How would you, in Python, using bindings generated by +``generateDS.py``, create an instance of type ``dog`` that is +derived from type ``animal`` and when exported to XML, appears as an +animal with attribute ``xsi:type="dog"``? + +First, we need to generate our bindings:: + + $ generateDS.py -o example01.py example.xsd + +And, now, here is Python some code that creates those instances and +exports them:: + + # sample01.py + + import sys + import example01 + + def test(): + animal_collection = example01.animalCollection() + animal = example01.dog(name='milicent') + # + # must set original_tagname_ and extensiontype_ for + # type derived by extension. See: + # https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt + animal.original_tagname_ = 'animal' + animal.extensiontype_ = 'dog' + animal_collection.add_animal(animal) + animal_collection.export(sys.stdout, 0) + return animal_collection, animal + + test() + +Notes: + +- The above code creates an instance of class ``animalCollection`` + and an instance of class ``dog``. + +- Because we want the ``dog`` to be represented in XML as a + "<animal>" with an "xsi:type" attribute, we must set the + ``original_tagname_`` and ``extensiontype_`` attributes in the + instance of class ``dog``. + +- Then we add our ``dog`` to the ``animalCollection``, and finally, + we export it. + +- We can get some clues about this by reading the code generated for + classes ``animalCollection``, ``animal``, and ``dog``. + +When we run it, we'll see:: + + $ python sample01.py + <animalCollection> + <animal xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="dog"> + <name>milicent</name> + </animal> + </animalCollection> + +For more information on types derived by extension, see "XML Schema +Part 0: Primer Second Edition", specifically: + +- "Deriving Types by Extension" -- + https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt + +- "Using Derived Types in Instance Documents" -- + https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#UseDerivInInstDocs + + The XML schema input to generateDS ================================== diff --git a/generateds_gui_notes.html b/generateds_gui_notes.html index f7b4cb2..a83f992 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.29.24</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.25</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">August 27, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">October 05, 2018</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: 2018-08-27 21:50 UTC. +Generated on: 2018-10-05 19:59 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 3aee747..512f03b 100644 --- a/generateds_gui_notes.txt +++ b/generateds_gui_notes.txt @@ -12,7 +12,7 @@ GenerateDS GUI Notes .. version -:revision: 2.29.24 +:revision: 2.29.25 .. version diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py index b838fab..63e4914 100644 --- 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.29.24' +VERSION = '2.29.25' ##VERSION## diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html index 6425741..c41beb4 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.29.24</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.25</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">August 27, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">October 05, 2018</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: 2018-08-27 21:50 UTC. +Generated on: 2018-10-05 19:59 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 0edddd2..e0d8a3a 100644 --- a/librarytemplate_howto.txt +++ b/librarytemplate_howto.txt @@ -8,7 +8,7 @@ How to package a generateDS.py generated library .. version -:revision: 2.29.24 +:revision: 2.29.25 .. version diff --git a/process_includes.py b/process_includes.py index 23df4f2..7bf5f80 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.29.24' +VERSION = '2.29.25' ##VERSION## CatalogDict = {} diff --git a/setup.py b/setup.py index 167bf5d..0052045 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## - version="2.29.24", + version="2.29.25", ##VERSION## author="Dave Kuhlman", author_email="dkuhlman@davekuhlman.org", diff --git a/tests/OnePer/oneperType00_2One.py b/tests/OnePer/oneperType00_2One.py index 302c340..431ee25 100644 --- a/tests/OnePer/oneperType00_2One.py +++ b/tests/OnePer/oneperType00_2One.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,8 +731,8 @@ def _cast(typ, value): class oneperType00_1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('inner01', 'oneperType01_1', 0, 0, {u'type': u'oneperType01_1', u'name': u'inner01'}, None), - MemberSpec_('inner02', 'oneperType01_2', 0, 0, {u'type': u'oneperType01_2', u'name': u'inner02'}, None), + MemberSpec_('inner01', 'oneperType01_1', 0, 0, {'name': 'inner01', 'type': 'oneperType01_1'}, None), + MemberSpec_('inner02', 'oneperType01_2', 0, 0, {'name': 'inner02', 'type': 'oneperType01_2'}, None), ] subclass = None superclass = None diff --git a/tests/OnePer/oneperType01_2One.py b/tests/OnePer/oneperType01_2One.py index eb0889b..25f68e7 100644 --- a/tests/OnePer/oneperType01_2One.py +++ b/tests/OnePer/oneperType01_2One.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,8 +731,8 @@ def _cast(typ, value): class oneperType01_1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('username', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'username'}, None), - MemberSpec_('inner01', 'oneperType01_2', 0, 0, {u'type': u'oneperType01_2', u'name': u'inner01'}, None), + MemberSpec_('username', 'xs:string', 0, 0, {'name': 'username', 'type': 'xs:string'}, None), + MemberSpec_('inner01', 'oneperType01_2', 0, 0, {'name': 'inner01', 'type': 'oneperType01_2'}, None), ] subclass = None superclass = None @@ -820,7 +820,7 @@ class oneperType01_1(GeneratedsSuper): class oneperType01_2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('userdescription', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'userdescription'}, None), + MemberSpec_('userdescription', 'xs:string', 0, 0, {'name': 'userdescription', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/OnePer/oneperType02_2One.py b/tests/OnePer/oneperType02_2One.py index 0533a39..288f23a 100644 --- a/tests/OnePer/oneperType02_2One.py +++ b/tests/OnePer/oneperType02_2One.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,8 +731,8 @@ def _cast(typ, value): class oneperType02_1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('clientname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'clientname'}, None), - MemberSpec_('inner01', 'oneperType02_2', 0, 0, {u'type': u'oneperType02_2', u'name': u'inner01'}, None), + MemberSpec_('clientname', 'xs:string', 0, 0, {'name': 'clientname', 'type': 'xs:string'}, None), + MemberSpec_('inner01', 'oneperType02_2', 0, 0, {'name': 'inner01', 'type': 'oneperType02_2'}, None), ] subclass = None superclass = None @@ -820,7 +820,7 @@ class oneperType02_1(GeneratedsSuper): class oneperType02_2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('clientdescription', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'clientdescription'}, None), + MemberSpec_('clientdescription', 'xs:string', 0, 0, {'name': 'clientdescription', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/OnePer/oneperType03_2One.py b/tests/OnePer/oneperType03_2One.py index b7a7776..8667701 100644 --- a/tests/OnePer/oneperType03_2One.py +++ b/tests/OnePer/oneperType03_2One.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,8 +731,8 @@ def _cast(typ, value): class oneperType03_1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('helpername', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'helpername'}, None), - MemberSpec_('inner01', 'oneperType02_2', 0, 0, {u'type': u'oneperType02_2', u'name': u'inner01'}, None), + MemberSpec_('helpername', 'xs:string', 0, 0, {'name': 'helpername', 'type': 'xs:string'}, None), + MemberSpec_('inner01', 'oneperType02_2', 0, 0, {'name': 'inner01', 'type': 'oneperType02_2'}, None), ] subclass = None superclass = None @@ -820,7 +820,7 @@ class oneperType03_1(GeneratedsSuper): class oneperType03_2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('helperdescription', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'helperdescription'}, None), + MemberSpec_('helperdescription', 'xs:string', 0, 0, {'name': 'helperdescription', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/abstract_type1_sub.py b/tests/abstract_type1_sub.py index 43f19ac..48dfa29 100644 --- a/tests/abstract_type1_sub.py +++ b/tests/abstract_type1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/abstract_type1_sup.py b/tests/abstract_type1_sup.py index 47335e1..f919e57 100644 --- a/tests/abstract_type1_sup.py +++ b/tests/abstract_type1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,7 +730,7 @@ def _cast(typ, value): class carrierType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('fleet', 'Vehicle', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'Vehicle', u'name': u'fleet'}, None), + MemberSpec_('fleet', 'Vehicle', 1, 0, {'name': 'fleet', 'type': 'Vehicle', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/annotations1_sub.py b/tests/annotations1_sub.py index 3db6ece..80946a6 100644 --- a/tests/annotations1_sub.py +++ b/tests/annotations1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py index 658ca2f..af28863 100644 --- a/tests/annotations1_sup.py +++ b/tests/annotations1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -733,8 +733,8 @@ class document1Type(GeneratedsSuper): test purposes. It should make a somewhat uninteresting docstring.""" member_data_items_ = [ - MemberSpec_('comments', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'comments'}, None), - MemberSpec_('otherdoc', 'document2Type', 0, 0, {u'type': u'document2Type', u'name': u'otherdoc'}, None), + MemberSpec_('comments', 'xs:string', 0, 0, {'name': 'comments', 'type': 'xs:string'}, None), + MemberSpec_('otherdoc', 'document2Type', 0, 0, {'name': 'otherdoc', 'type': 'document2Type'}, None), ] subclass = None superclass = None @@ -825,9 +825,9 @@ class document2Type(GeneratedsSuper): test purposes. It should make a somewhat uninteresting docstring.""" member_data_items_ = [ - MemberSpec_('comments', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'comments'}, None), - MemberSpec_('rating', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'rating'}, None), - MemberSpec_('anotherdoc', 'document3Type', 0, 0, {u'type': u'document3Type', u'name': u'anotherdoc'}, None), + MemberSpec_('comments', 'xs:string', 0, 0, {'name': 'comments', 'type': 'xs:string'}, None), + MemberSpec_('rating', 'xs:integer', 0, 0, {'name': 'rating', 'type': 'xs:integer'}, None), + MemberSpec_('anotherdoc', 'document3Type', 0, 0, {'name': 'anotherdoc', 'type': 'document3Type'}, None), ] subclass = None superclass = None @@ -931,8 +931,8 @@ class document2Type(GeneratedsSuper): class document3Type(GeneratedsSuper): """This is a element of Type 3. It is short.""" member_data_items_ = [ - MemberSpec_('comments', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'comments'}, None), - MemberSpec_('rating', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'rating'}, None), + MemberSpec_('comments', 'xs:string', 0, 0, {'name': 'comments', 'type': 'xs:string'}, None), + MemberSpec_('rating', 'xs:integer', 0, 0, {'name': 'rating', 'type': 'xs:integer'}, None), ] subclass = None superclass = None diff --git a/tests/anonymous_type1_sub.py b/tests/anonymous_type1_sub.py index 8b03f97..0025627 100644 --- a/tests/anonymous_type1_sub.py +++ b/tests/anonymous_type1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/anonymous_type1_sup.py b/tests/anonymous_type1_sup.py index cbd741a..1dbdd44 100644 --- a/tests/anonymous_type1_sup.py +++ b/tests/anonymous_type1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,9 +730,9 @@ def _cast(typ, value): class FooList(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('Foo', 'FooType1', 0, 0, {u'type': u'FooType1', u'name': u'Foo'}, None), - MemberSpec_('Bar', 'BarType2', 0, 0, {u'type': u'BarType2', u'name': u'Bar'}, None), - MemberSpec_('Baz', 'BazType3', 0, 0, {u'type': u'BazType3', u'name': u'Baz'}, None), + MemberSpec_('Foo', 'FooType1', 0, 0, {'name': 'Foo', 'type': 'FooType1'}, None), + MemberSpec_('Bar', 'BarType2', 0, 0, {'name': 'Bar', 'type': 'BarType2'}, None), + MemberSpec_('Baz', 'BazType3', 0, 0, {'name': 'Baz', 'type': 'BazType3'}, None), ] subclass = None superclass = None @@ -831,7 +831,7 @@ class FooList(GeneratedsSuper): class FooType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('FooType', ['FooTypeType', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'FooType'}, None), + MemberSpec_('FooType', ['FooTypeType', 'xs:string'], 0, 0, {'name': 'FooType', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -918,7 +918,7 @@ class FooType1(GeneratedsSuper): class BarType2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('BarType', ['BarTypeType', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'BarType'}, None), + MemberSpec_('BarType', ['BarTypeType', 'xs:string'], 0, 0, {'name': 'BarType', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1005,7 +1005,7 @@ class BarType2(GeneratedsSuper): class BazType3(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('BazType', ['BazTypeType', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'BazType'}, None), + MemberSpec_('BazType', ['BazTypeType', 'xs:string'], 0, 0, {'name': 'BazType', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/anysimpletype1_sub.py b/tests/anysimpletype1_sub.py index f456d15..18f5e83 100644 --- a/tests/anysimpletype1_sub.py +++ b/tests/anysimpletype1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/anysimpletype1_sup.py b/tests/anysimpletype1_sup.py index d1196d6..b2be9a2 100644 --- a/tests/anysimpletype1_sup.py +++ b/tests/anysimpletype1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,7 +731,7 @@ def _cast(typ, value): class test1element(GeneratedsSuper): member_data_items_ = [ MemberSpec_('test1attribute', 'cimAnySimpleType', 0, 1, {'use': 'optional'}), - MemberSpec_('test1member', 'cimAnySimpleType', 0, 0, {u'type': u'cimAnySimpleType', u'name': u'test1member'}, None), + MemberSpec_('test1member', 'cimAnySimpleType', 0, 0, {'name': 'test1member', 'type': 'cimAnySimpleType'}, None), ] subclass = None superclass = None diff --git a/tests/anywildcard1_sub.py b/tests/anywildcard1_sub.py index 713a363..079fab7 100644 --- a/tests/anywildcard1_sub.py +++ b/tests/anywildcard1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py index 7c8236a..9ccef05 100644 --- a/tests/anywildcard1_sup.py +++ b/tests/anywildcard1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,9 +730,9 @@ def _cast(typ, value): class PlantType_single(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('__ANY__', '__ANY__', 0, 0, {u'maxOccurs': u'1', u'minOccurs': u'1'}, None), - MemberSpec_('description', 'DescriptionType', 0, 0, {u'type': u'DescriptionType', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('__ANY__', '__ANY__', 0, 0, {'minOccurs': '1', 'maxOccurs': '1'}, None), + MemberSpec_('description', 'DescriptionType', 0, 0, {'name': 'description', 'type': 'DescriptionType'}, None), ] subclass = None superclass = None @@ -830,9 +830,9 @@ class PlantType_single(GeneratedsSuper): class PlantType_multiple(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('__ANY__', '__ANY__', 1, 0, {u'maxOccurs': u'unbounded', u'minOccurs': u'1'}, None), - MemberSpec_('description', 'DescriptionType', 0, 0, {u'type': u'DescriptionType', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('__ANY__', '__ANY__', 1, 0, {'minOccurs': '1', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('description', 'DescriptionType', 0, 0, {'name': 'description', 'type': 'DescriptionType'}, None), ] subclass = None superclass = None @@ -936,8 +936,8 @@ class PlantType_multiple(GeneratedsSuper): class DescriptionType(GeneratedsSuper): """A standard complexType.""" member_data_items_ = [ - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('size', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'size'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('size', 'xs:string', 0, 0, {'name': 'size', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1026,8 +1026,8 @@ class DescriptionType(GeneratedsSuper): class CatalogType(GeneratedsSuper): """A standard complexType.""" member_data_items_ = [ - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('catagory', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'catagory'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('catagory', 'xs:integer', 0, 0, {'name': 'catagory', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -1119,7 +1119,7 @@ class CatalogType(GeneratedsSuper): class PlantType_single_nochild(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('__ANY__', '__ANY__', 0, 0, {u'maxOccurs': u'1', u'minOccurs': u'1'}, None), + MemberSpec_('__ANY__', '__ANY__', 0, 0, {'minOccurs': '1', 'maxOccurs': '1'}, None), ] subclass = None superclass = None @@ -1194,7 +1194,7 @@ class PlantType_single_nochild(GeneratedsSuper): class PlantType_multiple_nochild(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('__ANY__', '__ANY__', 1, 0, {u'maxOccurs': u'unbounded', u'minOccurs': u'1'}, None), + MemberSpec_('__ANY__', '__ANY__', 1, 0, {'minOccurs': '1', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/attr_groups1_sub.py b/tests/attr_groups1_sub.py index f04f481..ee22469 100644 --- a/tests/attr_groups1_sub.py +++ b/tests/attr_groups1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/attr_groups1_sup.py b/tests/attr_groups1_sup.py index 1cbe23a..5c1c572 100644 --- a/tests/attr_groups1_sup.py +++ b/tests/attr_groups1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -739,7 +739,7 @@ class GetUserReq(GeneratedsSuper): MemberSpec_('value06', 'xsd:integer', 0, 1, {'use': 'optional'}), MemberSpec_('value07', 'xsd:integer', 0, 1, {'use': 'optional'}), MemberSpec_('value08', 'xsd:string', 0, 1, {'use': 'optional'}), - MemberSpec_('returnedTags', 'xsd:string', 0, 1, {u'type': u'xsd:string', u'name': u'returnedTags', u'minOccurs': u'0'}, None), + MemberSpec_('returnedTags', 'xsd:string', 0, 1, {'name': 'returnedTags', 'type': 'xsd:string', 'minOccurs': '0'}, None), ] subclass = None superclass = None diff --git a/tests/catalogtest1_sub.py b/tests/catalogtest1_sub.py index 7da5ec7..96e259a 100644 --- a/tests/catalogtest1_sub.py +++ b/tests/catalogtest1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/catalogtest1_sup.py b/tests/catalogtest1_sup.py index 34a7b0b..f6cb15c 100644 --- a/tests/catalogtest1_sup.py +++ b/tests/catalogtest1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: diff --git a/tests/cdata1_sub.py b/tests/cdata1_sub.py index aa221fc..0274b90 100644 --- a/tests/cdata1_sub.py +++ b/tests/cdata1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/cdata1_sup.py b/tests/cdata1_sup.py index 5e122ff..41f1cb5 100644 --- a/tests/cdata1_sup.py +++ b/tests/cdata1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,7 +731,7 @@ def _cast(typ, value): class cdataListType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('cdatalist', 'cdataType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'cdataType', u'name': u'cdatalist', u'minOccurs': u'0'}, None), + MemberSpec_('cdatalist', 'cdataType', 1, 1, {'name': 'cdatalist', 'type': 'cdataType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -814,7 +814,7 @@ class cdataListType(GeneratedsSuper): class cdataType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('script', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'script'}, None), + MemberSpec_('script', 'xs:string', 0, 0, {'name': 'script', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/cleanupname1_sub.py b/tests/cleanupname1_sub.py index 059dacc..06e975f 100644 --- a/tests/cleanupname1_sub.py +++ b/tests/cleanupname1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/cleanupname1_sup.py b/tests/cleanupname1_sup.py index 47ae245..da3bddb 100644 --- a/tests/cleanupname1_sup.py +++ b/tests/cleanupname1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,11 +731,11 @@ def _cast(typ, value): class dataKind(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('data1', 'data1Type', 0, 0, {u'type': u'data1Type', u'name': u'data1'}, None), - MemberSpec_('data2', 'TypeData2', 0, 0, {u'type': u'TypeData2', u'name': u'data2'}, None), - MemberSpec_('data3', 'RealTypeData3', 0, 0, {u'type': u'RealTypeData3', u'name': u'data3'}, None), - MemberSpec_('data4', 'AABBCCdataType', 0, 0, {u'type': u'AABBCCdataType', u'name': u'data4'}, None), - MemberSpec_('data5', 'dataTypeXYZAXYZ', 0, 0, {u'type': u'dataTypeXYZAXYZ', u'name': u'data5'}, None), + MemberSpec_('data1', 'data1Type', 0, 0, {'name': 'data1', 'type': 'data1Type'}, None), + MemberSpec_('data2', 'TypeData2', 0, 0, {'name': 'data2', 'type': 'TypeData2'}, None), + MemberSpec_('data3', 'RealTypeData3', 0, 0, {'name': 'data3', 'type': 'RealTypeData3'}, None), + MemberSpec_('data4', 'AABBCCdataType', 0, 0, {'name': 'data4', 'type': 'AABBCCdataType'}, None), + MemberSpec_('data5', 'dataTypeXYZAXYZ', 0, 0, {'name': 'data5', 'type': 'dataTypeXYZAXYZ'}, None), ] subclass = None superclass = None @@ -856,7 +856,7 @@ class dataKind(GeneratedsSuper): class data1Kind(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('content1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'content1'}, None), + MemberSpec_('content1', 'xs:string', 0, 0, {'name': 'content1', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -933,7 +933,7 @@ class data1Kind(GeneratedsSuper): class MlassData2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('content1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'content1'}, None), + MemberSpec_('content1', 'xs:string', 0, 0, {'name': 'content1', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1010,7 +1010,7 @@ class MlassData2(GeneratedsSuper): class RealTypeData3(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('content1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'content1'}, None), + MemberSpec_('content1', 'xs:string', 0, 0, {'name': 'content1', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1087,7 +1087,7 @@ class RealTypeData3(GeneratedsSuper): class MMMMMMdataKind(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('content1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'content1'}, None), + MemberSpec_('content1', 'xs:string', 0, 0, {'name': 'content1', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1164,7 +1164,7 @@ class MMMMMMdataKind(GeneratedsSuper): class dataTypeNNNMNNN(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('content1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'content1'}, None), + MemberSpec_('content1', 'xs:string', 0, 0, {'name': 'content1', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/copy_all b/tests/copy_all index 06d9909..ecaafeb 100755 --- a/tests/copy_all +++ b/tests/copy_all @@ -67,3 +67,5 @@ cp mixedcontent2_sub.py mixedcontent1_sub.py cp mixedcontent2_sup.py mixedcontent1_sup.py cp no_namespace_defs2_sub.py no_namespace_defs1_sub.py cp no_namespace_defs2_sup.py no_namespace_defs1_sup.py +cp derived_types2_sub.py derived_types1_sub.py +cp derived_types2_sup.py derived_types1_sup.py diff --git a/tests/defaults_cases1_sub.py b/tests/defaults_cases1_sub.py index f34b1f0..02fbe04 100644 --- a/tests/defaults_cases1_sub.py +++ b/tests/defaults_cases1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/defaults_cases1_sup.py b/tests/defaults_cases1_sup.py index 3dd0935..408973a 100644 --- a/tests/defaults_cases1_sup.py +++ b/tests/defaults_cases1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -729,10 +729,10 @@ def _cast(typ, value): class DefaultTypes(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default1', 'DefaultType1', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType1', u'name': u'default1'}, None), - MemberSpec_('default2', 'DefaultType2', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType2', u'name': u'default2'}, None), - MemberSpec_('fixed1', 'FixedType1', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'FixedType1', u'name': u'fixed1'}, None), - MemberSpec_('fixed2', 'FixedType2', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'FixedType2', u'name': u'fixed2'}, None), + MemberSpec_('default1', 'DefaultType1', 1, 0, {'name': 'default1', 'type': 'DefaultType1', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('default2', 'DefaultType2', 1, 0, {'name': 'default2', 'type': 'DefaultType2', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('fixed1', 'FixedType1', 1, 0, {'name': 'fixed1', 'type': 'FixedType1', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('fixed2', 'FixedType2', 1, 0, {'name': 'fixed2', 'type': 'FixedType2', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -866,14 +866,14 @@ class DefaultTypes(GeneratedsSuper): class DefaultType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('normal01', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'normal01', u'minOccurs': u'0'}, None), - MemberSpec_('normal02', 'xs:string', 0, 1, {u'type': u'xs:string', u'name': u'normal02', u'minOccurs': u'0'}, None), - MemberSpec_('default01', 'xs:integer', 0, 1, {u'default': u'23', u'type': u'xs:integer', u'name': u'default01', u'minOccurs': u'0'}, None), - MemberSpec_('default02', 'xs:string', 0, 1, {u'default': u'Peach', u'type': u'xs:string', u'name': u'default02', u'minOccurs': u'0'}, None), - MemberSpec_('normal03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'normal03', u'minOccurs': u'1'}, None), - MemberSpec_('normal04', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'normal04', u'minOccurs': u'1'}, None), - MemberSpec_('default03', 'xs:float', 0, 0, {u'default': u'23.45', u'type': u'xs:float', u'name': u'default03', u'minOccurs': u'1'}, None), - MemberSpec_('default04', 'xs:double', 0, 0, {u'default': u'54.32', u'type': u'xs:double', u'name': u'default04', u'minOccurs': u'1'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 1, {'name': 'normal01', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('normal02', 'xs:string', 0, 1, {'name': 'normal02', 'type': 'xs:string', 'minOccurs': '0'}, None), + MemberSpec_('default01', 'xs:integer', 0, 1, {'name': 'default01', 'type': 'xs:integer', 'default': '23', 'minOccurs': '0'}, None), + MemberSpec_('default02', 'xs:string', 0, 1, {'name': 'default02', 'type': 'xs:string', 'default': 'Peach', 'minOccurs': '0'}, None), + MemberSpec_('normal03', 'xs:float', 0, 0, {'name': 'normal03', 'type': 'xs:float', 'minOccurs': '1'}, None), + MemberSpec_('normal04', 'xs:double', 0, 0, {'name': 'normal04', 'type': 'xs:double', 'minOccurs': '1'}, None), + MemberSpec_('default03', 'xs:float', 0, 0, {'name': 'default03', 'type': 'xs:float', 'default': '23.45', 'minOccurs': '1'}, None), + MemberSpec_('default04', 'xs:double', 0, 0, {'name': 'default04', 'type': 'xs:double', 'default': '54.32', 'minOccurs': '1'}, None), ] subclass = None superclass = None @@ -1162,14 +1162,14 @@ class DefaultType2(GeneratedsSuper): class FixedType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('normal01', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'normal01', u'minOccurs': u'0'}, None), - MemberSpec_('normal02', 'xs:string', 0, 1, {u'type': u'xs:string', u'name': u'normal02', u'minOccurs': u'0'}, None), - MemberSpec_('fixed01', 'xs:integer', 0, 1, {u'fixed': u'23', u'type': u'xs:integer', u'name': u'fixed01', u'minOccurs': u'0'}, None), - MemberSpec_('fixed02', 'xs:string', 0, 1, {u'fixed': u'Peach', u'type': u'xs:string', u'name': u'fixed02', u'minOccurs': u'0'}, None), - MemberSpec_('normal03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'normal03', u'minOccurs': u'1'}, None), - MemberSpec_('normal04', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'normal04', u'minOccurs': u'1'}, None), - MemberSpec_('fixed03', 'xs:float', 0, 0, {u'fixed': u'23.45', u'type': u'xs:float', u'name': u'fixed03', u'minOccurs': u'1'}, None), - MemberSpec_('fixed04', 'xs:double', 0, 0, {u'fixed': u'54.32', u'type': u'xs:double', u'name': u'fixed04', u'minOccurs': u'1'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 1, {'name': 'normal01', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('normal02', 'xs:string', 0, 1, {'name': 'normal02', 'type': 'xs:string', 'minOccurs': '0'}, None), + MemberSpec_('fixed01', 'xs:integer', 0, 1, {'name': 'fixed01', 'type': 'xs:integer', 'fixed': '23', 'minOccurs': '0'}, None), + MemberSpec_('fixed02', 'xs:string', 0, 1, {'name': 'fixed02', 'type': 'xs:string', 'fixed': 'Peach', 'minOccurs': '0'}, None), + MemberSpec_('normal03', 'xs:float', 0, 0, {'name': 'normal03', 'type': 'xs:float', 'minOccurs': '1'}, None), + MemberSpec_('normal04', 'xs:double', 0, 0, {'name': 'normal04', 'type': 'xs:double', 'minOccurs': '1'}, None), + MemberSpec_('fixed03', 'xs:float', 0, 0, {'name': 'fixed03', 'type': 'xs:float', 'fixed': '23.45', 'minOccurs': '1'}, None), + MemberSpec_('fixed04', 'xs:double', 0, 0, {'name': 'fixed04', 'type': 'xs:double', 'fixed': '54.32', 'minOccurs': '1'}, None), ] subclass = None superclass = None diff --git a/tests/defaults_cases_always1_sub.py b/tests/defaults_cases_always1_sub.py index ed21b92..208d50c 100644 --- a/tests/defaults_cases_always1_sub.py +++ b/tests/defaults_cases_always1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/defaults_cases_always1_sup.py b/tests/defaults_cases_always1_sup.py index 336bd86..400884b 100644 --- a/tests/defaults_cases_always1_sup.py +++ b/tests/defaults_cases_always1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,8 +730,8 @@ def _cast(typ, value): class DefaultTypes(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default1', 'DefaultType1', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType1', u'name': u'default1'}, None), - MemberSpec_('default2', 'DefaultType2', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType2', u'name': u'default2'}, None), + MemberSpec_('default1', 'DefaultType1', 1, 0, {'name': 'default1', 'type': 'DefaultType1', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('default2', 'DefaultType2', 1, 0, {'name': 'default2', 'type': 'DefaultType2', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -831,14 +831,14 @@ class DefaultTypes(GeneratedsSuper): class DefaultType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('normal01', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'normal01', u'minOccurs': u'0'}, None), - MemberSpec_('normal02', 'xs:string', 0, 1, {u'type': u'xs:string', u'name': u'normal02', u'minOccurs': u'0'}, None), - MemberSpec_('default01', 'xs:integer', 0, 1, {u'default': u'23', u'type': u'xs:integer', u'name': u'default01', u'minOccurs': u'0'}, None), - MemberSpec_('default02', 'xs:string', 0, 1, {u'default': u'Peach', u'type': u'xs:string', u'name': u'default02', u'minOccurs': u'0'}, None), - MemberSpec_('normal03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'normal03', u'minOccurs': u'1'}, None), - MemberSpec_('normal04', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'normal04', u'minOccurs': u'1'}, None), - MemberSpec_('default03', 'xs:float', 0, 0, {u'default': u'23.45', u'type': u'xs:float', u'name': u'default03', u'minOccurs': u'1'}, None), - MemberSpec_('default04', 'xs:double', 0, 0, {u'default': u'54.32', u'type': u'xs:double', u'name': u'default04', u'minOccurs': u'1'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 1, {'name': 'normal01', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('normal02', 'xs:string', 0, 1, {'name': 'normal02', 'type': 'xs:string', 'minOccurs': '0'}, None), + MemberSpec_('default01', 'xs:integer', 0, 1, {'name': 'default01', 'type': 'xs:integer', 'default': '23', 'minOccurs': '0'}, None), + MemberSpec_('default02', 'xs:string', 0, 1, {'name': 'default02', 'type': 'xs:string', 'default': 'Peach', 'minOccurs': '0'}, None), + MemberSpec_('normal03', 'xs:float', 0, 0, {'name': 'normal03', 'type': 'xs:float', 'minOccurs': '1'}, None), + MemberSpec_('normal04', 'xs:double', 0, 0, {'name': 'normal04', 'type': 'xs:double', 'minOccurs': '1'}, None), + MemberSpec_('default03', 'xs:float', 0, 0, {'name': 'default03', 'type': 'xs:float', 'default': '23.45', 'minOccurs': '1'}, None), + MemberSpec_('default04', 'xs:double', 0, 0, {'name': 'default04', 'type': 'xs:double', 'default': '54.32', 'minOccurs': '1'}, None), ] subclass = None superclass = None diff --git a/tests/defaults_cases_always2_sub.py b/tests/defaults_cases_always2_sub.py index ed21b92..208d50c 100644 --- a/tests/defaults_cases_always2_sub.py +++ b/tests/defaults_cases_always2_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/defaults_cases_always2_sup.py b/tests/defaults_cases_always2_sup.py index 336bd86..400884b 100644 --- a/tests/defaults_cases_always2_sup.py +++ b/tests/defaults_cases_always2_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,8 +730,8 @@ def _cast(typ, value): class DefaultTypes(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default1', 'DefaultType1', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType1', u'name': u'default1'}, None), - MemberSpec_('default2', 'DefaultType2', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'DefaultType2', u'name': u'default2'}, None), + MemberSpec_('default1', 'DefaultType1', 1, 0, {'name': 'default1', 'type': 'DefaultType1', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('default2', 'DefaultType2', 1, 0, {'name': 'default2', 'type': 'DefaultType2', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -831,14 +831,14 @@ class DefaultTypes(GeneratedsSuper): class DefaultType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('normal01', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'normal01', u'minOccurs': u'0'}, None), - MemberSpec_('normal02', 'xs:string', 0, 1, {u'type': u'xs:string', u'name': u'normal02', u'minOccurs': u'0'}, None), - MemberSpec_('default01', 'xs:integer', 0, 1, {u'default': u'23', u'type': u'xs:integer', u'name': u'default01', u'minOccurs': u'0'}, None), - MemberSpec_('default02', 'xs:string', 0, 1, {u'default': u'Peach', u'type': u'xs:string', u'name': u'default02', u'minOccurs': u'0'}, None), - MemberSpec_('normal03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'normal03', u'minOccurs': u'1'}, None), - MemberSpec_('normal04', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'normal04', u'minOccurs': u'1'}, None), - MemberSpec_('default03', 'xs:float', 0, 0, {u'default': u'23.45', u'type': u'xs:float', u'name': u'default03', u'minOccurs': u'1'}, None), - MemberSpec_('default04', 'xs:double', 0, 0, {u'default': u'54.32', u'type': u'xs:double', u'name': u'default04', u'minOccurs': u'1'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 1, {'name': 'normal01', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('normal02', 'xs:string', 0, 1, {'name': 'normal02', 'type': 'xs:string', 'minOccurs': '0'}, None), + MemberSpec_('default01', 'xs:integer', 0, 1, {'name': 'default01', 'type': 'xs:integer', 'default': '23', 'minOccurs': '0'}, None), + MemberSpec_('default02', 'xs:string', 0, 1, {'name': 'default02', 'type': 'xs:string', 'default': 'Peach', 'minOccurs': '0'}, None), + MemberSpec_('normal03', 'xs:float', 0, 0, {'name': 'normal03', 'type': 'xs:float', 'minOccurs': '1'}, None), + MemberSpec_('normal04', 'xs:double', 0, 0, {'name': 'normal04', 'type': 'xs:double', 'minOccurs': '1'}, None), + MemberSpec_('default03', 'xs:float', 0, 0, {'name': 'default03', 'type': 'xs:float', 'default': '23.45', 'minOccurs': '1'}, None), + MemberSpec_('default04', 'xs:double', 0, 0, {'name': 'default04', 'type': 'xs:double', 'default': '54.32', 'minOccurs': '1'}, None), ] subclass = None superclass = None diff --git a/tests/defaults_coverage1_sub.py b/tests/defaults_coverage1_sub.py index d226c90..6d2a159 100644 --- a/tests/defaults_coverage1_sub.py +++ b/tests/defaults_coverage1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/defaults_coverage1_sup.py b/tests/defaults_coverage1_sup.py index 57b3741..e4c1eb7 100644 --- a/tests/defaults_coverage1_sup.py +++ b/tests/defaults_coverage1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,8 +730,8 @@ def _cast(typ, value): class DefaultTypes(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default1', 'DefaultType1', 0, 0, {u'type': u'DefaultType1', u'name': u'default1'}, None), - MemberSpec_('default2', 'DefaultType2', 0, 0, {u'type': u'DefaultType2', u'name': u'default2'}, None), + MemberSpec_('default1', 'DefaultType1', 0, 0, {'name': 'default1', 'type': 'DefaultType1'}, None), + MemberSpec_('default2', 'DefaultType2', 0, 0, {'name': 'default2', 'type': 'DefaultType2'}, None), ] subclass = None superclass = None @@ -819,23 +819,23 @@ class DefaultTypes(GeneratedsSuper): class DefaultType1(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default01', 'xs:integer', 0, 1, {u'default': u'23', u'type': u'xs:integer', u'name': u'default01', u'minOccurs': u'0'}, None), - MemberSpec_('normal01', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'normal01', u'minOccurs': u'0'}, None), - MemberSpec_('default02', 'xs:string', 0, 1, {u'default': u'Peach', u'type': u'xs:string', u'name': u'default02', u'minOccurs': u'0'}, None), - MemberSpec_('normal02', 'xs:string', 0, 1, {u'type': u'xs:string', u'name': u'normal02', u'minOccurs': u'0'}, None), - MemberSpec_('default03', 'xs:float', 0, 1, {u'default': u'23.45', u'type': u'xs:float', u'name': u'default03', u'minOccurs': u'0'}, None), - MemberSpec_('normal03', 'xs:float', 0, 1, {u'type': u'xs:float', u'name': u'normal03', u'minOccurs': u'0'}, None), - MemberSpec_('default04', 'xs:double', 0, 1, {u'default': u'54.32', u'type': u'xs:double', u'name': u'default04', u'minOccurs': u'0'}, None), - MemberSpec_('normal04', 'xs:double', 0, 1, {u'type': u'xs:double', u'name': u'normal04', u'minOccurs': u'0'}, None), - MemberSpec_('default05a', 'xs:boolean', 0, 1, {u'default': u'true', u'type': u'xs:boolean', u'name': u'default05a', u'minOccurs': u'0'}, None), - MemberSpec_('default05b', 'xs:boolean', 0, 1, {u'default': u'false', u'type': u'xs:boolean', u'name': u'default05b', u'minOccurs': u'0'}, None), - MemberSpec_('normal05', 'xs:boolean', 0, 1, {u'type': u'xs:boolean', u'name': u'normal05', u'minOccurs': u'0'}, None), - MemberSpec_('default06', 'xs:date', 0, 1, {u'default': u'2015-06-21', u'type': u'xs:date', u'name': u'default06', u'minOccurs': u'0'}, None), - MemberSpec_('normal06', 'xs:date', 0, 1, {u'type': u'xs:date', u'name': u'normal06', u'minOccurs': u'0'}, None), - MemberSpec_('default07', 'xs:time', 0, 1, {u'default': u'11:10:09', u'type': u'xs:time', u'name': u'default07', u'minOccurs': u'0'}, None), - MemberSpec_('normal07', 'xs:date', 0, 1, {u'type': u'xs:date', u'name': u'normal07', u'minOccurs': u'0'}, None), - MemberSpec_('default08', 'xs:dateTime', 0, 1, {u'default': u'2015-06-21T14:13:12', u'type': u'xs:dateTime', u'name': u'default08', u'minOccurs': u'0'}, None), - MemberSpec_('normal08', 'xs:dateTime', 0, 1, {u'type': u'xs:dateTime', u'name': u'normal08', u'minOccurs': u'0'}, None), + MemberSpec_('default01', 'xs:integer', 0, 1, {'name': 'default01', 'type': 'xs:integer', 'default': '23', 'minOccurs': '0'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 1, {'name': 'normal01', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('default02', 'xs:string', 0, 1, {'name': 'default02', 'type': 'xs:string', 'default': 'Peach', 'minOccurs': '0'}, None), + MemberSpec_('normal02', 'xs:string', 0, 1, {'name': 'normal02', 'type': 'xs:string', 'minOccurs': '0'}, None), + MemberSpec_('default03', 'xs:float', 0, 1, {'name': 'default03', 'type': 'xs:float', 'default': '23.45', 'minOccurs': '0'}, None), + MemberSpec_('normal03', 'xs:float', 0, 1, {'name': 'normal03', 'type': 'xs:float', 'minOccurs': '0'}, None), + MemberSpec_('default04', 'xs:double', 0, 1, {'name': 'default04', 'type': 'xs:double', 'default': '54.32', 'minOccurs': '0'}, None), + MemberSpec_('normal04', 'xs:double', 0, 1, {'name': 'normal04', 'type': 'xs:double', 'minOccurs': '0'}, None), + MemberSpec_('default05a', 'xs:boolean', 0, 1, {'name': 'default05a', 'type': 'xs:boolean', 'default': 'true', 'minOccurs': '0'}, None), + MemberSpec_('default05b', 'xs:boolean', 0, 1, {'name': 'default05b', 'type': 'xs:boolean', 'default': 'false', 'minOccurs': '0'}, None), + MemberSpec_('normal05', 'xs:boolean', 0, 1, {'name': 'normal05', 'type': 'xs:boolean', 'minOccurs': '0'}, None), + MemberSpec_('default06', 'xs:date', 0, 1, {'name': 'default06', 'type': 'xs:date', 'default': '2015-06-21', 'minOccurs': '0'}, None), + MemberSpec_('normal06', 'xs:date', 0, 1, {'name': 'normal06', 'type': 'xs:date', 'minOccurs': '0'}, None), + MemberSpec_('default07', 'xs:time', 0, 1, {'name': 'default07', 'type': 'xs:time', 'default': '11:10:09', 'minOccurs': '0'}, None), + MemberSpec_('normal07', 'xs:date', 0, 1, {'name': 'normal07', 'type': 'xs:date', 'minOccurs': '0'}, None), + MemberSpec_('default08', 'xs:dateTime', 0, 1, {'name': 'default08', 'type': 'xs:dateTime', 'default': '2015-06-21T14:13:12', 'minOccurs': '0'}, None), + MemberSpec_('normal08', 'xs:dateTime', 0, 1, {'name': 'normal08', 'type': 'xs:dateTime', 'minOccurs': '0'}, None), ] subclass = None superclass = None @@ -1154,23 +1154,23 @@ class DefaultType1(GeneratedsSuper): class DefaultType2(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('default01', 'xs:integer', 0, 0, {u'default': u'23', u'type': u'xs:integer', u'name': u'default01'}, None), - MemberSpec_('normal01', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'normal01'}, None), - MemberSpec_('default02', 'xs:string', 0, 0, {u'default': u'Peach', u'type': u'xs:string', u'name': u'default02'}, None), - MemberSpec_('normal02', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'normal02'}, None), - MemberSpec_('default03', 'xs:float', 0, 0, {u'default': u'23.45', u'type': u'xs:float', u'name': u'default03'}, None), - MemberSpec_('normal03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'normal03'}, None), - MemberSpec_('default04', 'xs:double', 0, 0, {u'default': u'54.32', u'type': u'xs:double', u'name': u'default04'}, None), - MemberSpec_('normal04', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'normal04'}, None), - MemberSpec_('default05a', 'xs:boolean', 0, 0, {u'default': u'true', u'type': u'xs:boolean', u'name': u'default05a'}, None), - MemberSpec_('default05b', 'xs:boolean', 0, 0, {u'default': u'false', u'type': u'xs:boolean', u'name': u'default05b'}, None), - MemberSpec_('normal05', 'xs:boolean', 0, 0, {u'type': u'xs:boolean', u'name': u'normal05'}, None), - MemberSpec_('default06', 'xs:date', 0, 0, {u'default': u'2015-06-21', u'type': u'xs:date', u'name': u'default06'}, None), - MemberSpec_('normal06', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'normal06'}, None), - MemberSpec_('default07', 'xs:time', 0, 0, {u'default': u'11:10:09', u'type': u'xs:time', u'name': u'default07'}, None), - MemberSpec_('normal07', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'normal07'}, None), - MemberSpec_('default08', 'xs:dateTime', 0, 0, {u'default': u'2015-06-21T14:13:12', u'type': u'xs:dateTime', u'name': u'default08'}, None), - MemberSpec_('normal08', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'normal08'}, None), + MemberSpec_('default01', 'xs:integer', 0, 0, {'name': 'default01', 'type': 'xs:integer', 'default': '23'}, None), + MemberSpec_('normal01', 'xs:integer', 0, 0, {'name': 'normal01', 'type': 'xs:integer'}, None), + MemberSpec_('default02', 'xs:string', 0, 0, {'name': 'default02', 'type': 'xs:string', 'default': 'Peach'}, None), + MemberSpec_('normal02', 'xs:string', 0, 0, {'name': 'normal02', 'type': 'xs:string'}, None), + MemberSpec_('default03', 'xs:float', 0, 0, {'name': 'default03', 'type': 'xs:float', 'default': '23.45'}, None), + MemberSpec_('normal03', 'xs:float', 0, 0, {'name': 'normal03', 'type': 'xs:float'}, None), + MemberSpec_('default04', 'xs:double', 0, 0, {'name': 'default04', 'type': 'xs:double', 'default': '54.32'}, None), + MemberSpec_('normal04', 'xs:double', 0, 0, {'name': 'normal04', 'type': 'xs:double'}, None), + MemberSpec_('default05a', 'xs:boolean', 0, 0, {'name': 'default05a', 'type': 'xs:boolean', 'default': 'true'}, None), + MemberSpec_('default05b', 'xs:boolean', 0, 0, {'name': 'default05b', 'type': 'xs:boolean', 'default': 'false'}, None), + MemberSpec_('normal05', 'xs:boolean', 0, 0, {'name': 'normal05', 'type': 'xs:boolean'}, None), + MemberSpec_('default06', 'xs:date', 0, 0, {'name': 'default06', 'type': 'xs:date', 'default': '2015-06-21'}, None), + MemberSpec_('normal06', 'xs:date', 0, 0, {'name': 'normal06', 'type': 'xs:date'}, None), + MemberSpec_('default07', 'xs:time', 0, 0, {'name': 'default07', 'type': 'xs:time', 'default': '11:10:09'}, None), + MemberSpec_('normal07', 'xs:date', 0, 0, {'name': 'normal07', 'type': 'xs:date'}, None), + MemberSpec_('default08', 'xs:dateTime', 0, 0, {'name': 'default08', 'type': 'xs:dateTime', 'default': '2015-06-21T14:13:12'}, None), + MemberSpec_('normal08', 'xs:dateTime', 0, 0, {'name': 'normal08', 'type': 'xs:dateTime'}, None), ] subclass = None superclass = None diff --git a/tests/disable_xml_super1_sub.py b/tests/disable_xml_super1_sub.py index 979831c..71d10bc 100644 --- a/tests/disable_xml_super1_sub.py +++ b/tests/disable_xml_super1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/disable_xml_super1_sup.py b/tests/disable_xml_super1_sup.py index 72e0e94..ba27ded 100644 --- a/tests/disable_xml_super1_sup.py +++ b/tests/disable_xml_super1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ class GeneratedsSuper(object): return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,7 +730,7 @@ def _cast(typ, value): class PackageType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('Address', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'Address', u'minOccurs': u'0'}, None), + MemberSpec_('Address', 'xs:string', 1, 1, {'name': 'Address', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/extensions1_sub.py b/tests/extensions1_sub.py index 9d97ad5..4525d83 100644 --- a/tests/extensions1_sub.py +++ b/tests/extensions1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/extensions1_sup.py b/tests/extensions1_sup.py index c26096a..72bc707 100644 --- a/tests/extensions1_sup.py +++ b/tests/extensions1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -979,8 +979,8 @@ class singleExtremeDate(GeneratedsSuper): class containerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simplefactoid', 'simpleFactoidType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleFactoidType', u'name': u'simplefactoid'}, None), - MemberSpec_('mixedfactoid', 'mixedFactoidType', 0, 0, {u'type': u'mixedFactoidType', u'name': u'mixedfactoid'}, None), + MemberSpec_('simplefactoid', 'simpleFactoidType', 1, 0, {'name': 'simplefactoid', 'type': 'simpleFactoidType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('mixedfactoid', 'mixedFactoidType', 0, 0, {'name': 'mixedfactoid', 'type': 'mixedFactoidType'}, None), ] subclass = None superclass = None @@ -1074,7 +1074,7 @@ class containerType(GeneratedsSuper): class simpleFactoidType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('relation', ['RelationType', 'RelationType2', 'RelationType3', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'relation'}, None), + MemberSpec_('relation', ['RelationType', 'RelationType2', 'RelationType3', 'xs:string'], 0, 0, {'name': 'relation', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1184,7 +1184,7 @@ class simpleFactoidType(GeneratedsSuper): class mixedFactoidType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('relation', ['RelationType', 'RelationType2', 'RelationType3', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'relation'}, None), + MemberSpec_('relation', ['RelationType', 'RelationType2', 'RelationType3', 'xs:string'], 0, 0, {'name': 'relation', 'type': 'xs:string'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None diff --git a/tests/ipo1_sub.py b/tests/ipo1_sub.py index 708a162..73d91e1 100644 --- a/tests/ipo1_sub.py +++ b/tests/ipo1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/ipo1_sup.py b/tests/ipo1_sup.py index 2fca052..a76bef7 100644 --- a/tests/ipo1_sup.py +++ b/tests/ipo1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,10 +737,10 @@ class USState(object): class PurchaseOrderType(GeneratedsSuper): member_data_items_ = [ MemberSpec_('orderDate', 'date', 0, 1, {'use': 'optional'}), - MemberSpec_('shipTo', 'Address', 0, 0, {u'type': u'Address', u'name': u'shipTo'}, None), - MemberSpec_('billTo', 'Address', 0, 0, {u'type': u'Address', u'name': u'billTo'}, None), - MemberSpec_('comment', 'string', 0, 1, {'type': u'string', u'ref': u'comment', 'name': u'comment', u'minOccurs': u'0'}, None), - MemberSpec_('items', 'Items', 0, 0, {u'type': u'Items', u'name': u'items'}, None), + MemberSpec_('shipTo', 'Address', 0, 0, {'name': 'shipTo', 'type': 'Address'}, None), + MemberSpec_('billTo', 'Address', 0, 0, {'name': 'billTo', 'type': 'Address'}, None), + MemberSpec_('comment', 'string', 0, 1, {'ref': 'comment', 'minOccurs': '0', 'name': 'comment', 'type': 'string'}, None), + MemberSpec_('items', 'Items', 0, 0, {'name': 'items', 'type': 'Items'}, None), ] subclass = None superclass = None @@ -867,7 +867,7 @@ class PurchaseOrderType(GeneratedsSuper): class Items(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('item', 'item', 1, 1, {u'maxOccurs': u'unbounded', 'type': u'item', u'name': u'item', u'minOccurs': u'0'}, None), + MemberSpec_('item', 'item', 1, 1, {'name': 'item', 'minOccurs': '0', 'maxOccurs': 'unbounded', 'type': 'item'}, None), ] subclass = None superclass = None @@ -950,12 +950,12 @@ class Items(GeneratedsSuper): class item(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('partNum', 'ipo:SKU', 0, 0, {'use': u'required'}), - MemberSpec_('productName', 'string', 0, 0, {u'type': u'string', u'name': u'productName'}, None), - MemberSpec_('quantity', ['quantity', 'positiveInteger'], 0, 0, {'type': u'positiveInteger', u'name': u'quantity'}, None), - MemberSpec_('USPrice', 'decimal', 0, 0, {u'type': u'decimal', u'name': u'USPrice'}, None), - MemberSpec_('comment', 'string', 0, 1, {'type': u'string', u'ref': u'comment', 'name': u'comment', u'minOccurs': u'0'}, None), - MemberSpec_('shipDate', 'date', 0, 1, {u'type': u'date', u'name': u'shipDate', u'minOccurs': u'0'}, None), + MemberSpec_('partNum', 'ipo:SKU', 0, 0, {'use': 'required'}), + MemberSpec_('productName', 'string', 0, 0, {'name': 'productName', 'type': 'string'}, None), + MemberSpec_('quantity', ['quantity', 'positiveInteger'], 0, 0, {'name': 'quantity', 'type': 'positiveInteger'}, None), + MemberSpec_('USPrice', 'decimal', 0, 0, {'name': 'USPrice', 'type': 'decimal'}, None), + MemberSpec_('comment', 'string', 0, 1, {'ref': 'comment', 'minOccurs': '0', 'name': 'comment', 'type': 'string'}, None), + MemberSpec_('shipDate', 'date', 0, 1, {'name': 'shipDate', 'type': 'date', 'minOccurs': '0'}, None), ] subclass = None superclass = None @@ -1162,9 +1162,9 @@ class quantity(GeneratedsSuper): class Address(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('name', 'string', 0, 0, {u'type': u'string', u'name': u'name'}, None), - MemberSpec_('street', 'string', 0, 0, {u'type': u'string', u'name': u'street'}, None), - MemberSpec_('city', 'string', 0, 0, {u'type': u'string', u'name': u'city'}, None), + MemberSpec_('name', 'string', 0, 0, {'name': 'name', 'type': 'string'}, None), + MemberSpec_('street', 'string', 0, 0, {'name': 'street', 'type': 'string'}, None), + MemberSpec_('city', 'string', 0, 0, {'name': 'city', 'type': 'string'}, None), ] subclass = None superclass = None @@ -1273,8 +1273,8 @@ class Address(GeneratedsSuper): class USAddress(Address): member_data_items_ = [ - MemberSpec_('state', ['USState', 'string'], 0, 0, {u'type': u'string', u'name': u'state'}, None), - MemberSpec_('zip', 'positiveInteger', 0, 0, {u'type': u'positiveInteger', u'name': u'zip'}, None), + MemberSpec_('state', ['USState', 'string'], 0, 0, {'name': 'state', 'type': 'string'}, None), + MemberSpec_('zip', 'positiveInteger', 0, 0, {'name': 'zip', 'type': 'positiveInteger'}, None), ] subclass = None superclass = Address @@ -1388,7 +1388,7 @@ class USAddress(Address): class UKAddress(Address): member_data_items_ = [ MemberSpec_('exportCode', 'positiveInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('postcode', 'string', 0, 0, {u'type': 'string', u'name': u'postcode'}, None), + MemberSpec_('postcode', 'string', 0, 0, {'name': 'postcode', 'type': 'string'}, None), ] subclass = None superclass = Address diff --git a/tests/ipo2_sub.py b/tests/ipo2_sub.py index 708a162..73d91e1 100644 --- a/tests/ipo2_sub.py +++ b/tests/ipo2_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/ipo2_sup.py b/tests/ipo2_sup.py index 2fca052..a76bef7 100644 --- a/tests/ipo2_sup.py +++ b/tests/ipo2_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,10 +737,10 @@ class USState(object): class PurchaseOrderType(GeneratedsSuper): member_data_items_ = [ MemberSpec_('orderDate', 'date', 0, 1, {'use': 'optional'}), - MemberSpec_('shipTo', 'Address', 0, 0, {u'type': u'Address', u'name': u'shipTo'}, None), - MemberSpec_('billTo', 'Address', 0, 0, {u'type': u'Address', u'name': u'billTo'}, None), - MemberSpec_('comment', 'string', 0, 1, {'type': u'string', u'ref': u'comment', 'name': u'comment', u'minOccurs': u'0'}, None), - MemberSpec_('items', 'Items', 0, 0, {u'type': u'Items', u'name': u'items'}, None), + MemberSpec_('shipTo', 'Address', 0, 0, {'name': 'shipTo', 'type': 'Address'}, None), + MemberSpec_('billTo', 'Address', 0, 0, {'name': 'billTo', 'type': 'Address'}, None), + MemberSpec_('comment', 'string', 0, 1, {'ref': 'comment', 'minOccurs': '0', 'name': 'comment', 'type': 'string'}, None), + MemberSpec_('items', 'Items', 0, 0, {'name': 'items', 'type': 'Items'}, None), ] subclass = None superclass = None @@ -867,7 +867,7 @@ class PurchaseOrderType(GeneratedsSuper): class Items(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('item', 'item', 1, 1, {u'maxOccurs': u'unbounded', 'type': u'item', u'name': u'item', u'minOccurs': u'0'}, None), + MemberSpec_('item', 'item', 1, 1, {'name': 'item', 'minOccurs': '0', 'maxOccurs': 'unbounded', 'type': 'item'}, None), ] subclass = None superclass = None @@ -950,12 +950,12 @@ class Items(GeneratedsSuper): class item(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('partNum', 'ipo:SKU', 0, 0, {'use': u'required'}), - MemberSpec_('productName', 'string', 0, 0, {u'type': u'string', u'name': u'productName'}, None), - MemberSpec_('quantity', ['quantity', 'positiveInteger'], 0, 0, {'type': u'positiveInteger', u'name': u'quantity'}, None), - MemberSpec_('USPrice', 'decimal', 0, 0, {u'type': u'decimal', u'name': u'USPrice'}, None), - MemberSpec_('comment', 'string', 0, 1, {'type': u'string', u'ref': u'comment', 'name': u'comment', u'minOccurs': u'0'}, None), - MemberSpec_('shipDate', 'date', 0, 1, {u'type': u'date', u'name': u'shipDate', u'minOccurs': u'0'}, None), + MemberSpec_('partNum', 'ipo:SKU', 0, 0, {'use': 'required'}), + MemberSpec_('productName', 'string', 0, 0, {'name': 'productName', 'type': 'string'}, None), + MemberSpec_('quantity', ['quantity', 'positiveInteger'], 0, 0, {'name': 'quantity', 'type': 'positiveInteger'}, None), + MemberSpec_('USPrice', 'decimal', 0, 0, {'name': 'USPrice', 'type': 'decimal'}, None), + MemberSpec_('comment', 'string', 0, 1, {'ref': 'comment', 'minOccurs': '0', 'name': 'comment', 'type': 'string'}, None), + MemberSpec_('shipDate', 'date', 0, 1, {'name': 'shipDate', 'type': 'date', 'minOccurs': '0'}, None), ] subclass = None superclass = None @@ -1162,9 +1162,9 @@ class quantity(GeneratedsSuper): class Address(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('name', 'string', 0, 0, {u'type': u'string', u'name': u'name'}, None), - MemberSpec_('street', 'string', 0, 0, {u'type': u'string', u'name': u'street'}, None), - MemberSpec_('city', 'string', 0, 0, {u'type': u'string', u'name': u'city'}, None), + MemberSpec_('name', 'string', 0, 0, {'name': 'name', 'type': 'string'}, None), + MemberSpec_('street', 'string', 0, 0, {'name': 'street', 'type': 'string'}, None), + MemberSpec_('city', 'string', 0, 0, {'name': 'city', 'type': 'string'}, None), ] subclass = None superclass = None @@ -1273,8 +1273,8 @@ class Address(GeneratedsSuper): class USAddress(Address): member_data_items_ = [ - MemberSpec_('state', ['USState', 'string'], 0, 0, {u'type': u'string', u'name': u'state'}, None), - MemberSpec_('zip', 'positiveInteger', 0, 0, {u'type': u'positiveInteger', u'name': u'zip'}, None), + MemberSpec_('state', ['USState', 'string'], 0, 0, {'name': 'state', 'type': 'string'}, None), + MemberSpec_('zip', 'positiveInteger', 0, 0, {'name': 'zip', 'type': 'positiveInteger'}, None), ] subclass = None superclass = Address @@ -1388,7 +1388,7 @@ class USAddress(Address): class UKAddress(Address): member_data_items_ = [ MemberSpec_('exportCode', 'positiveInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('postcode', 'string', 0, 0, {u'type': 'string', u'name': u'postcode'}, None), + MemberSpec_('postcode', 'string', 0, 0, {'name': 'postcode', 'type': 'string'}, None), ] subclass = None superclass = Address diff --git a/tests/mapcleanname1_sub.py b/tests/mapcleanname1_sub.py index 5d22096..ccf6f08 100644 --- a/tests/mapcleanname1_sub.py +++ b/tests/mapcleanname1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/mapcleanname1_sup.py b/tests/mapcleanname1_sup.py index 6cc5905..7cde1fe 100644 --- a/tests/mapcleanname1_sup.py +++ b/tests/mapcleanname1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,10 +730,10 @@ def _cast(typ, value): class complex_type01(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('string_value01', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value01'}, None), - MemberSpec_('integer_value01', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value01', u'minOccurs': u'0'}, None), - MemberSpec_('float_value01', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value01'}, None), - MemberSpec_('field01', 'complex-type02', 0, 0, {u'type': u'complex-type02', u'name': u'field01'}, None), + MemberSpec_('string_value01', 'xs:string', 0, 0, {'name': 'string_value01', 'type': 'xs:string'}, None), + MemberSpec_('integer_value01', 'xs:integer', 1, 1, {'name': 'integer_value01', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value01', 'xs:float', 0, 0, {'name': 'float_value01', 'type': 'xs:float'}, None), + MemberSpec_('field01', 'complex-type02', 0, 0, {'name': 'field01', 'type': 'complex-type02'}, None), ] subclass = None superclass = None @@ -857,9 +857,9 @@ class complex_type01(GeneratedsSuper): class complex_type02(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('string_value02', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value02'}, None), - MemberSpec_('integer_value02', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value02', u'minOccurs': u'0'}, None), - MemberSpec_('float_value02', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value02'}, None), + MemberSpec_('string_value02', 'xs:string', 0, 0, {'name': 'string_value02', 'type': 'xs:string'}, None), + MemberSpec_('integer_value02', 'xs:integer', 1, 1, {'name': 'integer_value02', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value02', 'xs:float', 0, 0, {'name': 'float_value02', 'type': 'xs:float'}, None), ] subclass = None superclass = None @@ -982,9 +982,9 @@ class complex_type02(GeneratedsSuper): class complex_type03(complex_type02): member_data_items_ = [ - MemberSpec_('string_value03', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value03'}, None), - MemberSpec_('integer_value03', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value03', u'minOccurs': u'0'}, None), - MemberSpec_('float_value03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value03'}, None), + MemberSpec_('string_value03', 'xs:string', 0, 0, {'name': 'string_value03', 'type': 'xs:string'}, None), + MemberSpec_('integer_value03', 'xs:integer', 1, 1, {'name': 'integer_value03', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value03', 'xs:float', 0, 0, {'name': 'float_value03', 'type': 'xs:float'}, None), ] subclass = None superclass = complex_type02 @@ -1101,9 +1101,9 @@ class complex_type03(complex_type02): class type_(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('string_value02', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value02'}, None), - MemberSpec_('integer_value02', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value02', u'minOccurs': u'0'}, None), - MemberSpec_('float_value02', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value02'}, None), + MemberSpec_('string_value02', 'xs:string', 0, 0, {'name': 'string_value02', 'type': 'xs:string'}, None), + MemberSpec_('integer_value02', 'xs:integer', 1, 1, {'name': 'integer_value02', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value02', 'xs:float', 0, 0, {'name': 'float_value02', 'type': 'xs:float'}, None), ] subclass = None superclass = None @@ -1226,9 +1226,9 @@ class type_(GeneratedsSuper): class complex_type04(type_): member_data_items_ = [ - MemberSpec_('string_value03', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value03'}, None), - MemberSpec_('integer_value03', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value03', u'minOccurs': u'0'}, None), - MemberSpec_('float_value03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value03'}, None), + MemberSpec_('string_value03', 'xs:string', 0, 0, {'name': 'string_value03', 'type': 'xs:string'}, None), + MemberSpec_('integer_value03', 'xs:integer', 1, 1, {'name': 'integer_value03', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value03', 'xs:float', 0, 0, {'name': 'float_value03', 'type': 'xs:float'}, None), ] subclass = None superclass = type_ @@ -1345,9 +1345,9 @@ class complex_type04(type_): class build_(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('string_value02', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value02'}, None), - MemberSpec_('integer_value02', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value02', u'minOccurs': u'0'}, None), - MemberSpec_('float_value02', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value02'}, None), + MemberSpec_('string_value02', 'xs:string', 0, 0, {'name': 'string_value02', 'type': 'xs:string'}, None), + MemberSpec_('integer_value02', 'xs:integer', 1, 1, {'name': 'integer_value02', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value02', 'xs:float', 0, 0, {'name': 'float_value02', 'type': 'xs:float'}, None), ] subclass = None superclass = None @@ -1470,9 +1470,9 @@ class build_(GeneratedsSuper): class complex_type05(build_): member_data_items_ = [ - MemberSpec_('string_value03', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'string_value03'}, None), - MemberSpec_('integer_value03', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integer_value03', u'minOccurs': u'0'}, None), - MemberSpec_('float_value03', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'float_value03'}, None), + MemberSpec_('string_value03', 'xs:string', 0, 0, {'name': 'string_value03', 'type': 'xs:string'}, None), + MemberSpec_('integer_value03', 'xs:integer', 1, 1, {'name': 'integer_value03', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('float_value03', 'xs:float', 0, 0, {'name': 'float_value03', 'type': 'xs:float'}, None), ] subclass = None superclass = build_ diff --git a/tests/mixedcontent1_sub.py b/tests/mixedcontent1_sub.py index 86f0a36..fd6dc09 100644 --- a/tests/mixedcontent1_sub.py +++ b/tests/mixedcontent1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/mixedcontent1_sup.py b/tests/mixedcontent1_sup.py index 50da494..0474ea1 100644 --- a/tests/mixedcontent1_sup.py +++ b/tests/mixedcontent1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -729,7 +729,7 @@ def _cast(typ, value): class rootType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('markup', 'markupType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'markupType', u'name': u'markup'}, None), + MemberSpec_('markup', 'markupType', 1, 0, {'name': 'markup', 'type': 'markupType', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -812,8 +812,8 @@ class rootType(GeneratedsSuper): class markupType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('embedded', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'embedded', u'minOccurs': u'0'}, None), - MemberSpec_('nested', 'nestedType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nestedType', u'name': u'nested', u'minOccurs': u'0'}, None), + MemberSpec_('embedded', 'xs:string', 1, 1, {'name': 'embedded', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested', 'nestedType', 1, 1, {'name': 'nested', 'type': 'nestedType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -945,9 +945,9 @@ class markupType(GeneratedsSuper): class nestedType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nested1', 'nested1Type', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1Type', u'name': u'nested1', u'minOccurs': u'0'}, None), - MemberSpec_('nested2', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nested2', u'minOccurs': u'0'}, None), - MemberSpec_('nested3', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'nested3', u'minOccurs': u'0'}, None), + MemberSpec_('nested1', 'nested1Type', 1, 1, {'name': 'nested1', 'type': 'nested1Type', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested2', 'xs:string', 1, 1, {'name': 'nested2', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested3', 'xs:integer', 1, 1, {'name': 'nested3', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -1068,8 +1068,8 @@ class nestedType(GeneratedsSuper): class nested1Type(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nestedA1', 'nested1AType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1AType', u'name': u'nestedA1', u'minOccurs': u'0'}, None), - MemberSpec_('nestedA2', 'nested1AType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1AType', u'name': u'nestedA2', u'minOccurs': u'0'}, None), + MemberSpec_('nestedA1', 'nested1AType', 1, 1, {'name': 'nestedA1', 'type': 'nested1AType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nestedA2', 'nested1AType', 1, 1, {'name': 'nestedA2', 'type': 'nested1AType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -1169,8 +1169,8 @@ class nested1Type(GeneratedsSuper): class nested1AType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nestedB1', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nestedB1'}, None), - MemberSpec_('nestedB2', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nestedB2'}, None), + MemberSpec_('nestedB1', 'xs:string', 1, 0, {'name': 'nestedB1', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nestedB2', 'xs:string', 1, 0, {'name': 'nestedB2', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/mixedcontent2_sub.py b/tests/mixedcontent2_sub.py index 86f0a36..fd6dc09 100644 --- a/tests/mixedcontent2_sub.py +++ b/tests/mixedcontent2_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/mixedcontent2_sup.py b/tests/mixedcontent2_sup.py index 50da494..0474ea1 100644 --- a/tests/mixedcontent2_sup.py +++ b/tests/mixedcontent2_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -729,7 +729,7 @@ def _cast(typ, value): class rootType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('markup', 'markupType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'markupType', u'name': u'markup'}, None), + MemberSpec_('markup', 'markupType', 1, 0, {'name': 'markup', 'type': 'markupType', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -812,8 +812,8 @@ class rootType(GeneratedsSuper): class markupType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('embedded', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'embedded', u'minOccurs': u'0'}, None), - MemberSpec_('nested', 'nestedType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nestedType', u'name': u'nested', u'minOccurs': u'0'}, None), + MemberSpec_('embedded', 'xs:string', 1, 1, {'name': 'embedded', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested', 'nestedType', 1, 1, {'name': 'nested', 'type': 'nestedType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -945,9 +945,9 @@ class markupType(GeneratedsSuper): class nestedType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nested1', 'nested1Type', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1Type', u'name': u'nested1', u'minOccurs': u'0'}, None), - MemberSpec_('nested2', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nested2', u'minOccurs': u'0'}, None), - MemberSpec_('nested3', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'nested3', u'minOccurs': u'0'}, None), + MemberSpec_('nested1', 'nested1Type', 1, 1, {'name': 'nested1', 'type': 'nested1Type', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested2', 'xs:string', 1, 1, {'name': 'nested2', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nested3', 'xs:integer', 1, 1, {'name': 'nested3', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -1068,8 +1068,8 @@ class nestedType(GeneratedsSuper): class nested1Type(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nestedA1', 'nested1AType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1AType', u'name': u'nestedA1', u'minOccurs': u'0'}, None), - MemberSpec_('nestedA2', 'nested1AType', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'nested1AType', u'name': u'nestedA2', u'minOccurs': u'0'}, None), + MemberSpec_('nestedA1', 'nested1AType', 1, 1, {'name': 'nestedA1', 'type': 'nested1AType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nestedA2', 'nested1AType', 1, 1, {'name': 'nestedA2', 'type': 'nested1AType', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -1169,8 +1169,8 @@ class nested1Type(GeneratedsSuper): class nested1AType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('nestedB1', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nestedB1'}, None), - MemberSpec_('nestedB2', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'nestedB2'}, None), + MemberSpec_('nestedB1', 'xs:string', 1, 0, {'name': 'nestedB1', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('nestedB2', 'xs:string', 1, 0, {'name': 'nestedB2', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/nested_def1_sub.py b/tests/nested_def1_sub.py index 52d8852..d072ac4 100644 --- a/tests/nested_def1_sub.py +++ b/tests/nested_def1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/nested_def1_sup.py b/tests/nested_def1_sup.py index 5db145f..cebf677 100644 --- a/tests/nested_def1_sup.py +++ b/tests/nested_def1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -402,7 +402,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -729,8 +729,8 @@ def _cast(typ, value): class containerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('item1', 'classAType', 0, 0, {u'type': u'classAType', u'name': u'item1'}, None), - MemberSpec_('item2', 'classBType', 0, 0, {u'type': u'classBType', u'name': u'item2'}, None), + MemberSpec_('item1', 'classAType', 0, 0, {'name': 'item1', 'type': 'classAType'}, None), + MemberSpec_('item2', 'classBType', 0, 0, {'name': 'item2', 'type': 'classBType'}, None), ] subclass = None superclass = None @@ -818,7 +818,7 @@ class containerType(GeneratedsSuper): class classAType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('inner', 'innerType', 0, 0, {u'type': u'innerType', u'name': u'inner'}, None), + MemberSpec_('inner', 'innerType', 0, 0, {'name': 'inner', 'type': 'innerType'}, None), ] subclass = None superclass = None @@ -895,7 +895,7 @@ class classAType(GeneratedsSuper): class classBType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('inner', 'innerType1', 0, 0, {u'type': u'innerType1', u'name': u'inner'}, None), + MemberSpec_('inner', 'innerType1', 0, 0, {'name': 'inner', 'type': 'innerType1'}, None), ] subclass = None superclass = None diff --git a/tests/no_namespace_defs1_sub.py b/tests/no_namespace_defs1_sub.py index 50925f0..73ffb5a 100644 --- a/tests/no_namespace_defs1_sub.py +++ b/tests/no_namespace_defs1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/no_namespace_defs1_sup.py b/tests/no_namespace_defs1_sup.py index 001afd8..2e2b940 100644 --- a/tests/no_namespace_defs1_sup.py +++ b/tests/no_namespace_defs1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ class GeneratedsSuper(object): return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,8 +730,8 @@ def _cast(typ, value): class peopleType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('person', 'personType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'personType', u'name': u'person'}, None), - MemberSpec_('specialperson', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'specialperson'}, None), + MemberSpec_('person', 'personType', 1, 0, {'name': 'person', 'maxOccurs': 'unbounded', 'type': 'personType'}, None), + MemberSpec_('specialperson', 'xs:string', 1, 0, {'name': 'specialperson', 'maxOccurs': 'unbounded', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -782,10 +782,10 @@ class personType(GeneratedsSuper): MemberSpec_('value', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('id', 'xs:integer', 0, 1, {'use': 'optional'}), MemberSpec_('ratio', 'xs:float', 0, 1, {'use': 'optional'}), - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('interest', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'interest'}, None), - MemberSpec_('category', 'xs:integer', 0, 1, {u'type': u'xs:integer', u'name': u'category', u'minOccurs': u'0'}, None), - MemberSpec_('description', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('interest', 'xs:string', 1, 0, {'name': 'interest', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('category', 'xs:integer', 0, 1, {'name': 'category', 'type': 'xs:integer', 'minOccurs': '0'}, None), + MemberSpec_('description', 'xs:string', 0, 0, {'name': 'description', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/out1_sub.py b/tests/out1_sub.py index 2bbad95..46c3357 100644 --- a/tests/out1_sub.py +++ b/tests/out1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/out1_sup.py b/tests/out1_sup.py index 0068b57..92067c3 100644 --- a/tests/out1_sup.py +++ b/tests/out1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,11 +737,11 @@ class ArrayTypes(object): class people(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('comments', 'comments', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'comments', u'name': u'comments'}, None), - MemberSpec_('person', 'person', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'person', u'name': u'person'}, None), - MemberSpec_('programmer', 'programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'programmer', u'name': u'programmer'}, None), - MemberSpec_('python_programmer', 'python-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'python-programmer', u'name': u'python-programmer'}, None), - MemberSpec_('java_programmer', 'java-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'java-programmer', u'name': u'java-programmer'}, None), + MemberSpec_('comments', 'comments', 1, 0, {'name': 'comments', 'type': 'comments', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('person', 'person', 1, 0, {'name': 'person', 'maxOccurs': 'unbounded', 'type': 'person'}, None), + MemberSpec_('programmer', 'programmer', 1, 0, {'name': 'programmer', 'maxOccurs': 'unbounded', 'type': 'programmer'}, None), + MemberSpec_('python_programmer', 'python-programmer', 1, 0, {'name': 'python-programmer', 'maxOccurs': 'unbounded', 'type': 'python-programmer'}, None), + MemberSpec_('java_programmer', 'java-programmer', 1, 0, {'name': 'java-programmer', 'maxOccurs': 'unbounded', 'type': 'java-programmer'}, None), ] subclass = None superclass = None @@ -1014,7 +1014,7 @@ class people(GeneratedsSuper): class comments(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('emp', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'emp'}, None), + MemberSpec_('emp', 'xs:string', 1, 0, {'name': 'emp', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -1193,12 +1193,12 @@ class person(GeneratedsSuper): MemberSpec_('ratio', 'xs:float', 0, 1, {'use': 'optional'}), MemberSpec_('fruit', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('vegetable', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('interest', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'interest'}, None), - MemberSpec_('category', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'category'}, None), - MemberSpec_('agent', 'agent', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'agent', u'name': u'agent'}, None), - MemberSpec_('promoter', 'booster', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'booster', u'name': u'promoter'}, None), - MemberSpec_('description', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('interest', 'xs:string', 1, 0, {'name': 'interest', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('category', 'xs:integer', 0, 0, {'name': 'category', 'type': 'xs:integer'}, None), + MemberSpec_('agent', 'agent', 1, 0, {'name': 'agent', 'type': 'agent', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('promoter', 'booster', 1, 0, {'name': 'promoter', 'type': 'booster', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('description', 'xs:string', 0, 0, {'name': 'description', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1539,18 +1539,18 @@ class programmer(person): MemberSpec_('attrnonposint', 'xs:nonPositiveInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnegint', 'xs:negativeInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnonnegint', 'xs:nonNegativeInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('email', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'email'}, None), - MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {u'type': u'xs:positiveInteger', u'name': u'elposint'}, None), - MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {u'type': u'xs:nonPositiveInteger', u'name': u'elnonposint'}, None), - MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {u'type': u'xs:negativeInteger', u'name': u'elnegint'}, None), - MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {u'type': u'xs:nonNegativeInteger', u'name': u'elnonnegint'}, None), - MemberSpec_('eldate', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'eldate'}, None), - MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'eldatetime'}, None), - MemberSpec_('eltoken', 'xs:token', 0, 0, {u'type': u'xs:token', u'name': u'eltoken'}, None), - MemberSpec_('elshort', 'xs:short', 0, 0, {u'type': u'xs:short', u'name': u'elshort'}, None), - MemberSpec_('ellong', 'xs:long', 0, 0, {u'type': u'xs:long', u'name': u'ellong'}, None), - MemberSpec_('elparam', 'param', 0, 0, {u'type': u'param', u'name': u'elparam'}, None), - MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'elarraytypes'}, None), + MemberSpec_('email', 'xs:string', 0, 0, {'name': 'email', 'type': 'xs:string'}, None), + MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {'name': 'elposint', 'type': 'xs:positiveInteger'}, None), + MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {'name': 'elnonposint', 'type': 'xs:nonPositiveInteger'}, None), + MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {'name': 'elnegint', 'type': 'xs:negativeInteger'}, None), + MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {'name': 'elnonnegint', 'type': 'xs:nonNegativeInteger'}, None), + MemberSpec_('eldate', 'xs:date', 0, 0, {'name': 'eldate', 'type': 'xs:date'}, None), + MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {'name': 'eldatetime', 'type': 'xs:dateTime'}, None), + MemberSpec_('eltoken', 'xs:token', 0, 0, {'name': 'eltoken', 'type': 'xs:token'}, None), + MemberSpec_('elshort', 'xs:short', 0, 0, {'name': 'elshort', 'type': 'xs:short'}, None), + MemberSpec_('ellong', 'xs:long', 0, 0, {'name': 'ellong', 'type': 'xs:long'}, None), + MemberSpec_('elparam', 'param', 0, 0, {'name': 'elparam', 'type': 'param'}, None), + MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {'name': 'elarraytypes', 'type': 'xs:NMTOKEN'}, None), ] subclass = None superclass = person @@ -2028,7 +2028,7 @@ class param(GeneratedsSuper): MemberSpec_('sid', 'xs:NCName', 0, 1, {'use': 'optional'}), MemberSpec_('flow', 'FlowType', 0, 1, {'use': 'optional'}), MemberSpec_('semantic', 'xs:token', 0, 1, {'use': 'optional'}), - MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': u'required'}), + MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': 'required'}), MemberSpec_('valueOf_', 'xs:string', 0), ] subclass = None @@ -2239,7 +2239,7 @@ class param(GeneratedsSuper): class python_programmer(programmer): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = programmer @@ -2395,7 +2395,7 @@ class java_programmer(programmer): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('status', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = programmer @@ -2563,10 +2563,10 @@ class java_programmer(programmer): class agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), ] subclass = None superclass = None @@ -2750,10 +2750,10 @@ class agent(GeneratedsSuper): class special_agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), ] subclass = None superclass = None @@ -2937,13 +2937,13 @@ class special_agent(GeneratedsSuper): class booster(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('other_name', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'other-name'}, None), - MemberSpec_('class_', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'class'}, None), - MemberSpec_('other_value', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'other-value'}, None), - MemberSpec_('type_', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'type'}, None), - MemberSpec_('client_handler', 'client-handlerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'client-handlerType', u'name': u'client-handler'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('other_name', 'xs:float', 0, 0, {'name': 'other-name', 'type': 'xs:float'}, None), + MemberSpec_('class_', 'xs:float', 0, 0, {'name': 'class', 'type': 'xs:float'}, None), + MemberSpec_('other_value', 'xs:float', 1, 0, {'name': 'other-value', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('type_', 'xs:float', 1, 0, {'name': 'type', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('client_handler', 'client-handlerType', 1, 0, {'name': 'client-handler', 'maxOccurs': 'unbounded', 'type': 'client-handlerType'}, None), ] subclass = None superclass = None @@ -3384,8 +3384,8 @@ class info(GeneratedsSuper): class client_handlerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('fullname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'fullname'}, None), - MemberSpec_('refid', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'refid'}, None), + MemberSpec_('fullname', 'xs:string', 0, 0, {'name': 'fullname', 'type': 'xs:string'}, None), + MemberSpec_('refid', 'xs:integer', 0, 0, {'name': 'refid', 'type': 'xs:integer'}, None), ] subclass = None superclass = None diff --git a/tests/people_procincl1_sub.py b/tests/people_procincl1_sub.py index a80091a..b42234b 100644 --- a/tests/people_procincl1_sub.py +++ b/tests/people_procincl1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py index 55b08cc..6128da9 100644 --- a/tests/people_procincl1_sup.py +++ b/tests/people_procincl1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -738,12 +738,12 @@ class ArrayTypes(object): class people(GeneratedsSuper): """A list of people.""" member_data_items_ = [ - MemberSpec_('comments', 'comments', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'comments', u'name': u'comments'}, None), - MemberSpec_('person', 'person', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'person', u'name': u'person'}, None), - MemberSpec_('specialperson', 'specialperson', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'specialperson', u'name': u'specialperson'}, None), - MemberSpec_('programmer', 'programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'programmer', u'name': u'programmer'}, None), - MemberSpec_('python_programmer', 'python-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'python-programmer', u'name': u'python-programmer'}, None), - MemberSpec_('java_programmer', 'java-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'java-programmer', u'name': u'java-programmer'}, None), + MemberSpec_('comments', 'comments', 1, 0, {'name': 'comments', 'type': 'comments', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('person', 'person', 1, 0, {'name': 'person', 'maxOccurs': 'unbounded', 'type': 'person'}, None), + MemberSpec_('specialperson', 'specialperson', 1, 0, {'name': 'specialperson', 'maxOccurs': 'unbounded', 'type': 'specialperson'}, None), + MemberSpec_('programmer', 'programmer', 1, 0, {'name': 'programmer', 'maxOccurs': 'unbounded', 'type': 'programmer'}, None), + MemberSpec_('python_programmer', 'python-programmer', 1, 0, {'name': 'python-programmer', 'maxOccurs': 'unbounded', 'type': 'python-programmer'}, None), + MemberSpec_('java_programmer', 'java-programmer', 1, 0, {'name': 'java-programmer', 'maxOccurs': 'unbounded', 'type': 'java-programmer'}, None), ] subclass = None superclass = None @@ -913,8 +913,8 @@ class people(GeneratedsSuper): class comments(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('emp', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'emp'}, None), - MemberSpec_('bold', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'bold'}, None), + MemberSpec_('emp', 'xs:string', 1, 0, {'name': 'emp', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('bold', 'xs:string', 1, 0, {'name': 'bold', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -1050,12 +1050,12 @@ class person(GeneratedsSuper): MemberSpec_('ratio', 'xs:float', 0, 1, {'use': 'optional'}), MemberSpec_('fruit', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('vegetable', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('interest', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'interest'}, None), - MemberSpec_('category', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'category'}, None), - MemberSpec_('agent', 'agent', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'agent', u'name': u'agent'}, None), - MemberSpec_('promoter', 'booster', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'booster', u'name': u'promoter'}, None), - MemberSpec_('description', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('interest', 'xs:string', 1, 0, {'name': 'interest', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('category', 'xs:integer', 0, 0, {'name': 'category', 'type': 'xs:integer'}, None), + MemberSpec_('agent', 'agent', 1, 0, {'name': 'agent', 'type': 'agent', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('promoter', 'booster', 1, 0, {'name': 'promoter', 'type': 'booster', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('description', 'xs:string', 0, 0, {'name': 'description', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1347,7 +1347,7 @@ class param(GeneratedsSuper): MemberSpec_('sid', 'xs:NCName', 0, 1, {'use': 'optional'}), MemberSpec_('flow', 'FlowType', 0, 1, {'use': 'optional'}), MemberSpec_('semantic', 'xs:token', 0, 1, {'use': 'optional'}), - MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': u'required'}), + MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': 'required'}), MemberSpec_('valueOf_', 'xs:string', 0), ] subclass = None @@ -1476,11 +1476,11 @@ class param(GeneratedsSuper): class agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), - MemberSpec_('vehicle', 'vehicle', 1, 1, {u'maxOccurs': u'unbounded', 'type': u'vehicle', u'ref': u'vehicle', 'name': u'vehicle', u'minOccurs': u'0'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), + MemberSpec_('vehicle', 'vehicle', 1, 1, {'ref': 'vehicle', 'minOccurs': '0', 'maxOccurs': 'unbounded', 'name': 'vehicle', 'type': 'vehicle'}, None), ] subclass = None superclass = None @@ -1627,10 +1627,10 @@ class special_agent(GeneratedsSuper): """This is a good kind of agent for testing the generation of Python bindings for an XML schema.""" member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), ] subclass = None superclass = None @@ -1745,13 +1745,13 @@ class special_agent(GeneratedsSuper): class booster(GeneratedsSuper): member_data_items_ = [ MemberSpec_('member-id', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('other_name', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'other-name'}, None), - MemberSpec_('class_', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'class'}, None), - MemberSpec_('other_value', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'other-value'}, None), - MemberSpec_('type_', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'type'}, None), - MemberSpec_('client_handler', 'client-handlerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'client-handlerType', u'name': u'client-handler'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('other_name', 'xs:float', 0, 0, {'name': 'other-name', 'type': 'xs:float'}, None), + MemberSpec_('class_', 'xs:float', 0, 0, {'name': 'class', 'type': 'xs:float'}, None), + MemberSpec_('other_value', 'xs:float', 1, 0, {'name': 'other-value', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('type_', 'xs:float', 1, 0, {'name': 'type', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('client_handler', 'client-handlerType', 1, 0, {'name': 'client-handler', 'maxOccurs': 'unbounded', 'type': 'client-handlerType'}, None), ] subclass = None superclass = None @@ -2036,7 +2036,7 @@ class info(GeneratedsSuper): class vehicle(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('wheelcount', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'wheelcount'}, None), + MemberSpec_('wheelcount', 'xs:integer', 0, 0, {'name': 'wheelcount', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -2127,7 +2127,7 @@ class vehicle(GeneratedsSuper): class automobile(vehicle): member_data_items_ = [ - MemberSpec_('drivername', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'drivername'}, None), + MemberSpec_('drivername', 'xs:string', 0, 0, {'name': 'drivername', 'type': 'xs:string'}, None), ] subclass = None superclass = vehicle @@ -2208,7 +2208,7 @@ class automobile(vehicle): class airplane(vehicle): member_data_items_ = [ - MemberSpec_('pilotname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'pilotname'}, None), + MemberSpec_('pilotname', 'xs:string', 0, 0, {'name': 'pilotname', 'type': 'xs:string'}, None), ] subclass = None superclass = vehicle @@ -2297,17 +2297,17 @@ class programmer(person): MemberSpec_('attrnonposint', 'xs:nonPositiveInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnegint', 'xs:negativeInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnonnegint', 'xs:nonNegativeInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('email', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'email'}, None), - MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {u'type': u'xs:positiveInteger', u'name': u'elposint'}, None), - MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {u'type': u'xs:nonPositiveInteger', u'name': u'elnonposint'}, None), - MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {u'type': u'xs:negativeInteger', u'name': u'elnegint'}, None), - MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {u'type': u'xs:nonNegativeInteger', u'name': u'elnonnegint'}, None), - MemberSpec_('eldate', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'eldate'}, None), - MemberSpec_('eltoken', 'xs:token', 0, 0, {u'type': u'xs:token', u'name': u'eltoken'}, None), - MemberSpec_('elshort', 'xs:short', 0, 0, {u'type': u'xs:short', u'name': u'elshort'}, None), - MemberSpec_('ellong', 'xs:long', 0, 0, {u'type': u'xs:long', u'name': u'ellong'}, None), - MemberSpec_('elparam', 'param', 0, 0, {u'type': u'param', u'name': u'elparam'}, None), - MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'elarraytypes'}, None), + MemberSpec_('email', 'xs:string', 0, 0, {'name': 'email', 'type': 'xs:string'}, None), + MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {'name': 'elposint', 'type': 'xs:positiveInteger'}, None), + MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {'name': 'elnonposint', 'type': 'xs:nonPositiveInteger'}, None), + MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {'name': 'elnegint', 'type': 'xs:negativeInteger'}, None), + MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {'name': 'elnonnegint', 'type': 'xs:nonNegativeInteger'}, None), + MemberSpec_('eldate', 'xs:date', 0, 0, {'name': 'eldate', 'type': 'xs:date'}, None), + MemberSpec_('eltoken', 'xs:token', 0, 0, {'name': 'eltoken', 'type': 'xs:token'}, None), + MemberSpec_('elshort', 'xs:short', 0, 0, {'name': 'elshort', 'type': 'xs:short'}, None), + MemberSpec_('ellong', 'xs:long', 0, 0, {'name': 'ellong', 'type': 'xs:long'}, None), + MemberSpec_('elparam', 'param', 0, 0, {'name': 'elparam', 'type': 'param'}, None), + MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {'name': 'elarraytypes', 'type': 'xs:NMTOKEN'}, None), ] subclass = None superclass = person @@ -2644,8 +2644,8 @@ class programmer(person): class client_handlerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('fullname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'fullname'}, None), - MemberSpec_('refid', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'refid'}, None), + MemberSpec_('fullname', 'xs:string', 0, 0, {'name': 'fullname', 'type': 'xs:string'}, None), + MemberSpec_('refid', 'xs:integer', 0, 0, {'name': 'refid', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -2742,7 +2742,7 @@ class java_programmer(programmer): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('status', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = programmer @@ -2846,7 +2846,7 @@ class python_programmer(programmer): Python programmers are especially wonderful kinds of people.""" member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = programmer diff --git a/tests/prefix_classname1_sub.py b/tests/prefix_classname1_sub.py index a0c9591..c071792 100644 --- a/tests/prefix_classname1_sub.py +++ b/tests/prefix_classname1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/prefix_classname1_sup.py b/tests/prefix_classname1_sup.py index 67187ca..02a07bf 100644 --- a/tests/prefix_classname1_sup.py +++ b/tests/prefix_classname1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,11 +737,11 @@ class ArrayTypes(object): class tomato_people(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('comments', 'comments', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'comments', u'name': u'comments'}, None), - MemberSpec_('person', 'person', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'person', u'name': u'person'}, None), - MemberSpec_('programmer', 'programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'programmer', u'name': u'programmer'}, None), - MemberSpec_('python_programmer', 'python-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'python-programmer', u'name': u'python-programmer'}, None), - MemberSpec_('java_programmer', 'java-programmer', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'java-programmer', u'name': u'java-programmer'}, None), + MemberSpec_('comments', 'comments', 1, 0, {'name': 'comments', 'type': 'comments', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('person', 'person', 1, 0, {'name': 'person', 'maxOccurs': 'unbounded', 'type': 'person'}, None), + MemberSpec_('programmer', 'programmer', 1, 0, {'name': 'programmer', 'maxOccurs': 'unbounded', 'type': 'programmer'}, None), + MemberSpec_('python_programmer', 'python-programmer', 1, 0, {'name': 'python-programmer', 'maxOccurs': 'unbounded', 'type': 'python-programmer'}, None), + MemberSpec_('java_programmer', 'java-programmer', 1, 0, {'name': 'java-programmer', 'maxOccurs': 'unbounded', 'type': 'java-programmer'}, None), ] subclass = None superclass = None @@ -894,7 +894,7 @@ class tomato_people(GeneratedsSuper): class tomato_comments(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('emp', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'emp'}, None), + MemberSpec_('emp', 'xs:string', 1, 0, {'name': 'emp', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -1009,12 +1009,12 @@ class tomato_person(GeneratedsSuper): MemberSpec_('ratio', 'xs:float', 0, 1, {'use': 'optional'}), MemberSpec_('fruit', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('vegetable', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('interest', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'interest'}, None), - MemberSpec_('category', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'category'}, None), - MemberSpec_('agent', 'agent', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'agent', u'name': u'agent'}, None), - MemberSpec_('promoter', 'booster', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'booster', u'name': u'promoter'}, None), - MemberSpec_('description', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'description'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('interest', 'xs:string', 1, 0, {'name': 'interest', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('category', 'xs:integer', 0, 0, {'name': 'category', 'type': 'xs:integer'}, None), + MemberSpec_('agent', 'agent', 1, 0, {'name': 'agent', 'type': 'agent', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('promoter', 'booster', 1, 0, {'name': 'promoter', 'type': 'booster', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('description', 'xs:string', 0, 0, {'name': 'description', 'type': 'xs:string'}, None), ] subclass = None superclass = None @@ -1239,18 +1239,18 @@ class tomato_programmer(tomato_person): MemberSpec_('attrnonposint', 'xs:nonPositiveInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnegint', 'xs:negativeInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnonnegint', 'xs:nonNegativeInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('email', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'email'}, None), - MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {u'type': u'xs:positiveInteger', u'name': u'elposint'}, None), - MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {u'type': u'xs:nonPositiveInteger', u'name': u'elnonposint'}, None), - MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {u'type': u'xs:negativeInteger', u'name': u'elnegint'}, None), - MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {u'type': u'xs:nonNegativeInteger', u'name': u'elnonnegint'}, None), - MemberSpec_('eldate', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'eldate'}, None), - MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'eldatetime'}, None), - MemberSpec_('eltoken', 'xs:token', 0, 0, {u'type': u'xs:token', u'name': u'eltoken'}, None), - MemberSpec_('elshort', 'xs:short', 0, 0, {u'type': u'xs:short', u'name': u'elshort'}, None), - MemberSpec_('ellong', 'xs:long', 0, 0, {u'type': u'xs:long', u'name': u'ellong'}, None), - MemberSpec_('elparam', 'param', 0, 0, {u'type': u'param', u'name': u'elparam'}, None), - MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'elarraytypes'}, None), + MemberSpec_('email', 'xs:string', 0, 0, {'name': 'email', 'type': 'xs:string'}, None), + MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {'name': 'elposint', 'type': 'xs:positiveInteger'}, None), + MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {'name': 'elnonposint', 'type': 'xs:nonPositiveInteger'}, None), + MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {'name': 'elnegint', 'type': 'xs:negativeInteger'}, None), + MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {'name': 'elnonnegint', 'type': 'xs:nonNegativeInteger'}, None), + MemberSpec_('eldate', 'xs:date', 0, 0, {'name': 'eldate', 'type': 'xs:date'}, None), + MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {'name': 'eldatetime', 'type': 'xs:dateTime'}, None), + MemberSpec_('eltoken', 'xs:token', 0, 0, {'name': 'eltoken', 'type': 'xs:token'}, None), + MemberSpec_('elshort', 'xs:short', 0, 0, {'name': 'elshort', 'type': 'xs:short'}, None), + MemberSpec_('ellong', 'xs:long', 0, 0, {'name': 'ellong', 'type': 'xs:long'}, None), + MemberSpec_('elparam', 'param', 0, 0, {'name': 'elparam', 'type': 'param'}, None), + MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {'name': 'elarraytypes', 'type': 'xs:NMTOKEN'}, None), ] subclass = None superclass = tomato_person @@ -1609,7 +1609,7 @@ class tomato_param(GeneratedsSuper): MemberSpec_('sid', 'xs:NCName', 0, 1, {'use': 'optional'}), MemberSpec_('flow', 'FlowType', 0, 1, {'use': 'optional'}), MemberSpec_('semantic', 'xs:token', 0, 1, {'use': 'optional'}), - MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': u'required'}), + MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': 'required'}), MemberSpec_('valueOf_', 'xs:string', 0), ] subclass = None @@ -1739,7 +1739,7 @@ class tomato_param(GeneratedsSuper): class tomato_python_programmer(tomato_programmer): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = tomato_programmer @@ -1832,7 +1832,7 @@ class tomato_java_programmer(tomato_programmer): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('status', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), ] subclass = None superclass = tomato_programmer @@ -1933,10 +1933,10 @@ class tomato_java_programmer(tomato_programmer): class tomato_agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), ] subclass = None superclass = None @@ -2050,10 +2050,10 @@ class tomato_agent(GeneratedsSuper): class tomato_special_agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'info', 0, 0, {u'type': u'info', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'info', 0, 0, {'name': 'info', 'type': 'info'}, None), ] subclass = None superclass = None @@ -2167,13 +2167,13 @@ class tomato_special_agent(GeneratedsSuper): class tomato_booster(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('other_name', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'other-name'}, None), - MemberSpec_('class_', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'class'}, None), - MemberSpec_('other_value', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'other-value'}, None), - MemberSpec_('type_', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'type'}, None), - MemberSpec_('client_handler', 'client-handlerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'client-handlerType', u'name': u'client-handler'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('other_name', 'xs:float', 0, 0, {'name': 'other-name', 'type': 'xs:float'}, None), + MemberSpec_('class_', 'xs:float', 0, 0, {'name': 'class', 'type': 'xs:float'}, None), + MemberSpec_('other_value', 'xs:float', 1, 0, {'name': 'other-value', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('type_', 'xs:float', 1, 0, {'name': 'type', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('client_handler', 'client-handlerType', 1, 0, {'name': 'client-handler', 'maxOccurs': 'unbounded', 'type': 'client-handlerType'}, None), ] subclass = None superclass = None @@ -2450,8 +2450,8 @@ class tomato_info(GeneratedsSuper): class tomato_client_handlerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('fullname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'fullname'}, None), - MemberSpec_('refid', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'refid'}, None), + MemberSpec_('fullname', 'xs:string', 0, 0, {'name': 'fullname', 'type': 'xs:string'}, None), + MemberSpec_('refid', 'xs:integer', 0, 0, {'name': 'refid', 'type': 'xs:integer'}, None), ] subclass = None superclass = None diff --git a/tests/recursive_simpletype1_sub.py b/tests/recursive_simpletype1_sub.py index bc0c88f..a963f46 100644 --- a/tests/recursive_simpletype1_sub.py +++ b/tests/recursive_simpletype1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py index f30cf0c..6e52f20 100644 --- a/tests/recursive_simpletype1_sup.py +++ b/tests/recursive_simpletype1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,9 +730,9 @@ def _cast(typ, value): class PersonType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('personId', 'xs:integer', 0, 0, {u'maxOccurs': u'1', 'type': u'personId', u'ref': u'personId', 'name': u'personId', u'minOccurs': u'1'}, None), - MemberSpec_('fname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'fname'}, None), - MemberSpec_('lname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lname'}, None), + MemberSpec_('personId', 'xs:integer', 0, 0, {'ref': 'personId', 'minOccurs': '1', 'maxOccurs': '1', 'name': 'personId', 'type': 'personId'}, None), + MemberSpec_('fname', 'xs:string', 0, 0, {'name': 'fname', 'type': 'xs:string'}, None), + MemberSpec_('lname', 'xs:string', 0, 0, {'name': 'lname', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/reference_simpletype1_sub.py b/tests/reference_simpletype1_sub.py index 3931476..7ee21c2 100644 --- a/tests/reference_simpletype1_sub.py +++ b/tests/reference_simpletype1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/reference_simpletype1_sup.py b/tests/reference_simpletype1_sup.py index 72b5bd5..1f8ea4f 100644 --- a/tests/reference_simpletype1_sup.py +++ b/tests/reference_simpletype1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -733,8 +733,8 @@ class dummy(GeneratedsSuper): member_data_items_ = [ MemberSpec_('test_ref_attr', 'xs:integer', 0, 1, {'use': 'optional'}), MemberSpec_('test_normal_attr', 'xs:integer', 0, 1, {'use': 'optional'}), - MemberSpec_('test_ref_element', 'xs:integer', 0, 0, {'type': u'xs:integer', u'ref': u'test_ref_element', 'name': u'test_ref_element'}, None), - MemberSpec_('test_normal_element', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'test_normal_element'}, None), + MemberSpec_('test_ref_element', 'xs:integer', 0, 0, {'ref': 'test_ref_element', 'name': 'test_ref_element', 'type': 'xs:integer'}, None), + MemberSpec_('test_normal_element', 'xs:integer', 0, 0, {'name': 'test_normal_element', 'type': 'xs:integer'}, None), ] subclass = None superclass = None diff --git a/tests/rem_dup_elems1_sub.py b/tests/rem_dup_elems1_sub.py index e3c07ab..4d0a8bd 100644 --- a/tests/rem_dup_elems1_sub.py +++ b/tests/rem_dup_elems1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/rem_dup_elems1_sup.py b/tests/rem_dup_elems1_sup.py index 7de66a2..6f36d97 100644 --- a/tests/rem_dup_elems1_sup.py +++ b/tests/rem_dup_elems1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -404,7 +404,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -731,8 +731,8 @@ def _cast(typ, value): class authorsType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('author', 'author', 1, 1, {'type': u'author', u'ref': u'author', 'name': u'author'}, 1), - MemberSpec_('cooperation', 'xsd:string', 1, 1, {u'type': u'xsd:string', u'name': u'cooperation'}, 1), + MemberSpec_('author', 'author', 1, 1, {'ref': 'author', 'name': 'author', 'type': 'author'}, 1), + MemberSpec_('cooperation', 'xsd:string', 1, 1, {'name': 'cooperation', 'type': 'xsd:string'}, 1), ] subclass = None superclass = None @@ -832,7 +832,7 @@ class authorsType(GeneratedsSuper): class author(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('description', 'xsd:string', 0, 0, {u'type': u'xsd:string', u'name': u'description'}, None), + MemberSpec_('description', 'xsd:string', 0, 0, {'name': 'description', 'type': 'xsd:string'}, None), ] subclass = None superclass = None diff --git a/tests/simplecontent_restriction1_sub.py b/tests/simplecontent_restriction1_sub.py index f5877c0..a202c70 100644 --- a/tests/simplecontent_restriction1_sub.py +++ b/tests/simplecontent_restriction1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/simplecontent_restriction1_sup.py b/tests/simplecontent_restriction1_sup.py index c413af8..a780bba 100644 --- a/tests/simplecontent_restriction1_sup.py +++ b/tests/simplecontent_restriction1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,13 +730,13 @@ def _cast(typ, value): class IdentifierType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('schemeID', 'xsd:normalizedString', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeName', 'xsd:string', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeAgencyID', 'xsd:normalizedString', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeAgencyName', 'xsd:string', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeVersionID', 'xsd:normalizedString', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeDataURI', 'xsd:anyURI', 0, 1, {'use': u'optional'}), - MemberSpec_('schemeURI', 'xsd:anyURI', 0, 1, {'use': u'optional'}), + MemberSpec_('schemeID', 'xsd:normalizedString', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeName', 'xsd:string', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeAgencyID', 'xsd:normalizedString', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeAgencyName', 'xsd:string', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeVersionID', 'xsd:normalizedString', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeDataURI', 'xsd:anyURI', 0, 1, {'use': 'optional'}), + MemberSpec_('schemeURI', 'xsd:anyURI', 0, 1, {'use': 'optional'}), MemberSpec_('valueOf_', 'xsd:normalizedString', 0), ] subclass = None diff --git a/tests/simpletype_memberspecs1_sub.py b/tests/simpletype_memberspecs1_sub.py index f14d0ff..3e81f5c 100644 --- a/tests/simpletype_memberspecs1_sub.py +++ b/tests/simpletype_memberspecs1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/simpletype_memberspecs1_sup.py b/tests/simpletype_memberspecs1_sup.py index 2f5acbe..da39d25 100644 --- a/tests/simpletype_memberspecs1_sup.py +++ b/tests/simpletype_memberspecs1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: diff --git a/tests/simpletypes_other1_sub.py b/tests/simpletypes_other1_sub.py index 2dda7fb..1b35158 100644 --- a/tests/simpletypes_other1_sub.py +++ b/tests/simpletypes_other1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py index df679f8..7e3b7f3 100644 --- a/tests/simpletypes_other1_sup.py +++ b/tests/simpletypes_other1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -730,7 +730,7 @@ def _cast(typ, value): class simpleTypeTestsType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simpleTypeTest', 'simpleTypeTestDefs', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleTypeTestDefs', u'name': u'simpleTypeTest'}, None), + MemberSpec_('simpleTypeTest', 'simpleTypeTestDefs', 1, 0, {'name': 'simpleTypeTest', 'maxOccurs': 'unbounded', 'type': 'simpleTypeTestDefs'}, None), ] subclass = None superclass = None @@ -813,27 +813,27 @@ class simpleTypeTestsType(GeneratedsSuper): class simpleTypeTestDefs(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('datetime1', 'xs:gYear', 0, 0, {u'type': u'xs:gYear', u'name': u'datetime1'}, None), - MemberSpec_('datetime2', 'xs:gYearMonth', 0, 0, {u'type': u'xs:gYearMonth', u'name': u'datetime2'}, None), - MemberSpec_('datetime3', 'xs:gMonth', 0, 0, {u'type': u'xs:gMonth', u'name': u'datetime3'}, None), - MemberSpec_('datetime4', 'xs:gMonthDay', 0, 0, {u'type': u'xs:gMonthDay', u'name': u'datetime4'}, None), - MemberSpec_('datetime5', 'xs:gDay', 0, 0, {u'type': u'xs:gDay', u'name': u'datetime5'}, None), - MemberSpec_('integerVal1', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'integerVal1'}, None), - MemberSpec_('integerVal2', 'xs:integer', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:integer', u'name': u'integerVal2', u'minOccurs': u'0'}, None), - MemberSpec_('stringVal1', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'stringVal1'}, None), - MemberSpec_('stringVal2', 'xs:string', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'stringVal2', u'minOccurs': u'0'}, None), - MemberSpec_('booleanVal1', 'xs:boolean', 0, 0, {u'type': u'xs:boolean', u'name': u'booleanVal1'}, None), - MemberSpec_('booleanVal2', 'xs:boolean', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:boolean', u'name': u'booleanVal2', u'minOccurs': u'0'}, None), - MemberSpec_('decimalVal1', 'xs:decimal', 0, 0, {u'type': u'xs:decimal', u'name': u'decimalVal1'}, None), - MemberSpec_('decimalVal2', 'xs:decimal', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:decimal', u'name': u'decimalVal2', u'minOccurs': u'0'}, None), - MemberSpec_('doubleVal1', 'xs:double', 0, 0, {u'type': u'xs:double', u'name': u'doubleVal1'}, None), - MemberSpec_('doubleVal2', 'xs:double', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:double', u'name': u'doubleVal2', u'minOccurs': u'0'}, None), - MemberSpec_('floatVal1', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'floatVal1'}, None), - MemberSpec_('floatVal2', 'xs:float', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'floatVal2', u'minOccurs': u'0'}, None), - MemberSpec_('dateVal1', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'dateVal1'}, None), - MemberSpec_('dateVal2', 'xs:date', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:date', u'name': u'dateVal2', u'minOccurs': u'0'}, None), - MemberSpec_('dateTimeVal1', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'dateTimeVal1'}, None), - MemberSpec_('dateTimeVal2', 'xs:dateTime', 1, 1, {u'maxOccurs': u'unbounded', u'type': u'xs:dateTime', u'name': u'dateTimeVal2', u'minOccurs': u'0'}, None), + MemberSpec_('datetime1', 'xs:gYear', 0, 0, {'name': 'datetime1', 'type': 'xs:gYear'}, None), + MemberSpec_('datetime2', 'xs:gYearMonth', 0, 0, {'name': 'datetime2', 'type': 'xs:gYearMonth'}, None), + MemberSpec_('datetime3', 'xs:gMonth', 0, 0, {'name': 'datetime3', 'type': 'xs:gMonth'}, None), + MemberSpec_('datetime4', 'xs:gMonthDay', 0, 0, {'name': 'datetime4', 'type': 'xs:gMonthDay'}, None), + MemberSpec_('datetime5', 'xs:gDay', 0, 0, {'name': 'datetime5', 'type': 'xs:gDay'}, None), + MemberSpec_('integerVal1', 'xs:integer', 0, 0, {'name': 'integerVal1', 'type': 'xs:integer'}, None), + MemberSpec_('integerVal2', 'xs:integer', 1, 1, {'name': 'integerVal2', 'type': 'xs:integer', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('stringVal1', 'xs:string', 0, 0, {'name': 'stringVal1', 'type': 'xs:string'}, None), + MemberSpec_('stringVal2', 'xs:string', 1, 1, {'name': 'stringVal2', 'type': 'xs:string', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('booleanVal1', 'xs:boolean', 0, 0, {'name': 'booleanVal1', 'type': 'xs:boolean'}, None), + MemberSpec_('booleanVal2', 'xs:boolean', 1, 1, {'name': 'booleanVal2', 'type': 'xs:boolean', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('decimalVal1', 'xs:decimal', 0, 0, {'name': 'decimalVal1', 'type': 'xs:decimal'}, None), + MemberSpec_('decimalVal2', 'xs:decimal', 1, 1, {'name': 'decimalVal2', 'type': 'xs:decimal', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('doubleVal1', 'xs:double', 0, 0, {'name': 'doubleVal1', 'type': 'xs:double'}, None), + MemberSpec_('doubleVal2', 'xs:double', 1, 1, {'name': 'doubleVal2', 'type': 'xs:double', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('floatVal1', 'xs:float', 0, 0, {'name': 'floatVal1', 'type': 'xs:float'}, None), + MemberSpec_('floatVal2', 'xs:float', 1, 1, {'name': 'floatVal2', 'type': 'xs:float', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('dateVal1', 'xs:date', 0, 0, {'name': 'dateVal1', 'type': 'xs:date'}, None), + MemberSpec_('dateVal2', 'xs:date', 1, 1, {'name': 'dateVal2', 'type': 'xs:date', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('dateTimeVal1', 'xs:dateTime', 0, 0, {'name': 'dateTimeVal1', 'type': 'xs:dateTime'}, None), + MemberSpec_('dateTimeVal2', 'xs:dateTime', 1, 1, {'name': 'dateTimeVal2', 'type': 'xs:dateTime', 'minOccurs': '0', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None diff --git a/tests/test.py b/tests/test.py index 780132f..274c707 100755 --- a/tests/test.py +++ b/tests/test.py @@ -77,12 +77,15 @@ class GenTest(unittest.TestCase): self.executeClean(cmd, cwd='..') # Verify the structure cmdTempl = ( - 'python -c "import %s_sub; print ' - '[ x.name for x in %s_sub.node1TypeSub.member_data_items_ ]; ' - 'print [ x.name for x in %s_sub.node2TypeSub.member_data_items_ ]"' + 'python -c "import %s_sub; print(' + '[ x.name for x in %s_sub.node1TypeSub.member_data_items_ ]); ' + 'print([ x.name for x in ' + '%s_sub.node2TypeSub.member_data_items_ ])"' ) cmd = cmdTempl % (t_, t_, t_) result, err = self.execute(cmd) + if sys.version_info.major != 2: + result = result.decode() self.failUnlessEqual(result, """\ ['node1node1', 'group1', 'group2', 'node1node2'] ['node2node1', 'group1', 'group2', 'node2node2'] @@ -92,12 +95,14 @@ class GenTest(unittest.TestCase): 'python -c "import %s_sub; obj = ' '%s_sub.parse(\'%s.xml\'); fields = ' '[ x.name for x in obj.node1.member_data_items_ ]; ' - 'print [ getattr(obj.node1, x) for x in fields ]; ' + 'print([ getattr(obj.node1, x) for x in fields ]); ' 'fields = [ x.name for x in obj.node2.member_data_items_ ]; ' - 'print [ getattr(obj.node2, x) for x in fields ]"' + 'print([ getattr(obj.node2, x) for x in fields ])"' ) cmd = cmdTempl % (t_, t_, t_) result, err = self.execute(cmd) + if sys.version_info.major != 2: + result = result.decode() self.failUnlessEqual(result, """\ ['value 1 1', 'group1 1', 'group2 1', 'value 1 2'] ['value 2 1', 'group1 2', 'group2 2', 'value 2 2'] @@ -126,10 +131,12 @@ class GenTest(unittest.TestCase): cmdTempl = ( 'python -c "import %s_sub; obj = ' '%s_sub.parse(\'%s.xml\'); children = obj.get_child(); ' - 'print [ (x.get_name(), x.get_valueOf_()) for x in children ]"' + 'print([ (x.get_name(), x.get_valueOf_()) for x in children ])"' ) cmd = cmdTempl % (t_, t_, t_) result, err = self.execute(cmd) + if sys.version_info.major != 2: + result = result.decode() self.failUnlessEqual(result, """\ [('child1', 'value1'), ('child1', 'value2')] """) @@ -145,12 +152,14 @@ class GenTest(unittest.TestCase): 'python -c "import %s_sub; ' 'node = %s_sub.childTypeSub.factory(name=\'child1\', ' 'valueOf_ = \'value1\'); ' - 'print (node.get_name(), node.get_valueOf_())"' + 'print((node.get_name(), node.get_valueOf_()))"' ) cmd = cmdTempl % (t_, t_) - #print 'cmd:', cmd + #print('cmd:', cmd) result, err = self.execute(cmd) - #print 'result: %s' % result + #print('result: %s' % result) + if sys.version_info.major != 2: + result = result.decode() self.failUnlessEqual(result, """\ ('child1', 'value1') """) @@ -194,6 +203,8 @@ class GenTest(unittest.TestCase): root1.append(child.__copy__()) #print etree.tostring(root1, pretty_print = True) result = etree.tostring(root1, pretty_print=True) + if sys.version_info.major != 2: + result = result.decode() self.failUnlessEqual(GenTest.ns_for_import_xml_result, result) def test_006_anysimpletype(self): @@ -482,6 +493,8 @@ class GenTest(unittest.TestCase): rootElement, pretty_print=True, xml_declaration=True, encoding="utf-8") outfile = open('to_etree2.xml', 'w') + if sys.version_info.major != 2: + content = content.decode() outfile.write(content) outfile.close() self.compareFiles('{}1.xml'.format(t_), '{}2.xml'.format(t_)) @@ -924,6 +937,35 @@ class GenTest(unittest.TestCase): #self.remove('{}2_sub.py'.format(t_)) #self.remove('{}2_out.xml'.format(t_)) + # + # Test for types derived by extension. See: + # https://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#DerivExt + def test_037_derived_types(self): + cmdTempl = ( + 'python generateDS.py --no-dates --no-versions ' + '--member-specs=list -f ' + '-o tests/%s2_sup.py -s tests/%s2_sub.py ' + '--super=%s2_sup ' + '--always-export-default ' + 'tests/%s.xsd' + ) + t_ = 'derived_types' + 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_)) + 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: @@ -933,7 +975,8 @@ class GenTest(unittest.TestCase): diffs = list(diffs) if diffs: diffs = ''.join(diffs[2:12]) - self.fail("Files '{}' and '{}' differed:\n{}".format(left, right, diffs)) + self.fail("Files '{}' and '{}' differed:\n{}".format( + left, right, diffs)) def remove(self, filename): if False: diff --git a/tests/to_etree1_sub.py b/tests/to_etree1_sub.py index 00bea0a..6856382 100644 --- a/tests/to_etree1_sub.py +++ b/tests/to_etree1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py index 93dfd28..eea078f 100644 --- a/tests/to_etree1_sup.py +++ b/tests/to_etree1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -405,7 +405,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -739,12 +739,12 @@ class ArrayTypes(object): class peopleType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('comments', 'commentsType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'commentsType', u'name': u'comments'}, None), - MemberSpec_('person', 'personType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'personType', u'name': u'person'}, None), - MemberSpec_('specialperson', 'specialperson', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'specialperson', u'name': u'specialperson'}, None), - MemberSpec_('programmer', 'programmerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'programmerType', u'name': u'programmer'}, None), - MemberSpec_('python_programmer', 'python-programmerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'python-programmerType', u'name': u'python-programmer'}, None), - MemberSpec_('java_programmer', 'java-programmerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'java-programmerType', u'name': u'java-programmer'}, None), + MemberSpec_('comments', 'commentsType', 1, 0, {'name': 'comments', 'type': 'commentsType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('person', 'personType', 1, 0, {'name': 'person', 'maxOccurs': 'unbounded', 'type': 'personType'}, None), + MemberSpec_('specialperson', 'specialperson', 1, 0, {'name': 'specialperson', 'maxOccurs': 'unbounded', 'type': 'specialperson'}, None), + MemberSpec_('programmer', 'programmerType', 1, 0, {'name': 'programmer', 'maxOccurs': 'unbounded', 'type': 'programmerType'}, None), + MemberSpec_('python_programmer', 'python-programmerType', 1, 0, {'name': 'python-programmer', 'maxOccurs': 'unbounded', 'type': 'python-programmerType'}, None), + MemberSpec_('java_programmer', 'java-programmerType', 1, 0, {'name': 'java-programmer', 'maxOccurs': 'unbounded', 'type': 'java-programmerType'}, None), ] subclass = None superclass = None @@ -845,7 +845,7 @@ class peopleType(GeneratedsSuper): for java_programmer_ in self.java_programmer: java_programmer_.to_etree(element, name_='java-programmer', mapping_=mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -894,8 +894,8 @@ class peopleType(GeneratedsSuper): class commentsType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('emp', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'emp'}, None), - MemberSpec_('bold', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'bold'}, None), + MemberSpec_('emp', 'xs:string', 1, 0, {'name': 'emp', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('bold', 'xs:string', 1, 0, {'name': 'bold', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), MemberSpec_('valueOf_', [], 0), ] subclass = None @@ -960,7 +960,7 @@ class commentsType(GeneratedsSuper): for item_ in self.content_: item_.to_etree(element) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1001,14 +1001,14 @@ class personType(GeneratedsSuper): MemberSpec_('ratio', 'xs:float', 0, 1, {'use': 'optional'}), MemberSpec_('fruit', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('vegetable', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('name', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'name'}, None), - MemberSpec_('interest', 'xs:string', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:string', u'name': u'interest'}, None), - MemberSpec_('category', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'category'}, None), - MemberSpec_('hot_agent', 'hot.agent', 0, 0, {u'type': u'hot.agent', u'name': u'hot.agent'}, None), - MemberSpec_('agent', 'agentType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'agentType', u'name': u'agent'}, None), - MemberSpec_('promoter', 'boosterType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'boosterType', u'name': u'promoter'}, None), - MemberSpec_('description', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'description'}, None), - MemberSpec_('range_', ['RangeType', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'range'}, None), + MemberSpec_('name', 'xs:string', 0, 0, {'name': 'name', 'type': 'xs:string'}, None), + MemberSpec_('interest', 'xs:string', 1, 0, {'name': 'interest', 'type': 'xs:string', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('category', 'xs:integer', 0, 0, {'name': 'category', 'type': 'xs:integer'}, None), + MemberSpec_('hot_agent', 'hot.agent', 0, 0, {'name': 'hot.agent', 'type': 'hot.agent'}, None), + MemberSpec_('agent', 'agentType', 1, 0, {'name': 'agent', 'type': 'agentType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('promoter', 'boosterType', 1, 0, {'name': 'promoter', 'type': 'boosterType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('description', 'xs:string', 0, 0, {'name': 'description', 'type': 'xs:string'}, None), + MemberSpec_('range_', ['RangeType', 'xs:integer'], 0, 0, {'name': 'range', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -1143,7 +1143,7 @@ class personType(GeneratedsSuper): range__ = self.range_ etree_.SubElement(element, '{}range').text = self.gds_format_integer(range__) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1262,7 +1262,7 @@ class specialperson(personType): def to_etree(self, parent_element=None, name_='specialperson', mapping_=None): element = super(specialperson, self).to_etree(parent_element, name_, mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1287,19 +1287,19 @@ class programmerType(personType): MemberSpec_('attrnonposint', 'xs:nonPositiveInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnegint', 'xs:negativeInteger', 0, 1, {'use': 'optional'}), MemberSpec_('attrnonnegint', 'xs:nonNegativeInteger', 0, 1, {'use': 'optional'}), - MemberSpec_('email', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'email'}, None), - MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {u'type': u'xs:positiveInteger', u'name': u'elposint'}, None), - MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {u'type': u'xs:nonPositiveInteger', u'name': u'elnonposint'}, None), - MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {u'type': u'xs:negativeInteger', u'name': u'elnegint'}, None), - MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {u'type': u'xs:nonNegativeInteger', u'name': u'elnonnegint'}, None), - MemberSpec_('eldate', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'eldate'}, None), - MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'eldatetime'}, None), - MemberSpec_('eldatetime1', 'xs:dateTime', 0, 0, {u'type': u'xs:dateTime', u'name': u'eldatetime1'}, None), - MemberSpec_('eltoken', 'xs:token', 0, 0, {u'type': u'xs:token', u'name': u'eltoken'}, None), - MemberSpec_('elshort', 'xs:short', 0, 0, {u'type': u'xs:short', u'name': u'elshort'}, None), - MemberSpec_('ellong', 'xs:long', 0, 0, {u'type': u'xs:long', u'name': u'ellong'}, None), - MemberSpec_('elparam', 'paramType', 0, 0, {u'type': u'paramType', u'name': u'elparam'}, None), - MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'elarraytypes'}, None), + MemberSpec_('email', 'xs:string', 0, 0, {'name': 'email', 'type': 'xs:string'}, None), + MemberSpec_('elposint', 'xs:positiveInteger', 0, 0, {'name': 'elposint', 'type': 'xs:positiveInteger'}, None), + MemberSpec_('elnonposint', 'xs:nonPositiveInteger', 0, 0, {'name': 'elnonposint', 'type': 'xs:nonPositiveInteger'}, None), + MemberSpec_('elnegint', 'xs:negativeInteger', 0, 0, {'name': 'elnegint', 'type': 'xs:negativeInteger'}, None), + MemberSpec_('elnonnegint', 'xs:nonNegativeInteger', 0, 0, {'name': 'elnonnegint', 'type': 'xs:nonNegativeInteger'}, None), + MemberSpec_('eldate', 'xs:date', 0, 0, {'name': 'eldate', 'type': 'xs:date'}, None), + MemberSpec_('eldatetime', 'xs:dateTime', 0, 0, {'name': 'eldatetime', 'type': 'xs:dateTime'}, None), + MemberSpec_('eldatetime1', 'xs:dateTime', 0, 0, {'name': 'eldatetime1', 'type': 'xs:dateTime'}, None), + MemberSpec_('eltoken', 'xs:token', 0, 0, {'name': 'eltoken', 'type': 'xs:token'}, None), + MemberSpec_('elshort', 'xs:short', 0, 0, {'name': 'elshort', 'type': 'xs:short'}, None), + MemberSpec_('ellong', 'xs:long', 0, 0, {'name': 'ellong', 'type': 'xs:long'}, None), + MemberSpec_('elparam', 'paramType', 0, 0, {'name': 'elparam', 'type': 'paramType'}, None), + MemberSpec_('elarraytypes', ['ArrayTypes', 'xs:NMTOKEN'], 0, 0, {'name': 'elarraytypes', 'type': 'xs:NMTOKEN'}, None), ] subclass = None superclass = personType @@ -1478,7 +1478,7 @@ class programmerType(personType): elarraytypes_ = self.elarraytypes etree_.SubElement(element, '{}elarraytypes').text = self.gds_format_string(elarraytypes_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1640,7 +1640,7 @@ class paramType(GeneratedsSuper): MemberSpec_('sid', 'xs:NCName', 0, 1, {'use': 'optional'}), MemberSpec_('flow', 'FlowType', 0, 1, {'use': 'optional'}), MemberSpec_('semantic', 'xs:token', 0, 1, {'use': 'optional'}), - MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': u'required'}), + MemberSpec_('type_', 'xs:NMTOKEN', 0, 0, {'use': 'required'}), MemberSpec_('valueOf_', 'xs:string', 0), ] subclass = None @@ -1710,7 +1710,7 @@ class paramType(GeneratedsSuper): if self.hasContent_(): element.text = self.gds_format_string(self.get_valueOf_()) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1760,9 +1760,9 @@ class python_programmerType(programmerType): MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('drcs_attr', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('gui_developer', 'xs:boolean', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), - MemberSpec_('flowvalue', ['FlowType', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'flowvalue'}, None), - MemberSpec_('drcs', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'drcs'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), + MemberSpec_('flowvalue', ['FlowType', 'xs:integer'], 0, 0, {'name': 'flowvalue', 'type': 'xs:integer'}, None), + MemberSpec_('drcs', 'xs:string', 0, 0, {'name': 'drcs', 'type': 'xs:string'}, None), ] subclass = None superclass = programmerType @@ -1831,7 +1831,7 @@ class python_programmerType(programmerType): drcs_ = self.drcs etree_.SubElement(element, '{}drcs').text = self.gds_format_string(drcs_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -1886,12 +1886,12 @@ class java_programmerType(programmerType): member_data_items_ = [ MemberSpec_('nick-name', 'xs:string', 0, 1, {'use': 'optional'}), MemberSpec_('status', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('favorite_editor', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'favorite-editor'}, None), - MemberSpec_('datetime1', 'xs:gYear', 0, 0, {u'type': u'xs:gYear', u'name': u'datetime1'}, None), - MemberSpec_('datetime2', 'xs:gYearMonth', 0, 0, {u'type': u'xs:gYearMonth', u'name': u'datetime2'}, None), - MemberSpec_('datetime3', 'xs:gMonth', 0, 0, {u'type': u'xs:gMonth', u'name': u'datetime3'}, None), - MemberSpec_('datetime4', 'xs:gMonthDay', 0, 0, {u'type': u'xs:gMonthDay', u'name': u'datetime4'}, None), - MemberSpec_('datetime5', 'xs:gDay', 0, 0, {u'type': u'xs:gDay', u'name': u'datetime5'}, None), + MemberSpec_('favorite_editor', 'xs:string', 0, 0, {'name': 'favorite-editor', 'type': 'xs:string'}, None), + MemberSpec_('datetime1', 'xs:gYear', 0, 0, {'name': 'datetime1', 'type': 'xs:gYear'}, None), + MemberSpec_('datetime2', 'xs:gYearMonth', 0, 0, {'name': 'datetime2', 'type': 'xs:gYearMonth'}, None), + MemberSpec_('datetime3', 'xs:gMonth', 0, 0, {'name': 'datetime3', 'type': 'xs:gMonth'}, None), + MemberSpec_('datetime4', 'xs:gMonthDay', 0, 0, {'name': 'datetime4', 'type': 'xs:gMonthDay'}, None), + MemberSpec_('datetime5', 'xs:gDay', 0, 0, {'name': 'datetime5', 'type': 'xs:gDay'}, None), ] subclass = None superclass = programmerType @@ -1971,7 +1971,7 @@ class java_programmerType(programmerType): datetime5_ = self.datetime5 etree_.SubElement(element, '{}datetime5').text = self.gds_format_string(datetime5_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2021,11 +2021,11 @@ class java_programmerType(programmerType): class agentType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'infoType', 0, 0, {u'type': u'infoType', u'name': u'info'}, None), - MemberSpec_('vehicle', 'vehicleType', 1, 1, {u'maxOccurs': u'unbounded', 'type': u'vehicle', u'ref': u'vehicle', 'name': u'vehicle', u'minOccurs': u'0'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'infoType', 0, 0, {'name': 'info', 'type': 'infoType'}, None), + MemberSpec_('vehicle', 'vehicleType', 1, 1, {'ref': 'vehicle', 'minOccurs': '0', 'maxOccurs': 'unbounded', 'name': 'vehicle', 'type': 'vehicle'}, None), ] subclass = None superclass = None @@ -2099,7 +2099,7 @@ class agentType(GeneratedsSuper): for vehicle_ in self.vehicle: vehicle_.to_etree(element, name_='vehicle', mapping_=mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2161,10 +2161,10 @@ class special_agentType(agentType): """This is a good kind of agent for testing the generation of Python bindings for an XML schema.""" member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'infoType', 0, 0, {u'type': u'infoType', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'infoType', 0, 0, {'name': 'info', 'type': 'infoType'}, None), ] subclass = None superclass = agentType @@ -2220,7 +2220,7 @@ class special_agentType(agentType): info_ = self.info info_.to_etree(element, name_='info', mapping_=mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2261,10 +2261,10 @@ class weird_agentType(agentType): """This is a good kind of agent for testing the generation of Python bindings for an XML schema.""" member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('info', 'infoType', 0, 0, {u'type': u'infoType', u'name': u'info'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('info', 'infoType', 0, 0, {'name': 'info', 'type': 'infoType'}, None), ] subclass = None superclass = agentType @@ -2320,7 +2320,7 @@ class weird_agentType(agentType): info_ = self.info info_.to_etree(element, name_='info', mapping_=mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2360,13 +2360,13 @@ class weird_agentType(agentType): class boosterType(GeneratedsSuper): member_data_items_ = [ MemberSpec_('member-id', 'xs:string', 0, 1, {'use': 'optional'}), - MemberSpec_('firstname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('other_name', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'other-name'}, None), - MemberSpec_('class_', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'class'}, None), - MemberSpec_('other_value', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'other-value'}, None), - MemberSpec_('type_', 'xs:float', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'xs:float', u'name': u'type'}, None), - MemberSpec_('client_handler', 'client-handlerType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'client-handlerType', u'name': u'client-handler'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string'}, None), + MemberSpec_('other_name', 'xs:float', 0, 0, {'name': 'other-name', 'type': 'xs:float'}, None), + MemberSpec_('class_', 'xs:float', 0, 0, {'name': 'class', 'type': 'xs:float'}, None), + MemberSpec_('other_value', 'xs:float', 1, 0, {'name': 'other-value', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('type_', 'xs:float', 1, 0, {'name': 'type', 'type': 'xs:float', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('client_handler', 'client-handlerType', 1, 0, {'name': 'client-handler', 'maxOccurs': 'unbounded', 'type': 'client-handlerType'}, None), ] subclass = None superclass = None @@ -2464,7 +2464,7 @@ class boosterType(GeneratedsSuper): for client_handler_ in self.client_handler: client_handler_.to_etree(element, name_='client-handler', mapping_=mapping_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2576,7 +2576,7 @@ class infoType(GeneratedsSuper): if self.rating is not None: element.set('rating', self.gds_format_float(self.rating)) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2611,7 +2611,7 @@ class infoType(GeneratedsSuper): class vehicleType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('wheelcount', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'wheelcount'}, None), + MemberSpec_('wheelcount', 'xs:integer', 0, 0, {'name': 'wheelcount', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -2652,7 +2652,7 @@ class vehicleType(GeneratedsSuper): wheelcount_ = self.wheelcount etree_.SubElement(element, '{}wheelcount').text = self.gds_format_integer(wheelcount_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2680,7 +2680,7 @@ class vehicleType(GeneratedsSuper): class automobile(vehicleType): member_data_items_ = [ - MemberSpec_('drivername', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'drivername'}, None), + MemberSpec_('drivername', 'xs:string', 0, 0, {'name': 'drivername', 'type': 'xs:string'}, None), ] subclass = None superclass = vehicleType @@ -2715,7 +2715,7 @@ class automobile(vehicleType): drivername_ = self.drivername etree_.SubElement(element, '{}drivername').text = self.gds_format_string(drivername_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2737,7 +2737,7 @@ class automobile(vehicleType): class airplane(vehicleType): member_data_items_ = [ - MemberSpec_('pilotname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'pilotname'}, None), + MemberSpec_('pilotname', 'xs:string', 0, 0, {'name': 'pilotname', 'type': 'xs:string'}, None), ] subclass = None superclass = vehicleType @@ -2772,7 +2772,7 @@ class airplane(vehicleType): pilotname_ = self.pilotname etree_.SubElement(element, '{}pilotname').text = self.gds_format_string(pilotname_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2794,10 +2794,10 @@ class airplane(vehicleType): class hot_agent(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('firstname', 'xs:string', 0, 0, {u'default': u'empty\\name', u'type': u'xs:string', u'name': u'firstname'}, None), - MemberSpec_('lastname', 'xs:string', 0, 0, {u'default': u"no 'last' name", u'type': u'xs:string', u'name': u'lastname'}, None), - MemberSpec_('priority', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'priority'}, None), - MemberSpec_('startDate', 'xs:date', 0, 0, {u'type': u'xs:date', u'name': u'startDate'}, None), + MemberSpec_('firstname', 'xs:string', 0, 0, {'name': 'firstname', 'type': 'xs:string', 'default': 'empty\\name'}, None), + MemberSpec_('lastname', 'xs:string', 0, 0, {'name': 'lastname', 'type': 'xs:string', 'default': "no 'last' name"}, None), + MemberSpec_('priority', 'xs:float', 0, 0, {'name': 'priority', 'type': 'xs:float'}, None), + MemberSpec_('startDate', 'xs:date', 0, 0, {'name': 'startDate', 'type': 'xs:date'}, None), ] subclass = None superclass = None @@ -2861,7 +2861,7 @@ class hot_agent(GeneratedsSuper): startDate_ = self.startDate etree_.SubElement(element, '{}startDate').text = self.gds_format_date(startDate_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() @@ -2901,8 +2901,8 @@ class hot_agent(GeneratedsSuper): class client_handlerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('fullname', 'xs:string', 0, 0, {u'type': u'xs:string', u'name': u'fullname'}, None), - MemberSpec_('refid', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'refid'}, None), + MemberSpec_('fullname', 'xs:string', 0, 0, {'name': 'fullname', 'type': 'xs:string'}, None), + MemberSpec_('refid', 'xs:integer', 0, 0, {'name': 'refid', 'type': 'xs:integer'}, None), ] subclass = None superclass = None @@ -2945,7 +2945,7 @@ class client_handlerType(GeneratedsSuper): refid_ = self.refid etree_.SubElement(element, '{}refid').text = self.gds_format_integer(refid_) if mapping_ is not None: - mapping_[self] = element + mapping_[id(self)] = element return element def build(self, node): already_processed = set() diff --git a/tests/validate_simpletypes1_sub.py b/tests/validate_simpletypes1_sub.py index b029b32..59e74fa 100644 --- a/tests/validate_simpletypes1_sub.py +++ b/tests/validate_simpletypes1_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/validate_simpletypes1_sup.py b/tests/validate_simpletypes1_sup.py index 95122b1..e491f27 100644 --- a/tests/validate_simpletypes1_sup.py +++ b/tests/validate_simpletypes1_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,11 +737,11 @@ class token_enum_st(object): class containerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('sample1', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample1'}, None), - MemberSpec_('sample2_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample2_bad'}, None), - MemberSpec_('sample3_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample3_bad'}, None), - MemberSpec_('sample4_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample4_bad'}, None), - MemberSpec_('sample2', 'simpleTwoType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleTwoType', u'name': u'sample2'}, None), + MemberSpec_('sample1', 'simpleOneType', 1, 0, {'name': 'sample1', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample2_bad', 'simpleOneType', 1, 0, {'name': 'sample2_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample3_bad', 'simpleOneType', 1, 0, {'name': 'sample3_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample4_bad', 'simpleOneType', 1, 0, {'name': 'sample4_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample2', 'simpleTwoType', 1, 0, {'name': 'sample2', 'type': 'simpleTwoType', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -893,31 +893,31 @@ class containerType(GeneratedsSuper): class simpleOneType(GeneratedsSuper): member_data_items_ = [ MemberSpec_('integer_range_1_value_with_default', 'integer_range_1_st', 0, 1, {'use': 'optional'}), - MemberSpec_('integer_range_1_value', ['integer_range_1_st', 'integer_range_2_st', 'xs:integer'], 0, 0, {u'default': u'5', u'type': u'xs:integer', u'name': u'integer_range_1_value'}, None), - MemberSpec_('pattern_value', ['pattern_st', 'pattern_1_st', 'min_length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'pattern_value'}, None), - MemberSpec_('token_enum_value', ['token_enum_st', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'token_enum_value'}, None), - MemberSpec_('integer_range_incl_value', ['integer_range_incl_st', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'integer_range_incl_value'}, None), - MemberSpec_('integer_range_excl_value', ['integer_range_excl_st', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'integer_range_excl_value'}, None), - MemberSpec_('min_max_length_value', ['min_max_length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'min_max_length_value'}, None), - MemberSpec_('length_value', ['length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'length_value'}, None), - MemberSpec_('totalDigits_value', ['totalDigits_st', 'xs:decimal'], 0, 0, {u'type': u'xs:decimal', u'name': u'totalDigits_value'}, None), - MemberSpec_('date_minincl_value', ['date_minincl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_minincl_value'}, None), - MemberSpec_('date_maxincl_value', ['date_maxincl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_maxincl_value'}, None), - MemberSpec_('date_minexcl_value', ['date_minexcl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_minexcl_value'}, None), - MemberSpec_('date_maxexcl_value', ['date_maxexcl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_maxexcl_value'}, None), - MemberSpec_('time_minincl_value', ['time_minincl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_minincl_value'}, None), - MemberSpec_('time_maxincl_value', ['time_maxincl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_maxincl_value'}, None), - MemberSpec_('time_minexcl_value', ['time_minexcl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_minexcl_value'}, None), - MemberSpec_('time_maxexcl_value', ['time_maxexcl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_maxexcl_value'}, None), - MemberSpec_('datetime_minincl_value', ['datetime_minincl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_minincl_value'}, None), - MemberSpec_('datetime_maxincl_value', ['datetime_maxincl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_maxincl_value'}, None), - MemberSpec_('datetime_minexcl_value', ['datetime_minexcl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_minexcl_value'}, None), - MemberSpec_('datetime_maxexcl_value', ['datetime_maxexcl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_maxexcl_value'}, None), - MemberSpec_('vbar_pattern_value', ['vbar_pattern_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'vbar_pattern_value'}, None), - MemberSpec_('unicode_pattern_value', ['unicode_pattern_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'unicode_pattern_value'}, None), - MemberSpec_('anonymous_float_value', ['anonymous_float_valueType', 'xs:float'], 0, 0, {u'type': u'xs:float', u'name': u'anonymous_float_value'}, None), - MemberSpec_('primative_integer', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'primative_integer'}, None), - MemberSpec_('primative_float', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'primative_float'}, None), + MemberSpec_('integer_range_1_value', ['integer_range_1_st', 'integer_range_2_st', 'xs:integer'], 0, 0, {'name': 'integer_range_1_value', 'type': 'xs:integer', 'default': '5'}, None), + MemberSpec_('pattern_value', ['pattern_st', 'pattern_1_st', 'min_length_st', 'xs:string'], 0, 0, {'name': 'pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('token_enum_value', ['token_enum_st', 'xs:NMTOKEN'], 0, 0, {'name': 'token_enum_value', 'type': 'xs:NMTOKEN'}, None), + MemberSpec_('integer_range_incl_value', ['integer_range_incl_st', 'xs:integer'], 0, 0, {'name': 'integer_range_incl_value', 'type': 'xs:integer'}, None), + MemberSpec_('integer_range_excl_value', ['integer_range_excl_st', 'xs:integer'], 0, 0, {'name': 'integer_range_excl_value', 'type': 'xs:integer'}, None), + MemberSpec_('min_max_length_value', ['min_max_length_st', 'xs:string'], 0, 0, {'name': 'min_max_length_value', 'type': 'xs:string'}, None), + MemberSpec_('length_value', ['length_st', 'xs:string'], 0, 0, {'name': 'length_value', 'type': 'xs:string'}, None), + MemberSpec_('totalDigits_value', ['totalDigits_st', 'xs:decimal'], 0, 0, {'name': 'totalDigits_value', 'type': 'xs:decimal'}, None), + MemberSpec_('date_minincl_value', ['date_minincl_st', 'xs:date'], 0, 0, {'name': 'date_minincl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_maxincl_value', ['date_maxincl_st', 'xs:date'], 0, 0, {'name': 'date_maxincl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_minexcl_value', ['date_minexcl_st', 'xs:date'], 0, 0, {'name': 'date_minexcl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_maxexcl_value', ['date_maxexcl_st', 'xs:date'], 0, 0, {'name': 'date_maxexcl_value', 'type': 'xs:date'}, None), + MemberSpec_('time_minincl_value', ['time_minincl_st', 'xs:time'], 0, 0, {'name': 'time_minincl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_maxincl_value', ['time_maxincl_st', 'xs:time'], 0, 0, {'name': 'time_maxincl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_minexcl_value', ['time_minexcl_st', 'xs:time'], 0, 0, {'name': 'time_minexcl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_maxexcl_value', ['time_maxexcl_st', 'xs:time'], 0, 0, {'name': 'time_maxexcl_value', 'type': 'xs:time'}, None), + MemberSpec_('datetime_minincl_value', ['datetime_minincl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_minincl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_maxincl_value', ['datetime_maxincl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_maxincl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_minexcl_value', ['datetime_minexcl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_minexcl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_maxexcl_value', ['datetime_maxexcl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_maxexcl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('vbar_pattern_value', ['vbar_pattern_st', 'xs:string'], 0, 0, {'name': 'vbar_pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('unicode_pattern_value', ['unicode_pattern_st', 'xs:string'], 0, 0, {'name': 'unicode_pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('anonymous_float_value', ['anonymous_float_valueType', 'xs:float'], 0, 0, {'name': 'anonymous_float_value', 'type': 'xs:float'}, None), + MemberSpec_('primative_integer', 'xs:integer', 0, 0, {'name': 'primative_integer', 'type': 'xs:integer'}, None), + MemberSpec_('primative_float', 'xs:float', 0, 0, {'name': 'primative_float', 'type': 'xs:float'}, None), ] subclass = None superclass = None @@ -1086,7 +1086,7 @@ class simpleOneType(GeneratedsSuper): if not self.gds_validate_simple_patterns( self.validate_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, )) - validate_pattern_st_patterns_ = [[u'^aaa.*zzz$', u'^bbb.*xxx$'], [u'^.*123.*$', u'^.*456.*$']] + validate_pattern_st_patterns_ = [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']] def validate_token_enum_st(self, value): # Validate type token_enum_st, a restriction on xs:NMTOKEN. if value is not None and Validate_simpletypes_: @@ -1196,14 +1196,14 @@ class simpleOneType(GeneratedsSuper): if not self.gds_validate_simple_patterns( self.validate_vbar_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_vbar_pattern_st_patterns_, )) - validate_vbar_pattern_st_patterns_ = [[u'^abcd|ef\\|gh$']] + validate_vbar_pattern_st_patterns_ = [['^abcd|ef\\|gh$']] def validate_unicode_pattern_st(self, value): # Validate type unicode_pattern_st, a restriction on xs:string. if value is not None and Validate_simpletypes_: if not self.gds_validate_simple_patterns( self.validate_unicode_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_unicode_pattern_st_patterns_, )) - validate_unicode_pattern_st_patterns_ = [[u'^ab\xe7d|ef\\|gh$']] + validate_unicode_pattern_st_patterns_ = [['^abçd|ef\\|gh$']] def validate_anonymous_float_valueType(self, value): # Validate type anonymous_float_valueType, a restriction on xs:float. if value is not None and Validate_simpletypes_: @@ -1540,7 +1540,7 @@ class simpleOneType(GeneratedsSuper): class simpleTwoType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simpleTwoElementOne', 'simpleTwoElementOneType', 0, 0, {u'type': u'simpleTwoElementOneType', u'name': u'simpleTwoElementOne'}, None), + MemberSpec_('simpleTwoElementOne', 'simpleTwoElementOneType', 0, 0, {'name': 'simpleTwoElementOne', 'type': 'simpleTwoElementOneType'}, None), ] subclass = None superclass = None @@ -1617,7 +1617,7 @@ class simpleTwoType(GeneratedsSuper): class simpleTwoElementOneType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simpleTwoElementTwo', ['simpleTwoElementTwoType', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'simpleTwoElementTwo'}, None), + MemberSpec_('simpleTwoElementTwo', ['simpleTwoElementTwoType', 'xs:string'], 0, 0, {'name': 'simpleTwoElementTwo', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tests/validate_simpletypes1_warnings.txt b/tests/validate_simpletypes1_warnings.txt index 503ad4e..c225dcd 100644 --- a/tests/validate_simpletypes1_warnings.txt +++ b/tests/validate_simpletypes1_warnings.txt @@ -1,32 +1,32 @@ tests/validate_simpletypes2_sup.py:1078: UserWarning: Value "2" does not match xsd minExclusive restriction on integer_range_1_st warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_1_st' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "mmaaa1234mnopzzz" does not match xsd pattern restrictions: [[u'^aaa.*zzz$', u'^bbb.*xxx$'], [u'^.*123.*$', u'^.*456.*$']] +tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "b'mmaaa1234mnopzzz'" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']] warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, )) -tests/validate_simpletypes2_sup.py:1101: UserWarning: Value "floatxx" does not match xsd enumeration restriction on token_enum_st +tests/validate_simpletypes2_sup.py:1101: UserWarning: Value "b'floatxx'" does not match xsd enumeration restriction on token_enum_st warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on token_enum_st' % {"value" : value.encode("utf-8")} ) tests/validate_simpletypes2_sup.py:1108: UserWarning: Value "22" does not match xsd maxInclusive restriction on integer_range_incl_st warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on integer_range_incl_st' % {"value" : value} ) tests/validate_simpletypes2_sup.py:1113: UserWarning: Value "-40" does not match xsd minExclusive restriction on integer_range_excl_st warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_excl_st' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1122: UserWarning: Value "mno pqr" does not match xsd minLength restriction on min_max_length_st +tests/validate_simpletypes2_sup.py:1122: UserWarning: Value "b'mno pqr'" does not match xsd minLength restriction on min_max_length_st warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} ) -tests/validate_simpletypes2_sup.py:1127: UserWarning: Value "012345" does not match xsd length restriction on length_st +tests/validate_simpletypes2_sup.py:1127: UserWarning: Value "b'012345'" does not match xsd length restriction on length_st warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} ) tests/validate_simpletypes2_sup.py:1211: UserWarning: Value "0.2" does not match xsd minInclusive restriction on anonymous_float_valueType warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on anonymous_float_valueType' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1198: UserWarning: Value "efgh" does not match xsd pattern restrictions: [[u'^abcd|ef\\|gh$']] +tests/validate_simpletypes2_sup.py:1198: UserWarning: Value "b'efgh'" does not match xsd pattern restrictions: [['^abcd|ef\\|gh$']] warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_vbar_pattern_st_patterns_, )) -tests/validate_simpletypes2_sup.py:1205: UserWarning: Value "efğh" does not match xsd pattern restrictions: [[u'^ab\xe7d|ef\\|gh$']] +tests/validate_simpletypes2_sup.py:1205: UserWarning: Value "b'ef\xc4\x9fh'" does not match xsd pattern restrictions: [['^abçd|ef\\|gh$']] warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_unicode_pattern_st_patterns_, )) tests/validate_simpletypes2_sup.py:1080: UserWarning: Value "9" does not match xsd maxExclusive restriction on integer_range_1_st warnings_.warn('Value "%(value)s" does not match xsd maxExclusive restriction on integer_range_1_st' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "aaa1234mnopzzzbcd" does not match xsd pattern restrictions: [[u'^aaa.*zzz$', u'^bbb.*xxx$'], [u'^.*123.*$', u'^.*456.*$']] +tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "b'aaa1234mnopzzzbcd'" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']] warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, )) tests/validate_simpletypes2_sup.py:1106: UserWarning: Value "-50" does not match xsd minInclusive restriction on integer_range_incl_st warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on integer_range_incl_st' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1120: UserWarning: Value "asdf asdf asdf asdf asdf asdf" does not match xsd maxLength restriction on min_max_length_st +tests/validate_simpletypes2_sup.py:1120: UserWarning: Value "b'asdf asdf asdf asdf asdf asdf'" does not match xsd maxLength restriction on min_max_length_st warnings_.warn('Value "%(value)s" does not match xsd maxLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} ) -tests/validate_simpletypes2_sup.py:1127: UserWarning: Value "01234567890" does not match xsd length restriction on length_st +tests/validate_simpletypes2_sup.py:1127: UserWarning: Value "b'01234567890'" does not match xsd length restriction on length_st warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} ) tests/validate_simpletypes2_sup.py:1137: UserWarning: Value "2015-05-01" does not match xsd minInclusive restriction on date_minincl_st warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on date_minincl_st' % {"value" : value} ) @@ -56,7 +56,7 @@ tests/validate_simpletypes2_sup.py:1213: UserWarning: Value "6.6" does not match warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on anonymous_float_valueType' % {"value" : value} ) tests/validate_simpletypes2_sup.py:1085: UserWarning: Value "aaa12zzz" does not match xsd minLength restriction on pattern_st warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on pattern_st' % {"value" : value} ) -tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "aaa12zzz" does not match xsd pattern restrictions: [[u'^aaa.*zzz$', u'^bbb.*xxx$'], [u'^.*123.*$', u'^.*456.*$']] +tests/validate_simpletypes2_sup.py:1088: UserWarning: Value "b'aaa12zzz'" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']] warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, )) -tests/validate_simpletypes2_sup.py:1647: UserWarning: Value "pqrst" does not match xsd minLength restriction on simpleTwoElementTwoType +tests/validate_simpletypes2_sup.py:1647: UserWarning: Value "b'pqrst'" does not match xsd minLength restriction on simpleTwoElementTwoType warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on simpleTwoElementTwoType' % {"value" : value.encode("utf-8")} ) diff --git a/tests/validate_simpletypes2_sub.py b/tests/validate_simpletypes2_sub.py index b029b32..59e74fa 100644 --- a/tests/validate_simpletypes2_sub.py +++ b/tests/validate_simpletypes2_sub.py @@ -2,7 +2,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') diff --git a/tests/validate_simpletypes2_sup.py b/tests/validate_simpletypes2_sup.py index 95122b1..e491f27 100644 --- a/tests/validate_simpletypes2_sup.py +++ b/tests/validate_simpletypes2_sup.py @@ -3,7 +3,7 @@ # # Generated by generateDS.py. -# Python 2.7.15 |Anaconda custom (64-bit)| (default, May 1 2018, 23:32:55) [GCC 7.2.0] +# Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 17:14:51) [GCC 7.2.0] # # Command line options: # ('--no-dates', '') @@ -403,7 +403,7 @@ except ImportError as exp: return None @classmethod def gds_reverse_node_mapping(cls, mapping): - return dict(((v, k) for k, v in mapping.iteritems())) + return dict(((v, k) for k, v in mapping.items())) @staticmethod def gds_encode(instring): if sys.version_info.major == 2: @@ -737,11 +737,11 @@ class token_enum_st(object): class containerType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('sample1', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample1'}, None), - MemberSpec_('sample2_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample2_bad'}, None), - MemberSpec_('sample3_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample3_bad'}, None), - MemberSpec_('sample4_bad', 'simpleOneType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleOneType', u'name': u'sample4_bad'}, None), - MemberSpec_('sample2', 'simpleTwoType', 1, 0, {u'maxOccurs': u'unbounded', u'type': u'simpleTwoType', u'name': u'sample2'}, None), + MemberSpec_('sample1', 'simpleOneType', 1, 0, {'name': 'sample1', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample2_bad', 'simpleOneType', 1, 0, {'name': 'sample2_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample3_bad', 'simpleOneType', 1, 0, {'name': 'sample3_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample4_bad', 'simpleOneType', 1, 0, {'name': 'sample4_bad', 'type': 'simpleOneType', 'maxOccurs': 'unbounded'}, None), + MemberSpec_('sample2', 'simpleTwoType', 1, 0, {'name': 'sample2', 'type': 'simpleTwoType', 'maxOccurs': 'unbounded'}, None), ] subclass = None superclass = None @@ -893,31 +893,31 @@ class containerType(GeneratedsSuper): class simpleOneType(GeneratedsSuper): member_data_items_ = [ MemberSpec_('integer_range_1_value_with_default', 'integer_range_1_st', 0, 1, {'use': 'optional'}), - MemberSpec_('integer_range_1_value', ['integer_range_1_st', 'integer_range_2_st', 'xs:integer'], 0, 0, {u'default': u'5', u'type': u'xs:integer', u'name': u'integer_range_1_value'}, None), - MemberSpec_('pattern_value', ['pattern_st', 'pattern_1_st', 'min_length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'pattern_value'}, None), - MemberSpec_('token_enum_value', ['token_enum_st', 'xs:NMTOKEN'], 0, 0, {u'type': u'xs:NMTOKEN', u'name': u'token_enum_value'}, None), - MemberSpec_('integer_range_incl_value', ['integer_range_incl_st', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'integer_range_incl_value'}, None), - MemberSpec_('integer_range_excl_value', ['integer_range_excl_st', 'xs:integer'], 0, 0, {u'type': u'xs:integer', u'name': u'integer_range_excl_value'}, None), - MemberSpec_('min_max_length_value', ['min_max_length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'min_max_length_value'}, None), - MemberSpec_('length_value', ['length_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'length_value'}, None), - MemberSpec_('totalDigits_value', ['totalDigits_st', 'xs:decimal'], 0, 0, {u'type': u'xs:decimal', u'name': u'totalDigits_value'}, None), - MemberSpec_('date_minincl_value', ['date_minincl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_minincl_value'}, None), - MemberSpec_('date_maxincl_value', ['date_maxincl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_maxincl_value'}, None), - MemberSpec_('date_minexcl_value', ['date_minexcl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_minexcl_value'}, None), - MemberSpec_('date_maxexcl_value', ['date_maxexcl_st', 'xs:date'], 0, 0, {u'type': u'xs:date', u'name': u'date_maxexcl_value'}, None), - MemberSpec_('time_minincl_value', ['time_minincl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_minincl_value'}, None), - MemberSpec_('time_maxincl_value', ['time_maxincl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_maxincl_value'}, None), - MemberSpec_('time_minexcl_value', ['time_minexcl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_minexcl_value'}, None), - MemberSpec_('time_maxexcl_value', ['time_maxexcl_st', 'xs:time'], 0, 0, {u'type': u'xs:time', u'name': u'time_maxexcl_value'}, None), - MemberSpec_('datetime_minincl_value', ['datetime_minincl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_minincl_value'}, None), - MemberSpec_('datetime_maxincl_value', ['datetime_maxincl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_maxincl_value'}, None), - MemberSpec_('datetime_minexcl_value', ['datetime_minexcl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_minexcl_value'}, None), - MemberSpec_('datetime_maxexcl_value', ['datetime_maxexcl_st', 'xs:dateTime'], 0, 0, {u'type': u'xs:dateTime', u'name': u'datetime_maxexcl_value'}, None), - MemberSpec_('vbar_pattern_value', ['vbar_pattern_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'vbar_pattern_value'}, None), - MemberSpec_('unicode_pattern_value', ['unicode_pattern_st', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'unicode_pattern_value'}, None), - MemberSpec_('anonymous_float_value', ['anonymous_float_valueType', 'xs:float'], 0, 0, {u'type': u'xs:float', u'name': u'anonymous_float_value'}, None), - MemberSpec_('primative_integer', 'xs:integer', 0, 0, {u'type': u'xs:integer', u'name': u'primative_integer'}, None), - MemberSpec_('primative_float', 'xs:float', 0, 0, {u'type': u'xs:float', u'name': u'primative_float'}, None), + MemberSpec_('integer_range_1_value', ['integer_range_1_st', 'integer_range_2_st', 'xs:integer'], 0, 0, {'name': 'integer_range_1_value', 'type': 'xs:integer', 'default': '5'}, None), + MemberSpec_('pattern_value', ['pattern_st', 'pattern_1_st', 'min_length_st', 'xs:string'], 0, 0, {'name': 'pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('token_enum_value', ['token_enum_st', 'xs:NMTOKEN'], 0, 0, {'name': 'token_enum_value', 'type': 'xs:NMTOKEN'}, None), + MemberSpec_('integer_range_incl_value', ['integer_range_incl_st', 'xs:integer'], 0, 0, {'name': 'integer_range_incl_value', 'type': 'xs:integer'}, None), + MemberSpec_('integer_range_excl_value', ['integer_range_excl_st', 'xs:integer'], 0, 0, {'name': 'integer_range_excl_value', 'type': 'xs:integer'}, None), + MemberSpec_('min_max_length_value', ['min_max_length_st', 'xs:string'], 0, 0, {'name': 'min_max_length_value', 'type': 'xs:string'}, None), + MemberSpec_('length_value', ['length_st', 'xs:string'], 0, 0, {'name': 'length_value', 'type': 'xs:string'}, None), + MemberSpec_('totalDigits_value', ['totalDigits_st', 'xs:decimal'], 0, 0, {'name': 'totalDigits_value', 'type': 'xs:decimal'}, None), + MemberSpec_('date_minincl_value', ['date_minincl_st', 'xs:date'], 0, 0, {'name': 'date_minincl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_maxincl_value', ['date_maxincl_st', 'xs:date'], 0, 0, {'name': 'date_maxincl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_minexcl_value', ['date_minexcl_st', 'xs:date'], 0, 0, {'name': 'date_minexcl_value', 'type': 'xs:date'}, None), + MemberSpec_('date_maxexcl_value', ['date_maxexcl_st', 'xs:date'], 0, 0, {'name': 'date_maxexcl_value', 'type': 'xs:date'}, None), + MemberSpec_('time_minincl_value', ['time_minincl_st', 'xs:time'], 0, 0, {'name': 'time_minincl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_maxincl_value', ['time_maxincl_st', 'xs:time'], 0, 0, {'name': 'time_maxincl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_minexcl_value', ['time_minexcl_st', 'xs:time'], 0, 0, {'name': 'time_minexcl_value', 'type': 'xs:time'}, None), + MemberSpec_('time_maxexcl_value', ['time_maxexcl_st', 'xs:time'], 0, 0, {'name': 'time_maxexcl_value', 'type': 'xs:time'}, None), + MemberSpec_('datetime_minincl_value', ['datetime_minincl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_minincl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_maxincl_value', ['datetime_maxincl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_maxincl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_minexcl_value', ['datetime_minexcl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_minexcl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('datetime_maxexcl_value', ['datetime_maxexcl_st', 'xs:dateTime'], 0, 0, {'name': 'datetime_maxexcl_value', 'type': 'xs:dateTime'}, None), + MemberSpec_('vbar_pattern_value', ['vbar_pattern_st', 'xs:string'], 0, 0, {'name': 'vbar_pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('unicode_pattern_value', ['unicode_pattern_st', 'xs:string'], 0, 0, {'name': 'unicode_pattern_value', 'type': 'xs:string'}, None), + MemberSpec_('anonymous_float_value', ['anonymous_float_valueType', 'xs:float'], 0, 0, {'name': 'anonymous_float_value', 'type': 'xs:float'}, None), + MemberSpec_('primative_integer', 'xs:integer', 0, 0, {'name': 'primative_integer', 'type': 'xs:integer'}, None), + MemberSpec_('primative_float', 'xs:float', 0, 0, {'name': 'primative_float', 'type': 'xs:float'}, None), ] subclass = None superclass = None @@ -1086,7 +1086,7 @@ class simpleOneType(GeneratedsSuper): if not self.gds_validate_simple_patterns( self.validate_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, )) - validate_pattern_st_patterns_ = [[u'^aaa.*zzz$', u'^bbb.*xxx$'], [u'^.*123.*$', u'^.*456.*$']] + validate_pattern_st_patterns_ = [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']] def validate_token_enum_st(self, value): # Validate type token_enum_st, a restriction on xs:NMTOKEN. if value is not None and Validate_simpletypes_: @@ -1196,14 +1196,14 @@ class simpleOneType(GeneratedsSuper): if not self.gds_validate_simple_patterns( self.validate_vbar_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_vbar_pattern_st_patterns_, )) - validate_vbar_pattern_st_patterns_ = [[u'^abcd|ef\\|gh$']] + validate_vbar_pattern_st_patterns_ = [['^abcd|ef\\|gh$']] def validate_unicode_pattern_st(self, value): # Validate type unicode_pattern_st, a restriction on xs:string. if value is not None and Validate_simpletypes_: if not self.gds_validate_simple_patterns( self.validate_unicode_pattern_st_patterns_, value): warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_unicode_pattern_st_patterns_, )) - validate_unicode_pattern_st_patterns_ = [[u'^ab\xe7d|ef\\|gh$']] + validate_unicode_pattern_st_patterns_ = [['^abçd|ef\\|gh$']] def validate_anonymous_float_valueType(self, value): # Validate type anonymous_float_valueType, a restriction on xs:float. if value is not None and Validate_simpletypes_: @@ -1540,7 +1540,7 @@ class simpleOneType(GeneratedsSuper): class simpleTwoType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simpleTwoElementOne', 'simpleTwoElementOneType', 0, 0, {u'type': u'simpleTwoElementOneType', u'name': u'simpleTwoElementOne'}, None), + MemberSpec_('simpleTwoElementOne', 'simpleTwoElementOneType', 0, 0, {'name': 'simpleTwoElementOne', 'type': 'simpleTwoElementOneType'}, None), ] subclass = None superclass = None @@ -1617,7 +1617,7 @@ class simpleTwoType(GeneratedsSuper): class simpleTwoElementOneType(GeneratedsSuper): member_data_items_ = [ - MemberSpec_('simpleTwoElementTwo', ['simpleTwoElementTwoType', 'xs:string'], 0, 0, {u'type': u'xs:string', u'name': u'simpleTwoElementTwo'}, None), + MemberSpec_('simpleTwoElementTwo', ['simpleTwoElementTwoType', 'xs:string'], 0, 0, {'name': 'simpleTwoElementTwo', 'type': 'xs:string'}, None), ] subclass = None superclass = None diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html index 1036d4f..062cbfd 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.29.24</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.25</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">August 27, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">October 05, 2018</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: 2018-08-27 21:50 UTC. +Generated on: 2018-10-05 19:59 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 f1060a1..2737451 100644 --- a/tutorial/generateds_tutorial.txt +++ b/tutorial/generateds_tutorial.txt @@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial .. version -:revision: 2.29.24 +:revision: 2.29.25 .. version diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip index d7c3931dcdc7fe64e45b9c09b21457cac2088174..d73bb3dd3efa04f150a3ceb4a40e66e3b62de912 100644 GIT binary patch delta 13093 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 delta 13104 zcmV-0GtbO|{Q`si0vk|E0|XQR000O88+IE_CC`HTTmk?95Cs4L7n5(57Jn{ucyv`% z2>=7dafDkaa)euTcnbgl1n2_*00ig*005m+J#X7E5Z(1FZV8Y8F&!9LDj-XnC1?T^ zsE2l{Y4T(drFa5K*%6Q*-#g06hlUQ}BI<be`0m}~-Q8zab-;j8XT1Ljs}($i9LWwQ zI|`tKh3$|jI_;}Zq2E<it$&ByQmo-#9}&I}t?zW;sI?JOs=@x9LU5_`6<AJs4Orp` z#X|+W+MN4(y*`~z>RpnO<4P&GCkT|GBkP(Ga*NQA_jGdM07r~T`Z3gX7;;hqxNUI+ z9TA3v7WN|yy=58BxvC#k!9D+T9}$mEwl!?j=8M|gF3zR8h8Ov~lz*dX3ngB|#aFnn z*KqN>;#@=h7~P@GHGG@5aA~e!b8~b1K`F&VT>?vH5bjzAQ}mGGNSle8e3Cv~28+o= zx5orrVu-m-t#PmL^st3TXD}qJmx5ByVH%=A(R1ymw6yMAUY&oGOmd%c)P_la;3Svv zxZKh@`D`7?RG6~R<$q#oV7Gg-9ZS92!Krnog*lqw$H=Y;BAy1mm0<_=3tTo73kW{z zuJ?Ei#_PmfuyMi3)#(bFNS!eH_4EkIwAkrauBr_FOk@cjvFDF;By`bZaSJy#gUu*Y z^;ztquoS#qr{E!j_KDs#)a#hoE1apPdQaLefki|SixMu`F@GlWu(mXLJy`$}GAzSG z<2>@j*&r+fTRsi@B8*6u@~~%BcuLeuvG#r}^)orEibHrl5sWUkK!?o2rg?Vn@K_Ft z7N;@raUaR>OD<``plHT3UbHqnr-UYlp{pkg))xER*1%6`C99;&82`(0!T7<-vwH0z z{h9ryResJ@^%)OPO9KQH0000808n-tO$NgsOh+#O0F=g)Y?T?4-vSB;C~|~b;QDow z@B$)#Bs;b&)8pD{qN$U38o76wPRFw(mLe(ui(mm!Ond)(-^VVn06~gmoSB|yB$34K z+qdugi@tvIm?q*u6(-i%>%nAnHV`VC>nP6dUJt5r5xy9RH`CzypWgrU?)I0D--=}k z8$N#emk&4Z#2_4x|9bImJbr)sUi|I*+aErE2!J4N3z?a?1c)*jkH7tKAO_2_%&*4d z)oL|bU5s>bH@^M%@gu^T;AZ<WEWMqhsEh`1G93t5X6AJdn90kRFM0O>7hNS15m(tj z)UObRk`eq#RVf9+2-UAu{P244PG_ac%J6obtAUvFyVrwKJ(gpH`AW=}vM{QAZAmeI zc2F{zs@H=%m8n9Oy6`r?*Ym236C=(>lgle%QI71VBcrQgt`>m18fB^+Gt4qB6E(Hq z)cc=B7>b*$EOb=OksLy1k+`kkq*x}`V_x1uMONjqjfZ?t;@_%elFEz^G37c@qJ+EJ zE6$Ap>ICDz2zVv_G7f^7j@IIT0wETE0Om@(Jo}UQ`a?C3BPqTE-bCu_q4*C~L^6{@ z@g1Q10DpPGP`pLthT?mbJg73B!zTvV85&i@i&p@1Cg=Beg|4#bN_@4TfB5lSC%U*2 zvjiUF`&1TpadsunRf=zO8KE@V_kRxp`Jc-|E&hwpw0pn0ym<cdo9FFALi><^gesQ> zP=)u8N<9y89e^PyNQ^L2a}C4?Vqb|&XNuM?C&E8&%fbea#e6n7JKGlz0}RgYYI=t& z72hp^>@%H2v?NaXsUrzP)<vWWdIL-H_JYwfm5MVl!QZ$zi8B>0E!+t{#a+3O{r3TM zRe^i#s;h?>^if4VvGc0P6SdcW9T9>A0R~C*02C_PYqz{wYA{W^S(FP$B#$mFiV+)! zVtEcf7w~flKhNOjc}s%M&MxHh*&cW~-2gs+N#$s<*vfoZ>fG|wNn<T5CjLzU63@^6 z)a(vtx-4~CZ*erKKcD1}!ssN98cF?ousq*@dU-5VDJ6lt*Z_I48{}?(NnBoTz?(3< zUcFg9+gN_KYx(o;@)tW+2UQ|~dpg-mhk~fwuHW!%3yj(TMXY*#YP><ri4~JXfg|C4 zTTE_kQybX=kCb+84SXC#$*Av<2g4ofR@xh{;;39+3Cs6Iq9vf7s71L=+ToqEU;Mk4 z3z@`su(-hMvt7*cs`UJS)ECypu1DIm2&*MnMSKMI2_Ym7$25+jgjpwNvtlUZ9BlkL z9g2~9%o7=BzSY@rLf2dTI)v4Fe*bHwOSGo&5rk=KDDpxz61I?OoU8#2ooU!TSFbvH zFtT1XiVa}1zG9$lexBuzzMt{b`^CkJ$%~7Aguha%<qFT(526Ks2j;J?1Vkvh#e3p% zEj{tWNJfA+g?~dq?@J72>bG-%P`?4r-l>9LtD?}wkU%WstmF^lG}lEb-P;Vv#;?ja z=NBtkWO3H^us|N+Up`e)T%|%+B}9RuEB9gpaglp(LW<M)Fhs2HVbH>L>vlwc>vp(N z&$E8JBVKi7rIG!A`Z|v8ThXzs*oqNzXX|!i*w)RCFI%qEL=nwh4!L1jj$Aa}v5~bX zNA%BH`w<E*xZ=6B#0HcJBk2$$X*Sge_Iga8LYzIe=>`VV@CU9W=7}_rzu>tkkai&A zsLmc#WWv~s^+PaUVQFK1%3daJKM`TDf1a?MU~VC2K)D8ggE(90fmjrjHazG!8i=Aw z6g<SM;DJDf&iW9O49+5Y9@?D4rZSX6JdiyEjCGC>%VK(6E_;Da-%{ps1zF7!S4LAm zbAeBzDf}v)0un`qGRA{)jfT;#mHZSiiS8M$IFaS4h~T99gGj?Cke3D5((QxaB?#I= zff=4F0lr9o6_A<^1f~S7bku`{dFf!f{n_<cqL2W3_@}wvxU>Q@CXQj!4cvXNLBdKf z=ux~_i*l(zv=gwWs310P2aQNks>~?3U8=PJry(i>>M>i3Dvv-=?7~sL9)ZMI$Zj`% z&=nF^k43DKC`6IpTVQxguek6dyyQ+vX)Pc4Ecal4PYZ>q3B*doabS4QDbw@O`ODGy zB~dxpN#=iSVjz!q65?%jSAi&>e=`*4XOkCC5ab{3{&StLDLULqgm-S0IGLXU9nLO= zZ)!&3b{QMtY&1pU0oqekI-?im3Kc6ZMWoEUh-b<OSU$%9hjk5<PyBFmD?Y??l^J#A z8Irw!Y>3Wb8<mHsw3RRzGfv|&v~OB=Wsmh}Yep?@?@LlSGZ2E#cT==QFr)_9(YWi5 zoGTNhCQ^cF3iLu;m*s|tB@k5?==2&72Q~{ZD5n^5&zHhIFyiAH+(rf_yp#e^g##<F z@!|w>kU%}kG{<0r4giKNVh$tBDTuC45zoJW{qRAU`BJ5_zQIT!4*|U{&_aQ=Hh4$8 zfJzjZTezwN<RAo2Hb@|FadXT_+(5pU80}pm$LeBXV5KYrNRgs0KqM!UO&is{D!_yD zAsD5gIDkhAzyVm$R8(JZ%8+iLpD@*o2!Z4=Wi<mT0Izh;h1O&p)RD-DgcvvkQX&a| zIz+&5dSo2;JXmmjijo6(loxsq9+sBaZ~#tNbgwgd!tyMOu1v6X@M5SMI@pMK&XJV+ z3~feU2TS<e#*K@(0JAl<^<D$s7gkoaF{&dx6QkT9m?WO|sV}gjrM_SJ;?Bs#(PS{4 z{5hMM{FVRPkJC^uuR&uEILPvd%0f$j6=L$|&N~NBw|U-o^#;q8NF8x(W!#CikkHvc zu8^dc!d1v^A%TIH;bWSF?JzfvE(X(!P5eF?hguDpkVHu%$Yebja#xOyxQNjyQY}pp zU#h3D0+?{Et1v~s5UwBv!;9T#dgYM69851ak^dQ>2@8#?Ggh690BC}s3514!mqBPp zAWSqbWWJ>O0+=npO=Xe8>)BxXY!fe3-+Gg%Hyv@jEkVjW2VX+YFf_TE#|u!ZnOe$+ z7~2hu%k#nX`6e!J34-W@ARGijY*P^r(m+&M6beLl4q=W?!^TQE6u$u!M}1o9?H0V- zvvFTYVPqa715*^W!Y8T2?ge6h*Q3LII`U^M0lj+r@rGZpLqotmrH^4aYR3#j8Sw>s zF6T>!-b+NUM}^-Cw?()u-ofK4!QY2zDGCUPyNSz6vU;MvRvsrOXM^cCJsQb7MYEIa zN9DNq`-F_hkM0C=e#q7%1+iCztwZbhfK4@iVE(`96SeOc#!z&Dhz7`i7eLjNDi0^M z^pPk6k5CsI8lDr5eOUes+r<P63l0LwpM!9W<wb<fLog`)*2H&ZlM6<yM;8dOb3_co zl3uHFq>m#6FTzy;;b$mA2+YbbDq;xi!=)@TtQ<J>E*ZTZT_E%>5Iuq;q(C@hh9fMT zW0AWIiz*{d5^_BjWb%xEG3)bHh}k7#20)0J2xN=3@Rjx`1x7cE#m<Ii;2mCU@u0Nu z3&{L@87C1u3n|nG3$}{OWthrGJ)c*F0Y9ohkPDz7gea35GjIwo`gGu(1t%;xf#3vy z`-#8_3l78fOiYeoYCpaleTEr?IL_8IRD6NB_NYZat_(_8P-Jm`juAeRIJ8!Jfx(^4 zd_oiATm)o?K+?MSXYqWAc=qTAMkWZ#W(5}1*GAN!T;gyHJ;B^lVx$Xp7=U<OAa!Mx zl;ML+s)m&3XNY2tqP+8<2%GuGg|JWrL)on>kf`jJ#u(+N41N+p6<_b#-n2p!^X#2t zPzgAnUh}L0)=BMue2u{BX_0cn5sTOK++{|V_H{C46R4X7#kY9^9E8YrrHgwYQlYE6 zCH#e?(k1&tj)UbIQZFE6T#BVi@<o+kvY2RnFC-_^hB9><_(K*f<Q!s(TxPK{ZIF<i z|Dvk^^HK*hW^)$BfPFmUmISq5ulOEb3D}kvLh5$`jUCi~ar5dO;4p3~v$X(ri2zuL z8VlJ=P$6f!Di5x4EJ404>P@qc`FB_;sZ(+uduP$C)Q<9WcP)z%qBQQ{bc^h2mCL9E zgcXiBn<rHS#;AuwBMZ$_8@S(rl-jEfBwQURIJ6E#WgvnX98(4oei<m}mVpiyiycKH zfkmU>*rJhtXo^O`p+zInQ#1<pFB*w0MWdj%Xp~!l^Yb9fc(NQ8Z*$eH?6e9xZ#U|J zf}{k}7RSxni(0{L_!fBRIMeVJEL_Z0P8;Vfs*Ee2#2h5Y%r;|?6c}~^)SzAPXaQvA z^7d7nBp`G>RY5L>8c;g3U_(i$23C+sws{Rcu`pME(sY?-pUf$qF;wl&bzUVTXAr>_ zN;SfRo*QUfN-#cD+-v2ff#U}=+Pl;bRv3U%L~3RN(8Jbt5R8LM-B@h5<8!>x35(Kh zonb(vET`<a`+>v9((MXrZFVVkuO$%{fnW~=KJZ({W7M&5-%781ZL8_E+_oEgPfBqU zr&vvY6DOZPqey@Ld^)tjs!C_T*#`-(ZI-Bj1YRcbZ(uokctd-z@^7B9PUYvv^>5ZL zWl!+M_^WGGW7GnNnk{I+I$O}t#Zbg7U7cH?1@gn(-AuVQ5JtGi!0W-Zj^JPOQB^j> zzQ2n2Ekr@EV@l`_Ya4b9X@<Ko^XW3&4Hc|^skih=ii0evq5%%h=Hy54*H^+uZrFT5 z!X8Mt5GydDPNEQQiBZ3yKW%~m+>8z(y9EndBn+5@Nqqmr>9Fx{he()PJUaF5=+0fU z3UVes!Rk++xptP2yIR(Su-UT#1;-E~Ll?wRz_;v1Zqaapynn#)dbFaxjnDQrW-aW0 zh^ky$Xc@H=B$CY5A_MmVb{L#(Sexlnwt3{-_3XbP=@8%r(3jw3-N9J-7VaSA0!B{k zft)qN_GE}Y5Yr8F+KvTWfYEAwfse`n13dDy>-dA(8j-oLeF2BDw0eX(<3}$H983@j z$S@#rFE^a%ri=6=DSU_yT`vM!kG`jWXG5+EyXDljrB#Lo(6|mN#!mqz0IomXoI&=A z4I26Hl}zrfWwrV^6n=2b&BtvGJQoDv-MigEKP(NnSwje=kS)iU)wL*RY(!FFXGdVM zlRC6IO@STFm1!*^RRJme;=IIa26_X)DvB4B1=Xcf2wrsN5=zw$mayvJ#gMIkmbJ~7 z+k`zlK!-~snF&h3P;6FgaQFt2LrZNNwVS103H&J=3i<&pQPVz0deNqhs4;IU4%;dV zeO<%-3JeD}6+3kXayoTYf#k+!`YZ}OpQIq(;c=ymQUV~}PSUqib*6n37YZYxb<N^W zMs)_Ih{{}oc)Bw1&!WX)5r(*budWN^)0?ls*1=W~A!f{>;u3St*q{!EiaR*DESIAI z>`tajE}?*=R0*UP8nlNexo~@?Q0OJ>gsY|Up5{{IoSFz2?XfZ{zy+;FO_}diK?Y2^ z`e0A;>j(rMAsSLe0(YP+Hl58{WSz~y^E?yeEXqS1*$mXR55OTfIe+_q@#d5a5fuoU z)SOc<0KkYH!7y;$O2hR&%RHtJjQap^#1Hu0=+Q(TTj{<rhe@t=i?wL1=*%hO#ZjNI zadO>Mlu~Fgu9cO)Lu0IkA5OKK%Zo&k6a%?125Im>V-ML<AkBS~I2=N&#qS~)ptO_) zmahxd<13A31;J7sjX1M^nFY=VDVSZf^T!e^B#*I!V&t#Hw`_L5fDm~^*jQ_twRtjO zqe1w+Zea9N@h2Q%*J7r@XEzm5AW57ub9*zxFQW_xBTFntjU`(Jenw}lM%)qDwU9YK z1R0yqlxX}Umy{upim8l@#k+E)Z4~5T=vwBis4iCtjN)Mv7E(xm{sBRX4=7tXkOLOT zn>TMTnx)I6x(D+mgn>BP%jw1+paNX01HYlN;I8erpCC+~$<4|6)WgSUlxy0c5Ezv# zcxvvC!amZr4-i<vtDTuE!&4Yqn~~o$Su@=+J%gqW<b4s}Q6-FreaO!moFN5}DLZw8 zJ{T*DHjD*I))Ab4|7?!}Mo;JfSa7#{%}Uref&>it*JcRvn1ILP`5FtBXOoeA>xr<V zy{l+;N4REd>@`yzIi|5nh*YpM42*=2P^*H2?OM)ZL%&r{6AwGRNB?INo;8NO5dXSd zH<CzguQx*Ahe(8#svGMaGDr-yY;b@LfxLV}-`HRS;J3kl+8fa)tTKr5Bu7V>R6)i_ zBty}G-57&%18TSCVS)PO)K=g+#pxtL{M@Hhpn0O)LaD9=w~yY_`p)5&j+@+XhQnnc zXK`m5^CN;XEcF<+)+L6Xy8NelWkXj8I#7G4^y5m~Jq7KcQ=)BEvOgJ%`W~ecNA$F* zeiPX@52j9k2pFjV%ibrv`;==mxS_61Y+T8L3TjYwkwn{?^W$9QCAn<WJ`vNn5!X0Q z;=4>2R8^&KGt$=uPlqhwjD(5;N)R{&nW-i`kxT|i#_nQleYV;)Lj0_4RpBmvU``0E zu}Gt_ih-U)+nzDn554GK%*$_GplOrMnv8pkX(M=lJ~H%mJUAHgnxM&RSU3n7)W5AW zMvOvbr6Fhw*$Fq^HXBv0ptD!v{=4RG_sj7AsIgpI3iuJr7f2@#b{;kW){!J-h!A8b zJ2v1vO8|L8%af2nZSe(#t;%!lJZycI%z|Dk@r2-z@t>gexBiygcHL*=z?b{D_+_iC z#+ONd!`aTpnI6U95+|hX@Cp_F)XwX)oa5m^{|@Ik>G(1~&m~g*!2#$HxposUS7wmA z4s9%zVZoOv+R7U1w5KTw1}9uCXkw}+I<5N3J(2cuspXMGY()fZGCrZb2M?R?r?Fph z7Ts#;FLq4FEl43~1`BQO<CI;2y%%XKY_{ZoPiX#)V(frgwy-rWDc4|E!`{?1xL}#D z{$?U?kF%gV;qw-P`60lyjlWu_QN^%?w=rWAq`KI0d-om4Lt||G=FU1lOlF=a86s|I z$&`$ob*;ZL^#5VBCrY{$LWzvZsRl_e@ntmq&L0Q%>h)a7p=dCsuf$Q~mOkVlpw;Am zu1osNLl6^hCZIcw5m4!#<B8fafHvQ=cwr@T8&vemoYc1Jk9CXL6{6@&--p#*4?H_? z-R9Z4i9D_S2g*cDB(s%Bvkr-VsTC4i_w)iw0GWbNi_`_y*z5qaR-R<wN*`&})`(;n zZ0b6W3B*`e2X|CZ>hCNosHM3F8kbFfSVE~Rj_!27N#Ft=kWBx|Z28@_iS;&P=N2^c z1yhR6u9lMy8dCyCy}P5GHto=+_+ZC#+K%I-2{0(RW@d+$>8A~C(F*Ruj~jhiAfpF# z<c;vLuW9azb0*Z7+r$P39c?M7|Msoga)Vn$U-%9>CpE<?5*9i*ig}u-BWBEhWnv?C zPH7!T8}irt7CEElm2>K3v(&lA=tAq#&HdV`2{#3d#B+laP7pSRB|mLatW-1};2TWt z3|dCG!Mebk#j?uhnibZ{@ac%6)oZ)erl$BHaD!cT3%CqbgsFzS;{<LRCh9>Yr}g+( zoVAk6ps@;`C1Ahkrul9%p%x2&@RBxn!s~IQ=p_cs8rK4Kr`hhFHDZWv{fMe|7*ta0 zvyLC}U5%4Vk!tTGk>Uq8FH4YsoW4*g?kd*<_L0FVeMMgs<q8Bawr^gpYaoT_Fh5vv z%UqWAOf~khbV<Ffy75vcNLB<n79e|PUgP)A|2K-~Wg~Mg0q`3)p3Q835;i;EVZX~m z7a~Jv^~ue1w))HW;5ZCq<&I-GNZ+^{FxwyxuE%?=(rLZ(dJONn17A3RiHeRv4rs5< zI#pnYqq(2*Kn3mCkdwfx;>0Bu(75o&BLj696!56AH(AB`6x=^;kK8#I?NwF-qRXrv z=Hx!RJ6rmvpVVQwcS=Bir)0JyaIe;<^^u*M<KbSZUiJ+_;`I|SLvDPUN{2U;TY;IZ z5?Ktl?Czl!6=R#Q0taM#CbGZ7(y^_;c|)Pr4)Nxl>h$>sq6L2UjFibk$+xEtBE}mw z7HGuV{?`+YJij&f2gj_=tdb5OPu+iLfvq>w1ZTCRt?FSd*Xo3SQ<>}%hbq9QrL8#; zpi|JQ3K*OTD~teDj}ziRaI$YKYal?y9h?6jCVfi3QO3vJ(>T06dOJqEr^A5fHTd4H zoX(cnk&UWEl&yeDIA)Eb<muFJYja_*4DX0<_1Z-4*0t(cs70<JyrLq}974H!xGxP0 zV5NFb;c`{p8*rk3cKV1qZVk=Iq1tTg|Ju9K=QfUG|9$_8O;ip51qVq<vBMOtqA5yN zg_2StWH}|fP)lM-tpn~dy8ubN5Bb~Q^flL>04cq^R9Iz;++&WO-kCmr-3?;NR{B;T zP?^Y@Bl>JEqH|IAHygQ08UbP;+2f3Jgwrtiek5o=S-Pfw5tIWKi#D^kN3)?(A#tBF zmI;V&ag^0fyfgD+cDVw>j&01j;J_(#OhFesPb0Ikf6Af(?u{%Rvv0@p{|)(5;L{QU z3`ApB#5;lgSHpFh$?{UQMoX-=-4&Uk$u>8~W`z=jA3?s=I?GDTkRrv8+>usj{KjGo zEn&vA?ch0oOK@v~#7>ZfD6AYpQ01<~4!y7C9*k?2Oj|-&?SqhOc0SIH#Y}%df!-v# znVUOB`*+*I?wJfgBgyU?5rh&2vNA*B(~J}#?te(We`C|eji%bL9r|_vE#m%|-GcOo zpIZPY2H0;GxYf!DbD60buCtV&vLw=6fjnY`s%!0kj$aBi#ve8eN=slX<;V^i`)EXO zqpz3`sM4=e8;aPRO#xV7uayPvlWajXkHDA|BTv+@FW0EMSwP9i)B8E%L#!7;gWo2T zHK;b!pyIB-Cf9yYMr3V;cez@t;nkw5z-a>WXtwsWVpOFQK8~E6NPNC&>4wY!60k>e zrLpmUylvoS`;>{0)BxmFKV6;m1q3su%Y*$OR6pvQ3MFi%4_od~XR<qZo28K3R7qo5 zDu3je+TPUtoGxG+@IxlpnSVe0ExL*PtK2pGc!L_(3`Is^4`5jC(+mfGysig&z86t? zzGeq8^`j(ipsY18zA{D~w%<Dy>m9z!8&q$9pdW{0m4*oCIwEo)6ooGJt#*-Ccy(+K zLk1A|1kqo`fxDc+BLpN=EOek(A9|@+eYjk|`Zuu}I2@h4fEW2HS@Q3g8JT}q`xO0x z5!oI$U^;w$4ur_KkS5MyGs*Hb{~29^NlWwAm68{H&Z00*Jb@dy2Ps-N6`lo80LIRL z!*&@4Mr{Uc#>&GqBOKa;x))!)M0R4%;bU(!!jbHU-xR&@8)t-?vEYIJU>G_KgEVj$ z#^L~vVeC5{{b`#e)#-LfeW9E?e15%7*+Id1aV%dP`X&(!UF++u3H|GADEILcB_zuc z2CMk!7tj&P&z^w8g>LHSUDE($<0i^~NMZ}76C*MqrZ=Eu)<ZNbsS^%jbHE7#?mGty z6NU7ovDvW$DG<xl1xE`(Y!G^bs5c$m$DO-bI>bWBu=0TyPxLC*{!wr3`O^T~%^8@L z;3Qs_SR^p$l#(j}%`Xw;y3hzN*HdBZIa!^wq1Bs@2qWS&3KtseR>LzV7RoGt$}d?u z<iKn@lC<A!>Eiv3gKWi87jTe@2`{yy<!mOhhCwr=NJ3dGn5t-`_VvEtr_jjQ7C3l! zcSj0mm%u@Jcxdd7JRA0tc+sbYKOM9yN*G)R^qgXQ=@Z|j_F1<h-J#$tzVIPtxjGB3 zGZJp)StrZOJ;Ptqs<78vup<S3Y50drMg85H6(pb(FU@|}V9S<JSA0;?*_eRWX7?bz zbhxDK5}-q9WMUC>AS#p}A&;t`p99ce>?kE&3oX}~9eYe!EU^)tv}QsUZEpv83*ZPb zy0GW30)r@l51gC~479Gg2Y$LJO*r<HcRJ8C#lDy7eV62S3>YhKD3zjre8-R)0m82f z`PG8s0|@In3BWyvFs(jD_OhTs&nXE2F-TfC?31VhTz{Ue;26N~8Jq=}qezY1X$F3h zxoW2O&0I+$VISWL{}}Fq;NeQMx-$_hu%!bQspbdC+<pT^TZpP=0hxtTYw%-{qt?Z^ zSk4ur48xs45a3)t^`eD;VvA*O81~NMWwC}|AcfH)iF>~eELHCPN<@HkZk_%RYw$p5 zujLi!c)=eQvdZ|;;!NloQU^#t%fCzi=!fJ%bmXdwG&8s|kxRO<3ANVT!Cp%TNU(df z|D>gTUWfJ`_;36&;O~xNXjO{DZo=lq85CKJtcj;|QV{9TQt?}VX-UL_Z;@nDP@b0# zYP=h2xw<}&iWo)z0$8s8F2d$q8#QiR5eJCnY7f1^svKmCi=Dv1W*MZaACgBp?`ZBe zrh{|3SS{f4c9siHYT0PbxR({9?+kp1y4t{~q-9fvGom)jhCc+^fq@G4k{~6lp>1QB zaM~-GBw&JH$}G`;yu9}@O+182qGXDIZqv(n#(!YsJ@_WTw>_(45^MS;Ch1_Y*wRWN zL-j}5m5-2f3b8zRb_m5WFt<U;8d2tz%`6hvxaYQHlwwJpcduL6=xPPAYCAH!u1w_) zYd2K;x%|qCB_q5#VAx@c<5V={&U3OqmBv=7b!xYor~u%9htAT)+VP|4BwvCkw6lGY z$}0)S0)bZEW}&UuwdhUmra&UT8PsbJ3fO@-yw)afP1q&NRK+j?hD$^82Mo&w=b;k* zp==b!$FnxG{ctVTe1PHp230_mu5qIgn)qd7Jd(P=YN5vUi3SWfHTcXzXwlbuL@&XG zwp>)~M(uuoq;GzjTlz^!HXt?SdO>;$C1;t@^4BRWAW%3Gz?W89utWPy+E#JN<K-%s z$OW1)1^&^%DD~1o*sQ#`<fx(;J%Q0Hy&nK|6Yuw06sKKBv+|C2tGQ7xd>lU8u`eOE zp-Tq=&2{6gyZQTZ3E&5lNw%Ms@XPXkW3Z(Z_#@bV!OgY-%Vf$n)@12_m>B4zabCHo zqgU#{x6S1y$%jT^qNWN_@f#?kzKX#7VJUO2hPsiK+Er7n(<W;>tI}Bg&T6#Qjr*$7 zUj4pmHQ2h|d`)(=@lQbC*_T<U!;>G5-%r2NLj7<&J^lMvTBxHR58t1>KHh$zJd;CP zKv_e7U4(A1oGr^H5FDp5y;MtCgl-0s`&Ug6lL-MK(cX|;A>>|=t{5&z7Prh`xUCTQ zFv|l!A)s1DENh!x$2k)S?8oR8h?i>+oy1ZM`0of{nd)CcRs$%qptR>@>$3&fE+w^) zbX6j#tKHc}X><06d0cWJjcmMpgIEs<445*1ez3{LX(_NGLp5&PN+}F>alnfs9L1Wv zj(tJ!6SZTd&ZwFf#sSa`g7YR$3#NZJ9V!Vz1XV9g7nP(tfJW#>If0h3!D9u^kfY`q zVslGb_i$ANku@<{Xmd_C!-9AiEf#=v!mP`bmy5y-MC=Y&>@FqoqF|V22^%eRG_M(d z&I=GnUFB@pw4Or_OU6aZ&OhFvU!H4g>RqwV!%>f?#r~Z*nXGWc+b0->xVN*jJNfy| z$tgZ>?X>~zlBy{|>Z3f&o@L;p^X14aJW|QM3pYVb;s+*PvyfSS5#PZR6-~P@I~zC5 zF8=2V@a)z`Uq4vO`cWP$G={6~jM6@TI~plaJ9%s3Es1WeF7a5ZnjViM64#nN62%?S zGRwP9O?t5wV56mZpk=|(B`a>NVd#@i4MN1#L$)WTwRXyOU*SfUVgp`fe=wNKIQPfD z6~`p=_AWfGtZPbXhgqI1tH+FW<~M2%Yd&LYjR#<7O&i+UY&ox1vTG{W1hUhAlXltZ zp4FUG7l<n{#!FYSuu>~*8@r&h4gR9YHxf7l9Y~U{0&f-WEj<79O->ExzsxsF@&R7= zkG{>U1U5~q*f&Ario{%q^rK0}gbM87fQ|EOlxAc@H7uK=JxbL`U3ND+K6smaA4P4d zkHE;3F=VC!K$ss#?jo3zmay-CN-l8b?Nr=p{JPp|k9GXY9;h@Ke{D{B)rwg5EvYlK zAZZ&oAO;A6VoyQLL8x;8ghTFxCFZL(akOGU#vlgVAW;J}fF{RY9E!U-aC0|E96XA$ ztcKRHZmHUYfho4^L63enSrz$2?Rb+oy<uxr5IhPVRqr(F4&HpFeI?U>RUE#}Zo=@- z;qJ5jXHWN^ehXE!cPx#J_cw_i+#ByjV`#{-Q_JtA&CBsa$Dka{!h;Yzc)?F`ewG#S zj9!JyFQbK0SNiHqQvx)mM9bxFijKh2<%N>R32R)s#R36zi4P1^2k5HnKN$q&hLW=! z6gnQ;GGCL;=urq=kfj`dV6pI*;GbgBbqe}rRy_>UaOL3fC8geZ#4sjzG#B?d7Xasq zLe_`3$JjGxfCyqri1r$rIL`Bo?Ou8^G@)}ljXzF`V~Y01&;Dpk{WM42$=G?#o%E&? z_m`%P290!Z#-(OqO-2X<@7EEhL?9wkCmL1KshLa<L8>m~Y9v{IH;T1Ut&(y?y%dZ= z3wLQa+O+gE6R?H79+Gxl>DNd@d%Ql?x=^l`dJYA<5YQr`HRBF^_|P=ngszRWZ6R$} z^1@FZB}HsM#{IpFk_BbPVA7R7csTw6FrPv}z;itibU$KPrTXM&{l`&$Sq#I+kN<HC zzp+bFQK4T?)taM!0O7zg?jF_M=wSkpBn_SBiAAIm0KRJvA4?1_AyvLq@8DGB!!RCS zj)ztoA;?3RD>K$0ud%*Qoqm$B{Hhp&*l2t_J;F}(MA+Y{ggNsNC93o(WV>|L<1CLX zvNLt~gH&<M85NFGC6fV59E827I8TxuJ^Dcji%LNTv$hj|n_rij1KK1IjuJzJe~W&0 z_8U_ZJm8W~L|q-T3<DWJW^lc*SU9=BM-iff4=fS>3v1fb`gG4_MRcnlK-#zHy070R zfRD@AH_>8OJqb`H^@YI@$tgeZxBjFMdut!w8KQbND1QMswfP-Foc3JTKD<})h79AA zdJWbaUKA96lDoetQLX%X;SU|V-ZeNTTnZuu&Wv67@hwvc{u$>nescZZ2weEHp2IWz zY(U)bqOQPAjLbwjhi3wH@NwR~dXOBO1#1y&+)y<-tvrGfM2*|`z-9cRizb5>Js6qC z-FVl*Dk50Nfhuy-K2{MQ)JtARCmVcLo}7a~tGMldElk~_G%tvl$~65KSv~_j&POYv zVRUBU6v41*|J{UJtXs;uWt36b10tBA8HP22YQW((i(N&$idAY@A+tKrGq4Ec$(k*r z%RUqV;{m8YRcpGpX>>WehAdloIvZa_%k$6p@K`-I7+>bu>bmF;K8<z>fCCL4@qkd# z;tlP8b5!8IA<Yh<8*9e)d$K*c&)Qpr`g>?z39K`_pQMnt!`gc2#4-oE^?)AnTQCkB zz@zZtz?HtaIdwXt@fpI&>jRmoc`_-G1nwlKNZp?859(D?q3*-f<9c`Y8=N}w%J?F} zYCP7+)e~ckF!DyJv>!_Q$BF?45iJ&w&=yU9Igm?R=O2YDFW$WwTg220YmiJ5mfPlX z3(@EHOWJcsSrxNF=gaIs)<9DU-Jmc=wd%8jUT;t}H0BiUz-EzCJi`?q&@Un+fJjJJ zUcVEWQU0!EB)Mr?`Y%KMCoxn#2XP(2|L!&ax2*99zuA&SlE2-@zoeQg%I`LqGclEa z`>gS8LlSye=r#kw^=p_>xTcaP9e?r6pakkhFfg6?Z2IB!@YV5bdi?WLjgQ^V*8hVK zMRXbO3-Iyz^XFjuh0iQWFPK{i7g2td^elK^gh~RtnlANl<GW<p2Xt!*&I?K+@SJ)` z{d)6hcmG%6XVrTjb;$5{2jQ+I4^fwY^q3wcfRI6b-7%tve0_cM6bvB&*%ApoLrrcr zg8|KEtjIl*@T&RQU*LZjuCdHPL!mymLFj%&7X&#V8KBhymv^PUjwNJK)v~hv-{RL4 z)G5ox>!zlVs88=RXAICFvW<sGm00XHntfx|hyij25gC+i6ca;1o(6Hm+~Qw<gg<Mc zoz~4O;wwBtSS3{v>m;kBtG*){1puYCBLjH?&(7KoVQ32vz%<j8a)7F*L}>v)x&jB) zOec3r6zZ_K_wWgo+8ae92ml^Yq4&|}C{N>}vxojE`3@^0K+$*j1bl~-vo^w*>Iv7A z=WZO&p#gwl`4oO~1BW5Jrh_eiQ1u00Z6AT*13P<GyNAE4ca6LBd}3W(VpY!&Dvsp| zLV?za5+*8adznHG`3iqwh35Wmed2!sVXzLK*D4)y+qUVfJYb9q`O{9_?XNS^Y60QR z>8ncl;FsWZoo3fXQV=7aa{gQk3&DvSI7-f|o@zE)-@(k12gwb@8&zL_nRUW%E`z99 zl|_)RC4rca*%CflWRERHi}UPyy}`NdmXrdqxm>aeQ{%?@O&lPm0VP|#y>{$|2~di1 zq(rZFLil-7TrZ-vWFo4pc7(?>h!;V(h(Y`kCBVqbgVZ5hvAi2n*de$L@;L<(id+yn za)CbAN!HlpSYKuV4!j(Ho7m-ae>%!nDT40sbobMUbvW9e(a~O2m<Nvbr*O1OeLy_0 z%PGS&{?62xr~}<eLRk-8wLzd(<&NQ81h-A80Aj2Q9eQ26C?>VzUayv4W;oprFMQ12 z<h5U-1W3>0yE}D+Urqis=Q24JAY&WLt**aW>nvp4Nr9+O?=k&<IzMD=@zll6c<0%U z`q7XqL80>fTqAi~)3;ctW(bYT)y7EyWbO^;9Rpm3AT1?Zr1*w&*?B=DlhqCNvEIZB zfW^W)_8sRH4KBWf@GW@MzM=^<5nQ`Y%;KET+Xb~*;cYGK@Z)s)H^mMgKYkp)KmPgW z@zJ|ClYhPV>xUnIPu?89?Z6Iy4^Lj7PQ!OE!=ra^r-w(=(=Wje?~h+>#}0?@PmbRn zZ^jNM>Xi-HVfy~?r{j~?Z(n^acGx)1mo_D;J_qG2ZwsopeTFfrBhpOafE@{fFS`g# z!4=ro@cf@QR~~gvosMyRP$&+HQFadF`_u2g|E{J69Jb?s7X`4+5xkF)aTyjVnR94+ zdK0G!K=}<+6QqlCNN4~_$ggy%MvUlJ;(*%m)j?e(N|$fQiP$CIv}8yaabmj>z*|OF z(Orho4I@tCID#aOqus8-gx@M6Rl(sUyPTUwPsdVtDI?v4o{$EPT*OvMA*=k22w@xs z)n4AYJwcy;7u4avuQAR}XK!e!0nE*ErgUqP!7fL^Md#;O`iJvEk}DjJbg9h%UthOe z^3_X9ALR(q6&x|zHJ$kGcd(olxa;cW<QO{ciDKzCSW1-L?U$8qrbN=HXf-x*G)tFU zhZ3s7&#J|2dtB+VXIxGJ*B(*RCR&i<P1Q8|tHm;Zxl#+fSP#Op2sSN@SG8v(MKyH( zkE93+btHmqk2#r550rjzU{|uH@<K?MW}8!z^7NVsXVW2Go_DN|ixN9T1ZNje{#I&| z6(fkCSEoe`$0wA~TXto#KLe9h80e;43lI}Q>Ku^0BGf&F+>^s(KY;1sR>-XRjFO_b z?6&EDE|J{DA_Oe+Rb0I}faz6w1^f@FOy^SG2oAi@HVgHcJ$R*oZ-_~P)<6;Dpm!HD zH!p?Gni_u27W0C46^~$u=fes`VYIl7);J(k?Wle<+(>khFb+G2JC?Mta@$g{yc$B1 zkGS&K2#4Ku2in^K=BQBdj;v0kh(wa>@@CY3iNhC%5FVrGpcHZrmGBbrV&11x?q&?h z2&7%p0OdN(QIIj|M=3jri3NfJZxS%4^N%1On5tN3YqS)|DQ>3*mhu@^w-Sx~(xibN zQpps^yUGzHt{Q6&$NyJ>$JYxe)LR{P{5QCFVs3Q|IL6ohtwW8~7T+x{v~!b6-~?EI z>i@(QVZ$%=y{{L;oInl<NI>~D!kDWjc&}A|z?kDr80c$80dEsz%VBlaK4cY*@xvdt zk7^xHytvjZyo_?iP!h^Ye|h1iYM)LiZ@w)NbjW|Fw~HFfEKMxv(2_GsmbuDjhCaii zf{D~2VJxhJ{3i$!)17-8w^YF9nBnMuIrayYO@X_x+(u2RX5bLr;G`klPFaMw$RK|u ziUqlMEu4JcsaUsFuT57rU*0J>^rs}gH6^8}bRozF<G=(PX6Zfz7k)R|`EIoLZMe6) z|7<7xFg>!Lff{?=i-rpqlxijZ{`(hv3kE?>jfZGASBfH)BF_OTs6>dB(k!MFsu}Eu z9v=s05zeyt8vccsz7PHvvqds2hY1^Y8%-t8g8E#Odbu?N#c_m_;Jh3lP<9(l2E!jr zM=t;Xl*Rx67yuXm000000RR91w1KSxlaaX=li&gd1_b~EC~}085V|@6Mw3grN&|&5 z0F$9I6_c&HKmpH_?z&k5BWshvycCmNyGjB{Y?Hyf6qCKXNCLHilfk?clN-EA0tkeY z!MqcbdAvpehLga&S^^A)lfk?clQ6wX0>p-s!MqfckiAL)OOxBZT>@2=laaX<lTW@a K24=Yc0002DvA)g# -- GitLab