From: Guido van Rossum Date: Mon, 22 Sep 1997 16:13:19 +0000 (+0000) Subject: Changes by jack so the generated modules export their types X-Git-Tag: v1.5a4~141 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=03be7f525e38306910fc2e5de28ff03cb74bb1b7;p=python Changes by jack so the generated modules export their types to Python. --- diff --git a/Tools/bgen/bgen/bgenModule.py b/Tools/bgen/bgen/bgenModule.py index f339016f00..2baa3988ee 100644 --- a/Tools/bgen/bgen/bgenModule.py +++ b/Tools/bgen/bgen/bgenModule.py @@ -14,9 +14,11 @@ class Module(GeneratorGroup): self.initstuff = initstuff self.finalstuff = finalstuff self.variablestuff = variablestuff + self.typeobjects = [] def addobject(self, od): self.generators.append(od) + self.typeobjects.append(od) def generate(self): OutHeader1("Module " + self.name) @@ -66,6 +68,8 @@ class Module(GeneratorGroup): Output("""Py_FatalError("can't initialize %s.Error");""", self.name) DedentLevel() + for tp in self.typeobjects: + tp.outputTypeObjectInitializer() if self.variablestuff: Output("%s", self.variablestuff) Output() diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py index dd1ad326ed..a6abf4edee 100644 --- a/Tools/bgen/bgen/bgenObjectDefinition.py +++ b/Tools/bgen/bgen/bgenObjectDefinition.py @@ -170,6 +170,17 @@ class ObjectDefinition(GeneratorGroup): Output("(setattrfunc) %s_setattr, /*tp_setattr*/", self.prefix) DedentLevel() Output("};") + + def outputTypeObjectInitializer(self): + Output("""%s.ob_type = &PyType_Type;""", self.typename); + Output("""Py_INCREF(&%s);""", self.typename); + Output("""if (PyDict_SetItemString(d, "%sType", (PyObject *)&%s) != 0)""", + self.name, self.typename); + IndentLevel() + Output("""Py_FatalError("can't initialize %sType");""", + self.name) + DedentLevel() + class GlobalObjectDefinition(ObjectDefinition): diff --git a/Tools/bgen/bgen/bgenlocations.py b/Tools/bgen/bgen/bgenlocations.py index 3ec9c055ab..1b6b31da20 100644 --- a/Tools/bgen/bgen/bgenlocations.py +++ b/Tools/bgen/bgen/bgenlocations.py @@ -3,10 +3,11 @@ # # Where to find the Universal Header include files: -INCLUDEDIR="Sap:CW8 Gold:Metrowerks CodeWarrior:MacOS Support:Headers:Universal Headers:" +MWERKSDIR="Moes:Metrowerks:Metrowerks CodeWarrior:" +INCLUDEDIR=MWERKSDIR + "MacOS Support:Headers:Universal Headers:" # Where to put the python definitions file: -TOOLBOXDIR="Moes:Development:Jack:Python 1.3:Mac:Lib:toolbox:" +TOOLBOXDIR="Moes:Development:Jack:Python:Mac:Lib:toolbox:" # Creator for C files: CREATOR="CWIE"