diff --git a/Demos/People/people.xml b/Demos/People/people.xml index 8d2460cad8c83a59ee9e6caa4a675d6d5a930b96..e41aa7fe045ed2856617348dae55627cab3076b5 100644 --- a/Demos/People/people.xml +++ b/Demos/People/people.xml @@ -77,6 +77,7 @@ <elnonposint>0</elnonposint> <eldate>2005-04-26</eldate> <eldatetime>2005-04-26T10:11:12</eldatetime> + <eldatetime1>2006-05-27T10:11:12.40</eldatetime1> <eltoken>aa bb cc dd ee</eltoken> <elshort>123</elshort> diff --git a/Demos/People/people.xsd b/Demos/People/people.xsd index 965b65066c69224783358552f5762ac2cffb1c9b..b474b5d1f839da9eab60d481bb344abe8b73fb74 100644 --- a/Demos/People/people.xsd +++ b/Demos/People/people.xsd @@ -94,6 +94,7 @@ <xs:element name="elnonnegint" type="xs:nonNegativeInteger"/> <xs:element name="eldate" type="xs:date"/> <xs:element name="eldatetime" type="xs:dateTime"/> + <xs:element name="eldatetime1" type="xs:dateTime"/> <xs:element name="eltoken" type="xs:token"/> <xs:element name="elshort" type="xs:short"/> <xs:element name="ellong" type="xs:long"/> diff --git a/PKG-INFO b/PKG-INFO index db4abf916435a5f62121f757fdb720a8086ef70a..b84a8cb6294e5b713dc6c73fd4e57cae3153ddf9 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: generateDS -Version: 2.8b +Version: 2.8c Summary: Generate Python data structures and XML parser from Xschema Home-page: http://www.rexx.com/~dkuhlman/generateDS.html Author: Dave Kuhlman diff --git a/README b/README index 80ffe7f08129892270b1077ec89f6f024436129f..8b2cc14900a00bb1cd52f2a8924e457460cfff18 100644 --- a/README +++ b/README @@ -16,10 +16,10 @@ document. The class definitions contain: - Get and set methods for member variables. -- A 'build' method used during parsing to populate and instance. +- A 'build' method used during parsing to populate an instance. -- An 'export' method that will re-create the XML element in an XML - document. +- An 'export' method that will re-create (write out) the XML element + in an XML document. - An 'exportLiteral' method that will write out a text (literal) Python data structure that represents the content of the XML @@ -141,6 +141,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Change history -------------- +Version 2.8c (provisional) (01/30/2013) +- Changed generated check for attributes that are already_processed + to use a set object rather than a list. Since sets are hashed, I + believe that lookup is faster. + Version 2.8b (01/30/2013) - Fixed missing underscore in reference to member names in generateExportLiteralFn_2. Thanks to Sergii Chernysh for diff --git a/generateDS.egg-info/PKG-INFO b/generateDS.egg-info/PKG-INFO index db4abf916435a5f62121f757fdb720a8086ef70a..b84a8cb6294e5b713dc6c73fd4e57cae3153ddf9 100644 --- a/generateDS.egg-info/PKG-INFO +++ b/generateDS.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: generateDS -Version: 2.8b +Version: 2.8c Summary: Generate Python data structures and XML parser from Xschema Home-page: http://www.rexx.com/~dkuhlman/generateDS.html Author: Dave Kuhlman diff --git a/generateDS.html b/generateDS.html index a24901645a538dc841908fecb34a68e9a61cdab1..2c56439fbba2cb66ad680edb83fca6b3384d4f29 100644 --- a/generateDS.html +++ b/generateDS.html @@ -216,7 +216,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.8b</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.8c</td> </tr> </tbody> </table> @@ -225,7 +225,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">January 28, 2013</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">January 31, 2013</td> </tr> </tbody> </table> diff --git a/generateDS.py b/generateDS.py index bb1d880d6d9f3d92ad531178797f62b769730d2a..5d7e56e3b090bc5c52ea01592b5c29c8b5514973 100755 --- a/generateDS.py +++ b/generateDS.py @@ -155,7 +155,7 @@ logging.disable(logging.INFO) # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.8b' +VERSION = '2.8c' ##VERSION## GenerateProperties = 0 @@ -2071,7 +2071,7 @@ def generateExportAttributes(wrt, element, hasAttributes): wrt(" if self.%s is not None and '%s' not in " "already_processed:\n" % ( cleanName, cleanName, )) - wrt(" already_processed.append('%s')\n" % ( + wrt(" already_processed.add('%s')\n" % ( cleanName, )) indent = " " else: @@ -2126,7 +2126,7 @@ def generateExportAttributes(wrt, element, hasAttributes): if element.getExtended(): wrt(" if self.extensiontype_ is not None and 'xsi:type' " "not in already_processed:\n") - wrt(" already_processed.append('xsi:type')\n") + wrt(" already_processed.add('xsi:type')\n") wrt(" outfile.write(" "' xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"')\n") wrt(''' outfile.write(''' @@ -2237,7 +2237,7 @@ def generateExportFn(wrt, prefix, element, namespace): wrt(' showIndent(outfile, level, pretty_print)\n') wrt(" outfile.write('<%s%s%s' % (namespace_, name_, " "namespacedef_ and ' ' + namespacedef_ or '', ))\n") - wrt(" already_processed = []\n") + wrt(" already_processed = set()\n") wrt(" self.exportAttributes(outfile, level, " "already_processed, namespace_, name_='%s')\n" % (name, )) @@ -2286,14 +2286,14 @@ def generateExportFn(wrt, prefix, element, namespace): name1 = name[len(xsinamespace2):] name2 = '%s:%s' % (xsinamespaceprefix, name1, ) if name2 not in already_processed: - already_processed.append(name2) + already_processed.add(name2) outfile.write(' %s=%s' % (name2, quote_attrib(value), )) else: mo = re_.match(Namespace_extract_pat_, name) if mo is not None: namespace, name = mo.group(1, 2) if name not in already_processed: - already_processed.append(name) + already_processed.add(name) if namespace == 'http://www.w3.org/XML/1998/namespace': outfile.write(' %s=%s' % ( name, quote_attrib(value), )) @@ -2305,7 +2305,7 @@ def generateExportFn(wrt, prefix, element, namespace): unique_counter, name, quote_attrib(value), )) else: if name not in already_processed: - already_processed.append(name) + already_processed.add(name) outfile.write(' %s=%s' % ( name, quote_attrib(value), ))\n""") parentName, parent = getParentName(element) @@ -2481,7 +2481,9 @@ def generateExportLiteralFn(wrt, prefix, element): wrt(" def exportLiteral(self, outfile, level, name_='%s'):\n" % ( element.getName(), )) wrt(" level += 1\n") - wrt(" self.exportLiteralAttributes(outfile, level, [], name_)\n") + wrt(" already_processed = set()\n") + wrt(" self.exportLiteralAttributes(outfile, level, " + "already_processed, name_)\n") wrt(" if self.hasContent_():\n") wrt(" self.exportLiteralChildren(outfile, level, name_)\n") childCount = countChildren(element, 0) @@ -2507,7 +2509,7 @@ def generateExportLiteralFn(wrt, prefix, element): wrt(" if self.%s is not None and '%s' not in " "already_processed:\n" % ( mappedName, mappedName, )) - wrt(" already_processed.append('%s')\n" % ( + wrt(" already_processed.add('%s')\n" % ( mappedName, )) if (attrType in StringType or attrType in IDTypes or @@ -2639,7 +2641,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(' try:\n') wrt(" self.%s = self.gds_parse_datetime(" "value, node, '%s')\n" % @@ -2654,7 +2656,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(' try:\n') wrt(" self.%s = self.gds_parse_date(" "value, node, '%s')\n" % @@ -2673,7 +2675,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(' try:\n') wrt(" self.%s = int(value)\n" % (mappedName, )) wrt(' except ValueError, exp:\n') @@ -2701,7 +2703,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(" if value in ('true', '1'):\n") wrt(" self.%s = True\n" % mappedName) wrt(" elif value in ('false', '0'):\n") @@ -2715,7 +2717,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(' try:\n') wrt(" self.%s = float(value)\n" % (mappedName, )) @@ -2729,7 +2731,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(" self.%s = value\n" % (mappedName, )) wrt(" self.%s = ' '.join(self.%s.split())\n" % (mappedName, mappedName, )) @@ -2740,7 +2742,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" if value is not None and '%s' not in " "already_processed:\n" % (name, )) - wrt(" already_processed.append('%s')\n" % (name, )) + wrt(" already_processed.add('%s')\n" % (name, )) wrt(" self.%s = value\n" % (mappedName, )) typeName = attrDef.getType() if typeName and typeName in SimpleTypeDict: @@ -2758,7 +2760,7 @@ def generateBuildAttributes(wrt, element, hasAttributes): wrt(" value = find_attr_value_('xsi:type', node)\n") wrt(" if value is not None and 'xsi:type' not in " "already_processed:\n") - wrt(" already_processed.append('xsi:type')\n") + wrt(" already_processed.add('xsi:type')\n") wrt(" self.extensiontype_ = value\n") return hasAttributes # end generateBuildAttributes @@ -3218,7 +3220,8 @@ def generateBuildStandard(wrt, prefix, element, keyword, delayed, hasChildren): def generateBuildFn(wrt, prefix, element, delayed): base = element.getBase() wrt(' def build(self, node):\n') - wrt(' self.buildAttributes(node, node.attrib, [])\n') + wrt(' already_processed = set()\n') + wrt(' self.buildAttributes(node, node.attrib, already_processed)\n') if element.isMixed() or element.getSimpleContent(): wrt(" self.valueOf_ = get_all_text_(node)\n") if element.isMixed(): diff --git a/generateDS.txt b/generateDS.txt index 208dbcad35676cbad8cbea7bbfe56c65799f5c58..f52a60f92f14bbc9059e17c226df085819d10c05 100644 --- a/generateDS.txt +++ b/generateDS.txt @@ -11,7 +11,7 @@ generateDS -- Generate Data Structures from XML Schema .. version -:revision: 2.8b +:revision: 2.8c .. version diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py index 4b67c7febd5dbdde050d547b980d998676bcf3fb..c05f07bdbc429cfb38a9763fa661432efc5d68cd 100755 --- a/gui/generateds_gui.py +++ b/gui/generateds_gui.py @@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.8b' +VERSION = '2.8c' ##VERSION## diff --git a/libgenerateDS/gui/generateds_gui.py b/libgenerateDS/gui/generateds_gui.py index 4b67c7febd5dbdde050d547b980d998676bcf3fb..c05f07bdbc429cfb38a9763fa661432efc5d68cd 100755 --- a/libgenerateDS/gui/generateds_gui.py +++ b/libgenerateDS/gui/generateds_gui.py @@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.8b' +VERSION = '2.8c' ##VERSION## diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html index f9b29ab27dfa5143a4c848d7e3c005983c18f157..c29e08126fbf9c8ae147f40b444dda6e16ed629f 100644 --- a/librarytemplate_howto.html +++ b/librarytemplate_howto.html @@ -214,7 +214,7 @@ tt.docutils { <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.8b</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.8c</td> </tr> </tbody> </table> @@ -223,7 +223,7 @@ tt.docutils { <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">January 28, 2013</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">January 31, 2013</td> </tr> </tbody> </table> diff --git a/librarytemplate_howto.txt b/librarytemplate_howto.txt index 2fbd5d9a824b703ad153d4b8acd7fc69340a4f9c..abc5fb07b73346988fe07833d60fd4aa2c547ee2 100644 --- a/librarytemplate_howto.txt +++ b/librarytemplate_howto.txt @@ -8,7 +8,7 @@ How to package a generateDS.py generated library .. version -:revision: 2.8b +:revision: 2.8c .. version diff --git a/process_includes.py b/process_includes.py index a4d60c098a231b389abf46e9e247e8e28c56a6ab..ad2c0526c1ed5ca060196b0a33a40baa17796354 100755 --- a/process_includes.py +++ b/process_includes.py @@ -30,7 +30,7 @@ from lxml import etree # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.8b' +VERSION = '2.8c' ##VERSION## Namespaces = {'xs': 'http://www.w3.org/2001/XMLSchema'} diff --git a/setup.py b/setup.py index 0e261bc296ec39f403704b025c9f4ed899192ab0..f6e72db8ed0303b3aa5867f36458de1d477f7c82 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup(name="generateDS", # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## - version="2.8b", + version="2.8c", ##VERSION## author="Dave Kuhlman", author_email="dkuhlman@rexx.com", diff --git a/tests/abstract_type1_sup.py b/tests/abstract_type1_sup.py index cfb7b84711f3aba2ca92a07ab36f16ab1a2ec406..1c8efeb869f2959844a69f6d011d47b2ab193676 100644 --- a/tests/abstract_type1_sup.py +++ b/tests/abstract_type1_sup.py @@ -506,7 +506,7 @@ class carrierType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='carrierType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -533,7 +533,8 @@ class carrierType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='carrierType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -552,7 +553,8 @@ class carrierType(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -602,7 +604,7 @@ class Vehicle(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Vehicle') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -612,7 +614,7 @@ class Vehicle(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='target:', name_='Vehicle'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -627,7 +629,8 @@ class Vehicle(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Vehicle'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -635,14 +638,15 @@ class Vehicle(GeneratedsSuper): def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -670,7 +674,7 @@ class Car(Vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Car') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -692,7 +696,8 @@ class Car(Vehicle): return False def exportLiteral(self, outfile, level, name_='Car'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -701,7 +706,8 @@ class Car(Vehicle): super(Car, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -734,7 +740,7 @@ class Plane(Vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Plane') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -756,7 +762,8 @@ class Plane(Vehicle): return False def exportLiteral(self, outfile, level, name_='Plane'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -765,7 +772,8 @@ class Plane(Vehicle): super(Plane, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/abstract_type2_sup.py b/tests/abstract_type2_sup.py index cfb7b84711f3aba2ca92a07ab36f16ab1a2ec406..1c8efeb869f2959844a69f6d011d47b2ab193676 100644 --- a/tests/abstract_type2_sup.py +++ b/tests/abstract_type2_sup.py @@ -506,7 +506,7 @@ class carrierType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='carrierType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -533,7 +533,8 @@ class carrierType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='carrierType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -552,7 +553,8 @@ class carrierType(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -602,7 +604,7 @@ class Vehicle(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Vehicle') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -612,7 +614,7 @@ class Vehicle(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='target:', name_='Vehicle'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -627,7 +629,8 @@ class Vehicle(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Vehicle'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -635,14 +638,15 @@ class Vehicle(GeneratedsSuper): def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -670,7 +674,7 @@ class Car(Vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Car') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -692,7 +696,8 @@ class Car(Vehicle): return False def exportLiteral(self, outfile, level, name_='Car'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -701,7 +706,8 @@ class Car(Vehicle): super(Car, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -734,7 +740,7 @@ class Plane(Vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Plane') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -756,7 +762,8 @@ class Plane(Vehicle): return False def exportLiteral(self, outfile, level, name_='Plane'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -765,7 +772,8 @@ class Plane(Vehicle): super(Plane, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py index 38b837a1c8d220c84bf727fe6cd2d6a6e15ecc91..0fdff05e65117d970c9683dc88344762c6361de8 100644 --- a/tests/annotations1_sup.py +++ b/tests/annotations1_sup.py @@ -508,7 +508,7 @@ class document1Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document1Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -539,7 +539,8 @@ class document1Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document1Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -555,7 +556,8 @@ class document1Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -607,7 +609,7 @@ class document2Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document2Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -642,7 +644,8 @@ class document2Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document2Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -661,7 +664,8 @@ class document2Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -715,7 +719,7 @@ class document3Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document3Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -747,7 +751,8 @@ class document3Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document3Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -760,7 +765,8 @@ class document3Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('rating=%d,\n' % self.rating) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/annotations2_sup.py b/tests/annotations2_sup.py index 38b837a1c8d220c84bf727fe6cd2d6a6e15ecc91..0fdff05e65117d970c9683dc88344762c6361de8 100644 --- a/tests/annotations2_sup.py +++ b/tests/annotations2_sup.py @@ -508,7 +508,7 @@ class document1Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document1Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -539,7 +539,8 @@ class document1Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document1Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -555,7 +556,8 @@ class document1Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -607,7 +609,7 @@ class document2Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document2Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -642,7 +644,8 @@ class document2Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document2Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -661,7 +664,8 @@ class document2Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -715,7 +719,7 @@ class document3Type(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='document3Type') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -747,7 +751,8 @@ class document3Type(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='document3Type'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -760,7 +765,8 @@ class document3Type(GeneratedsSuper): showIndent(outfile, level) outfile.write('rating=%d,\n' % self.rating) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/anysimpletype1_sup.py b/tests/anysimpletype1_sup.py index c9dc328db9a7bec38ced1efbf0ca1d89bfafa4ff..3e56d08dfba46b01e34011003ec44cd7deffafa0 100644 --- a/tests/anysimpletype1_sup.py +++ b/tests/anysimpletype1_sup.py @@ -505,7 +505,7 @@ class test1element(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='test1element') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -516,7 +516,7 @@ class test1element(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='test1element'): if self.test1attribute is not None and 'test1attribute' not in already_processed: - already_processed.append('test1attribute') + already_processed.add('test1attribute') outfile.write(' test1attribute=%s' % (quote_attrib(self.test1attribute), )) def exportChildren(self, outfile, level, namespace_='', name_='test1element', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -534,12 +534,13 @@ class test1element(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='test1element'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.test1attribute is not None and 'test1attribute' not in already_processed: - already_processed.append('test1attribute') + already_processed.add('test1attribute') showIndent(outfile, level) outfile.write('test1attribute = %s,\n' % (self.test1attribute,)) def exportLiteralChildren(self, outfile, level, name_): @@ -550,14 +551,15 @@ class test1element(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('test1attribute', node) if value is not None and 'test1attribute' not in already_processed: - already_processed.append('test1attribute') + already_processed.add('test1attribute') self.test1attribute = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'test1member': @@ -593,7 +595,7 @@ class cimAnySimpleType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='cimAnySimpleType') if self.hasContent_(): outfile.write('>') @@ -612,14 +614,14 @@ class cimAnySimpleType(GeneratedsSuper): name1 = name[len(xsinamespace2):] name2 = '%s:%s' % (xsinamespaceprefix, name1, ) if name2 not in already_processed: - already_processed.append(name2) + already_processed.add(name2) outfile.write(' %s=%s' % (name2, quote_attrib(value), )) else: mo = re_.match(Namespace_extract_pat_, name) if mo is not None: namespace, name = mo.group(1, 2) if name not in already_processed: - already_processed.append(name) + already_processed.add(name) if namespace == 'http://www.w3.org/XML/1998/namespace': outfile.write(' %s=%s' % ( name, quote_attrib(value), )) @@ -631,7 +633,7 @@ class cimAnySimpleType(GeneratedsSuper): unique_counter, name, quote_attrib(value), )) else: if name not in already_processed: - already_processed.append(name) + already_processed.add(name) outfile.write(' %s=%s' % ( name, quote_attrib(value), )) pass @@ -646,7 +648,8 @@ class cimAnySimpleType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='cimAnySimpleType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -658,7 +661,8 @@ class cimAnySimpleType(GeneratedsSuper): def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py index e955d9978e2afede70f6a1fec2d44abf28c4aa01..29aa7ee1618d06b5843e0adb5f4a530e53e86f1a 100644 --- a/tests/anywildcard1_sup.py +++ b/tests/anywildcard1_sup.py @@ -509,7 +509,7 @@ class PlantType_single(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_single') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -543,7 +543,8 @@ class PlantType_single(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_single'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -565,7 +566,8 @@ class PlantType_single(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -623,7 +625,7 @@ class PlantType_multiple(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_multiple') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -657,7 +659,8 @@ class PlantType_multiple(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_multiple'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -681,7 +684,8 @@ class PlantType_multiple(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -731,7 +735,7 @@ class DescriptionType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='DescriptionType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -763,7 +767,8 @@ class DescriptionType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='DescriptionType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -776,7 +781,8 @@ class DescriptionType(GeneratedsSuper): showIndent(outfile, level) outfile.write('size=%s,\n' % quote_python(self.size).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -822,7 +828,7 @@ class CatalogType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='CatalogType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -854,7 +860,8 @@ class CatalogType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='CatalogType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -867,7 +874,8 @@ class CatalogType(GeneratedsSuper): showIndent(outfile, level) outfile.write('catagory=%d,\n' % self.catagory) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -912,7 +920,7 @@ class PlantType_single_nochild(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_single_nochild') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -939,7 +947,8 @@ class PlantType_single_nochild(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_single_nochild'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -952,7 +961,8 @@ class PlantType_single_nochild(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -993,7 +1003,7 @@ class PlantType_multiple_nochild(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_multiple_nochild') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1020,7 +1030,8 @@ class PlantType_multiple_nochild(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_multiple_nochild'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1035,7 +1046,8 @@ class PlantType_multiple_nochild(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/anywildcard2_sup.py b/tests/anywildcard2_sup.py index e955d9978e2afede70f6a1fec2d44abf28c4aa01..29aa7ee1618d06b5843e0adb5f4a530e53e86f1a 100644 --- a/tests/anywildcard2_sup.py +++ b/tests/anywildcard2_sup.py @@ -509,7 +509,7 @@ class PlantType_single(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_single') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -543,7 +543,8 @@ class PlantType_single(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_single'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -565,7 +566,8 @@ class PlantType_single(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -623,7 +625,7 @@ class PlantType_multiple(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_multiple') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -657,7 +659,8 @@ class PlantType_multiple(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_multiple'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -681,7 +684,8 @@ class PlantType_multiple(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -731,7 +735,7 @@ class DescriptionType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='DescriptionType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -763,7 +767,8 @@ class DescriptionType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='DescriptionType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -776,7 +781,8 @@ class DescriptionType(GeneratedsSuper): showIndent(outfile, level) outfile.write('size=%s,\n' % quote_python(self.size).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -822,7 +828,7 @@ class CatalogType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='CatalogType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -854,7 +860,8 @@ class CatalogType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='CatalogType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -867,7 +874,8 @@ class CatalogType(GeneratedsSuper): showIndent(outfile, level) outfile.write('catagory=%d,\n' % self.catagory) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -912,7 +920,7 @@ class PlantType_single_nochild(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_single_nochild') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -939,7 +947,8 @@ class PlantType_single_nochild(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_single_nochild'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -952,7 +961,8 @@ class PlantType_single_nochild(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -993,7 +1003,7 @@ class PlantType_multiple_nochild(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PlantType_multiple_nochild') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1020,7 +1030,8 @@ class PlantType_multiple_nochild(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PlantType_multiple_nochild'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1035,7 +1046,8 @@ class PlantType_multiple_nochild(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/attr_groups1_sup.py b/tests/attr_groups1_sup.py index 0772d5a0ecfe11401d5c4d61baef8b507daaa5af..b74edf6b0f82edb781aedeaa47575c9d0e2ed8ee 100644 --- a/tests/attr_groups1_sup.py +++ b/tests/attr_groups1_sup.py @@ -533,7 +533,7 @@ class GetUserReq(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='GetUserReq') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -544,28 +544,28 @@ class GetUserReq(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='GetUserReq'): if self.value04 is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') outfile.write(' value04="%s"' % self.gds_format_integer(self.value04, input_name='value04')) if self.value05 is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') outfile.write(' value05=%s' % (self.gds_format_string(quote_attrib(self.value05).encode(ExternalEncoding), input_name='value05'), )) if self.value06 is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') outfile.write(' value06="%s"' % self.gds_format_integer(self.value06, input_name='value06')) if self.value07 is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') outfile.write(' value07="%s"' % self.gds_format_integer(self.value07, input_name='value07')) if self.value01 is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') outfile.write(' value01=%s' % (self.gds_format_string(quote_attrib(self.value01).encode(ExternalEncoding), input_name='value01'), )) if self.value02 is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') outfile.write(' value02="%s"' % self.gds_format_integer(self.value02, input_name='value02')) if self.value03 is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') outfile.write(' value03=%s' % (self.gds_format_string(quote_attrib(self.value03).encode(ExternalEncoding), input_name='value03'), )) if self.sequence is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') outfile.write(' sequence="%s"' % self.gds_format_integer(self.sequence, input_name='sequence')) def exportChildren(self, outfile, level, namespace_='', name_='GetUserReq', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -584,40 +584,41 @@ class GetUserReq(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='GetUserReq'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.value04 is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') showIndent(outfile, level) outfile.write('value04 = %d,\n' % (self.value04,)) if self.value05 is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') showIndent(outfile, level) outfile.write('value05 = "%s",\n' % (self.value05,)) if self.value06 is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') showIndent(outfile, level) outfile.write('value06 = %d,\n' % (self.value06,)) if self.value07 is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') showIndent(outfile, level) outfile.write('value07 = %d,\n' % (self.value07,)) if self.value01 is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') showIndent(outfile, level) outfile.write('value01 = "%s",\n' % (self.value01,)) if self.value02 is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') showIndent(outfile, level) outfile.write('value02 = %d,\n' % (self.value02,)) if self.value03 is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') showIndent(outfile, level) outfile.write('value03 = "%s",\n' % (self.value03,)) if self.sequence is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') showIndent(outfile, level) outfile.write('sequence = %d,\n' % (self.sequence,)) def exportLiteralChildren(self, outfile, level, name_): @@ -625,54 +626,55 @@ class GetUserReq(GeneratedsSuper): showIndent(outfile, level) outfile.write('returnedTags=%s,\n' % quote_python(self.returnedTags).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('value04', node) if value is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') try: self.value04 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value05', node) if value is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') self.value05 = value value = find_attr_value_('value06', node) if value is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') try: self.value06 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value07', node) if value is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') try: self.value07 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value01', node) if value is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') self.value01 = value value = find_attr_value_('value02', node) if value is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') try: self.value02 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value03', node) if value is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') self.value03 = value value = find_attr_value_('sequence', node) if value is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') try: self.sequence = int(value) except ValueError, exp: diff --git a/tests/attr_groups2_sup.py b/tests/attr_groups2_sup.py index 0772d5a0ecfe11401d5c4d61baef8b507daaa5af..b74edf6b0f82edb781aedeaa47575c9d0e2ed8ee 100644 --- a/tests/attr_groups2_sup.py +++ b/tests/attr_groups2_sup.py @@ -533,7 +533,7 @@ class GetUserReq(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='GetUserReq') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -544,28 +544,28 @@ class GetUserReq(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='GetUserReq'): if self.value04 is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') outfile.write(' value04="%s"' % self.gds_format_integer(self.value04, input_name='value04')) if self.value05 is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') outfile.write(' value05=%s' % (self.gds_format_string(quote_attrib(self.value05).encode(ExternalEncoding), input_name='value05'), )) if self.value06 is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') outfile.write(' value06="%s"' % self.gds_format_integer(self.value06, input_name='value06')) if self.value07 is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') outfile.write(' value07="%s"' % self.gds_format_integer(self.value07, input_name='value07')) if self.value01 is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') outfile.write(' value01=%s' % (self.gds_format_string(quote_attrib(self.value01).encode(ExternalEncoding), input_name='value01'), )) if self.value02 is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') outfile.write(' value02="%s"' % self.gds_format_integer(self.value02, input_name='value02')) if self.value03 is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') outfile.write(' value03=%s' % (self.gds_format_string(quote_attrib(self.value03).encode(ExternalEncoding), input_name='value03'), )) if self.sequence is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') outfile.write(' sequence="%s"' % self.gds_format_integer(self.sequence, input_name='sequence')) def exportChildren(self, outfile, level, namespace_='', name_='GetUserReq', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -584,40 +584,41 @@ class GetUserReq(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='GetUserReq'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.value04 is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') showIndent(outfile, level) outfile.write('value04 = %d,\n' % (self.value04,)) if self.value05 is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') showIndent(outfile, level) outfile.write('value05 = "%s",\n' % (self.value05,)) if self.value06 is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') showIndent(outfile, level) outfile.write('value06 = %d,\n' % (self.value06,)) if self.value07 is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') showIndent(outfile, level) outfile.write('value07 = %d,\n' % (self.value07,)) if self.value01 is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') showIndent(outfile, level) outfile.write('value01 = "%s",\n' % (self.value01,)) if self.value02 is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') showIndent(outfile, level) outfile.write('value02 = %d,\n' % (self.value02,)) if self.value03 is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') showIndent(outfile, level) outfile.write('value03 = "%s",\n' % (self.value03,)) if self.sequence is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') showIndent(outfile, level) outfile.write('sequence = %d,\n' % (self.sequence,)) def exportLiteralChildren(self, outfile, level, name_): @@ -625,54 +626,55 @@ class GetUserReq(GeneratedsSuper): showIndent(outfile, level) outfile.write('returnedTags=%s,\n' % quote_python(self.returnedTags).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('value04', node) if value is not None and 'value04' not in already_processed: - already_processed.append('value04') + already_processed.add('value04') try: self.value04 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value05', node) if value is not None and 'value05' not in already_processed: - already_processed.append('value05') + already_processed.add('value05') self.value05 = value value = find_attr_value_('value06', node) if value is not None and 'value06' not in already_processed: - already_processed.append('value06') + already_processed.add('value06') try: self.value06 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value07', node) if value is not None and 'value07' not in already_processed: - already_processed.append('value07') + already_processed.add('value07') try: self.value07 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value01', node) if value is not None and 'value01' not in already_processed: - already_processed.append('value01') + already_processed.add('value01') self.value01 = value value = find_attr_value_('value02', node) if value is not None and 'value02' not in already_processed: - already_processed.append('value02') + already_processed.add('value02') try: self.value02 = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value03', node) if value is not None and 'value03' not in already_processed: - already_processed.append('value03') + already_processed.add('value03') self.value03 = value value = find_attr_value_('sequence', node) if value is not None and 'sequence' not in already_processed: - already_processed.append('sequence') + already_processed.add('sequence') try: self.sequence = int(value) except ValueError, exp: diff --git a/tests/extensions1_sup.py b/tests/extensions1_sup.py index c02b45ab938c9cbebed72dffba0821b9c2e20e56..307870eb68586098b3680290f3c476abcbcd3455 100644 --- a/tests/extensions1_sup.py +++ b/tests/extensions1_sup.py @@ -505,7 +505,7 @@ class SpecialDate(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='SpecialDate') if self.hasContent_(): outfile.write('>') @@ -516,7 +516,7 @@ class SpecialDate(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='SpecialDate'): if self.SpecialProperty is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') outfile.write(' SpecialProperty=%s' % (self.gds_format_string(quote_attrib(self.SpecialProperty).encode(ExternalEncoding), input_name='SpecialProperty'), )) def exportChildren(self, outfile, level, namespace_='', name_='SpecialDate', fromsubclass_=False, pretty_print=True): pass @@ -529,20 +529,22 @@ class SpecialDate(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='SpecialDate'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.SpecialProperty is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') showIndent(outfile, level) outfile.write('SpecialProperty = "%s",\n' % (self.SpecialProperty,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -550,7 +552,7 @@ class SpecialDate(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('SpecialProperty', node) if value is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') self.SpecialProperty = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -584,7 +586,7 @@ class ExtremeDate(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='ExtremeDate') if self.hasContent_(): outfile.write('>') @@ -595,7 +597,7 @@ class ExtremeDate(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='ExtremeDate'): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') outfile.write(' ExtremeProperty=%s' % (self.gds_format_string(quote_attrib(self.ExtremeProperty).encode(ExternalEncoding), input_name='ExtremeProperty'), )) def exportChildren(self, outfile, level, namespace_='', name_='ExtremeDate', fromsubclass_=False, pretty_print=True): pass @@ -608,20 +610,22 @@ class ExtremeDate(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='ExtremeDate'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') showIndent(outfile, level) outfile.write('ExtremeProperty = "%s",\n' % (self.ExtremeProperty,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -629,7 +633,7 @@ class ExtremeDate(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('ExtremeProperty', node) if value is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') self.ExtremeProperty = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -663,7 +667,7 @@ class singleExtremeDate(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='singleExtremeDate') if self.hasContent_(): outfile.write('>') @@ -674,7 +678,7 @@ class singleExtremeDate(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='singleExtremeDate'): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') outfile.write(' ExtremeProperty=%s' % (self.gds_format_string(quote_attrib(self.ExtremeProperty).encode(ExternalEncoding), input_name='ExtremeProperty'), )) def exportChildren(self, outfile, level, namespace_='', name_='singleExtremeDate', fromsubclass_=False, pretty_print=True): pass @@ -687,20 +691,22 @@ class singleExtremeDate(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='singleExtremeDate'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') showIndent(outfile, level) outfile.write('ExtremeProperty = "%s",\n' % (self.ExtremeProperty,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -708,7 +714,7 @@ class singleExtremeDate(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('ExtremeProperty', node) if value is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') self.ExtremeProperty = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -747,7 +753,7 @@ class containerType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='containerType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -777,7 +783,8 @@ class containerType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='containerType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -802,7 +809,8 @@ class containerType(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -846,7 +854,7 @@ class simpleFactoidType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='simpleFactoidType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -874,7 +882,8 @@ class simpleFactoidType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='simpleFactoidType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -884,7 +893,8 @@ class simpleFactoidType(GeneratedsSuper): showIndent(outfile, level) outfile.write('relation=%s,\n' % quote_python(self.relation).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -938,7 +948,7 @@ class mixedFactoidType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='mixedFactoidType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -963,7 +973,8 @@ class mixedFactoidType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='mixedFactoidType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -979,7 +990,8 @@ class mixedFactoidType(GeneratedsSuper): outfile.write('],\n') pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) if node.text is not None: obj_ = self.mixedclass_(MixedContainer.CategoryText, @@ -1037,7 +1049,7 @@ class BaseType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='BaseType') if self.hasContent_(): outfile.write('>') @@ -1048,13 +1060,13 @@ class BaseType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='BaseType'): if self.BaseProperty1 is not None and 'BaseProperty1' not in already_processed: - already_processed.append('BaseProperty1') + already_processed.add('BaseProperty1') outfile.write(' BaseProperty1=%s' % (self.gds_format_string(quote_attrib(self.BaseProperty1).encode(ExternalEncoding), input_name='BaseProperty1'), )) if self.BaseProperty2 is not None and 'BaseProperty2' not in already_processed: - already_processed.append('BaseProperty2') + already_processed.add('BaseProperty2') outfile.write(' BaseProperty2=%s' % (self.gds_format_string(quote_attrib(self.BaseProperty2).encode(ExternalEncoding), input_name='BaseProperty2'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='BaseType', fromsubclass_=False, pretty_print=True): @@ -1068,24 +1080,26 @@ class BaseType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='BaseType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.BaseProperty1 is not None and 'BaseProperty1' not in already_processed: - already_processed.append('BaseProperty1') + already_processed.add('BaseProperty1') showIndent(outfile, level) outfile.write('BaseProperty1 = "%s",\n' % (self.BaseProperty1,)) if self.BaseProperty2 is not None and 'BaseProperty2' not in already_processed: - already_processed.append('BaseProperty2') + already_processed.add('BaseProperty2') showIndent(outfile, level) outfile.write('BaseProperty2 = "%s",\n' % (self.BaseProperty2,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1093,15 +1107,15 @@ class BaseType(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('BaseProperty1', node) if value is not None and 'BaseProperty1' not in already_processed: - already_processed.append('BaseProperty1') + already_processed.add('BaseProperty1') self.BaseProperty1 = value value = find_attr_value_('BaseProperty2', node) if value is not None and 'BaseProperty2' not in already_processed: - already_processed.append('BaseProperty2') + already_processed.add('BaseProperty2') self.BaseProperty2 = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1140,7 +1154,7 @@ class DerivedType(BaseType): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='DerivedType') if self.hasContent_(): outfile.write('>') @@ -1152,10 +1166,10 @@ class DerivedType(BaseType): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='DerivedType'): super(DerivedType, self).exportAttributes(outfile, level, already_processed, namespace_, name_='DerivedType') if self.DerivedProperty1 is not None and 'DerivedProperty1' not in already_processed: - already_processed.append('DerivedProperty1') + already_processed.add('DerivedProperty1') outfile.write(' DerivedProperty1=%s' % (self.gds_format_string(quote_attrib(self.DerivedProperty1).encode(ExternalEncoding), input_name='DerivedProperty1'), )) if self.DerivedProperty2 is not None and 'DerivedProperty2' not in already_processed: - already_processed.append('DerivedProperty2') + already_processed.add('DerivedProperty2') outfile.write(' DerivedProperty2=%s' % (self.gds_format_string(quote_attrib(self.DerivedProperty2).encode(ExternalEncoding), input_name='DerivedProperty2'), )) def exportChildren(self, outfile, level, namespace_='', name_='DerivedType', fromsubclass_=False, pretty_print=True): super(DerivedType, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -1170,18 +1184,19 @@ class DerivedType(BaseType): return False def exportLiteral(self, outfile, level, name_='DerivedType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.DerivedProperty1 is not None and 'DerivedProperty1' not in already_processed: - already_processed.append('DerivedProperty1') + already_processed.add('DerivedProperty1') showIndent(outfile, level) outfile.write('DerivedProperty1 = "%s",\n' % (self.DerivedProperty1,)) if self.DerivedProperty2 is not None and 'DerivedProperty2' not in already_processed: - already_processed.append('DerivedProperty2') + already_processed.add('DerivedProperty2') showIndent(outfile, level) outfile.write('DerivedProperty2 = "%s",\n' % (self.DerivedProperty2,)) super(DerivedType, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1189,7 +1204,8 @@ class DerivedType(BaseType): super(DerivedType, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1197,11 +1213,11 @@ class DerivedType(BaseType): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('DerivedProperty1', node) if value is not None and 'DerivedProperty1' not in already_processed: - already_processed.append('DerivedProperty1') + already_processed.add('DerivedProperty1') self.DerivedProperty1 = value value = find_attr_value_('DerivedProperty2', node) if value is not None and 'DerivedProperty2' not in already_processed: - already_processed.append('DerivedProperty2') + already_processed.add('DerivedProperty2') self.DerivedProperty2 = value super(DerivedType, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -1236,7 +1252,7 @@ class MyInteger(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='MyInteger') if self.hasContent_(): outfile.write('>') @@ -1247,7 +1263,7 @@ class MyInteger(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='MyInteger'): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') outfile.write(' MyAttr=%s' % (self.gds_format_string(quote_attrib(self.MyAttr).encode(ExternalEncoding), input_name='MyAttr'), )) def exportChildren(self, outfile, level, namespace_='', name_='MyInteger', fromsubclass_=False, pretty_print=True): pass @@ -1260,20 +1276,22 @@ class MyInteger(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='MyInteger'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') showIndent(outfile, level) outfile.write('MyAttr = "%s",\n' % (self.MyAttr,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1281,7 +1299,7 @@ class MyInteger(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('MyAttr', node) if value is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') self.MyAttr = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1315,7 +1333,7 @@ class MyBoolean(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='MyBoolean') if self.hasContent_(): outfile.write('>') @@ -1326,7 +1344,7 @@ class MyBoolean(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='MyBoolean'): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') outfile.write(' MyAttr=%s' % (self.gds_format_string(quote_attrib(self.MyAttr).encode(ExternalEncoding), input_name='MyAttr'), )) def exportChildren(self, outfile, level, namespace_='', name_='MyBoolean', fromsubclass_=False, pretty_print=True): pass @@ -1339,20 +1357,22 @@ class MyBoolean(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='MyBoolean'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') showIndent(outfile, level) outfile.write('MyAttr = "%s",\n' % (self.MyAttr,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1360,7 +1380,7 @@ class MyBoolean(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('MyAttr', node) if value is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') self.MyAttr = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1394,7 +1414,7 @@ class MyFloat(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='MyFloat') if self.hasContent_(): outfile.write('>') @@ -1405,7 +1425,7 @@ class MyFloat(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='MyFloat'): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') outfile.write(' MyAttr=%s' % (self.gds_format_string(quote_attrib(self.MyAttr).encode(ExternalEncoding), input_name='MyAttr'), )) def exportChildren(self, outfile, level, namespace_='', name_='MyFloat', fromsubclass_=False, pretty_print=True): pass @@ -1418,20 +1438,22 @@ class MyFloat(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='MyFloat'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') showIndent(outfile, level) outfile.write('MyAttr = "%s",\n' % (self.MyAttr,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1439,7 +1461,7 @@ class MyFloat(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('MyAttr', node) if value is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') self.MyAttr = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1473,7 +1495,7 @@ class MyDouble(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='MyDouble') if self.hasContent_(): outfile.write('>') @@ -1484,7 +1506,7 @@ class MyDouble(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='MyDouble'): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') outfile.write(' MyAttr=%s' % (self.gds_format_string(quote_attrib(self.MyAttr).encode(ExternalEncoding), input_name='MyAttr'), )) def exportChildren(self, outfile, level, namespace_='', name_='MyDouble', fromsubclass_=False, pretty_print=True): pass @@ -1497,20 +1519,22 @@ class MyDouble(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='MyDouble'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.MyAttr is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') showIndent(outfile, level) outfile.write('MyAttr = "%s",\n' % (self.MyAttr,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1518,7 +1542,7 @@ class MyDouble(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('MyAttr', node) if value is not None and 'MyAttr' not in already_processed: - already_processed.append('MyAttr') + already_processed.add('MyAttr') self.MyAttr = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass diff --git a/tests/ipo1_sup.py b/tests/ipo1_sup.py index 0c95c57400ddaa51b007b9e5b804827f130a16ee..e08cf2c4370b3e883368823ee9301a36f5e8a85b 100644 --- a/tests/ipo1_sup.py +++ b/tests/ipo1_sup.py @@ -517,7 +517,7 @@ class PurchaseOrderType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PurchaseOrderType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -528,7 +528,7 @@ class PurchaseOrderType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='PurchaseOrderType'): if self.orderDate is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') outfile.write(' orderDate="%s"' % self.gds_format_date(self.orderDate, input_name='orderDate')) def exportChildren(self, outfile, level, namespace_='ipo:', name_='PurchaseOrderType', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -556,12 +556,13 @@ class PurchaseOrderType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PurchaseOrderType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.orderDate is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') showIndent(outfile, level) outfile.write('orderDate = "%s",\n' % (self.orderDate,)) def exportLiteralChildren(self, outfile, level, name_): @@ -587,14 +588,15 @@ class PurchaseOrderType(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('orderDate', node) if value is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') try: self.orderDate = self.gds_parse_date(value, node, 'orderDate') except ValueError, exp: @@ -649,7 +651,7 @@ class Items(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Items') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -676,7 +678,8 @@ class Items(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Items'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -695,7 +698,8 @@ class Items(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -743,7 +747,7 @@ class Address(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Address') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -754,7 +758,7 @@ class Address(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='Address'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -783,7 +787,8 @@ class Address(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Address'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -799,14 +804,15 @@ class Address(GeneratedsSuper): showIndent(outfile, level) outfile.write('city=%s,\n' % quote_python(self.city).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -855,7 +861,7 @@ class USAddress(Address): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='USAddress') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -889,7 +895,8 @@ class USAddress(Address): return False def exportLiteral(self, outfile, level, name_='USAddress'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -903,7 +910,8 @@ class USAddress(Address): showIndent(outfile, level) outfile.write('zip=%d,\n' % self.zip) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -968,7 +976,7 @@ class UKAddress(Address): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='UKAddress') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -980,10 +988,10 @@ class UKAddress(Address): def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='UKAddress'): super(UKAddress, self).exportAttributes(outfile, level, already_processed, namespace_, name_='UKAddress') if self.category_attr is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') outfile.write(' category=%s' % (quote_attrib(self.category_attr), )) if self.exportCode is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') outfile.write(' exportCode="%s"' % self.gds_format_integer(self.exportCode, input_name='exportCode')) def exportChildren(self, outfile, level, namespace_='ipo:', name_='UKAddress', fromsubclass_=False, pretty_print=True): super(UKAddress, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -1008,16 +1016,17 @@ class UKAddress(Address): return False def exportLiteral(self, outfile, level, name_='UKAddress'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.category_attr is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') showIndent(outfile, level) outfile.write('category_attr = %s,\n' % (self.category_attr,)) if self.exportCode is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') showIndent(outfile, level) outfile.write('exportCode = %d,\n' % (self.exportCode,)) super(UKAddress, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1030,18 +1039,19 @@ class UKAddress(Address): showIndent(outfile, level) outfile.write('category=%s,\n' % quote_python(self.category).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('category', node) if value is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') self.category_attr = value value = find_attr_value_('exportCode', node) if value is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') try: self.exportCode = int(value) except ValueError, exp: @@ -1106,7 +1116,7 @@ class itemType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='itemType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1117,7 +1127,7 @@ class itemType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='itemType'): if self.partNum is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') outfile.write(' partNum=%s' % (quote_attrib(self.partNum), )) def exportChildren(self, outfile, level, namespace_='ipo:', name_='itemType', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -1152,12 +1162,13 @@ class itemType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='itemType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.partNum is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') showIndent(outfile, level) outfile.write('partNum = %s,\n' % (self.partNum,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1177,14 +1188,15 @@ class itemType(GeneratedsSuper): showIndent(outfile, level) outfile.write('shipDate=datetime_.strptime("%s", "%%Y-%%m-%%d"),\n' % self.gds_format_date(self.shipDate, input_name='shipDate')) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('partNum', node) if value is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') self.partNum = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'productName': @@ -1240,7 +1252,7 @@ class quantity(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='quantity') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1261,7 +1273,8 @@ class quantity(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='quantity'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1269,7 +1282,8 @@ class quantity(GeneratedsSuper): def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/ipo2_sup.py b/tests/ipo2_sup.py index 0c95c57400ddaa51b007b9e5b804827f130a16ee..e08cf2c4370b3e883368823ee9301a36f5e8a85b 100644 --- a/tests/ipo2_sup.py +++ b/tests/ipo2_sup.py @@ -517,7 +517,7 @@ class PurchaseOrderType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PurchaseOrderType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -528,7 +528,7 @@ class PurchaseOrderType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='PurchaseOrderType'): if self.orderDate is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') outfile.write(' orderDate="%s"' % self.gds_format_date(self.orderDate, input_name='orderDate')) def exportChildren(self, outfile, level, namespace_='ipo:', name_='PurchaseOrderType', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -556,12 +556,13 @@ class PurchaseOrderType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PurchaseOrderType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.orderDate is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') showIndent(outfile, level) outfile.write('orderDate = "%s",\n' % (self.orderDate,)) def exportLiteralChildren(self, outfile, level, name_): @@ -587,14 +588,15 @@ class PurchaseOrderType(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('orderDate', node) if value is not None and 'orderDate' not in already_processed: - already_processed.append('orderDate') + already_processed.add('orderDate') try: self.orderDate = self.gds_parse_date(value, node, 'orderDate') except ValueError, exp: @@ -649,7 +651,7 @@ class Items(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Items') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -676,7 +678,8 @@ class Items(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Items'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -695,7 +698,8 @@ class Items(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -743,7 +747,7 @@ class Address(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='Address') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -754,7 +758,7 @@ class Address(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='Address'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -783,7 +787,8 @@ class Address(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='Address'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -799,14 +804,15 @@ class Address(GeneratedsSuper): showIndent(outfile, level) outfile.write('city=%s,\n' % quote_python(self.city).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -855,7 +861,7 @@ class USAddress(Address): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='USAddress') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -889,7 +895,8 @@ class USAddress(Address): return False def exportLiteral(self, outfile, level, name_='USAddress'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -903,7 +910,8 @@ class USAddress(Address): showIndent(outfile, level) outfile.write('zip=%d,\n' % self.zip) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -968,7 +976,7 @@ class UKAddress(Address): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='UKAddress') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -980,10 +988,10 @@ class UKAddress(Address): def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='UKAddress'): super(UKAddress, self).exportAttributes(outfile, level, already_processed, namespace_, name_='UKAddress') if self.category_attr is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') outfile.write(' category=%s' % (quote_attrib(self.category_attr), )) if self.exportCode is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') outfile.write(' exportCode="%s"' % self.gds_format_integer(self.exportCode, input_name='exportCode')) def exportChildren(self, outfile, level, namespace_='ipo:', name_='UKAddress', fromsubclass_=False, pretty_print=True): super(UKAddress, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -1008,16 +1016,17 @@ class UKAddress(Address): return False def exportLiteral(self, outfile, level, name_='UKAddress'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.category_attr is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') showIndent(outfile, level) outfile.write('category_attr = %s,\n' % (self.category_attr,)) if self.exportCode is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') showIndent(outfile, level) outfile.write('exportCode = %d,\n' % (self.exportCode,)) super(UKAddress, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1030,18 +1039,19 @@ class UKAddress(Address): showIndent(outfile, level) outfile.write('category=%s,\n' % quote_python(self.category).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('category', node) if value is not None and 'category_attr' not in already_processed: - already_processed.append('category_attr') + already_processed.add('category_attr') self.category_attr = value value = find_attr_value_('exportCode', node) if value is not None and 'exportCode' not in already_processed: - already_processed.append('exportCode') + already_processed.add('exportCode') try: self.exportCode = int(value) except ValueError, exp: @@ -1106,7 +1116,7 @@ class itemType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='itemType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1117,7 +1127,7 @@ class itemType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='ipo:', name_='itemType'): if self.partNum is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') outfile.write(' partNum=%s' % (quote_attrib(self.partNum), )) def exportChildren(self, outfile, level, namespace_='ipo:', name_='itemType', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -1152,12 +1162,13 @@ class itemType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='itemType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.partNum is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') showIndent(outfile, level) outfile.write('partNum = %s,\n' % (self.partNum,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1177,14 +1188,15 @@ class itemType(GeneratedsSuper): showIndent(outfile, level) outfile.write('shipDate=datetime_.strptime("%s", "%%Y-%%m-%%d"),\n' % self.gds_format_date(self.shipDate, input_name='shipDate')) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('partNum', node) if value is not None and 'partNum' not in already_processed: - already_processed.append('partNum') + already_processed.add('partNum') self.partNum = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'productName': @@ -1240,7 +1252,7 @@ class quantity(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='quantity') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1261,7 +1273,8 @@ class quantity(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='quantity'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1269,7 +1282,8 @@ class quantity(GeneratedsSuper): def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/out1_sup.py b/tests/out1_sup.py index e27c95b5710fb4b53565cd9c73b9bf036c6ef3a1..c9105a9eb52d1c05690638b039511f056c4e691a 100644 --- a/tests/out1_sup.py +++ b/tests/out1_sup.py @@ -542,7 +542,7 @@ class people(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='people') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -581,7 +581,8 @@ class people(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='people'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -648,7 +649,8 @@ class people(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -772,7 +774,7 @@ class comments(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='comments') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -797,7 +799,8 @@ class comments(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='comments'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -813,7 +816,8 @@ class comments(GeneratedsSuper): outfile.write('],\n') pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) if node.text is not None: obj_ = self.mixedclass_(MixedContainer.CategoryText, @@ -964,7 +968,7 @@ class person(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='person') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -975,22 +979,22 @@ class person(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='person'): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') outfile.write(' vegetable=%s' % (self.gds_format_string(quote_attrib(self.vegetable).encode(ExternalEncoding), input_name='vegetable'), )) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') outfile.write(' fruit=%s' % (self.gds_format_string(quote_attrib(self.fruit).encode(ExternalEncoding), input_name='fruit'), )) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') outfile.write(' ratio="%s"' % self.gds_format_float(self.ratio, input_name='ratio')) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id')) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') outfile.write(' value=%s' % (self.gds_format_string(quote_attrib(self.value).encode(ExternalEncoding), input_name='value'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='person', fromsubclass_=False, pretty_print=True): @@ -1028,28 +1032,29 @@ class person(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='person'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') showIndent(outfile, level) outfile.write('vegetable = "%s",\n' % (self.vegetable,)) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') showIndent(outfile, level) outfile.write('fruit = "%s",\n' % (self.fruit,)) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') showIndent(outfile, level) outfile.write('ratio = %f,\n' % (self.ratio,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = %d,\n' % (self.id,)) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') showIndent(outfile, level) outfile.write('value = "%s",\n' % (self.value,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1096,40 +1101,41 @@ class person(GeneratedsSuper): showIndent(outfile, level) outfile.write('description=%s,\n' % quote_python(self.description).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('vegetable', node) if value is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') self.vegetable = value value = find_attr_value_('fruit', node) if value is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') self.fruit = value value = find_attr_value_('ratio', node) if value is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') try: self.ratio = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (ratio): %s' % exp) value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') try: self.id = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value', node) if value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') self.value = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -1307,7 +1313,7 @@ class programmer(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1319,25 +1325,25 @@ class programmer(person): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='programmer'): super(programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') outfile.write(' language=%s' % (self.gds_format_string(quote_attrib(self.language).encode(ExternalEncoding), input_name='language'), )) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') outfile.write(' area=%s' % (self.gds_format_string(quote_attrib(self.area).encode(ExternalEncoding), input_name='area'), )) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') outfile.write(' attrnegint="%s"' % self.gds_format_integer(self.attrnegint, input_name='attrnegint')) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') outfile.write(' attrposint="%s"' % self.gds_format_integer(self.attrposint, input_name='attrposint')) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') outfile.write(' attrnonnegint="%s"' % self.gds_format_integer(self.attrnonnegint, input_name='attrnonnegint')) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') outfile.write(' attrnonposint="%s"' % self.gds_format_integer(self.attrnonposint, input_name='attrnonposint')) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='programmer', fromsubclass_=False, pretty_print=True): @@ -1402,32 +1408,33 @@ class programmer(person): return False def exportLiteral(self, outfile, level, name_='programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') showIndent(outfile, level) outfile.write('language = "%s",\n' % (self.language,)) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') showIndent(outfile, level) outfile.write('area = "%s",\n' % (self.area,)) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') showIndent(outfile, level) outfile.write('attrnegint = %d,\n' % (self.attrnegint,)) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') showIndent(outfile, level) outfile.write('attrposint = %d,\n' % (self.attrposint,)) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') showIndent(outfile, level) outfile.write('attrnonnegint = %d,\n' % (self.attrnonnegint,)) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') showIndent(outfile, level) outfile.write('attrnonposint = %d,\n' % (self.attrnonposint,)) super(programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1473,22 +1480,23 @@ class programmer(person): showIndent(outfile, level) outfile.write('elarraytypes=%s,\n' % quote_python(self.elarraytypes).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('language', node) if value is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') self.language = value value = find_attr_value_('area', node) if value is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') self.area = value value = find_attr_value_('attrnegint', node) if value is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') try: self.attrnegint = int(value) except ValueError, exp: @@ -1497,7 +1505,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NegativeInteger') value = find_attr_value_('attrposint', node) if value is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') try: self.attrposint = int(value) except ValueError, exp: @@ -1506,7 +1514,7 @@ class programmer(person): raise_parse_error(node, 'Invalid PositiveInteger') value = find_attr_value_('attrnonnegint', node) if value is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') try: self.attrnonnegint = int(value) except ValueError, exp: @@ -1515,7 +1523,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonNegativeInteger') value = find_attr_value_('attrnonposint', node) if value is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') try: self.attrnonposint = int(value) except ValueError, exp: @@ -1524,7 +1532,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonPositiveInteger') value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value super(programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -1709,7 +1717,7 @@ class param(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='param') if self.hasContent_(): outfile.write('>') @@ -1720,22 +1728,22 @@ class param(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='param'): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') outfile.write(' semantic=%s' % (self.gds_format_string(quote_attrib(self.semantic).encode(ExternalEncoding), input_name='semantic'), )) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (quote_attrib(self.name), )) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') outfile.write(' flow=%s' % (quote_attrib(self.flow), )) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') outfile.write(' sid=%s' % (quote_attrib(self.sid), )) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), )) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), )) def exportChildren(self, outfile, level, namespace_='', name_='param', fromsubclass_=False, pretty_print=True): pass @@ -1748,40 +1756,42 @@ class param(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='param'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') showIndent(outfile, level) outfile.write('semantic = "%s",\n' % (self.semantic,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') showIndent(outfile, level) outfile.write('flow = %s,\n' % (self.flow,)) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') showIndent(outfile, level) outfile.write('sid = "%s",\n' % (self.sid,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = "%s",\n' % (self.type_,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = "%s",\n' % (self.id,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1789,28 +1799,28 @@ class param(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('semantic', node) if value is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') self.semantic = value self.semantic = ' '.join(self.semantic.split()) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value value = find_attr_value_('flow', node) if value is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') self.flow = value value = find_attr_value_('sid', node) if value is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') self.sid = value value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') self.type_ = value value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') self.id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1891,7 +1901,7 @@ class python_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1903,7 +1913,7 @@ class python_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='python-programmer'): super(python_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='python-programmer', fromsubclass_=False, pretty_print=True): super(python_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -1924,12 +1934,13 @@ class python_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='python-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(python_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1939,14 +1950,15 @@ class python_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(python_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2036,7 +2048,7 @@ class java_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2048,10 +2060,10 @@ class java_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='java-programmer'): super(java_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') outfile.write(' status=%s' % (self.gds_format_string(quote_attrib(self.status).encode(ExternalEncoding), input_name='status'), )) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='java-programmer', fromsubclass_=False, pretty_print=True): super(java_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2072,16 +2084,17 @@ class java_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='java-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') showIndent(outfile, level) outfile.write('status = "%s",\n' % (self.status,)) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(java_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2091,18 +2104,19 @@ class java_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('status', node) if value is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') self.status = value value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(java_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2195,7 +2209,7 @@ class agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2234,7 +2248,8 @@ class agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2256,7 +2271,8 @@ class agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2367,7 +2383,7 @@ class special_agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='special-agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2406,7 +2422,8 @@ class special_agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='special-agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2428,7 +2445,8 @@ class special_agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2566,7 +2584,7 @@ class booster(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='booster') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2617,7 +2635,8 @@ class booster(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='booster'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2666,7 +2685,8 @@ class booster(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2798,7 +2818,7 @@ class info(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='info') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2808,13 +2828,13 @@ class info(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='info'): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') outfile.write(' rating="%s"' % self.gds_format_float(self.rating, input_name='rating')) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type="%s"' % self.gds_format_integer(self.type_, input_name='type')) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), )) def exportChildren(self, outfile, level, namespace_='', name_='info', fromsubclass_=False, pretty_print=True): pass @@ -2827,47 +2847,49 @@ class info(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='info'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') showIndent(outfile, level) outfile.write('rating = %f,\n' % (self.rating,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = %d,\n' % (self.type_,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('rating', node) if value is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') try: self.rating = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (rating): %s' % exp) value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') try: self.type_ = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -2947,7 +2969,7 @@ class client_handlerType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='client-handlerType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2979,7 +3001,8 @@ class client_handlerType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='client-handlerType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2992,7 +3015,8 @@ class client_handlerType(GeneratedsSuper): showIndent(outfile, level) outfile.write('refid=%d,\n' % self.refid) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/out2_sup.py b/tests/out2_sup.py index e27c95b5710fb4b53565cd9c73b9bf036c6ef3a1..c9105a9eb52d1c05690638b039511f056c4e691a 100644 --- a/tests/out2_sup.py +++ b/tests/out2_sup.py @@ -542,7 +542,7 @@ class people(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='people') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -581,7 +581,8 @@ class people(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='people'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -648,7 +649,8 @@ class people(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -772,7 +774,7 @@ class comments(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='comments') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -797,7 +799,8 @@ class comments(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='comments'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -813,7 +816,8 @@ class comments(GeneratedsSuper): outfile.write('],\n') pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) if node.text is not None: obj_ = self.mixedclass_(MixedContainer.CategoryText, @@ -964,7 +968,7 @@ class person(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='person') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -975,22 +979,22 @@ class person(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='person'): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') outfile.write(' vegetable=%s' % (self.gds_format_string(quote_attrib(self.vegetable).encode(ExternalEncoding), input_name='vegetable'), )) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') outfile.write(' fruit=%s' % (self.gds_format_string(quote_attrib(self.fruit).encode(ExternalEncoding), input_name='fruit'), )) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') outfile.write(' ratio="%s"' % self.gds_format_float(self.ratio, input_name='ratio')) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id')) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') outfile.write(' value=%s' % (self.gds_format_string(quote_attrib(self.value).encode(ExternalEncoding), input_name='value'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='person', fromsubclass_=False, pretty_print=True): @@ -1028,28 +1032,29 @@ class person(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='person'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') showIndent(outfile, level) outfile.write('vegetable = "%s",\n' % (self.vegetable,)) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') showIndent(outfile, level) outfile.write('fruit = "%s",\n' % (self.fruit,)) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') showIndent(outfile, level) outfile.write('ratio = %f,\n' % (self.ratio,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = %d,\n' % (self.id,)) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') showIndent(outfile, level) outfile.write('value = "%s",\n' % (self.value,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1096,40 +1101,41 @@ class person(GeneratedsSuper): showIndent(outfile, level) outfile.write('description=%s,\n' % quote_python(self.description).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('vegetable', node) if value is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') self.vegetable = value value = find_attr_value_('fruit', node) if value is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') self.fruit = value value = find_attr_value_('ratio', node) if value is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') try: self.ratio = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (ratio): %s' % exp) value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') try: self.id = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value', node) if value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') self.value = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -1307,7 +1313,7 @@ class programmer(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1319,25 +1325,25 @@ class programmer(person): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='programmer'): super(programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') outfile.write(' language=%s' % (self.gds_format_string(quote_attrib(self.language).encode(ExternalEncoding), input_name='language'), )) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') outfile.write(' area=%s' % (self.gds_format_string(quote_attrib(self.area).encode(ExternalEncoding), input_name='area'), )) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') outfile.write(' attrnegint="%s"' % self.gds_format_integer(self.attrnegint, input_name='attrnegint')) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') outfile.write(' attrposint="%s"' % self.gds_format_integer(self.attrposint, input_name='attrposint')) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') outfile.write(' attrnonnegint="%s"' % self.gds_format_integer(self.attrnonnegint, input_name='attrnonnegint')) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') outfile.write(' attrnonposint="%s"' % self.gds_format_integer(self.attrnonposint, input_name='attrnonposint')) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='programmer', fromsubclass_=False, pretty_print=True): @@ -1402,32 +1408,33 @@ class programmer(person): return False def exportLiteral(self, outfile, level, name_='programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') showIndent(outfile, level) outfile.write('language = "%s",\n' % (self.language,)) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') showIndent(outfile, level) outfile.write('area = "%s",\n' % (self.area,)) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') showIndent(outfile, level) outfile.write('attrnegint = %d,\n' % (self.attrnegint,)) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') showIndent(outfile, level) outfile.write('attrposint = %d,\n' % (self.attrposint,)) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') showIndent(outfile, level) outfile.write('attrnonnegint = %d,\n' % (self.attrnonnegint,)) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') showIndent(outfile, level) outfile.write('attrnonposint = %d,\n' % (self.attrnonposint,)) super(programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1473,22 +1480,23 @@ class programmer(person): showIndent(outfile, level) outfile.write('elarraytypes=%s,\n' % quote_python(self.elarraytypes).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('language', node) if value is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') self.language = value value = find_attr_value_('area', node) if value is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') self.area = value value = find_attr_value_('attrnegint', node) if value is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') try: self.attrnegint = int(value) except ValueError, exp: @@ -1497,7 +1505,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NegativeInteger') value = find_attr_value_('attrposint', node) if value is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') try: self.attrposint = int(value) except ValueError, exp: @@ -1506,7 +1514,7 @@ class programmer(person): raise_parse_error(node, 'Invalid PositiveInteger') value = find_attr_value_('attrnonnegint', node) if value is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') try: self.attrnonnegint = int(value) except ValueError, exp: @@ -1515,7 +1523,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonNegativeInteger') value = find_attr_value_('attrnonposint', node) if value is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') try: self.attrnonposint = int(value) except ValueError, exp: @@ -1524,7 +1532,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonPositiveInteger') value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value super(programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -1709,7 +1717,7 @@ class param(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='param') if self.hasContent_(): outfile.write('>') @@ -1720,22 +1728,22 @@ class param(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='param'): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') outfile.write(' semantic=%s' % (self.gds_format_string(quote_attrib(self.semantic).encode(ExternalEncoding), input_name='semantic'), )) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (quote_attrib(self.name), )) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') outfile.write(' flow=%s' % (quote_attrib(self.flow), )) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') outfile.write(' sid=%s' % (quote_attrib(self.sid), )) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), )) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), )) def exportChildren(self, outfile, level, namespace_='', name_='param', fromsubclass_=False, pretty_print=True): pass @@ -1748,40 +1756,42 @@ class param(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='param'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') showIndent(outfile, level) outfile.write('semantic = "%s",\n' % (self.semantic,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') showIndent(outfile, level) outfile.write('flow = %s,\n' % (self.flow,)) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') showIndent(outfile, level) outfile.write('sid = "%s",\n' % (self.sid,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = "%s",\n' % (self.type_,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = "%s",\n' % (self.id,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1789,28 +1799,28 @@ class param(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('semantic', node) if value is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') self.semantic = value self.semantic = ' '.join(self.semantic.split()) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value value = find_attr_value_('flow', node) if value is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') self.flow = value value = find_attr_value_('sid', node) if value is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') self.sid = value value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') self.type_ = value value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') self.id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1891,7 +1901,7 @@ class python_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1903,7 +1913,7 @@ class python_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='python-programmer'): super(python_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='python-programmer', fromsubclass_=False, pretty_print=True): super(python_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -1924,12 +1934,13 @@ class python_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='python-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(python_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -1939,14 +1950,15 @@ class python_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(python_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2036,7 +2048,7 @@ class java_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2048,10 +2060,10 @@ class java_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='java-programmer'): super(java_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') outfile.write(' status=%s' % (self.gds_format_string(quote_attrib(self.status).encode(ExternalEncoding), input_name='status'), )) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='java-programmer', fromsubclass_=False, pretty_print=True): super(java_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2072,16 +2084,17 @@ class java_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='java-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') showIndent(outfile, level) outfile.write('status = "%s",\n' % (self.status,)) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(java_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2091,18 +2104,19 @@ class java_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('status', node) if value is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') self.status = value value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(java_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2195,7 +2209,7 @@ class agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2234,7 +2248,8 @@ class agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2256,7 +2271,8 @@ class agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2367,7 +2383,7 @@ class special_agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='special-agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2406,7 +2422,8 @@ class special_agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='special-agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2428,7 +2445,8 @@ class special_agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2566,7 +2584,7 @@ class booster(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='booster') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2617,7 +2635,8 @@ class booster(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='booster'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2666,7 +2685,8 @@ class booster(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2798,7 +2818,7 @@ class info(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='info') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2808,13 +2828,13 @@ class info(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='info'): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') outfile.write(' rating="%s"' % self.gds_format_float(self.rating, input_name='rating')) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type="%s"' % self.gds_format_integer(self.type_, input_name='type')) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), )) def exportChildren(self, outfile, level, namespace_='', name_='info', fromsubclass_=False, pretty_print=True): pass @@ -2827,47 +2847,49 @@ class info(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='info'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') showIndent(outfile, level) outfile.write('rating = %f,\n' % (self.rating,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = %d,\n' % (self.type_,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('rating', node) if value is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') try: self.rating = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (rating): %s' % exp) value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') try: self.type_ = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -2947,7 +2969,7 @@ class client_handlerType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='client-handlerType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2979,7 +3001,8 @@ class client_handlerType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='client-handlerType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2992,7 +3015,8 @@ class client_handlerType(GeneratedsSuper): showIndent(outfile, level) outfile.write('refid=%d,\n' % self.refid) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py index c569a6870f3c507a661b9f98053234c23dea4b63..996b7af96158cae1ad4b47b5f15de0712efde8e3 100644 --- a/tests/people_procincl1_sup.py +++ b/tests/people_procincl1_sup.py @@ -552,7 +552,7 @@ class people(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='people') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -594,7 +594,8 @@ class people(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='people'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -673,7 +674,8 @@ class people(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -759,7 +761,7 @@ class comments(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='comments') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -785,7 +787,8 @@ class comments(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='comments'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -807,7 +810,8 @@ class comments(GeneratedsSuper): outfile.write('],\n') pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) if node.text is not None: obj_ = self.mixedclass_(MixedContainer.CategoryText, @@ -920,7 +924,7 @@ class person(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='person') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -931,22 +935,22 @@ class person(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='person'): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') outfile.write(' vegetable=%s' % (self.gds_format_string(quote_attrib(self.vegetable).encode(ExternalEncoding), input_name='vegetable'), )) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') outfile.write(' fruit=%s' % (self.gds_format_string(quote_attrib(self.fruit).encode(ExternalEncoding), input_name='fruit'), )) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') outfile.write(' ratio="%s"' % self.gds_format_float(self.ratio, input_name='ratio')) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id')) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') outfile.write(' value=%s' % (self.gds_format_string(quote_attrib(self.value).encode(ExternalEncoding), input_name='value'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='person', fromsubclass_=False, pretty_print=True): @@ -984,28 +988,29 @@ class person(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='person'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') showIndent(outfile, level) outfile.write('vegetable = "%s",\n' % (self.vegetable,)) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') showIndent(outfile, level) outfile.write('fruit = "%s",\n' % (self.fruit,)) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') showIndent(outfile, level) outfile.write('ratio = %f,\n' % (self.ratio,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = %d,\n' % (self.id,)) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') showIndent(outfile, level) outfile.write('value = "%s",\n' % (self.value,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1052,40 +1057,41 @@ class person(GeneratedsSuper): showIndent(outfile, level) outfile.write('description=%s,\n' % quote_python(self.description).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('vegetable', node) if value is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') self.vegetable = value value = find_attr_value_('fruit', node) if value is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') self.fruit = value value = find_attr_value_('ratio', node) if value is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') try: self.ratio = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (ratio): %s' % exp) value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') try: self.id = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value', node) if value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') self.value = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -1140,7 +1146,7 @@ class specialperson(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='specialperson') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1162,7 +1168,8 @@ class specialperson(person): return False def exportLiteral(self, outfile, level, name_='specialperson'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1170,7 +1177,8 @@ class specialperson(person): def exportLiteralChildren(self, outfile, level, name_): super(specialperson, self).exportLiteralChildren(outfile, level, name_) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1231,7 +1239,7 @@ class param(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='param') if self.hasContent_(): outfile.write('>') @@ -1242,22 +1250,22 @@ class param(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='param'): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') outfile.write(' semantic=%s' % (self.gds_format_string(quote_attrib(self.semantic).encode(ExternalEncoding), input_name='semantic'), )) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (quote_attrib(self.name), )) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') outfile.write(' flow=%s' % (quote_attrib(self.flow), )) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') outfile.write(' sid=%s' % (quote_attrib(self.sid), )) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), )) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), )) def exportChildren(self, outfile, level, namespace_='', name_='param', fromsubclass_=False, pretty_print=True): pass @@ -1270,40 +1278,42 @@ class param(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='param'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') showIndent(outfile, level) outfile.write('semantic = "%s",\n' % (self.semantic,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') showIndent(outfile, level) outfile.write('flow = %s,\n' % (self.flow,)) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') showIndent(outfile, level) outfile.write('sid = "%s",\n' % (self.sid,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = "%s",\n' % (self.type_,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = "%s",\n' % (self.id,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1311,28 +1321,28 @@ class param(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('semantic', node) if value is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') self.semantic = value self.semantic = ' '.join(self.semantic.split()) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value value = find_attr_value_('flow', node) if value is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') self.flow = value value = find_attr_value_('sid', node) if value is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') self.sid = value value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') self.type_ = value value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') self.id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1383,7 +1393,7 @@ class agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1425,7 +1435,8 @@ class agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1459,7 +1470,8 @@ class agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1544,7 +1556,7 @@ class special_agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='special-agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1583,7 +1595,8 @@ class special_agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='special-agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1605,7 +1618,8 @@ class special_agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1701,7 +1715,7 @@ class booster(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='booster') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1712,7 +1726,7 @@ class booster(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='booster'): if self.member_id is not None and 'member_id' not in already_processed: - already_processed.append('member_id') + already_processed.add('member_id') outfile.write(' member-id=%s' % (self.gds_format_string(quote_attrib(self.member_id).encode(ExternalEncoding), input_name='member-id'), )) def exportChildren(self, outfile, level, namespace_='', name_='booster', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -1754,12 +1768,13 @@ class booster(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='booster'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.member_id is not None and 'member_id' not in already_processed: - already_processed.append('member_id') + already_processed.add('member_id') showIndent(outfile, level) outfile.write('member_id = "%s",\n' % (self.member_id,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1806,14 +1821,15 @@ class booster(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('member-id', node) if value is not None and 'member-id' not in already_processed: - already_processed.append('member-id') + already_processed.add('member-id') self.member_id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'firstname': @@ -1895,7 +1911,7 @@ class info(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='info') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1905,13 +1921,13 @@ class info(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='info'): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') outfile.write(' rating="%s"' % self.gds_format_float(self.rating, input_name='rating')) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type="%s"' % self.gds_format_integer(self.type_, input_name='type')) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), )) def exportChildren(self, outfile, level, namespace_='', name_='info', fromsubclass_=False, pretty_print=True): pass @@ -1924,47 +1940,49 @@ class info(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='info'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') showIndent(outfile, level) outfile.write('rating = %f,\n' % (self.rating,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = %d,\n' % (self.type_,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('rating', node) if value is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') try: self.rating = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (rating): %s' % exp) value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') try: self.type_ = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1997,7 +2015,7 @@ class vehicle(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='vehicle') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2008,7 +2026,7 @@ class vehicle(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='vehicle'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -2029,7 +2047,8 @@ class vehicle(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='vehicle'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2039,14 +2058,15 @@ class vehicle(GeneratedsSuper): showIndent(outfile, level) outfile.write('wheelcount=%d,\n' % self.wheelcount) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'wheelcount': @@ -2084,7 +2104,7 @@ class automobile(vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='automobile') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2114,7 +2134,8 @@ class automobile(vehicle): return False def exportLiteral(self, outfile, level, name_='automobile'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2125,7 +2146,8 @@ class automobile(vehicle): showIndent(outfile, level) outfile.write('drivername=%s,\n' % quote_python(self.drivername).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2164,7 +2186,7 @@ class airplane(vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='airplane') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2194,7 +2216,8 @@ class airplane(vehicle): return False def exportLiteral(self, outfile, level, name_='airplane'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2205,7 +2228,8 @@ class airplane(vehicle): showIndent(outfile, level) outfile.write('pilotname=%s,\n' % quote_python(self.pilotname).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2316,7 +2340,7 @@ class programmer(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2328,25 +2352,25 @@ class programmer(person): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='programmer'): super(programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') outfile.write(' language=%s' % (self.gds_format_string(quote_attrib(self.language).encode(ExternalEncoding), input_name='language'), )) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') outfile.write(' area=%s' % (self.gds_format_string(quote_attrib(self.area).encode(ExternalEncoding), input_name='area'), )) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') outfile.write(' attrnegint="%s"' % self.gds_format_integer(self.attrnegint, input_name='attrnegint')) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') outfile.write(' attrposint="%s"' % self.gds_format_integer(self.attrposint, input_name='attrposint')) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') outfile.write(' attrnonnegint="%s"' % self.gds_format_integer(self.attrnonnegint, input_name='attrnonnegint')) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') outfile.write(' attrnonposint="%s"' % self.gds_format_integer(self.attrnonposint, input_name='attrnonposint')) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='programmer', fromsubclass_=False, pretty_print=True): @@ -2407,32 +2431,33 @@ class programmer(person): return False def exportLiteral(self, outfile, level, name_='programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') showIndent(outfile, level) outfile.write('language = "%s",\n' % (self.language,)) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') showIndent(outfile, level) outfile.write('area = "%s",\n' % (self.area,)) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') showIndent(outfile, level) outfile.write('attrnegint = %d,\n' % (self.attrnegint,)) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') showIndent(outfile, level) outfile.write('attrposint = %d,\n' % (self.attrposint,)) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') showIndent(outfile, level) outfile.write('attrnonnegint = %d,\n' % (self.attrnonnegint,)) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') showIndent(outfile, level) outfile.write('attrnonposint = %d,\n' % (self.attrnonposint,)) super(programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2475,22 +2500,23 @@ class programmer(person): showIndent(outfile, level) outfile.write('elarraytypes=%s,\n' % quote_python(self.elarraytypes).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('language', node) if value is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') self.language = value value = find_attr_value_('area', node) if value is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') self.area = value value = find_attr_value_('attrnegint', node) if value is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') try: self.attrnegint = int(value) except ValueError, exp: @@ -2499,7 +2525,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NegativeInteger') value = find_attr_value_('attrposint', node) if value is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') try: self.attrposint = int(value) except ValueError, exp: @@ -2508,7 +2534,7 @@ class programmer(person): raise_parse_error(node, 'Invalid PositiveInteger') value = find_attr_value_('attrnonnegint', node) if value is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') try: self.attrnonnegint = int(value) except ValueError, exp: @@ -2517,7 +2543,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonNegativeInteger') value = find_attr_value_('attrnonposint', node) if value is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') try: self.attrnonposint = int(value) except ValueError, exp: @@ -2526,7 +2552,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonPositiveInteger') value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value super(programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2639,7 +2665,7 @@ class client_handlerType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='client-handlerType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2671,7 +2697,8 @@ class client_handlerType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='client-handlerType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2684,7 +2711,8 @@ class client_handlerType(GeneratedsSuper): showIndent(outfile, level) outfile.write('refid=%d,\n' % self.refid) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2741,7 +2769,7 @@ class java_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2753,10 +2781,10 @@ class java_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='java-programmer'): super(java_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') outfile.write(' status=%s' % (self.gds_format_string(quote_attrib(self.status).encode(ExternalEncoding), input_name='status'), )) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='java-programmer', fromsubclass_=False, pretty_print=True): super(java_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2777,16 +2805,17 @@ class java_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='java-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') showIndent(outfile, level) outfile.write('status = "%s",\n' % (self.status,)) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(java_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2796,18 +2825,19 @@ class java_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('status', node) if value is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') self.status = value value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(java_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2849,7 +2879,7 @@ class python_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2861,7 +2891,7 @@ class python_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='python-programmer'): super(python_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='python-programmer', fromsubclass_=False, pretty_print=True): super(python_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2882,12 +2912,13 @@ class python_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='python-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(python_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2897,14 +2928,15 @@ class python_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(python_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): diff --git a/tests/people_procincl2_sup.py b/tests/people_procincl2_sup.py index c569a6870f3c507a661b9f98053234c23dea4b63..996b7af96158cae1ad4b47b5f15de0712efde8e3 100644 --- a/tests/people_procincl2_sup.py +++ b/tests/people_procincl2_sup.py @@ -552,7 +552,7 @@ class people(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='people') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -594,7 +594,8 @@ class people(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='people'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -673,7 +674,8 @@ class people(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -759,7 +761,7 @@ class comments(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='comments') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -785,7 +787,8 @@ class comments(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='comments'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -807,7 +810,8 @@ class comments(GeneratedsSuper): outfile.write('],\n') pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) if node.text is not None: obj_ = self.mixedclass_(MixedContainer.CategoryText, @@ -920,7 +924,7 @@ class person(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='person') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -931,22 +935,22 @@ class person(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='person'): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') outfile.write(' vegetable=%s' % (self.gds_format_string(quote_attrib(self.vegetable).encode(ExternalEncoding), input_name='vegetable'), )) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') outfile.write(' fruit=%s' % (self.gds_format_string(quote_attrib(self.fruit).encode(ExternalEncoding), input_name='fruit'), )) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') outfile.write(' ratio="%s"' % self.gds_format_float(self.ratio, input_name='ratio')) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id="%s"' % self.gds_format_integer(self.id, input_name='id')) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') outfile.write(' value=%s' % (self.gds_format_string(quote_attrib(self.value).encode(ExternalEncoding), input_name='value'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='person', fromsubclass_=False, pretty_print=True): @@ -984,28 +988,29 @@ class person(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='person'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.vegetable is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') showIndent(outfile, level) outfile.write('vegetable = "%s",\n' % (self.vegetable,)) if self.fruit is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') showIndent(outfile, level) outfile.write('fruit = "%s",\n' % (self.fruit,)) if self.ratio is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') showIndent(outfile, level) outfile.write('ratio = %f,\n' % (self.ratio,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = %d,\n' % (self.id,)) if self.value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') showIndent(outfile, level) outfile.write('value = "%s",\n' % (self.value,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1052,40 +1057,41 @@ class person(GeneratedsSuper): showIndent(outfile, level) outfile.write('description=%s,\n' % quote_python(self.description).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('vegetable', node) if value is not None and 'vegetable' not in already_processed: - already_processed.append('vegetable') + already_processed.add('vegetable') self.vegetable = value value = find_attr_value_('fruit', node) if value is not None and 'fruit' not in already_processed: - already_processed.append('fruit') + already_processed.add('fruit') self.fruit = value value = find_attr_value_('ratio', node) if value is not None and 'ratio' not in already_processed: - already_processed.append('ratio') + already_processed.add('ratio') try: self.ratio = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (ratio): %s' % exp) value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') try: self.id = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('value', node) if value is not None and 'value' not in already_processed: - already_processed.append('value') + already_processed.add('value') self.value = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'name': @@ -1140,7 +1146,7 @@ class specialperson(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='specialperson') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1162,7 +1168,8 @@ class specialperson(person): return False def exportLiteral(self, outfile, level, name_='specialperson'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1170,7 +1177,8 @@ class specialperson(person): def exportLiteralChildren(self, outfile, level, name_): super(specialperson, self).exportLiteralChildren(outfile, level, name_) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1231,7 +1239,7 @@ class param(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='param') if self.hasContent_(): outfile.write('>') @@ -1242,22 +1250,22 @@ class param(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='param'): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') outfile.write(' semantic=%s' % (self.gds_format_string(quote_attrib(self.semantic).encode(ExternalEncoding), input_name='semantic'), )) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (quote_attrib(self.name), )) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') outfile.write(' flow=%s' % (quote_attrib(self.flow), )) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') outfile.write(' sid=%s' % (quote_attrib(self.sid), )) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type=%s' % (self.gds_format_string(quote_attrib(self.type_).encode(ExternalEncoding), input_name='type'), )) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') outfile.write(' id=%s' % (self.gds_format_string(quote_attrib(self.id).encode(ExternalEncoding), input_name='id'), )) def exportChildren(self, outfile, level, namespace_='', name_='param', fromsubclass_=False, pretty_print=True): pass @@ -1270,40 +1278,42 @@ class param(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='param'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.semantic is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') showIndent(outfile, level) outfile.write('semantic = "%s",\n' % (self.semantic,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) if self.flow is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') showIndent(outfile, level) outfile.write('flow = %s,\n' % (self.flow,)) if self.sid is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') showIndent(outfile, level) outfile.write('sid = "%s",\n' % (self.sid,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = "%s",\n' % (self.type_,)) if self.id is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') showIndent(outfile, level) outfile.write('id = "%s",\n' % (self.id,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -1311,28 +1321,28 @@ class param(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('semantic', node) if value is not None and 'semantic' not in already_processed: - already_processed.append('semantic') + already_processed.add('semantic') self.semantic = value self.semantic = ' '.join(self.semantic.split()) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value value = find_attr_value_('flow', node) if value is not None and 'flow' not in already_processed: - already_processed.append('flow') + already_processed.add('flow') self.flow = value value = find_attr_value_('sid', node) if value is not None and 'sid' not in already_processed: - already_processed.append('sid') + already_processed.add('sid') self.sid = value value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') self.type_ = value value = find_attr_value_('id', node) if value is not None and 'id' not in already_processed: - already_processed.append('id') + already_processed.add('id') self.id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1383,7 +1393,7 @@ class agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1425,7 +1435,8 @@ class agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1459,7 +1470,8 @@ class agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1544,7 +1556,7 @@ class special_agent(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='special-agent') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1583,7 +1595,8 @@ class special_agent(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='special-agent'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -1605,7 +1618,8 @@ class special_agent(GeneratedsSuper): showIndent(outfile, level) outfile.write('),\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -1701,7 +1715,7 @@ class booster(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='booster') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1712,7 +1726,7 @@ class booster(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='booster'): if self.member_id is not None and 'member_id' not in already_processed: - already_processed.append('member_id') + already_processed.add('member_id') outfile.write(' member-id=%s' % (self.gds_format_string(quote_attrib(self.member_id).encode(ExternalEncoding), input_name='member-id'), )) def exportChildren(self, outfile, level, namespace_='', name_='booster', fromsubclass_=False, pretty_print=True): if pretty_print: @@ -1754,12 +1768,13 @@ class booster(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='booster'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.member_id is not None and 'member_id' not in already_processed: - already_processed.append('member_id') + already_processed.add('member_id') showIndent(outfile, level) outfile.write('member_id = "%s",\n' % (self.member_id,)) def exportLiteralChildren(self, outfile, level, name_): @@ -1806,14 +1821,15 @@ class booster(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('member-id', node) if value is not None and 'member-id' not in already_processed: - already_processed.append('member-id') + already_processed.add('member-id') self.member_id = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'firstname': @@ -1895,7 +1911,7 @@ class info(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='info') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -1905,13 +1921,13 @@ class info(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='info'): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') outfile.write(' rating="%s"' % self.gds_format_float(self.rating, input_name='rating')) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') outfile.write(' type="%s"' % self.gds_format_integer(self.type_, input_name='type')) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') outfile.write(' name=%s' % (self.gds_format_string(quote_attrib(self.name).encode(ExternalEncoding), input_name='name'), )) def exportChildren(self, outfile, level, namespace_='', name_='info', fromsubclass_=False, pretty_print=True): pass @@ -1924,47 +1940,49 @@ class info(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='info'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.rating is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') showIndent(outfile, level) outfile.write('rating = %f,\n' % (self.rating,)) if self.type_ is not None and 'type_' not in already_processed: - already_processed.append('type_') + already_processed.add('type_') showIndent(outfile, level) outfile.write('type_ = %d,\n' % (self.type_,)) if self.name is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') showIndent(outfile, level) outfile.write('name = "%s",\n' % (self.name,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('rating', node) if value is not None and 'rating' not in already_processed: - already_processed.append('rating') + already_processed.add('rating') try: self.rating = float(value) except ValueError, exp: raise ValueError('Bad float/double attribute (rating): %s' % exp) value = find_attr_value_('type', node) if value is not None and 'type' not in already_processed: - already_processed.append('type') + already_processed.add('type') try: self.type_ = int(value) except ValueError, exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) value = find_attr_value_('name', node) if value is not None and 'name' not in already_processed: - already_processed.append('name') + already_processed.add('name') self.name = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -1997,7 +2015,7 @@ class vehicle(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='vehicle') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2008,7 +2026,7 @@ class vehicle(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='vehicle'): if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) pass @@ -2029,7 +2047,8 @@ class vehicle(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='vehicle'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2039,14 +2058,15 @@ class vehicle(GeneratedsSuper): showIndent(outfile, level) outfile.write('wheelcount=%d,\n' % self.wheelcount) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): if nodeName_ == 'wheelcount': @@ -2084,7 +2104,7 @@ class automobile(vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='automobile') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2114,7 +2134,8 @@ class automobile(vehicle): return False def exportLiteral(self, outfile, level, name_='automobile'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2125,7 +2146,8 @@ class automobile(vehicle): showIndent(outfile, level) outfile.write('drivername=%s,\n' % quote_python(self.drivername).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2164,7 +2186,7 @@ class airplane(vehicle): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='airplane') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2194,7 +2216,8 @@ class airplane(vehicle): return False def exportLiteral(self, outfile, level, name_='airplane'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2205,7 +2228,8 @@ class airplane(vehicle): showIndent(outfile, level) outfile.write('pilotname=%s,\n' % quote_python(self.pilotname).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2316,7 +2340,7 @@ class programmer(person): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2328,25 +2352,25 @@ class programmer(person): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='programmer'): super(programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='programmer') if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') outfile.write(' language=%s' % (self.gds_format_string(quote_attrib(self.language).encode(ExternalEncoding), input_name='language'), )) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') outfile.write(' area=%s' % (self.gds_format_string(quote_attrib(self.area).encode(ExternalEncoding), input_name='area'), )) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') outfile.write(' attrnegint="%s"' % self.gds_format_integer(self.attrnegint, input_name='attrnegint')) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') outfile.write(' attrposint="%s"' % self.gds_format_integer(self.attrposint, input_name='attrposint')) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') outfile.write(' attrnonnegint="%s"' % self.gds_format_integer(self.attrnonnegint, input_name='attrnonnegint')) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') outfile.write(' attrnonposint="%s"' % self.gds_format_integer(self.attrnonposint, input_name='attrnonposint')) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='programmer', fromsubclass_=False, pretty_print=True): @@ -2407,32 +2431,33 @@ class programmer(person): return False def exportLiteral(self, outfile, level, name_='programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.language is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') showIndent(outfile, level) outfile.write('language = "%s",\n' % (self.language,)) if self.area is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') showIndent(outfile, level) outfile.write('area = "%s",\n' % (self.area,)) if self.attrnegint is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') showIndent(outfile, level) outfile.write('attrnegint = %d,\n' % (self.attrnegint,)) if self.attrposint is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') showIndent(outfile, level) outfile.write('attrposint = %d,\n' % (self.attrposint,)) if self.attrnonnegint is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') showIndent(outfile, level) outfile.write('attrnonnegint = %d,\n' % (self.attrnonnegint,)) if self.attrnonposint is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') showIndent(outfile, level) outfile.write('attrnonposint = %d,\n' % (self.attrnonposint,)) super(programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2475,22 +2500,23 @@ class programmer(person): showIndent(outfile, level) outfile.write('elarraytypes=%s,\n' % quote_python(self.elarraytypes).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('language', node) if value is not None and 'language' not in already_processed: - already_processed.append('language') + already_processed.add('language') self.language = value value = find_attr_value_('area', node) if value is not None and 'area' not in already_processed: - already_processed.append('area') + already_processed.add('area') self.area = value value = find_attr_value_('attrnegint', node) if value is not None and 'attrnegint' not in already_processed: - already_processed.append('attrnegint') + already_processed.add('attrnegint') try: self.attrnegint = int(value) except ValueError, exp: @@ -2499,7 +2525,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NegativeInteger') value = find_attr_value_('attrposint', node) if value is not None and 'attrposint' not in already_processed: - already_processed.append('attrposint') + already_processed.add('attrposint') try: self.attrposint = int(value) except ValueError, exp: @@ -2508,7 +2534,7 @@ class programmer(person): raise_parse_error(node, 'Invalid PositiveInteger') value = find_attr_value_('attrnonnegint', node) if value is not None and 'attrnonnegint' not in already_processed: - already_processed.append('attrnonnegint') + already_processed.add('attrnonnegint') try: self.attrnonnegint = int(value) except ValueError, exp: @@ -2517,7 +2543,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonNegativeInteger') value = find_attr_value_('attrnonposint', node) if value is not None and 'attrnonposint' not in already_processed: - already_processed.append('attrnonposint') + already_processed.add('attrnonposint') try: self.attrnonposint = int(value) except ValueError, exp: @@ -2526,7 +2552,7 @@ class programmer(person): raise_parse_error(node, 'Invalid NonPositiveInteger') value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value super(programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2639,7 +2665,7 @@ class client_handlerType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='client-handlerType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2671,7 +2697,8 @@ class client_handlerType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='client-handlerType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -2684,7 +2711,8 @@ class client_handlerType(GeneratedsSuper): showIndent(outfile, level) outfile.write('refid=%d,\n' % self.refid) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -2741,7 +2769,7 @@ class java_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2753,10 +2781,10 @@ class java_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='java-programmer'): super(java_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='java-programmer') if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') outfile.write(' status=%s' % (self.gds_format_string(quote_attrib(self.status).encode(ExternalEncoding), input_name='status'), )) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='java-programmer', fromsubclass_=False, pretty_print=True): super(java_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2777,16 +2805,17 @@ class java_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='java-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.status is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') showIndent(outfile, level) outfile.write('status = "%s",\n' % (self.status,)) if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(java_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2796,18 +2825,19 @@ class java_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('status', node) if value is not None and 'status' not in already_processed: - already_processed.append('status') + already_processed.add('status') self.status = value value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(java_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): @@ -2849,7 +2879,7 @@ class python_programmer(programmer): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -2861,7 +2891,7 @@ class python_programmer(programmer): def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='python-programmer'): super(python_programmer, self).exportAttributes(outfile, level, already_processed, namespace_, name_='python-programmer') if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') outfile.write(' nick-name=%s' % (self.gds_format_string(quote_attrib(self.nick_name).encode(ExternalEncoding), input_name='nick-name'), )) def exportChildren(self, outfile, level, namespace_='', name_='python-programmer', fromsubclass_=False, pretty_print=True): super(python_programmer, self).exportChildren(outfile, level, namespace_, name_, True, pretty_print=pretty_print) @@ -2882,12 +2912,13 @@ class python_programmer(programmer): return False def exportLiteral(self, outfile, level, name_='python-programmer'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.nick_name is not None and 'nick_name' not in already_processed: - already_processed.append('nick_name') + already_processed.add('nick_name') showIndent(outfile, level) outfile.write('nick_name = "%s",\n' % (self.nick_name,)) super(python_programmer, self).exportLiteralAttributes(outfile, level, already_processed, name_) @@ -2897,14 +2928,15 @@ class python_programmer(programmer): showIndent(outfile, level) outfile.write('favorite_editor=%s,\n' % quote_python(self.favorite_editor).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('nick-name', node) if value is not None and 'nick-name' not in already_processed: - already_processed.append('nick-name') + already_processed.add('nick-name') self.nick_name = value super(python_programmer, self).buildAttributes(node, attrs, already_processed) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py index 262e1856e31f0f267d48471f44f7c24fa50d1b5e..35d7d54e41600587443096d73e6deba4d900508f 100644 --- a/tests/recursive_simpletype1_sup.py +++ b/tests/recursive_simpletype1_sup.py @@ -509,7 +509,7 @@ class PersonType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PersonType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -545,7 +545,8 @@ class PersonType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PersonType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -561,7 +562,8 @@ class PersonType(GeneratedsSuper): showIndent(outfile, level) outfile.write('lname=%s,\n' % quote_python(self.lname).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/recursive_simpletype2_sup.py b/tests/recursive_simpletype2_sup.py index 262e1856e31f0f267d48471f44f7c24fa50d1b5e..35d7d54e41600587443096d73e6deba4d900508f 100644 --- a/tests/recursive_simpletype2_sup.py +++ b/tests/recursive_simpletype2_sup.py @@ -509,7 +509,7 @@ class PersonType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='PersonType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -545,7 +545,8 @@ class PersonType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='PersonType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -561,7 +562,8 @@ class PersonType(GeneratedsSuper): showIndent(outfile, level) outfile.write('lname=%s,\n' % quote_python(self.lname).encode(ExternalEncoding)) def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/simplecontent_restriction1_sup.py b/tests/simplecontent_restriction1_sup.py index 08211cf98eda4b60933de8e6970c6bdca4722d97..0e815f572e344ab48fd2296d6a6a7659ee216554 100644 --- a/tests/simplecontent_restriction1_sup.py +++ b/tests/simplecontent_restriction1_sup.py @@ -532,7 +532,7 @@ class IdentifierType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='IdentifierType') if self.hasContent_(): outfile.write('>') @@ -543,28 +543,28 @@ class IdentifierType(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='', name_='IdentifierType'): if self.schemeDataURI is not None and 'schemeDataURI' not in already_processed: - already_processed.append('schemeDataURI') + already_processed.add('schemeDataURI') outfile.write(' schemeDataURI=%s' % (self.gds_format_string(quote_attrib(self.schemeDataURI).encode(ExternalEncoding), input_name='schemeDataURI'), )) if self.schemeID is not None and 'schemeID' not in already_processed: - already_processed.append('schemeID') + already_processed.add('schemeID') outfile.write(' schemeID=%s' % (self.gds_format_string(quote_attrib(self.schemeID).encode(ExternalEncoding), input_name='schemeID'), )) if self.schemeAgencyName is not None and 'schemeAgencyName' not in already_processed: - already_processed.append('schemeAgencyName') + already_processed.add('schemeAgencyName') outfile.write(' schemeAgencyName=%s' % (self.gds_format_string(quote_attrib(self.schemeAgencyName).encode(ExternalEncoding), input_name='schemeAgencyName'), )) if self.schemeAgencyID is not None and 'schemeAgencyID' not in already_processed: - already_processed.append('schemeAgencyID') + already_processed.add('schemeAgencyID') outfile.write(' schemeAgencyID=%s' % (self.gds_format_string(quote_attrib(self.schemeAgencyID).encode(ExternalEncoding), input_name='schemeAgencyID'), )) if self.schemeName is not None and 'schemeName' not in already_processed: - already_processed.append('schemeName') + already_processed.add('schemeName') outfile.write(' schemeName=%s' % (self.gds_format_string(quote_attrib(self.schemeName).encode(ExternalEncoding), input_name='schemeName'), )) if self.schemeVersionID is not None and 'schemeVersionID' not in already_processed: - already_processed.append('schemeVersionID') + already_processed.add('schemeVersionID') outfile.write(' schemeVersionID=%s' % (self.gds_format_string(quote_attrib(self.schemeVersionID).encode(ExternalEncoding), input_name='schemeVersionID'), )) if self.schemeURI is not None and 'schemeURI' not in already_processed: - already_processed.append('schemeURI') + already_processed.add('schemeURI') outfile.write(' schemeURI=%s' % (self.gds_format_string(quote_attrib(self.schemeURI).encode(ExternalEncoding), input_name='schemeURI'), )) if self.extensiontype_ is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') outfile.write(' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') outfile.write(' xsi:type="%s"' % self.extensiontype_) def exportChildren(self, outfile, level, namespace_='', name_='IdentifierType', fromsubclass_=False, pretty_print=True): @@ -578,44 +578,46 @@ class IdentifierType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='IdentifierType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.schemeDataURI is not None and 'schemeDataURI' not in already_processed: - already_processed.append('schemeDataURI') + already_processed.add('schemeDataURI') showIndent(outfile, level) outfile.write('schemeDataURI = "%s",\n' % (self.schemeDataURI,)) if self.schemeID is not None and 'schemeID' not in already_processed: - already_processed.append('schemeID') + already_processed.add('schemeID') showIndent(outfile, level) outfile.write('schemeID = "%s",\n' % (self.schemeID,)) if self.schemeAgencyName is not None and 'schemeAgencyName' not in already_processed: - already_processed.append('schemeAgencyName') + already_processed.add('schemeAgencyName') showIndent(outfile, level) outfile.write('schemeAgencyName = "%s",\n' % (self.schemeAgencyName,)) if self.schemeAgencyID is not None and 'schemeAgencyID' not in already_processed: - already_processed.append('schemeAgencyID') + already_processed.add('schemeAgencyID') showIndent(outfile, level) outfile.write('schemeAgencyID = "%s",\n' % (self.schemeAgencyID,)) if self.schemeName is not None and 'schemeName' not in already_processed: - already_processed.append('schemeName') + already_processed.add('schemeName') showIndent(outfile, level) outfile.write('schemeName = "%s",\n' % (self.schemeName,)) if self.schemeVersionID is not None and 'schemeVersionID' not in already_processed: - already_processed.append('schemeVersionID') + already_processed.add('schemeVersionID') showIndent(outfile, level) outfile.write('schemeVersionID = "%s",\n' % (self.schemeVersionID,)) if self.schemeURI is not None and 'schemeURI' not in already_processed: - already_processed.append('schemeURI') + already_processed.add('schemeURI') showIndent(outfile, level) outfile.write('schemeURI = "%s",\n' % (self.schemeURI,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -623,35 +625,35 @@ class IdentifierType(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('schemeDataURI', node) if value is not None and 'schemeDataURI' not in already_processed: - already_processed.append('schemeDataURI') + already_processed.add('schemeDataURI') self.schemeDataURI = value value = find_attr_value_('schemeID', node) if value is not None and 'schemeID' not in already_processed: - already_processed.append('schemeID') + already_processed.add('schemeID') self.schemeID = value value = find_attr_value_('schemeAgencyName', node) if value is not None and 'schemeAgencyName' not in already_processed: - already_processed.append('schemeAgencyName') + already_processed.add('schemeAgencyName') self.schemeAgencyName = value value = find_attr_value_('schemeAgencyID', node) if value is not None and 'schemeAgencyID' not in already_processed: - already_processed.append('schemeAgencyID') + already_processed.add('schemeAgencyID') self.schemeAgencyID = value value = find_attr_value_('schemeName', node) if value is not None and 'schemeName' not in already_processed: - already_processed.append('schemeName') + already_processed.add('schemeName') self.schemeName = value value = find_attr_value_('schemeVersionID', node) if value is not None and 'schemeVersionID' not in already_processed: - already_processed.append('schemeVersionID') + already_processed.add('schemeVersionID') self.schemeVersionID = value value = find_attr_value_('schemeURI', node) if value is not None and 'schemeURI' not in already_processed: - already_processed.append('schemeURI') + already_processed.add('schemeURI') self.schemeURI = value value = find_attr_value_('xsi:type', node) if value is not None and 'xsi:type' not in already_processed: - already_processed.append('xsi:type') + already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -682,7 +684,7 @@ class BillOfResourcesIDType(IdentifierType): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='BillOfResourcesIDType') if self.hasContent_(): outfile.write('>') @@ -706,7 +708,8 @@ class BillOfResourcesIDType(IdentifierType): return False def exportLiteral(self, outfile, level, name_='BillOfResourcesIDType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -717,7 +720,8 @@ class BillOfResourcesIDType(IdentifierType): super(BillOfResourcesIDType, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -753,7 +757,7 @@ class BillOfMaterialIDType(IdentifierType): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='BillOfMaterialIDType') if self.hasContent_(): outfile.write('>') @@ -777,7 +781,8 @@ class BillOfMaterialIDType(IdentifierType): return False def exportLiteral(self, outfile, level, name_='BillOfMaterialIDType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) @@ -788,7 +793,8 @@ class BillOfMaterialIDType(IdentifierType): super(BillOfMaterialIDType, self).exportLiteralChildren(outfile, level, name_) pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] diff --git a/tests/simpletype_memberspecs1_sup.py b/tests/simpletype_memberspecs1_sup.py index d3be8d0cc173e29e1321d5926c371dab3a0956f2..990542591de211b78a4750728977e0aac2484714 100644 --- a/tests/simpletype_memberspecs1_sup.py +++ b/tests/simpletype_memberspecs1_sup.py @@ -505,7 +505,7 @@ class SpecialDate(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='SpecialDate') if self.hasContent_(): outfile.write('>') @@ -516,7 +516,7 @@ class SpecialDate(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='pl:', name_='SpecialDate'): if self.SpecialProperty is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') outfile.write(' SpecialProperty=%s' % (self.gds_format_string(quote_attrib(self.SpecialProperty).encode(ExternalEncoding), input_name='SpecialProperty'), )) def exportChildren(self, outfile, level, namespace_='pl:', name_='SpecialDate', fromsubclass_=False, pretty_print=True): pass @@ -529,20 +529,22 @@ class SpecialDate(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='SpecialDate'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.SpecialProperty is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') showIndent(outfile, level) outfile.write('SpecialProperty = "%s",\n' % (self.SpecialProperty,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -550,7 +552,7 @@ class SpecialDate(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('SpecialProperty', node) if value is not None and 'SpecialProperty' not in already_processed: - already_processed.append('SpecialProperty') + already_processed.add('SpecialProperty') self.SpecialProperty = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass @@ -584,7 +586,7 @@ class ExtremeDate(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='ExtremeDate') if self.hasContent_(): outfile.write('>') @@ -595,7 +597,7 @@ class ExtremeDate(GeneratedsSuper): outfile.write('/>%s' % (eol_, )) def exportAttributes(self, outfile, level, already_processed, namespace_='pl:', name_='ExtremeDate'): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') outfile.write(' ExtremeProperty=%s' % (self.gds_format_string(quote_attrib(self.ExtremeProperty).encode(ExternalEncoding), input_name='ExtremeProperty'), )) def exportChildren(self, outfile, level, namespace_='pl:', name_='ExtremeDate', fromsubclass_=False, pretty_print=True): pass @@ -608,20 +610,22 @@ class ExtremeDate(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='ExtremeDate'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) showIndent(outfile, level) outfile.write('valueOf_ = """%s""",\n' % (self.valueOf_,)) def exportLiteralAttributes(self, outfile, level, already_processed, name_): if self.ExtremeProperty is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') showIndent(outfile, level) outfile.write('ExtremeProperty = "%s",\n' % (self.ExtremeProperty,)) def exportLiteralChildren(self, outfile, level, name_): pass def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) self.valueOf_ = get_all_text_(node) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] @@ -629,7 +633,7 @@ class ExtremeDate(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): value = find_attr_value_('ExtremeProperty', node) if value is not None and 'ExtremeProperty' not in already_processed: - already_processed.append('ExtremeProperty') + already_processed.add('ExtremeProperty') self.ExtremeProperty = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): pass diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py index 390cf0db3a46f8176368f053e26c1d87299960a8..064dae497d2c2837801a8c23cf959535fe585407 100644 --- a/tests/simpletypes_other1_sup.py +++ b/tests/simpletypes_other1_sup.py @@ -506,7 +506,7 @@ class simpleTypeTestsType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='simpleTypeTestsType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -534,7 +534,8 @@ class simpleTypeTestsType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='simpleTypeTestsType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -550,7 +551,8 @@ class simpleTypeTestsType(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -707,7 +709,7 @@ class simpleTypeTest(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='simpleTypeTest') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -815,7 +817,8 @@ class simpleTypeTest(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='simpleTypeTest'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -933,7 +936,8 @@ class simpleTypeTest(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/simpletypes_other2_sup.py b/tests/simpletypes_other2_sup.py index 390cf0db3a46f8176368f053e26c1d87299960a8..064dae497d2c2837801a8c23cf959535fe585407 100644 --- a/tests/simpletypes_other2_sup.py +++ b/tests/simpletypes_other2_sup.py @@ -506,7 +506,7 @@ class simpleTypeTestsType(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='simpleTypeTestsType') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -534,7 +534,8 @@ class simpleTypeTestsType(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='simpleTypeTestsType'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -550,7 +551,8 @@ class simpleTypeTestsType(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) @@ -707,7 +709,7 @@ class simpleTypeTest(GeneratedsSuper): eol_ = '' showIndent(outfile, level, pretty_print) outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', )) - already_processed = [] + already_processed = set() self.exportAttributes(outfile, level, already_processed, namespace_, name_='simpleTypeTest') if self.hasContent_(): outfile.write('>%s' % (eol_, )) @@ -815,7 +817,8 @@ class simpleTypeTest(GeneratedsSuper): return False def exportLiteral(self, outfile, level, name_='simpleTypeTest'): level += 1 - self.exportLiteralAttributes(outfile, level, [], name_) + already_processed = set() + self.exportLiteralAttributes(outfile, level, already_processed, name_) if self.hasContent_(): self.exportLiteralChildren(outfile, level, name_) def exportLiteralAttributes(self, outfile, level, already_processed, name_): @@ -933,7 +936,8 @@ class simpleTypeTest(GeneratedsSuper): showIndent(outfile, level) outfile.write('],\n') def build(self, node): - self.buildAttributes(node, node.attrib, []) + already_processed = set() + self.buildAttributes(node, node.attrib, already_processed) for child in node: nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] self.buildChildren(child, node, nodeName_) diff --git a/tests/test.py b/tests/test.py index 8e53b082c0f8202bbbd486ea4aacaef8e952be1b..05bcf666fac73752589e6d3ac26cf781ed5dc6cb 100755 --- a/tests/test.py +++ b/tests/test.py @@ -228,7 +228,7 @@ class GenTest(unittest.TestCase): infile.close() self.failUnlessEqual(content1, content2) - def test_010_extensions(self): + def test_010_simplecontent_restriction(self): cmdTempl = ('python generateDS.py --no-dates --no-versions ' '--silence --member-specs=list -f ' '-o tests/%s2_sup.py -s tests/%s2_sub.py ' diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html index ee6f56ae1725810e64d826684491fb7cd57452cc..09740725d5a0b096809f114017164782b62f9516 100644 --- a/tutorial/generateds_tutorial.html +++ b/tutorial/generateds_tutorial.html @@ -216,7 +216,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.8b</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.8c</td> </tr> </tbody> </table> @@ -225,7 +225,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">January 28, 2013</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">January 31, 2013</td> </tr> </tbody> </table> diff --git a/tutorial/generateds_tutorial.txt b/tutorial/generateds_tutorial.txt index e9dd79d400cf7ae770e2ea54edf6c72f0088e574..1f50f311f713c956d55e71ecc80a5db5033edbd8 100644 --- a/tutorial/generateds_tutorial.txt +++ b/tutorial/generateds_tutorial.txt @@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial .. version -:revision: 2.8b +:revision: 2.8c .. version diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip index d8f36eb7e53e33950d93a2113e77edb1b8fae6ea..724d78077fb3ad5b7e3ff90edf6a1b6dd48e5125 100644 Binary files a/tutorial/generateds_tutorial.zip and b/tutorial/generateds_tutorial.zip differ