Mercurial > cpython-lru_cache-weakref
view Python/formatter_string.c @ 61216:f550ed89398f legacy-trunk
Issue #1533: fix inconsistency in range function argument processing:
any non-float non-integer argument is now converted to an integer (if
possible) using its __int__ method. Previously, only small arguments
were treated this way; larger arguments (those whose __int__ was
outside the range of a C long) would produce a TypeError.
Patch by Alexander Belopolsky (with minor modifications).
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Tue, 04 May 2010 16:18:25 +0000 |
| parents | 2754d64180d1 |
| children |
line wrap: on
line source
/***********************************************************************/ /* Implements the string (as opposed to unicode) version of the built-in formatters for string, int, float. That is, the versions of int.__format__, etc., that take and return string objects */ #include "Python.h" #include "../Objects/stringlib/stringdefs.h" #define FORMAT_STRING _PyBytes_FormatAdvanced #define FORMAT_LONG _PyLong_FormatAdvanced #define FORMAT_INT _PyInt_FormatAdvanced #define FORMAT_FLOAT _PyFloat_FormatAdvanced #ifndef WITHOUT_COMPLEX #define FORMAT_COMPLEX _PyComplex_FormatAdvanced #endif #include "../Objects/stringlib/formatter.h"
