Commit Graph

191 Commits

Author SHA1 Message Date
Antoine Pitrou ca5f91b888 Issue #14738: Speed-up UTF-8 decoding on non-ASCII data. Patch by Serhiy Storchaka. 2012-05-10 16:36:02 +02:00
Victor Stinner 3b1a74a9c3 Rename unicode_write_t structure and its methods to "_PyUnicodeWriter" 2012-05-09 22:25:00 +02:00
Victor Stinner ee4544c920 Issue #14744: Inline unicode_writer_write_char() and unicode_write_str()
Optimize also PyUnicode_Format(): call unicode_writer_prepare() only once
per argument.
2012-05-09 22:24:08 +02:00
Victor Stinner 202fdca133 Close #14716: str.format() now uses the new "unicode writer" API instead of the
PyAccu API. For example, it makes str.format() from 25% to 30% faster on Linux.
2012-05-07 12:47:02 +02:00
Antoine Pitrou d0acb411ef Issue #14387: Do not include accu.h from Python.h. 2012-03-22 14:42:18 +01:00
Victor Stinner 41a863cb81 Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
* 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
2012-02-24 00:37:51 +01:00
Benjamin Peterson 21e0da228d remove some usage of Py_UNICODE_TOUPPER/LOWER 2012-01-11 21:00:42 -05:00
Victor Stinner 6099a03202 Issue #13624: Write a specialized UTF-8 encoder to allow more optimization
The main bottleneck was the PyUnicode_READ() macro.
2011-12-18 14:22:26 +01:00
Victor Stinner f8eac00779 Issue #13623: Fix a performance regression introduced by issue #12170 in
bytes.find() and handle correctly OverflowError (raise the same ValueError than
the error for -1).
2011-12-18 01:17:41 +01:00
Victor Stinner b37b17423b Replace PyUnicode_FromUnicode(NULL, 0) by PyUnicode_New(0, 0)
Create an empty string with the new Unicode API.
2011-12-01 03:18:59 +01:00
Antoine Pitrou 0a3229de6b Issue #13417: speed up utf-8 decoding by around 2x for the non-fully-ASCII case.
This almost catches up with pre-PEP 393 performance, when decoding needed
only one pass.
2011-11-21 20:39:13 +01:00
Victor Stinner 0fc35196bb stringlib: remove unused STRINGLIB_FILL 2011-11-20 19:30:15 +01:00
Victor Stinner 7931d9a951 Replace PyUnicodeObject type by PyObject
* _PyUnicode_CheckConsistency() now takes a PyObject* instead of void*
 * Remove now useless casts to PyObject*
2011-11-04 00:22:48 +01:00
Victor Stinner 9db1a8b69f Replace PyUnicodeObject* by PyObject* where it was irrevelant
A Unicode string can now be a PyASCIIObject, PyCompactUnicodeObject or
PyUnicodeObject. Aliasing a PyASCIIObject* or PyCompactUnicodeObject* to
PyUnicodeObject* is wrong
2011-10-23 20:04:37 +02:00
Antoine Pitrou ac65d96777 Issue #12170: The count(), find(), rfind(), index() and rindex() methods
of bytes and bytearray objects now accept an integer between 0 and 255
as their first argument.  Patch by Petri Lehtinen.
2011-10-20 23:54:17 +02:00
Antoine Pitrou 5b9f4c1539 Fix typo 2011-10-17 19:21:04 +02:00
Antoine Pitrou c198d0599b Add a comment explaining this heuristic. 2011-10-13 18:07:37 +02:00
Antoine Pitrou dda339e6d2 Simplify heuristic for when to use memchr 2011-10-13 17:58:11 +02:00
Antoine Pitrou dd4e2f0153 Issue #13155: Optimize finding the optimal character width of an unicode string 2011-10-13 00:02:27 +02:00
Victor Stinner d218bf14cc stringlib: Fix STRINGLIB_STR for UCS2/UCS4 2011-10-12 00:14:32 +02:00
Victor Stinner 8cc70dcf70 Fix fastsearch for UCS2 and UCS4
* If needle is 0, try (p[0] >> 16) & 0xff for UCS4
 * Disable fastsearch_memchr_1char() if needle is zero for UCS2 and UCS4
2011-10-11 23:22:22 +02:00
Antoine Pitrou 2c3b2302ad Issue #13134: optimize finding single-character strings using memchr 2011-10-11 20:29:21 +02:00
Martin v. Löwis c47adb04b3 Change PyUnicode_KIND to 1,2,4. Drop _KIND_SIZE and _CHARACTER_SIZE. 2011-10-07 20:55:35 +02:00
Antoine Pitrou 4574e62c6e Fix massive slowdown in string formatting with str.format.
Example:
./python -m timeit -s "f='{}' + '-' * 1024 + '{}'; s='abcd' * 16384" "f.format(s, s)"

-> before: 547 usec per loop
-> after: 13 usec per loop
-> 3.2: 22.5 usec per loop
-> 2.7: 12.6 usec per loop
2011-10-07 02:26:47 +02:00
Antoine Pitrou dbf697ae5c Fix compilation warnings under 64-bit Windows 2011-10-06 15:34:41 +02:00
Victor Stinner c3cec7868b Add asciilib: similar to ucs1, ucs2 and ucs4 library, but specialized to ASCII
ucs1, ucs2 and ucs4 libraries have to scan created substring to find the
maximum character, whereas it is not need to ASCII strings. Because ASCII
strings are common, it is useful to optimize ASCII.
2011-10-05 21:24:08 +02:00
Victor Stinner e57b1c0da1 Mark PyUnicode_FromUCS[124] as private 2011-09-28 22:20:48 +02:00
Martin v. Löwis d63a3b8beb Implement PEP 393. 2011-09-28 07:41:54 +02:00
Mark Dickinson c7d93b7614 Issue #1621: Fix undefined behaviour from signed overflow in datetime module hashes, array and list iterations, and get_integer (stringlib/string_format.h) 2011-09-25 15:34:32 +01:00
Mark Dickinson 36f27c995a Issue #1621: Fix undefined behaviour from signed overflow in get_integer (stringlib/formatter.h) 2011-09-24 19:11:53 +01:00
Eric V. Smith 12ebefc9d3 Closes #12579. Positional fields with str.format_map() now raise a ValueError instead of SystemError. 2011-07-18 14:03:41 -04:00
Jesus Cea 6159ee3cf5 MERGE: startswith and endswith don't accept None as slice index. Patch by Torsten Becker. (closes #11828) 2011-04-20 17:42:50 +02:00
Jesus Cea ac4515063c startswith and endswith don't accept None as slice index. Patch by Torsten Becker. (closes #11828) 2011-04-20 17:09:23 +02:00
Ezio Melotti 4969f709cc #11515: Merge with 3.1. 2011-03-15 05:59:46 +02:00
Ezio Melotti 42da663e6f #11515: fix several typos. Patch by Piotr Kasprzyk. 2011-03-15 05:18:48 +02:00
Eric Smith a1eac7218b Issue #11302: missing type check on _string.formatter_field_name_split and _string.formatter_parser caused crash.
Originial patch by haypo, reviewed by me, okayed by Georg.
2011-01-29 11:15:35 +00:00
Eric Smith 984bb58000 Issue #7094: Add alternate ('#') flag to __format__ methods for float, complex and Decimal. Allows greater control over when decimal points appear. Added to make transitioning from %-formatting easier. '#g' still has a problem with Decimal which I'll fix soon. 2010-11-25 16:08:06 +00:00
Antoine Pitrou a277ec4ad9 Followup to r86170: fix reference leak in str.format 2010-11-05 12:23:55 +00:00
Eric Smith 27bbca6f79 Issue #6081: Add str.format_map. str.format_map(mapping) is similar to str.format(**mapping), except mapping does not get converted to a dict. 2010-11-04 17:06:58 +00:00
Georg Brandl 66c221e993 #9418: first step of moving private string methods to _string module. 2010-10-14 07:04:07 +00:00
Florent Xicluna eb6f3ead00 Fix #8530: Prevent stringlib fastsearch from reading beyond the front of an array. 2010-08-08 22:07:16 +00:00
Mark Dickinson 388122d43b Issue #9337: Make float.__str__ identical to float.__repr__.
(And similarly for complex numbers.)
2010-08-04 20:56:28 +00:00
Mark Dickinson fc070313dd Merged revisions 83400 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83400 | mark.dickinson | 2010-08-01 11:41:49 +0100 (Sun, 01 Aug 2010) | 7 lines

  Issue #9416: Fix some issues with complex formatting where the
  output with no type specifier failed to match the str output:

    - format(complex(-0.0, 2.0), '-') omitted the real part from the output,
    - format(complex(0.0, 2.0), '-') included a sign and parentheses.
........
2010-08-01 10:43:42 +00:00
Mark Dickinson 5b65df7ce2 Issue #9416: Fix some issues with complex formatting where the
output with no type specifier failed to match the str output:

  - format(complex(-0.0, 2.0), '-') omitted the real part from the output,
  - format(complex(0.0, 2.0), '-') included a sign and parentheses.
2010-08-01 10:41:49 +00:00
Benjamin Peterson 3b107f99c7 remove unneeded error check 2010-07-11 03:36:35 +00:00
Benjamin Peterson 99bcf5ce08 Merged revisions 81823,81835 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81823 | benjamin.peterson | 2010-06-07 17:31:26 -0500 (Mon, 07 Jun 2010) | 9 lines

  Merged revisions 81820 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81820 | benjamin.peterson | 2010-06-07 17:23:23 -0500 (Mon, 07 Jun 2010) | 1 line

    correctly overflow when indexes are too large
  ........
................
  r81835 | benjamin.peterson | 2010-06-08 09:57:22 -0500 (Tue, 08 Jun 2010) | 9 lines

  Merged revisions 81834 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81834 | benjamin.peterson | 2010-06-08 09:53:29 -0500 (Tue, 08 Jun 2010) | 1 line

    kill extra word
  ........
................
2010-06-08 15:12:17 +00:00
Benjamin Peterson 504b6e8115 Merged revisions 81824 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81824 | benjamin.peterson | 2010-06-07 17:32:44 -0500 (Mon, 07 Jun 2010) | 1 line

  remove extra byte and fix comment
........
2010-06-07 22:35:08 +00:00
Benjamin Peterson 59a1b2f732 Merged revisions 81820 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81820 | benjamin.peterson | 2010-06-07 17:23:23 -0500 (Mon, 07 Jun 2010) | 1 line

  correctly overflow when indexes are too large
........
2010-06-07 22:31:26 +00:00
Benjamin Peterson d240071cd8 Merged revisions 81813 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81813 | benjamin.peterson | 2010-06-07 16:37:09 -0500 (Mon, 07 Jun 2010) | 2 lines

  locale grouping strings should end in '\0'
........
2010-06-07 21:41:35 +00:00
Antoine Pitrou 7f14f0d8a0 Recorded merge of revisions 81032 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines

  Recorded merge of revisions 81029 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines

    Untabify C files. Will watch buildbots.
  ........
................
2010-05-09 16:14:21 +00:00
Antoine Pitrou f95a1b3c53 Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines

  Untabify C files. Will watch buildbots.
........
2010-05-09 15:52:27 +00:00
Eric Smith 53f2f2eb05 Merged revisions 78350 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r78350 | eric.smith | 2010-02-22 19:22:24 -0500 (Mon, 22 Feb 2010) | 9 lines

  Merged revisions 78349 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78349 | eric.smith | 2010-02-22 19:11:16 -0500 (Mon, 22 Feb 2010) | 1 line

    Issue #6902: Fix problem with built-in types format incorrectly with 0 padding.
  ........
................
2010-02-23 00:37:54 +00:00
Eric Smith abb28c62de Merged revisions 78349 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78349 | eric.smith | 2010-02-22 19:11:16 -0500 (Mon, 22 Feb 2010) | 1 line

  Issue #6902: Fix problem with built-in types format incorrectly with 0 padding.
........
2010-02-23 00:22:24 +00:00
Eric Smith 903fc05962 Merged revisions 78333 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r78333 | eric.smith | 2010-02-22 13:54:44 -0500 (Mon, 22 Feb 2010) | 9 lines

  Merged revisions 78329 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r78329 | eric.smith | 2010-02-22 13:33:47 -0500 (Mon, 22 Feb 2010) | 1 line

    Issue #7988: Fix default alignment to be right aligned for complex.__format__. Now it matches other numeric types.
  ........
................
2010-02-22 19:26:06 +00:00
Eric Smith 4e260c5636 Merged revisions 78329 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78329 | eric.smith | 2010-02-22 13:33:47 -0500 (Mon, 22 Feb 2010) | 1 line

  Issue #7988: Fix default alignment to be right aligned for complex.__format__. Now it matches other numeric types.
........
2010-02-22 18:54:44 +00:00
Benjamin Peterson 23b9ef7205 Merged revisions 77937 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r77937 | benjamin.peterson | 2010-02-02 20:35:45 -0600 (Tue, 02 Feb 2010) | 75 lines

  Merged revisions 77484,77487,77561,77570,77593,77603,77608,77667,77702-77703,77739,77858,77887,77889 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r77484 | skip.montanaro | 2010-01-13 19:12:34 -0600 (Wed, 13 Jan 2010) | 4 lines

    Update PyEval_EvalFrame to PyEval_EvalFrameEx.  This looks to have been done
    partially before.  Also add a comment describing how this might have to work
    with different versions of the interpreter.
  ........
    r77487 | ezio.melotti | 2010-01-14 05:34:10 -0600 (Thu, 14 Jan 2010) | 1 line

    Fixed typo
  ........
    r77561 | georg.brandl | 2010-01-17 02:42:30 -0600 (Sun, 17 Jan 2010) | 1 line

    #7699: improve datetime docs: straightforward linking to strftime/strptime section, mark classmethods as such.
  ........
    r77570 | georg.brandl | 2010-01-17 06:14:42 -0600 (Sun, 17 Jan 2010) | 1 line

    Add note about usage of STRINGLIB_EMPTY.
  ........
    r77593 | georg.brandl | 2010-01-17 17:33:53 -0600 (Sun, 17 Jan 2010) | 1 line

    Fix internal reference.
  ........
    r77603 | benjamin.peterson | 2010-01-18 17:07:56 -0600 (Mon, 18 Jan 2010) | 8 lines

    data descriptors do not override the class dictionary if __get__ is not defined

    Adjust documentation and add a test to verify this behavior.

    See http://mail.python.org/pipermail/python-dev/2010-January/095637.html for
    discussion.
  ........
    r77608 | gregory.p.smith | 2010-01-19 02:19:03 -0600 (Tue, 19 Jan 2010) | 6 lines

    Do not compile stubs for the sha2 series hashes in the openssl hashlib
    module when the openssl version is too old to support them.  That
    leads both compiled code bloat and to unittests attempting to test
    implementations that don't exist for comparison purposes on such
    platforms.
  ........
    r77667 | mark.dickinson | 2010-01-21 12:32:27 -0600 (Thu, 21 Jan 2010) | 1 line

    Add two more test_strtod test values.
  ........
    r77702 | georg.brandl | 2010-01-23 02:43:31 -0600 (Sat, 23 Jan 2010) | 1 line

    #7762: fix refcount annotation of PyUnicode_Tailmatch().
  ........
    r77703 | georg.brandl | 2010-01-23 02:47:54 -0600 (Sat, 23 Jan 2010) | 1 line

    #7725: fix referencing issue.
  ........
    r77739 | benjamin.peterson | 2010-01-24 21:52:52 -0600 (Sun, 24 Jan 2010) | 1 line

    mention from_float() in error message
  ........
    r77858 | georg.brandl | 2010-01-30 11:57:48 -0600 (Sat, 30 Jan 2010) | 1 line

    #7802: fix invalid example (heh).
  ........
    r77887 | georg.brandl | 2010-01-31 12:51:49 -0600 (Sun, 31 Jan 2010) | 5 lines

    Fix-up ftplib documentation:
    move exception descriptions to toplevel, not inside a class
    remove attribution in "versionadded"
    spell and grammar check docstring of FTP_TLS
  ........
    r77889 | michael.foord | 2010-01-31 13:59:26 -0600 (Sun, 31 Jan 2010) | 1 line

    Minor modification to unittest documentation.
  ........
................
2010-02-03 02:43:37 +00:00
Benjamin Peterson 5e55b3e204 Merged revisions 77484,77487,77561,77570,77593,77603,77608,77667,77702-77703,77739,77858,77887,77889 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77484 | skip.montanaro | 2010-01-13 19:12:34 -0600 (Wed, 13 Jan 2010) | 4 lines

  Update PyEval_EvalFrame to PyEval_EvalFrameEx.  This looks to have been done
  partially before.  Also add a comment describing how this might have to work
  with different versions of the interpreter.
........
  r77487 | ezio.melotti | 2010-01-14 05:34:10 -0600 (Thu, 14 Jan 2010) | 1 line

  Fixed typo
........
  r77561 | georg.brandl | 2010-01-17 02:42:30 -0600 (Sun, 17 Jan 2010) | 1 line

  #7699: improve datetime docs: straightforward linking to strftime/strptime section, mark classmethods as such.
........
  r77570 | georg.brandl | 2010-01-17 06:14:42 -0600 (Sun, 17 Jan 2010) | 1 line

  Add note about usage of STRINGLIB_EMPTY.
........
  r77593 | georg.brandl | 2010-01-17 17:33:53 -0600 (Sun, 17 Jan 2010) | 1 line

  Fix internal reference.
........
  r77603 | benjamin.peterson | 2010-01-18 17:07:56 -0600 (Mon, 18 Jan 2010) | 8 lines

  data descriptors do not override the class dictionary if __get__ is not defined

  Adjust documentation and add a test to verify this behavior.

  See http://mail.python.org/pipermail/python-dev/2010-January/095637.html for
  discussion.
........
  r77608 | gregory.p.smith | 2010-01-19 02:19:03 -0600 (Tue, 19 Jan 2010) | 6 lines

  Do not compile stubs for the sha2 series hashes in the openssl hashlib
  module when the openssl version is too old to support them.  That
  leads both compiled code bloat and to unittests attempting to test
  implementations that don't exist for comparison purposes on such
  platforms.
........
  r77667 | mark.dickinson | 2010-01-21 12:32:27 -0600 (Thu, 21 Jan 2010) | 1 line

  Add two more test_strtod test values.
........
  r77702 | georg.brandl | 2010-01-23 02:43:31 -0600 (Sat, 23 Jan 2010) | 1 line

  #7762: fix refcount annotation of PyUnicode_Tailmatch().
........
  r77703 | georg.brandl | 2010-01-23 02:47:54 -0600 (Sat, 23 Jan 2010) | 1 line

  #7725: fix referencing issue.
........
  r77739 | benjamin.peterson | 2010-01-24 21:52:52 -0600 (Sun, 24 Jan 2010) | 1 line

  mention from_float() in error message
........
  r77858 | georg.brandl | 2010-01-30 11:57:48 -0600 (Sat, 30 Jan 2010) | 1 line

  #7802: fix invalid example (heh).
........
  r77887 | georg.brandl | 2010-01-31 12:51:49 -0600 (Sun, 31 Jan 2010) | 5 lines

  Fix-up ftplib documentation:
  move exception descriptions to toplevel, not inside a class
  remove attribution in "versionadded"
  spell and grammar check docstring of FTP_TLS
........
  r77889 | michael.foord | 2010-01-31 13:59:26 -0600 (Sun, 31 Jan 2010) | 1 line

  Minor modification to unittest documentation.
........
2010-02-03 02:35:45 +00:00
Antoine Pitrou f068f94e82 Merged revisions 77469-77470 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77469 | antoine.pitrou | 2010-01-13 14:43:37 +0100 (mer., 13 janv. 2010) | 3 lines

  Test commit to try to diagnose failures of the IA-64 buildbot
........
  r77470 | antoine.pitrou | 2010-01-13 15:01:26 +0100 (mer., 13 janv. 2010) | 3 lines

  Sanitize bloom filter macros
........
2010-01-13 14:19:12 +00:00
Antoine Pitrou aa92589c4d svnmerge duplicated contents of Objects/stringlib/split.h 2010-01-13 09:19:15 +00:00
Antoine Pitrou f2c5484f9e Merged revisions 77461 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77461 | antoine.pitrou | 2010-01-13 08:55:48 +0100 (mer., 13 janv. 2010) | 5 lines

  Issue #7622: Improve the split(), rsplit(), splitlines() and replace()
  methods of bytes, bytearray and unicode objects by using a common
  implementation based on stringlib's fast search.  Patch by Florent Xicluna.
........
2010-01-13 08:07:53 +00:00
Antoine Pitrou da2ecaf334 Merged revisions 77241 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77241 | antoine.pitrou | 2010-01-02 22:12:58 +0100 (sam., 02 janv. 2010) | 4 lines

  Issue #7462: Implement the stringlib fast search algorithm for the `rfind`,
  `rindex`, `rsplit` and `rpartition` methods.  Patch by Florent Xicluna.
........
2010-01-02 21:40:36 +00:00
Eric Smith 0f78bff646 Issue #5748: bytesobject.c should not have its own private defines for stringlib macros. Also removed unused defines and include for localutil.h. 2009-11-30 01:01:42 +00:00
Eric Smith c50e05ea9a Keep this file in sync with trunk. 2009-11-29 17:56:54 +00:00
Eric Smith beddd709b2 Merged revisions 74269 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74269 | eric.smith | 2009-07-30 09:39:44 -0400 (Thu, 30 Jul 2009) | 1 line

  Issue 6330: Fix --enable-unicode=ucs4.
........
2009-07-30 13:43:08 +00:00
Eric Smith 7bc66b1009 Merged revisions 74222 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r74222 | eric.smith | 2009-07-26 22:10:42 -0400 (Sun, 26 Jul 2009) | 1 line

  Sync trunk and py3k versions of string formatting. Manual merge of r74219.
........
2009-07-27 02:12:11 +00:00
Eric Smith 88af7432fc Sync trunk and py3k versions of string formatting. Manual merge of r74219. 2009-07-27 02:10:42 +00:00
Eric Smith 41669caebc Merged revisions 72848 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72848 | eric.smith | 2009-05-23 09:56:13 -0400 (Sat, 23 May 2009) | 1 line

  Issue 6089: str.format raises SystemError.
........
2009-05-23 14:23:22 +00:00
Eric Smith 741191f17a Issue #3382. float 'F' formatting no longer maps to 'f'. This only affects nan and inf. 2009-05-06 13:08:15 +00:00
Eric Smith 63376228a3 Issue #5920: Changed format.__float__ and complex.__float__ to use a precision of 12 when using the empty presentation type. This more closely matches str()'s behavior and reduces surprises when adding alignment flags to an empty format string. Patch by Mark Dickinson. 2009-05-05 14:04:18 +00:00
Eric Smith 7255f18556 Merged revisions 72189 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72189 | eric.smith | 2009-05-02 05:58:09 -0400 (Sat, 02 May 2009) | 1 line

  Keep py3k and trunk code in sync.
........
2009-05-02 12:15:39 +00:00
Mark Dickinson 33841c3489 Issue #5859: Remove '%f' to '%g' formatting switch for large floats. 2009-05-01 15:37:04 +00:00
Georg Brandl fb526ac34a Merged revisions 72159 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72159 | georg.brandl | 2009-05-01 10:51:37 +0200 (Fr, 01 Mai 2009) | 2 lines

  #5889: remove comma at the end of a list that some C compilers don't like.
........
2009-05-01 08:59:13 +00:00
Eric Smith 58a42244cf Issue #1588: Add complex.__format__. 2009-04-30 01:00:33 +00:00
Eric Smith 6dc46f5eaa Merged revisions 72040 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72040 | eric.smith | 2009-04-27 15:04:37 -0400 (Mon, 27 Apr 2009) | 1 line

  Issue #5793: rationalize isdigit / isalpha / tolower, etc. Will port to py3k. Should fix Windows buildbot errors.
........
2009-04-27 20:39:49 +00:00
Eric Smith 937491d1a9 Merged revisions 71802 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71802 | eric.smith | 2009-04-22 12:20:47 -0400 (Wed, 22 Apr 2009) | 1 line

  Fixed issue 5782: formatting with commas didn't work if no specifier type code was given.
........
2009-04-22 17:04:27 +00:00
Eric Smith 0923d1d8d7 The other half of Issue #1580: use short float repr where possible.
Addresses the float -> string conversion, using David Gay's code which
was added in Mark Dickinson's checkin r71663.

Also addresses these, which are intertwined with the short repr
changes:

- Issue #5772: format(1e100, '<') produces '1e+100', not '1.0e+100'
- Issue #5515: 'n' formatting with commas no longer works poorly
    with leading zeros.
- PEP 378 Format Specifier for Thousands Separator: implemented
    for floats.
2009-04-16 20:16:10 +00:00
Eric Smith f64bce8ea7 Merged revisions 71548 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71548 | eric.smith | 2009-04-12 20:29:50 -0400 (Sun, 12 Apr 2009) | 1 line

  Fixed incorrect object passed into format_float_internal(). This was resulting in a conversion being done twice.
........
2009-04-13 00:50:23 +00:00
Eric Smith b4a49f69b0 Resolves issue 5690: accidentally skipping code in non-debug build. 2009-04-04 19:35:49 +00:00
Eric Smith a3b1ac8dca Added ',' thousands grouping to int.__format__. See PEP 378.
This is incomplete, but I want to get some version into the next alpha. I am still working on:
Documentation.
More tests.
Implement for floats.

In addition, there's an existing bug with 'n' formatting that carries forward to thousands grouping (issue 5515).
2009-04-03 14:45:06 +00:00
Eric Smith f8c8b6d3ea Removed mixed tabs and whitespace. 2009-04-03 11:19:31 +00:00
Mark Dickinson c8a608c666 Merged revisions 70678 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70678 | mark.dickinson | 2009-03-29 15:37:51 +0100 (Sun, 29 Mar 2009) | 3 lines

  Issue #532631: Replace confusing fabs(x)/1e25 >= 1e25 test
  with fabs(x) >= 1e50, and fix documentation.
........
2009-03-29 15:19:47 +00:00
Eric Smith 8ec90443f5 Merged revisions 70364 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70364 | eric.smith | 2009-03-14 07:57:26 -0400 (Sat, 14 Mar 2009) | 17 lines

  Issue 5237, Allow auto-numbered replacement fields in str.format() strings.

  For simple uses for str.format(), this makes the typing easier. Hopfully this
  will help in the adoption of str.format().

  For example:
  'The {} is {}'.format('sky', 'blue')

  You can mix and matcth auto-numbering and named replacement fields:
  'The {} is {color}'.format('sky', color='blue')

  But you can't mix and match auto-numbering and specified numbering:
  'The {0} is {}'.format('sky', 'blue')
  ValueError: cannot switch from manual field specification to automatic field numbering

  Will port to 3.1.
........
2009-03-14 12:29:34 +00:00
Eric Smith 5e5c0db5d7 Merged revisions 69806 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r69806 | eric.smith | 2009-02-20 09:02:36 -0500 (Fri, 20 Feb 2009) | 1 line

  Issue #5247: Improve error message when unknown format codes are used when using str.format() with str, int, and float arguments.
........
2009-02-20 14:25:03 +00:00
Mark Dickinson e94c679df0 Issue #1717: rename tp_compare to tp_reserved. I'll change the
type of tp_compare in a separate commit, for ease of reversion
should things go wrong.
2009-02-02 20:36:42 +00:00
Benjamin Peterson aa06900347 Merged revisions 68750,68776-68777,68811,68842,68859 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68750 | benjamin.peterson | 2009-01-18 16:47:04 -0600 (Sun, 18 Jan 2009) | 1 line

  fix encoding cookie case
........
  r68776 | benjamin.peterson | 2009-01-19 10:17:54 -0600 (Mon, 19 Jan 2009) | 1 line

  move BufferedIOBase into the base class section
........
  r68777 | benjamin.peterson | 2009-01-19 10:18:27 -0600 (Mon, 19 Jan 2009) | 1 line

  add email address
........
  r68811 | benjamin.peterson | 2009-01-20 12:58:27 -0600 (Tue, 20 Jan 2009) | 1 line

  fix url
........
  r68842 | andrew.kuchling | 2009-01-20 20:16:26 -0600 (Tue, 20 Jan 2009) | 1 line

  Markup fixes
........
  r68859 | georg.brandl | 2009-01-22 12:29:28 -0600 (Thu, 22 Jan 2009) | 2 lines

  Clarify wording.
........
2009-01-23 03:26:36 +00:00
Antoine Pitrou 8d4e505aa8 Issue #4935: The overflow checking code in the expandtabs() method common
to str, bytes and bytearray could be optimized away by the compiler (*), letting
the interpreter segfault instead of raising an error.

(*) or at least it is our interpretation
2009-01-13 22:59:11 +00:00
Amaury Forgeot d'Arc f2e9368021 Merged revisions 66631 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r66631 | amaury.forgeotdarc | 2008-09-27 00:34:08 +0200 (sam., 27 sept. 2008) | 7 lines

  #3967: Correct a crash in count() and find() methods of string-like objects.
  For example:
     "".count("xxxx", sys.maxint, 0)

  Reviewed by Benjamin Peterson.
  Will port to 2.5 and 3.0.
........
2008-09-26 22:48:41 +00:00
Christian Heimes 4f3c5616cc Removed merge glitch from stringlib/find.h as explained on the python committers list. The FROM_BYTEARRAY isn't required here.
This also fixes bug #3713
2008-08-28 14:55:10 +00:00
Benjamin Peterson a786b026c9 Merged revisions 65910,65977,65980,65984,65986,66000,66011-66012,66014,66017,66020 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r65910 | benjamin.peterson | 2008-08-20 09:07:59 -0500 (Wed, 20 Aug 2008) | 1 line

  fix up the multiprocessing docs a little
........
  r65977 | christian.heimes | 2008-08-22 14:47:25 -0500 (Fri, 22 Aug 2008) | 3 lines

  Silenced compiler warning
  Objects/stringlib/find.h:97: warning: 'stringlib_contains_obj' defined but not used
  Reviewed by Benjamin Peterson
........
  r65980 | christian.heimes | 2008-08-22 15:10:27 -0500 (Fri, 22 Aug 2008) | 3 lines

  Fixed two format strings in the _collections module. For example
  Modules/_collectionsmodule.c:674: warning: format '%i' expects type 'int', but argument 2 has type 'Py_ssize_t'
  Reviewed by Benjamin Peterson
........
  r65984 | christian.heimes | 2008-08-22 16:23:47 -0500 (Fri, 22 Aug 2008) | 1 line

  d is the correct format string
........
  r65986 | mark.hammond | 2008-08-22 19:59:14 -0500 (Fri, 22 Aug 2008) | 2 lines

  Fix bug 3625: test issues on 64bit windows. r=pitrou
........
  r66000 | benjamin.peterson | 2008-08-23 15:27:43 -0500 (Sat, 23 Aug 2008) | 5 lines

  #3643 add a few more checks to _testcapi to prevent segfaults

  Author: Victor Stinner
  Reviewer: Benjamin Peterson
........
  r66011 | neal.norwitz | 2008-08-24 12:27:43 -0500 (Sun, 24 Aug 2008) | 1 line

  Ignore a couple more tests that report leaks inconsistently.
........
  r66012 | neal.norwitz | 2008-08-24 12:29:53 -0500 (Sun, 24 Aug 2008) | 1 line

  Use the actual blacklist of leaky tests
........
  r66014 | georg.brandl | 2008-08-24 13:11:07 -0500 (Sun, 24 Aug 2008) | 2 lines

  #3654: fix duplicate test method name. Review by Benjamin P.
........
  r66017 | benjamin.peterson | 2008-08-24 16:55:03 -0500 (Sun, 24 Aug 2008) | 1 line

  remove note about unimplemented feature
........
  r66020 | brett.cannon | 2008-08-24 18:15:19 -0500 (Sun, 24 Aug 2008) | 1 line

  Clarify that some attributes/methods are listed somewhat separately because they are not part of the threading API.
........
2008-08-25 21:05:21 +00:00
Neal Norwitz 2f99b24172 Merged revisions 66006 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

TESTED=./python -E -tt ./Lib/test/regrtest.py -uall (both debug and opt modes)

........
  r66006 | neal.norwitz | 2008-08-23 22:04:52 -0700 (Sat, 23 Aug 2008) | 25 lines

  Fix:
   * crashes on memory allocation failure found with failmalloc
   * memory leaks found with valgrind
   * compiler warnings in opt mode which would lead to invalid memory reads
   * problem using wrong name in decimal module reported by pychecker

  Update the valgrind suppressions file with new leaks that are small/one-time
  leaks we don't care about (ie, they are too hard to fix).

  TBR=barry
  TESTED=./python -E -tt ./Lib/test/regrtest.py -uall (both debug and opt modes)
    in opt mode:
    valgrind -q --leak-check=yes --suppressions=Misc/valgrind-python.supp \
      ./python -E -tt ./Lib/test/regrtest.py -uall,-bsddb,-compiler \
                          -x test_logging test_ssl test_multiprocessing
    valgrind -q --leak-check=yes --suppressions=Misc/valgrind-python.supp \
      ./python -E -tt ./Lib/test/regrtest.py test_multiprocessing
    for i in `seq 1 4000` ; do
      LD_PRELOAD=~/local/lib/libfailmalloc.so FAILMALLOC_INTERVAL=$i \
          ./python -c pass
    done

  At least some of these fixes should probably be backported to 2.5.
........
2008-08-24 05:48:10 +00:00
Eric Smith 22b85b3ef8 Backed out r65073, pending fixing it in Windows. 2008-07-17 19:18:29 +00:00
Eric Smith a4fac36eb3 Merged revisions 65069 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r65069 | eric.smith | 2008-07-17 13:48:39 -0400 (Thu, 17 Jul 2008) | 1 line

  Issue 3382: Make '%F' and float.__format__('F') convert results to upper case.
........
2008-07-17 18:30:48 +00:00
Eric Smith 05212a11e7 Merged revisions 65023 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r65023 | eric.smith | 2008-07-16 14:29:51 -0400 (Wed, 16 Jul 2008) | 1 line

  Renamed a parameter in calc_number_widths, for consistency with the same parameter in fill_non_digits.
........
2008-07-16 19:41:14 +00:00
Eric Smith d68af8f743 Merged revisions 64984 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64984 | eric.smith | 2008-07-15 20:11:49 -0400 (Tue, 15 Jul 2008) | 1 line

  Complete issue 3083: add alternate (#) formatting to bin, oct, hex in str.format().
........
2008-07-16 00:15:35 +00:00
Eric Smith b1ebcc6b0b Forward port of r64958.
Added '#' formatting to integers.  This adds the 0b, 0o, or 0x prefix for bin, oct, hex.  There's still one failing case, and I need to finish the docs.  I hope to finish those today.
2008-07-15 13:02:41 +00:00
Eric Smith b151a45a69 Merged revisions 64499 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64499 | eric.smith | 2008-06-24 07:11:59 -0400 (Tue, 24 Jun 2008) | 1 line

  Fixed formatting with thousands separator and padding.  Resolves issue 3140.
........
2008-06-24 11:21:04 +00:00
Eric Smith 6ed16dcf56 Merged revisions 64496 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64496 | eric.smith | 2008-06-24 02:05:30 -0400 (Tue, 24 Jun 2008) | 1 line

  Typo in comment.
........
2008-06-24 06:07:03 +00:00
Eric Smith 6d7e7a730e Merged revisions 64491 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r64491 | eric.smith | 2008-06-23 20:42:10 -0400 (Mon, 23 Jun 2008) | 1 line

  Modified interface to _Py_[String|Unicode]InsertThousandsGrouping, in anticipation of fixing issue 3140.
........
2008-06-24 01:06:47 +00:00
Georg Brandl 559e5d7f4d #2630: Implement PEP 3138.
The repr() of a string now contains printable Unicode characters unescaped.
The new ascii() builtin can be used to get a repr() with only ASCII characters in it.

PEP and patch were written by Atsuo Ishimoto.
2008-06-11 18:37:52 +00:00
Eric Smith ba8c028391 Refactored known type optimization, in anticipation of backporting to 2.6. I'll probably move this code into PyObject_Format, so everyone benefits. 2008-06-02 14:57:32 +00:00