]> granicus.if.org Git - python/commitdiff
The module generator now tells its object generators about the module name (through...
authorJack Jansen <jack.jansen@cwi.nl>
Sun, 9 Dec 2001 23:25:00 +0000 (23:25 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Sun, 9 Dec 2001 23:25:00 +0000 (23:25 +0000)
Tools/bgen/bgen/bgenModule.py
Tools/bgen/bgen/bgenObjectDefinition.py

index 5f94b9041203e39fce2d6cfbce0f396f20e17769..ea1ea230a7e63cc64198bd821458f836de03dcf7 100644 (file)
@@ -19,6 +19,7 @@ class Module(GeneratorGroup):
        def addobject(self, od):
                self.generators.append(od)
                self.typeobjects.append(od)
+               od.setmodulename(self.name)
 
        def generate(self):
                OutHeader1("Module " + self.name)
index 1d5cb22795fb5f4678ea7d4ec92cd5b6ef25097d..71cf21da8e4cc616f883f49c6b09dd0c9eec4429 100644 (file)
@@ -22,6 +22,7 @@ class ObjectDefinition(GeneratorGroup):
                self.typename = name + '_Type'
                self.argref = ""        # set to "*" if arg to <type>_New should be pointer
                self.static = "static " # set to "" to make <type>_New and <type>_Convert public
+               self.modulename = None
 
        def add(self, g, dupcheck=0):
                g.setselftype(self.objecttype, self.itselftype)
@@ -30,6 +31,9 @@ class ObjectDefinition(GeneratorGroup):
        def reference(self):
                # In case we are referenced from a module
                pass
+               
+       def setmodulename(self, name):
+               self.modulename = name
 
        def generate(self):
                # XXX This should use long strings and %(varname)s substitution!
@@ -166,7 +170,10 @@ class ObjectDefinition(GeneratorGroup):
                IndentLevel()
                Output("PyObject_HEAD_INIT(NULL)")
                Output("0, /*ob_size*/")
-               Output("\"%s\", /*tp_name*/", self.name)
+               if self.modulename:
+                       Output("\"%s.%s\", /*tp_name*/", self.modulename, self.name)
+               else:
+                       Output("\"%s\", /*tp_name*/", self.name)
                Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
                Output("0, /*tp_itemsize*/")
                Output("/* methods */")