]> granicus.if.org Git - python/commitdiff
Changes by jack so the generated modules export their types
authorGuido van Rossum <guido@python.org>
Mon, 22 Sep 1997 16:13:19 +0000 (16:13 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 22 Sep 1997 16:13:19 +0000 (16:13 +0000)
to Python.

Tools/bgen/bgen/bgenModule.py
Tools/bgen/bgen/bgenObjectDefinition.py
Tools/bgen/bgen/bgenlocations.py

index f339016f00b61b69ef6d28d8dfdb284e3d579d7f..2baa3988eefae2100f5c2bd059f0bba167b6674d 100644 (file)
@@ -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()
index dd1ad326edd01760df40d1d6f9241dca0981b48a..a6abf4edee1fc6ffd568bd8c32cdd97a3c894fcd 100644 (file)
@@ -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):
index 3ec9c055ab20507720f73a850eacdd49fd4b37ca..1b6b31da20f0440b0d5d2e13fd87bb82cb303f6c 100644 (file)
@@ -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"