extend generation framework to set Python class name
This commit is contained in:
parent
89a896b52e
commit
e45a099698
|
@ -3215,6 +3215,9 @@ Options:
|
|||
--root-element="XXX" Assume XXX is root element of instance docs.
|
||||
Default is first element defined in schema.
|
||||
--super="XXX" Super module name in subclass module. Default="???"
|
||||
|
||||
Example:
|
||||
python generateDS.py -o generateModel_Module.py generateMetaModel_Module.xsd
|
||||
"""
|
||||
|
||||
def usage():
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
<xs:element name="ClassDeclarations" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Name" type="xs:string" use="required"/>
|
||||
<xs:attribute name="PythonName" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="Include" type="xs:string" use="required"/>
|
||||
<xs:attribute name="Father" type="xs:string" use="required"/>
|
||||
<xs:attribute name="Twin" type="xs:string" use="required"/>
|
||||
|
@ -67,6 +68,7 @@
|
|||
<xs:attribute name="TwinPointer" type="xs:string" use="required"/>
|
||||
<xs:attribute name="Delete" type="xs:boolean" use="optional" default="false"/>
|
||||
<xs:attribute name="Reference" type="xs:boolean" use="optional"/>
|
||||
<xs:attribute name="Initialization" type="xs:boolean" use="optional" default="false"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
#
|
||||
# Generated Thu Jul 22 14:11:34 2010 by generateDS.py.
|
||||
# Generated Sat Dec 03 11:48:45 2016 by generateDS.py.
|
||||
#
|
||||
|
||||
import sys
|
||||
|
@ -216,14 +216,16 @@ class GenerateModel:
|
|||
|
||||
class PythonExport:
|
||||
subclass = None
|
||||
def __init__(self, FatherNamespace='', RichCompare=0, Name='', Reference=0, FatherInclude='', Father='', Namespace='', Twin='', Constructor=0, TwinPointer='', Include='', NumberProtocol=0, Delete=0, Documentation=None, Methode=None, Attribute=None, Sequence=None, CustomAttributes='', ClassDeclarations='', Initialization=0):
|
||||
def __init__(self, FatherNamespace='', RichCompare=0, Name='', Reference=0, FatherInclude='', Namespace='', Initialization=0, Father='', PythonName='', Twin='', Constructor=0, TwinPointer='', Include='', NumberProtocol=0, Delete=0, Documentation=None, Methode=None, Attribute=None, Sequence=None, CustomAttributes='', ClassDeclarations=''):
|
||||
self.FatherNamespace = FatherNamespace
|
||||
self.RichCompare = RichCompare
|
||||
self.Name = Name
|
||||
self.Reference = Reference
|
||||
self.FatherInclude = FatherInclude
|
||||
self.Father = Father
|
||||
self.Namespace = Namespace
|
||||
self.Initialization = Initialization
|
||||
self.Father = Father
|
||||
self.PythonName = PythonName
|
||||
self.Twin = Twin
|
||||
self.Constructor = Constructor
|
||||
self.TwinPointer = TwinPointer
|
||||
|
@ -231,7 +233,6 @@ class PythonExport:
|
|||
self.NumberProtocol = NumberProtocol
|
||||
self.Delete = Delete
|
||||
self.Documentation = Documentation
|
||||
self.Initialization = Initialization
|
||||
if Methode is None:
|
||||
self.Methode = []
|
||||
else:
|
||||
|
@ -249,8 +250,6 @@ class PythonExport:
|
|||
else:
|
||||
return PythonExport(*args_, **kwargs_)
|
||||
factory = staticmethod(factory)
|
||||
def getInitialization(self): return self.Initialization
|
||||
def setInitialization(self, Initialization): self.Initialization = Initialization
|
||||
def getDocumentation(self): return self.Documentation
|
||||
def setDocumentation(self, Documentation): self.Documentation = Documentation
|
||||
def getMethode(self): return self.Methode
|
||||
|
@ -277,10 +276,14 @@ class PythonExport:
|
|||
def setReference(self, Reference): self.Reference = Reference
|
||||
def getFatherinclude(self): return self.FatherInclude
|
||||
def setFatherinclude(self, FatherInclude): self.FatherInclude = FatherInclude
|
||||
def getFather(self): return self.Father
|
||||
def setFather(self, Father): self.Father = Father
|
||||
def getNamespace(self): return self.Namespace
|
||||
def setNamespace(self, Namespace): self.Namespace = Namespace
|
||||
def getInitialization(self): return self.Initialization
|
||||
def setInitialization(self, Initialization): self.Initialization = Initialization
|
||||
def getFather(self): return self.Father
|
||||
def setFather(self, Father): self.Father = Father
|
||||
def getPythonname(self): return self.PythonName
|
||||
def setPythonname(self, PythonName): self.PythonName = PythonName
|
||||
def getTwin(self): return self.Twin
|
||||
def setTwin(self, Twin): self.Twin = Twin
|
||||
def getConstructor(self): return self.Constructor
|
||||
|
@ -309,13 +312,15 @@ class PythonExport:
|
|||
if self.getReference() is not None:
|
||||
outfile.write(' Reference="%s"' % (self.getReference(), ))
|
||||
outfile.write(' FatherInclude="%s"' % (self.getFatherinclude(), ))
|
||||
outfile.write(' Father="%s"' % (self.getFather(), ))
|
||||
outfile.write(' Namespace="%s"' % (self.getNamespace(), ))
|
||||
if self.getInitialization() is not None:
|
||||
outfile.write(' Initialization="%s"' % (self.getInitialization(), ))
|
||||
outfile.write(' Father="%s"' % (self.getFather(), ))
|
||||
if self.getPythonname() is not None:
|
||||
outfile.write(' PythonName="%s"' % (self.getPythonname(), ))
|
||||
outfile.write(' Twin="%s"' % (self.getTwin(), ))
|
||||
if self.getConstructor() is not None:
|
||||
outfile.write(' Constructor="%s"' % (self.getConstructor(), ))
|
||||
if self.getInitialization() is not None:
|
||||
outfile.write(' Initialization="%s"' % (self.getInitialization(), ))
|
||||
outfile.write(' TwinPointer="%s"' % (self.getTwinpointer(), ))
|
||||
outfile.write(' Include="%s"' % (self.getInclude(), ))
|
||||
if self.getNumberprotocol() is not None:
|
||||
|
@ -351,15 +356,18 @@ class PythonExport:
|
|||
showIndent(outfile, level)
|
||||
outfile.write('FatherInclude = "%s",\n' % (self.getFatherinclude(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Namespace = "%s",\n' % (self.getNamespace(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Initialization = "%s",\n' % (self.getInitialization(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Father = "%s",\n' % (self.getFather(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Namespace = "%s",\n' % (self.getNamespace(),))
|
||||
outfile.write('PythonName = "%s",\n' % (self.getPythonname(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Twin = "%s",\n' % (self.getTwin(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Constructor = "%s",\n' % (self.getConstructor(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Initialization = "%s",\n' % (self.getInitialization(),))
|
||||
outfile.write('TwinPointer = "%s",\n' % (self.getTwinpointer(),))
|
||||
showIndent(outfile, level)
|
||||
outfile.write('Include = "%s",\n' % (self.getInclude(),))
|
||||
|
@ -435,10 +443,19 @@ class PythonExport:
|
|||
raise ValueError('Bad boolean attribute (Reference)')
|
||||
if attrs.get('FatherInclude'):
|
||||
self.FatherInclude = attrs.get('FatherInclude').value
|
||||
if attrs.get('Father'):
|
||||
self.Father = attrs.get('Father').value
|
||||
if attrs.get('Namespace'):
|
||||
self.Namespace = attrs.get('Namespace').value
|
||||
if attrs.get('Initialization'):
|
||||
if attrs.get('Initialization').value in ('true', '1'):
|
||||
self.Initialization = 1
|
||||
elif attrs.get('Initialization').value in ('false', '0'):
|
||||
self.Initialization = 0
|
||||
else:
|
||||
raise ValueError('Bad boolean attribute (Initialization)')
|
||||
if attrs.get('Father'):
|
||||
self.Father = attrs.get('Father').value
|
||||
if attrs.get('PythonName'):
|
||||
self.PythonName = attrs.get('PythonName').value
|
||||
if attrs.get('Twin'):
|
||||
self.Twin = attrs.get('Twin').value
|
||||
if attrs.get('Constructor'):
|
||||
|
@ -448,13 +465,6 @@ class PythonExport:
|
|||
self.Constructor = 0
|
||||
else:
|
||||
raise ValueError('Bad boolean attribute (Constructor)')
|
||||
if attrs.get('Initialization'):
|
||||
if attrs.get('Initialization').value in ('true', '1'):
|
||||
self.Initialization = 1
|
||||
elif attrs.get('Initialization').value in ('false', '0'):
|
||||
self.Initialization = 0
|
||||
else:
|
||||
raise ValueError('Bad boolean attribute (Initialization)')
|
||||
if attrs.get('TwinPointer'):
|
||||
self.TwinPointer = attrs.get('TwinPointer').value
|
||||
if attrs.get('Include'):
|
||||
|
@ -506,11 +516,6 @@ class PythonExport:
|
|||
for text__content_ in child_.childNodes:
|
||||
ClassDeclarations_ += text__content_.nodeValue
|
||||
self.ClassDeclarations = ClassDeclarations_
|
||||
elif child_.nodeType == Node.ELEMENT_NODE and \
|
||||
nodeName_ == 'Initialization':
|
||||
obj_ = Documentation.factory()
|
||||
obj_.build(child_)
|
||||
self.setDocumentation(obj_)
|
||||
# end class PythonExport
|
||||
|
||||
|
||||
|
@ -1828,12 +1833,23 @@ class SaxGeneratemodelHandler(handler.ContentHandler):
|
|||
val = attrs.get('FatherInclude', None)
|
||||
if val is not None:
|
||||
obj.setFatherinclude(val)
|
||||
val = attrs.get('Father', None)
|
||||
if val is not None:
|
||||
obj.setFather(val)
|
||||
val = attrs.get('Namespace', None)
|
||||
if val is not None:
|
||||
obj.setNamespace(val)
|
||||
val = attrs.get('Initialization', None)
|
||||
if val is not None:
|
||||
if val in ('true', '1'):
|
||||
obj.setInitialization(1)
|
||||
elif val in ('false', '0'):
|
||||
obj.setInitialization(0)
|
||||
else:
|
||||
self.reportError('"Initialization" attribute must be boolean ("true", "1", "false", "0")')
|
||||
val = attrs.get('Father', None)
|
||||
if val is not None:
|
||||
obj.setFather(val)
|
||||
val = attrs.get('PythonName', None)
|
||||
if val is not None:
|
||||
obj.setPythonname(val)
|
||||
val = attrs.get('Twin', None)
|
||||
if val is not None:
|
||||
obj.setTwin(val)
|
||||
|
@ -1845,14 +1861,6 @@ class SaxGeneratemodelHandler(handler.ContentHandler):
|
|||
obj.setConstructor(0)
|
||||
else:
|
||||
self.reportError('"Constructor" attribute must be boolean ("true", "1", "false", "0")')
|
||||
val = attrs.get('Initialization', None)
|
||||
if val is not None:
|
||||
if val in ('true', '1'):
|
||||
obj.setInitialization(1)
|
||||
elif val in ('false', '0'):
|
||||
obj.setInitialization(0)
|
||||
else:
|
||||
self.reportError('"Initialization" attribute must be boolean ("true", "1", "false", "0")')
|
||||
val = attrs.get('TwinPointer', None)
|
||||
if val is not None:
|
||||
obj.setTwinpointer(val)
|
||||
|
|
|
@ -247,7 +247,11 @@ using namespace @self.export.Namespace@;
|
|||
PyTypeObject @self.export.Name@::Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
+ if (self.export.PythonName):
|
||||
"@self.export.PythonName@", /*tp_name*/
|
||||
= else:
|
||||
"@self.export.Namespace@.@self.export.Twin@", /*tp_name*/
|
||||
-
|
||||
sizeof(@self.export.Name@), /*tp_basicsize*/
|
||||
0, /*tp_itemsize*/
|
||||
/* methods */
|
||||
|
|
Loading…
Reference in New Issue
Block a user