[py-svn] r36355 - py/dist/py/c-extension/greenlet
cfbolz at codespeak.net
cfbolz at codespeak.net
Tue Jan 9 14:41:27 CET 2007
Author: cfbolz
Date: Tue Jan 9 14:41:26 2007
New Revision: 36355
Modified:
py/dist/py/c-extension/greenlet/greenlet.c
Log:
(cfbolz, arigo with a watchful eye on him) add docstrings to greenlets.
Modified: py/dist/py/c-extension/greenlet/greenlet.c
==============================================================================
--- py/dist/py/c-extension/greenlet/greenlet.c (original)
+++ py/dist/py/c-extension/greenlet/greenlet.c Tue Jan 9 14:41:26 2007
@@ -845,7 +845,10 @@
0, /* tp_setattro */
0, /* tp_as_buffer*/
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- 0, /* tp_doc */
+ "greenlet(run=None, parent=None)\n\
+Create a new greenlet object (without running it). \"run\" is the\n\
+callable to invoke, and \"parent\" is the parent greenlet, which\n\
+defaults to the current greenlet.", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -876,8 +879,11 @@
}
static PyMethodDef GreenMethods[] = {
- {"getcurrent", (PyCFunction)mod_getcurrent, METH_NOARGS, /*XXX*/ NULL},
- {NULL, NULL} /* Sentinel */
+ {"getcurrent", (PyCFunction)mod_getcurrent, METH_NOARGS,
+ "greenlet.getcurrent()\n\
+Returns the current greenlet (i.e. the one which called this\n\
+function)."},
+ {NULL, NULL} /* Sentinel */
};
static char* copy_on_greentype[] = {
@@ -887,6 +893,9 @@
void initgreenlet(void)
{
PyObject* m;
+ PyObject* greenletexit_doc;
+ PyObject* greenleterror_doc;
+ int error;
char** p;
_PyGreen_switchstack = g_switchstack;
_PyGreen_slp_switch = slp_switch;
@@ -902,10 +911,28 @@
PyExc_GreenletError = PyErr_NewException("greenlet.error", NULL, NULL);
if (PyExc_GreenletError == NULL)
return;
+ greenleterror_doc = PyString_FromString("internal greenlet error");
+ if (greenleterror_doc == NULL)
+ return;
+ error = PyObject_SetAttrString(
+ PyExc_GreenletError, "__doc__", greenleterror_doc);
+ Py_DECREF(greenleterror_doc);
+ if (error == -1)
+ return;
PyExc_GreenletExit = PyErr_NewException("greenlet.GreenletExit",
NULL, NULL);
if (PyExc_GreenletExit == NULL)
return;
+ greenletexit_doc = PyString_FromString("greenlet.GreenletExit\n\
+This special exception does not propagate to the parent greenlet; it\n\
+can be used to kill a single greenlet.\n");
+ if (greenletexit_doc == NULL)
+ return;
+ error = PyObject_SetAttrString(
+ PyExc_GreenletExit, "__doc__", greenletexit_doc);
+ Py_DECREF(greenletexit_doc);
+ if (error == -1)
+ return;
ts_current = green_create_main();
if (ts_current == NULL)
@@ -918,7 +945,7 @@
Py_INCREF(PyExc_GreenletExit);
PyModule_AddObject(m, "GreenletExit", PyExc_GreenletExit);
- /* also publish module-level data as attributes of the greentype. */
+ /* also publish module-level data as attributes of the greentype. */
for (p=copy_on_greentype; *p; p++) {
PyObject* o = PyObject_GetAttrString(m, *p);
if (!o) continue;
More information about the pytest-commit
mailing list