Issue #14783: Backport changes from 3.2.

This commit is contained in:
Chris Jerdonek 2012-10-07 20:37:54 -07:00
parent e4831f6b12
commit ad4b000179
9 changed files with 44 additions and 24 deletions

View file

@ -733,7 +733,8 @@ available. They are listed here in alphabetical order.
affect the values of local and free variables used by the interpreter. affect the values of local and free variables used by the interpreter.
.. function:: long([x[, base]]) .. function:: long(x=0)
long(x, base=10)
Convert a string or number to a long integer. If the argument is a string, it Convert a string or number to a long integer. If the argument is a string, it
must contain a possibly signed number of arbitrary size, possibly embedded in must contain a possibly signed number of arbitrary size, possibly embedded in
@ -1318,7 +1319,7 @@ available. They are listed here in alphabetical order.
Function decorator syntax added. Function decorator syntax added.
.. function:: str([object]) .. function:: str(object='')
Return a string containing a nicely printable representation of an object. For Return a string containing a nicely printable representation of an object. For
strings, this returns the string itself. The difference with ``repr(object)`` strings, this returns the string itself. The difference with ``repr(object)``
@ -1463,7 +1464,8 @@ available. They are listed here in alphabetical order.
.. versionadded:: 2.0 .. versionadded:: 2.0
.. function:: unicode([object[, encoding [, errors]]]) .. function:: unicode(object='')
unicode(object[, encoding [, errors]])
Return the Unicode string version of *object* using one of the following modes: Return the Unicode string version of *object* using one of the following modes:

View file

@ -9,6 +9,9 @@ What's New in Python 2.7.4
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #14783: Improve int() and long() docstrings and switch docstrings for
unicode(), slice(), range(), and xrange() to use multi-line signatures.
- Issue #16030: Fix overflow bug in computing the `repr` of an xrange object - Issue #16030: Fix overflow bug in computing the `repr` of an xrange object
with large start, step or length. with large start, step or length.

View file

@ -1334,15 +1334,20 @@ static PyGetSetDef int_getset[] = {
}; };
PyDoc_STRVAR(int_doc, PyDoc_STRVAR(int_doc,
"int(x[, base]) -> integer\n\ "int(x=0) -> int or long\n\
int(x, base=10) -> int or long\n\
\n\ \n\
Convert a string or number to an integer, if possible. A floating point\n\ Convert a number or string to an integer, or return 0 if no arguments\n\
argument will be truncated towards zero (this does not include a string\n\ are given. If x is floating point, the conversion truncates towards zero.\n\
representation of a floating point number!) When converting a string, use\n\ If x is outside the integer range, the function returns a long instead.\n\
the optional base. It is an error to supply a base when converting a\n\ \n\
non-string. If base is zero, the proper base is guessed based on the\n\ If x is not a number or if base is given, then x must be a string or\n\
string content. If the argument is outside the integer range a\n\ Unicode object representing an integer literal in the given base. The\n\
long object will be returned instead."); literal can be preceded by '+' or '-' and be surrounded by whitespace.\n\
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to\n\
interpret the base from the string as an integer literal.\n\
>>> int('0b100', base=0)\n\
4");
static PyNumberMethods int_as_number = { static PyNumberMethods int_as_number = {
(binaryfunc)int_add, /*nb_add*/ (binaryfunc)int_add, /*nb_add*/

View file

@ -4221,13 +4221,19 @@ static PyGetSetDef long_getset[] = {
}; };
PyDoc_STRVAR(long_doc, PyDoc_STRVAR(long_doc,
"long(x[, base]) -> integer\n\ "long(x=0) -> long\n\
long(x, base=10) -> long\n\
\n\ \n\
Convert a string or number to a long integer, if possible. A floating\n\ Convert a number or string to a long integer, or return 0L if no arguments\n\
point argument will be truncated towards zero (this does not include a\n\ are given. If x is floating point, the conversion truncates towards zero.\n\
string representation of a floating point number!) When converting a\n\ \n\
string, use the optional base. It is an error to supply a base when\n\ If x is not a number or if base is given, then x must be a string or\n\
converting a non-string."); Unicode object representing an integer literal in the given base. The\n\
literal can be preceded by '+' or '-' and be surrounded by whitespace.\n\
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to\n\
interpret the base from the string as an integer literal.\n\
>>> int('0b100', base=0)\n\
4L");
static PyNumberMethods long_as_number = { static PyNumberMethods long_as_number = {
(binaryfunc)long_add, /*nb_add*/ (binaryfunc)long_add, /*nb_add*/

View file

@ -104,7 +104,8 @@ range_new(PyTypeObject *type, PyObject *args, PyObject *kw)
} }
PyDoc_STRVAR(range_doc, PyDoc_STRVAR(range_doc,
"xrange([start,] stop[, step]) -> xrange object\n\ "xrange(stop) -> xrange object\n\
xrange(start, stop[, step]) -> xrange object\n\
\n\ \n\
Like range(), but instead of returning a list, returns an object that\n\ Like range(), but instead of returning a list, returns an object that\n\
generates the numbers in the range on demand. For looping, this is \n\ generates the numbers in the range on demand. For looping, this is \n\

View file

@ -211,7 +211,8 @@ slice_new(PyTypeObject *type, PyObject *args, PyObject *kw)
} }
PyDoc_STRVAR(slice_doc, PyDoc_STRVAR(slice_doc,
"slice([start,] stop[, step])\n\ "slice(stop)\n\
slice(start, stop[, step])\n\
\n\ \n\
Create a slice object. This is used for extended slicing (e.g. a[0:10:2])."); Create a slice object. This is used for extended slicing (e.g. a[0:10:2]).");

View file

@ -3799,7 +3799,7 @@ PyTypeObject PyBaseString_Type = {
}; };
PyDoc_STRVAR(string_doc, PyDoc_STRVAR(string_doc,
"str(object) -> string\n\ "str(object='') -> string\n\
\n\ \n\
Return a nice string representation of the object.\n\ Return a nice string representation of the object.\n\
If the argument is a string, the return value is the same object."); If the argument is a string, the return value is the same object.");

View file

@ -1861,7 +1861,7 @@ char utf8_code_length[256] = {
illegal prefix. See RFC 3629 for details */ illegal prefix. See RFC 3629 for details */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 00-0F */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 00-0F */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -2217,7 +2217,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s,
#endif #endif
PyObject *errorHandler = NULL; PyObject *errorHandler = NULL;
PyObject *exc = NULL; PyObject *exc = NULL;
q = (unsigned char *)s; q = (unsigned char *)s;
e = q + size; e = q + size;
@ -8759,7 +8759,8 @@ unicode_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
} }
PyDoc_STRVAR(unicode_doc, PyDoc_STRVAR(unicode_doc,
"unicode(string [, encoding[, errors]]) -> object\n\ "unicode(object='') -> unicode object\n\
unicode(string[, encoding[, errors]]) -> unicode object\n\
\n\ \n\
Create a new Unicode object from the given encoded string.\n\ Create a new Unicode object from the given encoded string.\n\
encoding defaults to the current default string encoding.\n\ encoding defaults to the current default string encoding.\n\

View file

@ -2004,7 +2004,8 @@ builtin_range(PyObject *self, PyObject *args)
} }
PyDoc_STRVAR(range_doc, PyDoc_STRVAR(range_doc,
"range([start,] stop[, step]) -> list of integers\n\ "range(stop) -> list of integers\n\
range(start, stop[, step]) -> list of integers\n\
\n\ \n\
Return a list containing an arithmetic progression of integers.\n\ Return a list containing an arithmetic progression of integers.\n\
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.\n\ range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.\n\