diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Modules/future_builtins.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Modules/future_builtins.c Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,96 @@ + +/* future_builtins module */ + +/* This module provides functions that will be builtins in Python 3.0, + but that conflict with builtins that already exist in Python + 2.x. */ + + +#include "Python.h" + +PyDoc_STRVAR(module_doc, +"This module provides functions that will be builtins in Python 3.0,\n\ +but that conflict with builtins that already exist in Python 2.x.\n\ +\n\ +Functions:\n\ +\n\ +hex(arg) -- Returns the hexadecimal representation of an integer\n\ +oct(arg) -- Returns the octal representation of an integer\n\ +\n\ +The typical usage of this module is to replace existing builtins in a\n\ +module's namespace:\n \n\ +from future_builtins import hex, oct\n"); + +static PyObject * +builtin_hex(PyObject *self, PyObject *v) +{ + return PyNumber_ToBase(v, 16); +} + +PyDoc_STRVAR(hex_doc, +"hex(number) -> string\n\ +\n\ +Return the hexadecimal representation of an integer or long integer."); + + +static PyObject * +builtin_oct(PyObject *self, PyObject *v) +{ + return PyNumber_ToBase(v, 8); +} + +PyDoc_STRVAR(oct_doc, +"oct(number) -> string\n\ +\n\ +Return the octal representation of an integer or long integer."); + + +static PyObject * +builtin_ascii(PyObject *self, PyObject *v) +{ + return PyObject_Repr(v); +} + +PyDoc_STRVAR(ascii_doc, +"ascii(object) -> string\n\ +\n\ +Return the same as repr(). In Python 3.x, the repr() result will\n\ +contain printable characters unescaped, while the ascii() result\n\ +will have such characters backslash-escaped."); + +/* List of functions exported by this module */ + +static PyMethodDef module_functions[] = { + {"hex", builtin_hex, METH_O, hex_doc}, + {"oct", builtin_oct, METH_O, oct_doc}, + {"ascii", builtin_ascii, METH_O, ascii_doc}, + {NULL, NULL} /* Sentinel */ +}; + + +/* Initialize this module. */ + +PyMODINIT_FUNC +initfuture_builtins(void) +{ + PyObject *m, *itertools, *iter_func; + char *it_funcs[] = {"imap", "ifilter", "izip", NULL}; + char **cur_func; + + m = Py_InitModule3("future_builtins", module_functions, module_doc); + if (m == NULL) + return; + + itertools = PyImport_ImportModuleNoBlock("itertools"); + if (itertools == NULL) + return; + + for (cur_func = it_funcs; *cur_func; ++cur_func){ + iter_func = PyObject_GetAttrString(itertools, *cur_func); + if (iter_func == NULL) + return; + PyModule_AddObject(m, *cur_func+1, iter_func); + } + Py_DECREF(itertools); + /* any other initialization needed */ +}