From d928b6a96516f611583310fd41c6c905562acd2c Mon Sep 17 00:00:00 2001 From: R David Murray Date: Sun, 19 Aug 2012 17:57:29 -0400 Subject: [PATCH] #13579: minimize code base drift for 'a' string.Formatter change. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2.7 doesn't support 'a'. This changeset ports the doc change and clause-reording portions of Francisco Martín Brugué patch in order to minimize code base drift. --- Doc/library/string.rst | 11 ++++++----- Lib/string.py | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Doc/library/string.rst b/Doc/library/string.rst index 0eda746ededc..ef1a0c265bcd 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -123,8 +123,8 @@ string formatting behaviors using the same implementation as the built-in .. method:: format(format_string, *args, **kwargs) - :meth:`format` is the primary API method. It takes a format template - string, and an arbitrary set of positional and keyword argument. + :meth:`format` is the primary API method. It takes a format string and + an arbitrary set of positional and keyword arguments. :meth:`format` is just a wrapper that calls :meth:`vformat`. .. method:: vformat(format_string, args, kwargs) @@ -133,8 +133,8 @@ string formatting behaviors using the same implementation as the built-in separate function for cases where you want to pass in a predefined dictionary of arguments, rather than unpacking and repacking the dictionary as individual arguments using the ``*args`` and ``**kwds`` - syntax. :meth:`vformat` does the work of breaking up the format template - string into character data and replacement fields. It calls the various + syntax. :meth:`vformat` does the work of breaking up the format string + into character data and replacement fields. It calls the various methods described below. In addition, the :class:`Formatter` defines a number of methods that are @@ -205,7 +205,8 @@ string formatting behaviors using the same implementation as the built-in Converts the value (returned by :meth:`get_field`) given a conversion type (as in the tuple returned by the :meth:`parse` method). The default - version understands 'r' (repr) and 's' (str) conversion types. + version understands 's' (str), 'r' (repr) and 'a' (ascii) conversion + types. .. _formatstrings: diff --git a/Lib/string.py b/Lib/string.py index 9c0ebe1fd46f..97278034a0fb 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -601,12 +601,12 @@ class Formatter(object): def convert_field(self, value, conversion): # do any conversion on the resulting object - if conversion == 'r': - return repr(value) + if conversion is None: + return value elif conversion == 's': return str(value) - elif conversion is None: - return value + elif conversion == 'r': + return repr(value) raise ValueError("Unknown conversion specifier {0!s}".format(conversion)) -- 2.47.3