| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(GH-10720)
Fix str.format(), float.__format__() and complex.__format__() methods
for non-ASCII decimal point when using the "n" formatter.
Rewrite _PyUnicode_InsertThousandsGrouping(): it now requires
a _PyUnicodeWriter object for the buffer and a Python str object
for digits.
(cherry picked from commit 59423e3ddd736387cef8f7632c71954c1859bed0)
(cherry picked from commit 6f5fa1b4be735159e964906ab608dc467476e47c)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(GH-10621)
locale.localeconv() now sets temporarily the LC_CTYPE locale to the
LC_MONETARY locale if the two locales are different and monetary
strings are non-ASCII. This temporary change affects other threads.
Changes:
* locale.localeconv() can now set LC_CTYPE to LC_MONETARY to decode
monetary fields.
* Add LocaleInfo.grouping_buffer: copy localeconv() grouping string
since it can be replaced anytime if a different thread calls
localeconv().
(cherry picked from commit 02e6bf7f2025cddcbde6432f6b6396198ab313f4)
(cherry picked from commit 6eff6b8eecd7a8eccad16419269fa18ec820922e)
|
| |
|
|
|
|
|
| |
type specifier. (GH-9666)
(cherry picked from commit cbda8fc5d76b10bcbb92d927537576c229143836)
Co-authored-by: Benjamin Peterson <benjamin@python.org>
|
| |
|
|
|
|
|
|
|
|
| |
* Add _Py_GetLocaleconvNumeric() function: decode decimal_point and
thousands_sep fields of localeconv() from the LC_NUMERIC encoding,
rather than decoding from the LC_CTYPE encoding.
* Modify locale.localeconv() and "n" formatter of str.format() (for
int, float and complex to use _Py_GetLocaleconvNumeric()
internally.
(cherry picked from commit cb064fc2321ce8673fe365e9ef60445a27657f54)
|
| |
|
|
|
|
| |
(GH-4002) (#4004)
Patch by Pablo.
(cherry picked from commit 28773ca7a7aa58a28e42a9eb0066acf71b5a8dc4)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc-7.0 (#3518)
* bpo-30923: Disable warning that has been part of -Wextra since gcc-7.0. (#3142)
(cherry picked from commit d73a960c575207539c3f9765cff26d4fff400b45)
* bpo-30923: Silence fall-through warnings included in -Wextra since gcc-7.0. (#3157)
(cherry picked from commit f432a3234f9f2ee09bd40be03e06bf72865ee375)
* bpo-31275: Small refactoring to silence a fall-through warning. (#3206)
(cherry picked from commit 138753c1b96b5e06a5c5d409fa4cae5e2fe1108b)
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
numbers. Patch by Stefan Behnel.
|
| |\ \
| |/ |
|
| | | |
|
| |/ |
|
| |
|
|
| |
Patch by Torsten Landschoff.
|
| |
|
|
| |
methods.
|
| | |
|
| |\
| |
| |
| | |
error messages and comments.
|
| | |
| |
| |
| | |
error messages and comments.
|
| | | |
|
| |\ \
| |/
| |
| | |
float.__format__() and complex.__format__().
|
| | |
| |
| |
| | |
complex.__format__().
|
| | | |
|
| | |
| |
| |
| | |
compare two Unicode kinds
|
| | |
| |
| |
| | |
when possible
|
| |\ \
| |/
| |
| |
| |
| |
| |
| | |
in the interpreter.
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag), mpdecimal (needs to build without Python.h).
|
| | |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
in the interpreter.
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag), mpdecimal (needs to build without Python.h).
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Use _PyLong_FormatWriter() instead of formatlong() when possible, to avoid
a temporary buffer
- Enable the fast path when width is smaller or equals to the length,
and when the precision is bigger or equals to the length
- Add unit tests!
- formatlong() uses PyUnicode_Resize() instead of _PyUnicode_FromASCII()
to resize the output string
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Found by Clang's static analyzer.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and str.format(args)
* Formatting string, int, float and complex use the _PyUnicodeWriter API. It
avoids a temporary buffer in most cases.
* Add _PyUnicodeWriter_WriteStr() to restore the PyAccu optimization: just
keep a reference to the string if the output is only composed of one string
* Disable overallocation when formatting the last argument of str%args and
str.format(args)
* Overallocation allocates at least 100 characters: add min_length attribute
to the _PyUnicodeWriter structure
* Add new private functions: _PyUnicode_FastCopyCharacters(),
_PyUnicode_FastFill() and _PyUnicode_FromASCII()
The speed up is around 20% in average.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
(e.g. ps_aF)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Decode thousands separator and decimal point using PyUnicode_DecodeLocale()
(from the locale encoding), instead of decoding them implicitly from latin1
* Remove _PyUnicode_InsertThousandsGroupingLocale(), it was not used
* Change _PyUnicode_InsertThousandsGrouping() API to return the maximum
character if unicode is NULL
* Replace MIN/MAX macros by Py_MIN/Py_MAX
* stringlib/undef.h undefines STRINGLIB_IS_UNICODE
* stringlib/localeutil.h only supports Unicode
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
It is faster than the unicode_fill() function which was implemented in
formatter_unicode.c.
|
| | |
| |
| |
| | |
Python/formatter_unicode.c.
|
| | | |
|
| | | |
|