diff --git a/etg/_core.py b/etg/_core.py index 06ea6855..8f11fc67 100644 --- a/etg/_core.py +++ b/etg/_core.py @@ -118,19 +118,11 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) + #--------------------------------------------------------------------------- wxPyPreInit = """ diff --git a/etg/app.py b/etg/app.py index 182aa427..e9cb89e5 100644 --- a/etg/app.py +++ b/etg/app.py @@ -135,18 +135,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- diff --git a/etg/apptrait.py b/etg/apptrait.py index 3e0592d6..94811119 100644 --- a/etg/apptrait.py +++ b/etg/apptrait.py @@ -36,7 +36,7 @@ def run(): c.abstract = True - # TODO: Enable these as their return types are added + # TODO: Enable these as etg scripts for their return types are added for name in [ 'CreateConfig', 'CreateEventLoop', 'CreateFontMapper', @@ -48,18 +48,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/colour.py b/etg/colour.py index 60987c89..ec66967a 100644 --- a/etg/colour.py +++ b/etg/colour.py @@ -34,7 +34,7 @@ def run(): # Add a ctor/factory for the Mac that can use the theme brush module.addCppCode("""\ #ifdef __WXMAC__ - #include + #include #endif """) @@ -279,19 +279,11 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) + #--------------------------------------------------------------------------- if __name__ == '__main__': run() diff --git a/etg/defs.py b/etg/defs.py index ffb30817..179be67e 100644 --- a/etg/defs.py +++ b/etg/defs.py @@ -78,18 +78,10 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/display.py b/etg/display.py index 0b8f2d5f..0fda64cb 100644 --- a/etg/display.py +++ b/etg/display.py @@ -47,18 +47,10 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/event.py b/etg/event.py index 9eecd409..0d6054fe 100644 --- a/etg/event.py +++ b/etg/event.py @@ -306,18 +306,10 @@ def run(): tools.fixEventClass(c) #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/evtloop.py b/etg/evtloop.py index e441d698..19ee7be7 100644 --- a/etg/evtloop.py +++ b/etg/evtloop.py @@ -37,18 +37,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/font.py b/etg/font.py index efd293dd..3b89b9d3 100644 --- a/etg/font.py +++ b/etg/font.py @@ -76,19 +76,12 @@ def run(): c.addProperty('Underlined GetUnderlined SetUnderlined') c.addProperty('Weight GetWeight SetWeight') - #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/gdicmn.py b/etg/gdicmn.py index 17f16c39..8ecea81f 100644 --- a/etg/gdicmn.py +++ b/etg/gdicmn.py @@ -303,18 +303,10 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/gdiobj.py b/etg/gdiobj.py index 3e4dec9c..4174db31 100644 --- a/etg/gdiobj.py +++ b/etg/gdiobj.py @@ -36,18 +36,10 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) + #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/geometry.py b/etg/geometry.py index 81904e17..7c4452e0 100644 --- a/etg/geometry.py +++ b/etg/geometry.py @@ -129,18 +129,10 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/intl.py b/etg/intl.py index 24872b5a..6243e047 100644 --- a/etg/intl.py +++ b/etg/intl.py @@ -46,19 +46,11 @@ def run(): c.find('WinSublang').ignore() c.find('GetLCID').ignore() - #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/kbdstate.py b/etg/kbdstate.py index 6c333eec..4fe3e751 100644 --- a/etg/kbdstate.py +++ b/etg/kbdstate.py @@ -41,18 +41,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/mousestate.py b/etg/mousestate.py index ef9fd935..61e7f36b 100644 --- a/etg/mousestate.py +++ b/etg/mousestate.py @@ -45,18 +45,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/object.py b/etg/object.py index 78c2fe90..689f72d7 100644 --- a/etg/object.py +++ b/etg/object.py @@ -62,18 +62,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/platinfo.py b/etg/platinfo.py index 44459b72..daff62f3 100644 --- a/etg/platinfo.py +++ b/etg/platinfo.py @@ -40,18 +40,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/template.py b/etg/template.py index d257cf8d..dcdb1965 100644 --- a/etg/template.py +++ b/etg/template.py @@ -36,18 +36,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/tracker.py b/etg/tracker.py index bfbf1f57..b3e31a21 100644 --- a/etg/tracker.py +++ b/etg/tracker.py @@ -37,18 +37,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/vidmode.py b/etg/vidmode.py index e0fa2072..72f3b684 100644 --- a/etg/vidmode.py +++ b/etg/vidmode.py @@ -35,18 +35,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etg/windowid.py b/etg/windowid.py index dc74e9d0..0f6fc387 100644 --- a/etg/windowid.py +++ b/etg/windowid.py @@ -36,18 +36,9 @@ def run(): #----------------------------------------------------------------- - tools.ignoreAssignmentOperators(module) - tools.removeWxPrefixes(module) - #----------------------------------------------------------------- - # Run the generators + tools.doCommonTweaks(module) + tools.runGenerators(module) - # Create the code generator and make the wrapper code - wg = etgtools.getWrapperGenerator() - wg.generate(module) - - # Create a documentation generator and let it do its thing - dg = etgtools.getDocsGenerator() - dg.generate(module) #--------------------------------------------------------------------------- if __name__ == '__main__': diff --git a/etgtools/__init__.py b/etgtools/__init__.py index a7393cc2..41a473a5 100644 --- a/etgtools/__init__.py +++ b/etgtools/__init__.py @@ -94,32 +94,6 @@ def parseDoxyXML(module, class_or_filename_list): #--------------------------------------------------------------------------- -def getWrapperGenerator(): - """ - A simple factory function to create a wrapper generator class of the desired type. - """ - if '--dump' in sys.argv: - import generators - gClass = generators.DumpWrapperGenerator - elif '--swig' in sys.argv: - import swig_generator - gClass = swig_generator.SwigWrapperGenerator - elif '--sip' in sys.argv: - import sip_generator - gClass = sip_generator.SipWrapperGenerator - else: - # The default is sip, at least for now... - import sip_generator - gClass = sip_generator.SipWrapperGenerator - - return gClass() - -#--------------------------------------------------------------------------- - -def getDocsGenerator(): - import generators - g = generators.StubbedDocsGenerator() - return g #--------------------------------------------------------------------------- diff --git a/etgtools/extractors.py b/etgtools/extractors.py index a9c4f9da..ebcb7298 100644 --- a/etgtools/extractors.py +++ b/etgtools/extractors.py @@ -62,19 +62,7 @@ class BaseDef(object): self.briefDoc = bd[0] # Should be just one element self.detailedDoc = list(element.find('detaileddescription')) - - def dump(self, indent=0, stream=None): - # debug helper, prints the extracted items - txt = ("name: %s\n" - "pyName: %s\n" - "ignored: %s\n" - "briefDoc: %s\n" - "detailedDoc: %s\n" ) % \ - (self.name, self.pyName, self.ignored, self.briefDoc, - _pf(self.detailedDoc, indent)) - _print(txt, indent, stream) - - + def ignore(self, val=True): self.ignored = val @@ -177,13 +165,6 @@ class VariableDef(BaseDef): self.definition = element.find('definition').text self.argsString = element.find('argsstring').text - def dump(self, indent=0, stream=None): - super(VariableDef, self).dump(indent, stream) - txt = ("type: %s\n" - "definition: %s\n" - "argsString: %s\n" - ) % (self.type, self.definition, self.argsString) - _print(txt, indent, stream) #--------------------------------------------------------------------------- @@ -220,13 +201,7 @@ class MemberVarDef(VariableDef): if self.protection == 'protected': self.ignore() - def dump(self, indent=0, stream=None): - super(MemberVarDef, self).dump(indent, stream) - txt = ("isStatic: %s\n" - "protection: %s\n" - ) % (self.isStatic, self.protection) - _print(txt, indent, stream) - + #--------------------------------------------------------------------------- class FunctionDef(BaseDef): @@ -269,39 +244,6 @@ class FunctionDef(BaseDef): # briefDoc for this ParamDef object. - def dump(self, indent=0, stream=None): - super(FunctionDef, self).dump(indent, stream) - txt = ("type: %s\n" - "definition: %s\n" - "argsString: %s\n" - "pyArgsString: %s\n" - "isOverloaded: %s\n" - "deprecated: %s\n" - "factory: %s\n" - "releaseGIL: %s\n" - "noCopy: %s\n" - "transfer: %s\n" - "transferBack: %s\n" - "transferThis: %s\n" - ) % (self.type, self.definition, self.argsString, self.pyArgsString, - self.isOverloaded, self.deprecated, self.factory, self.pyReleaseGIL, - self.noCopy, - self.transfer, self.transferBack, self.transferThis) - _print(txt, indent, stream) - if self.items: - for p in self.items: - assert isinstance(p, ParamDef) - _print("ParamDef:", indent, stream) - p.dump(indent+4, stream) - _print("\n", indent, stream) - if self.overloads: - _print("Overloaded functions:", indent, stream) - for f in self.overloads: - _print("MethodDef:", indent+4, stream) - f.dump(indent+8, stream) - _print("\n", indent, stream) - - def checkForOverload(self, methods): for m in methods: if isinstance(m, MethodDef) and m.name == self.name: @@ -365,18 +307,7 @@ class MethodDef(FunctionDef): self.ignore() - def dump(self, indent=0, stream=None): - super(MethodDef, self).dump(indent, stream) - txt = ("isCtor: %s\n" - "isDtor: %s\n" - "isStatic: %s\n" - "isVirtual: %s\n" - "protection: %s\n" - "defaultCtor: %s\n" - ) % (self.isCtor, self.isDtor, self.isStatic, self.isVirtual, - self.protection, self.defaultCtor) - _print(txt, indent, stream) - + #--------------------------------------------------------------------------- @@ -406,23 +337,6 @@ class ParamDef(BaseDef): if element.find('defval') is not None: self.default = flattenNode(element.find('defval')) - def dump(self, indent=0, stream=None): - #super(ParamDef, self).dump(indent, stream) - txt = ("name: %s\n" - "type: %s\n" - "default: %s\n" - "out: %s\n" - "inOut: %s\n" - "array: %s\n" - "arraySize: %s\n" - "transfer: %s\n" - "transferBack: %s\n" - "transferThis: %s\n" - ) % (self.name, self.type, self.default, self.out, self.inOut, - self.array, self.arraySize, - self.transfer, self.transferBack, self.transferThis) - _print(txt, indent, stream) - #--------------------------------------------------------------------------- class ClassDef(BaseDef): @@ -488,22 +402,6 @@ class ClassDef(BaseDef): # TODO: do we need support for nested classes? - def dump(self, indent=0, stream=None): - super(ClassDef, self).dump(indent, stream) - txt = ("bases: %s\n" - "includes: %s\n" - "abstract: %s\n" - "deprecated: %s\n" - "external: %s\n" - "noDefCtor: %s\n" - "singleton: %s\n" - ) % (_pf(self.bases, indent), _pf(self.includes, indent), - self.abstract, self.deprecated, self.external, self.noDefCtor, self.singlton) - _print(txt, indent, stream) - for item in self.items: - _print("%s:" % item.__class__.__name__, indent, stream) - item.dump(indent+4, stream) - _print("\n", indent, stream) def addHeaderCode(self, code): @@ -668,13 +566,7 @@ class EnumDef(BaseDef): value = EnumValueDef(node) self.items.append(value) - def dump(self, indent=0, stream=None): - super(EnumDef, self).dump(indent, stream) - for v in self.items: - _print("EnumValueDef:", indent, stream) - v.dump(indent+4, stream) - _print("\n", indent, stream) - + class EnumValueDef(BaseDef): @@ -706,14 +598,6 @@ class PropertyDef(BaseDef): self.protection = 'public' self.__dict__.update(kw) - def dump(self, indent=0, stream=None): - # debug helper, prints the extracted items - txt = ("name: %s\n" - "getter: %s\n" - "setter: %s\n" - "briefDoc: %s\n") % \ - (self.name, self.getter, self.setter, self.briefDoc) - _print(txt, indent, stream) #--------------------------------------------------------------------------- @@ -740,16 +624,6 @@ class CppMethodDef(MethodDef): self.__dict__.update(kw) - def dump(self, indent=0, stream=None): - # debug helper, prints the extracted items - txt = ("type: %s\n" - "name: %s\n" - "argsString: %s\n" - "briefDoc: %s\n" - "body: %s\n") % \ - (self.type, self.name, self.argsString, self.briefDoc, self.body) - _print(txt, indent, stream) - #--------------------------------------------------------------------------- @@ -904,25 +778,6 @@ class ModuleDef(BaseDef): return item - def dump(self, indent=0, stream=None): - super(ModuleDef, self).dump(indent, stream) - txt = ("includes: %s\n" - "imports: %s\n" - "headerCode: %s\n" - "cppCode: %s\n" - "initializerCode: %s\n" - ) % (_pf(self.includes, indent), - _pf(self.imports, indent), - _pf(self.headerCode, indent), - _pf(self.cppCode, indent), - _pf(self.initializerCode, indent)) - _print(txt, indent, stream) - _print('\n', indent, stream) - - for item in self.items: - _print(item.__class__.__name__+":", indent, stream) - item.dump(indent+4, stream) - _print('\n', indent, stream) def addCppFunction(self, type, name, argsString, body, doc=None, **kw): diff --git a/etgtools/generators.py b/etgtools/generators.py index 030c51a8..d87d46bf 100644 --- a/etgtools/generators.py +++ b/etgtools/generators.py @@ -19,17 +19,6 @@ class WrapperGeneratorBase(object): raise NotImplementedError -class DumpWrapperGenerator(WrapperGeneratorBase): - """This one is just for debugging""" - - def generate(self, module, destFile=None): - print "\n----------------------------------------------------------" - print "Dump of Module Objects" - print "----------------------------------------------------------" - module.dump() - - - class DocsGeneratorBase(object): def __init__(self): pass diff --git a/etgtools/tweaker_tools.py b/etgtools/tweaker_tools.py index 7ad18803..1dffbfdc 100644 --- a/etgtools/tweaker_tools.py +++ b/etgtools/tweaker_tools.py @@ -13,7 +13,7 @@ stage of the ETG scripts. """ import extractors -import os +import sys, os def removeWxPrefixes(node): @@ -122,8 +122,57 @@ def getMatchingFiles(names, template): files.append(name) return files + +def doCommonTweaks(module): + """ + A collection of tweaks that should probably be done to all modules. + """ + ignoreAssignmentOperators(module) + removeWxPrefixes(module) +#--------------------------------------------------------------------------- + + +def getWrapperGenerator(): + """ + A simple factory function to create a wrapper generator class of the desired type. + """ + if '--swig' in sys.argv: + import swig_generator + gClass = swig_generator.SwigWrapperGenerator + elif '--sip' in sys.argv: + import sip_generator + gClass = sip_generator.SipWrapperGenerator + else: + # The default is sip, at least for now... + import sip_generator + gClass = sip_generator.SipWrapperGenerator + + return gClass() + + +def getDocsGenerator(): + import generators + g = generators.StubbedDocsGenerator() + return g + + + +def runGenerators(module): + # Create the code generator and make the wrapper code + wg = getWrapperGenerator() + wg.generate(module) + + # Create a documentation generator and let it do its thing + dg = getDocsGenerator() + dg.generate(module) + + + +#--------------------------------------------------------------------------- + + def convertTwoIntegersTemplate(CLASS): return """\ // is it just a typecheck?