Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5801a2d

Browse files
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.
1 parent b2fb202 commit 5801a2d

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)