Skip to content

Commit a8626d6

Browse files
author
jackjansen
committed
The module generator now tells its object generators about the module name (through the new setmodulename() method). If the module name has been set the object generators output it as part of the tp_name field for the object type.
git-svn-id: http://svn.python.org/projects/python/trunk@24638 6015fed2-1504-0410-9fe1-9d1591cc4771
1 parent f5533a1 commit a8626d6

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

Tools/bgen/bgen/bgenModule.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def __init__(self, name, prefix = None,
1919
def addobject(self, od):
2020
self.generators.append(od)
2121
self.typeobjects.append(od)
22+
od.setmodulename(self.name)
2223

2324
def generate(self):
2425
OutHeader1("Module " + self.name)

Tools/bgen/bgen/bgenObjectDefinition.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def __init__(self, name, prefix, itselftype):
2222
self.typename = name + '_Type'
2323
self.argref = "" # set to "*" if arg to <type>_New should be pointer
2424
self.static = "static " # set to "" to make <type>_New and <type>_Convert public
25+
self.modulename = None
2526

2627
def add(self, g, dupcheck=0):
2728
g.setselftype(self.objecttype, self.itselftype)
@@ -30,6 +31,9 @@ def add(self, g, dupcheck=0):
3031
def reference(self):
3132
# In case we are referenced from a module
3233
pass
34+
35+
def setmodulename(self, name):
36+
self.modulename = name
3337

3438
def generate(self):
3539
# XXX This should use long strings and %(varname)s substitution!
@@ -166,7 +170,10 @@ def outputTypeObject(self):
166170
IndentLevel()
167171
Output("PyObject_HEAD_INIT(NULL)")
168172
Output("0, /*ob_size*/")
169-
Output("\"%s\", /*tp_name*/", self.name)
173+
if self.modulename:
174+
Output("\"%s.%s\", /*tp_name*/", self.modulename, self.name)
175+
else:
176+
Output("\"%s\", /*tp_name*/", self.name)
170177
Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
171178
Output("0, /*tp_itemsize*/")
172179
Output("/* methods */")

0 commit comments

Comments
 (0)