mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Added future_builtins, which contains PEP 3127 compatible versions of hex() and oct().
This commit is contained in:
parent
73d7963242
commit
a73fbe791d
6 changed files with 113 additions and 0 deletions
69
Modules/future_builtins.c
Normal file
69
Modules/future_builtins.c
Normal file
|
@ -0,0 +1,69 @@
|
|||
|
||||
/* 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 hexidecimal 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.");
|
||||
|
||||
|
||||
/* 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},
|
||||
{NULL, NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
|
||||
/* Initialize this module. */
|
||||
|
||||
PyMODINIT_FUNC
|
||||
initfuture_builtins(void)
|
||||
{
|
||||
PyObject *m;
|
||||
|
||||
m = Py_InitModule3("future_builtins", module_functions, module_doc);
|
||||
if (m == NULL)
|
||||
return;
|
||||
|
||||
/* any other initialization needed */
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue