summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tools/modulator/Templates/module_method4
-rw-r--r--Tools/modulator/Templates/module_tail8
-rw-r--r--Tools/modulator/Templates/object_method4
-rw-r--r--Tools/modulator/Templates/object_tail10
-rwxr-xr-xTools/modulator/genmodule.py8
5 files changed, 30 insertions, 4 deletions
diff --git a/Tools/modulator/Templates/module_method b/Tools/modulator/Templates/module_method
index 53cc1ac..9e6c0d2 100644
--- a/Tools/modulator/Templates/module_method
+++ b/Tools/modulator/Templates/module_method
@@ -1,4 +1,8 @@
+static char $abbrev$_$method$__doc__[] =
+""
+;
+
static PyObject *
$abbrev$_$method$(self, args)
PyObject *self; /* Not used */
diff --git a/Tools/modulator/Templates/module_tail b/Tools/modulator/Templates/module_tail
index 8af75db..6ee7645 100644
--- a/Tools/modulator/Templates/module_tail
+++ b/Tools/modulator/Templates/module_tail
@@ -9,13 +9,19 @@ static struct PyMethodDef $abbrev$_methods[] = {
/* Initialization function for the module (*must* be called init$name$) */
+static char $name$_module_documentation[] =
+""
+;
+
void
init$name$()
{
PyObject *m, *d;
/* Create the module and add the functions */
- m = Py_InitModule("$name$", $abbrev$_methods);
+ m = Py_InitModule4("$name$", $abbrev$_methods,
+ $name$_module_documentation,
+ (PyObject*)NULL,PYTHON_API_VERSION);
/* Add some symbolic constants to the module */
d = PyModule_GetDict(m);
diff --git a/Tools/modulator/Templates/object_method b/Tools/modulator/Templates/object_method
index 7ff5cea..9541494 100644
--- a/Tools/modulator/Templates/object_method
+++ b/Tools/modulator/Templates/object_method
@@ -1,4 +1,8 @@
+static char $abbrev$_$method$__doc__[] =
+""
+;
+
static PyObject *
$abbrev$_$method$(self, args)
$abbrev$object *self;
diff --git a/Tools/modulator/Templates/object_tail b/Tools/modulator/Templates/object_tail
index 4803ea5..65d29d3 100644
--- a/Tools/modulator/Templates/object_tail
+++ b/Tools/modulator/Templates/object_tail
@@ -1,4 +1,8 @@
+static char $Abbrev$type__doc__[] =
+""
+;
+
static PyTypeObject $Abbrev$type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /*ob_size*/
@@ -16,6 +20,12 @@ static PyTypeObject $Abbrev$type = {
$tp_as_sequence$, /*tp_as_sequence*/
$tp_as_mapping$, /*tp_as_mapping*/
(hashfunc)$tp_hash$, /*tp_hash*/
+ (binaryfunc)$tp_call$, /*tp_call*/
+ (reprfunc)$tp_str$, /*tp_str*/
+
+ /* Space for future expansion */
+ 0L,0L,0L,0L,
+ $Abbrev$type__doc__ /* Documentation string */
};
/* End of code for $name$ objects */
diff --git a/Tools/modulator/genmodule.py b/Tools/modulator/genmodule.py
index 1c4cd1f..bdfe350 100755
--- a/Tools/modulator/genmodule.py
+++ b/Tools/modulator/genmodule.py
@@ -28,7 +28,7 @@ error = 'genmodule.error'
# Names of functions in the object-description struct.
#
FUNCLIST = ['new', 'tp_dealloc', 'tp_print', 'tp_getattr', 'tp_setattr',
- 'tp_compare', 'tp_repr', 'tp_hash']
+ 'tp_compare', 'tp_repr', 'tp_hash', 'tp_call', 'tp_str']
TYPELIST = ['tp_as_number', 'tp_as_sequence', 'tp_as_mapping', 'structure']
#
@@ -81,7 +81,8 @@ class module(writer):
for fn in self.methodlist:
self.method = fn
self.addcode('module_method', fp)
- new_ml = new_ml + ('{"%s",\t%s_%s,\t1},\n'%(fn, self.abbrev, fn))
+ new_ml = new_ml + ('{"%s",\t%s_%s,\t1,\t%s_%s__doc__},\n'
+ %(fn, self.abbrev, fn, self.abbrev, fn))
self.methodlist = new_ml
self.addcode('module_tail', fp)
@@ -106,7 +107,8 @@ class object(writer):
for fn in self.methodlist:
self.method = fn
self.addcode('object_method', fp)
- new_ml = new_ml + ('{"%s",\t%s_%s,\t1},\n'%(fn, self.abbrev, fn))
+ new_ml = new_ml + ('{"%s",\t%s_%s,\t1,\t%s_%s__doc__},\n'
+ %(fn, self.abbrev, fn, self.abbrev, fn))
self.methodlist = new_ml
self.addcode('object_mlist', fp)