Skip to content
Snippets Groups Projects
Commit 89f6df19 authored by Andreas Dedner's avatar Andreas Dedner
Browse files

fix an issue with base class 'holders' not matching derived class 'holders'

bug fix

bug fix
parent 8cd9755d
No related branches found
No related tags found
No related merge requests found
......@@ -59,6 +59,7 @@ class SimpleGenerator(object):
def main(self, nr, includes, duneType, *args,
options=None, bufferProtocol=False, dynamicAttr=False,
holder="default",
baseClasses=None ):
if options is None: options=[]
if baseClasses is None: baseClasses=[]
......@@ -75,14 +76,23 @@ class SimpleGenerator(object):
source += ' {\n'
source += " using DuneType = " + duneType + ";\n"
for i, bc in enumerate(baseClasses):
source += ' Dune::Python::insertClass' +\
'< ' + bc + ' >' +\
'( cls0, "' + self.typeName[nr] + str(i) + '"' +\
if not holder == "default":
baseHolder = "," + holder + "<" + bc + ">"
else:
baseHolder = ''
source += 'Dune::Python::insertClass' +\
'< ' + bc + baseHolder + '>' +\
'( module, "cls' + str(i) + '"' +\
', Dune::Python::GenerateTypeName("' + bc + '")' +\
', Dune::Python::IncludeFiles{}' +\
");\n"
options.append(bc)
if not holder == "default":
options += [holder + "<" + className + ">"]
source += ' auto cls = Dune::Python::insertClass' +\
'< DuneType' +\
', '.join(('',)+tuple(options)) + ' >' +\
......
......@@ -7,6 +7,7 @@ from dune.generator.algorithm import cppType
def load(className, includeFiles, *args,
options=None, bufferProtocol=False, dynamicAttr=False,
holder="default",
baseClasses=None ):
if options is None: options=[]
if baseClasses is None: baseClasses=[]
......@@ -60,14 +61,21 @@ def load(className, includeFiles, *args,
for i, bc in enumerate(baseClasses):
if not holder == "default":
baseHolder = ", " + holder + "<" + bc + ">"
else:
baseHolder = ''
source += 'Dune::Python::insertClass' +\
'< ' + bc + ' >' +\
'< ' + bc + baseHolder + '>' +\
'( module, "cls' + str(i) + '"' +\
', Dune::Python::GenerateTypeName("' + bc + '")' +\
', Dune::Python::IncludeFiles{}' +\
");\n"
options.append(bc)
if not holder == "default":
options += [holder + "<" + className + ">"]
source += "auto cls = Dune::Python::insertClass< "+className+\
', '.join(('',)+tuple(options)) + ' >('+\
"module, \"cls\","+','.join(('',)+tuple(clsParams))+\
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment