PageRenderTime 424ms CodeModel.GetById 212ms app.highlight 3ms RepoModel.GetById 117ms app.codeStats 0ms

/Tools/framer/framer/template.py

http://unladen-swallow.googlecode.com/
Python | 102 lines | 97 code | 3 blank | 2 comment | 1 complexity | 9e1f249c16afcf279bc38b0a72a30b1e MD5 | raw file
  1"""framer's C code templates.
  2
  3Templates use the following variables:
  4
  5FileName: name of the file that contains the C source code
  6ModuleName: name of the module, as in "import ModuleName"
  7ModuleDocstring: C string containing the module doc string
  8"""
  9
 10module_start = '#include "Python.h"'
 11member_include = '#include "structmember.h"'
 12
 13module_doc = """\
 14PyDoc_STRVAR(%(ModuleName)s_doc,
 15%(ModuleDocstring)s);
 16"""
 17
 18methoddef_start = """\
 19static struct PyMethodDef %(MethodDefName)s[] = {"""
 20
 21methoddef_def = """\
 22        {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s},"""
 23
 24methoddef_def_doc = """\
 25        {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s,
 26         %(DocstringVar)s},"""
 27
 28methoddef_end = """\
 29        {NULL, NULL}
 30};
 31"""
 32
 33memberdef_start = """\
 34#define OFF(X) offsetof(%(StructName)s, X)
 35
 36static struct PyMemberDef %(MemberDefName)s[] = {"""
 37
 38memberdef_def_doc = """\
 39        {"%(PythonName)s", %(Type)s, OFF(%(CName)s), %(Flags)s,
 40         %(Docstring)s},"""
 41
 42memberdef_def = """\
 43        {"%(PythonName)s", %(Type)s, OFF(%(CName)s), %(Flags)s},"""
 44
 45memberdef_end = """\
 46        {NULL}
 47};
 48
 49#undef OFF
 50"""
 51
 52dealloc_func = """static void
 53%(name)s(PyObject *ob)
 54{
 55}
 56"""
 57
 58docstring = """\
 59PyDoc_STRVAR(%(DocstringVar)s,
 60%(Docstring)s);
 61"""
 62
 63funcdef_start = """\
 64static PyObject *
 65%(name)s(%(args)s)
 66{"""
 67
 68funcdef_end = """\
 69}
 70"""
 71
 72varargs = """\
 73        if (!PyArg_ParseTuple(args, \"%(ArgParse)s:%(PythonName)s\",
 74                              %(ArgTargets)s))
 75                return NULL;"""
 76
 77module_init_start = """\
 78PyMODINIT_FUNC
 79init%(ModuleName)s(void)
 80{
 81        PyObject *mod;
 82
 83        mod = Py_InitModule3("%(ModuleName)s", %(MethodDefName)s,
 84                             %(ModuleName)s_doc);
 85        if (mod == NULL)
 86                return;
 87"""
 88
 89type_init_type = "        %(CTypeName)s.ob_type = &PyType_Type;"
 90module_add_type = """\
 91        if (!PyObject_SetAttrString(mod, "%(TypeName)s",
 92                                    (PyObject *)&%(CTypeName)s))
 93                return;
 94"""
 95
 96type_struct_start = """\
 97static PyTypeObject %(CTypeName)s = {
 98        PyObject_HEAD_INIT(0)"""
 99
100type_struct_end = """\
101};
102"""