[Python-checkins] cpython (3.3): Issue 17844: Clarify meaning of different codec tables

nick.coghlan python-checkins at python.org
Thu May 23 12:25:23 CEST 2013


http://hg.python.org/cpython/rev/85e8414060b4
changeset:   83902:85e8414060b4
branch:      3.3
parent:      83900:e1d6140b02f0
user:        Nick Coghlan <ncoghlan at gmail.com>
date:        Thu May 23 20:24:02 2013 +1000
summary:
  Issue 17844: Clarify meaning of different codec tables

files:
  Doc/library/codecs.rst |  78 ++++++++++++++++++-----------
  1 files changed, 49 insertions(+), 29 deletions(-)


diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -1142,7 +1142,19 @@
 | utf_8_sig       |                                | all languages                  |
 +-----------------+--------------------------------+--------------------------------+
 
-.. XXX fix here, should be in above table
+Python Specific Encodings
+-------------------------
+
+A number of predefined codecs are specific to Python, so their codec names have
+no meaning outside Python.  These are listed in the tables below based on the
+expected input and output types (note that while text encodings are the most
+common use case for codecs, the underlying codec infrastructure supports
+arbitrary data transforms rather than just text encodings).  For asymmetric
+codecs, the stated purpose describes the encoding direction.
+
+The following codecs provide :class:`str` to :class:`bytes` encoding and
+:term:`bytes-like object` to :class:`str` decoding, similar to the Unicode text
+encodings.
 
 .. tabularcolumns:: |l|p{0.3\linewidth}|p{0.3\linewidth}|
 
@@ -1186,37 +1198,45 @@
 |                    |         | .. deprecated:: 3.3       |
 +--------------------+---------+---------------------------+
 
-The following codecs provide bytes-to-bytes mappings.
+The following codecs provide :term:`bytes-like object` to :class:`bytes`
+mappings.
+
 
 .. tabularcolumns:: |l|L|L|
 
-+--------------------+---------------------------+------------------------------+
-| Codec              | Purpose                   | Encoder/decoder              |
-+====================+===========================+==============================+
-| base64_codec       | Convert operand to MIME   | :meth:`base64.b64encode`,    |
-|                    | base64 (the result always | :meth:`base64.b64decode`     |
-|                    | includes a trailing       |                              |
-|                    | ``'\n'``)                 |                              |
-+--------------------+---------------------------+------------------------------+
-| bz2_codec          | Compress the operand      | :meth:`bz2.compress`,        |
-|                    | using bz2                 | :meth:`bz2.decompress`       |
-+--------------------+---------------------------+------------------------------+
-| hex_codec          | Convert operand to        | :meth:`base64.b16encode`,    |
-|                    | hexadecimal               | :meth:`base64.b16decode`     |
-|                    | representation, with two  |                              |
-|                    | digits per byte           |                              |
-+--------------------+---------------------------+------------------------------+
-| quopri_codec       | Convert operand to MIME   | :meth:`quopri.encodestring`, |
-|                    | quoted printable          | :meth:`quopri.decodestring`  |
-+--------------------+---------------------------+------------------------------+
-| uu_codec           | Convert the operand using | :meth:`uu.encode`,           |
-|                    | uuencode                  | :meth:`uu.decode`            |
-+--------------------+---------------------------+------------------------------+
-| zlib_codec         | Compress the operand      | :meth:`zlib.compress`,       |
-|                    | using gzip                | :meth:`zlib.decompress`      |
-+--------------------+---------------------------+------------------------------+
++----------------------+---------------------------+------------------------------+
+| Codec                | Purpose                   | Encoder/decoder              |
++======================+===========================+==============================+
+| base64_codec [#b64]_ | Convert operand to MIME   | :meth:`base64.b64encode`,    |
+|                      | base64 (the result always | :meth:`base64.b64decode`     |
+|                      | includes a trailing       |                              |
+|                      | ``'\n'``)                 |                              |
++----------------------+---------------------------+------------------------------+
+| bz2_codec            | Compress the operand      | :meth:`bz2.compress`,        |
+|                      | using bz2                 | :meth:`bz2.decompress`       |
++----------------------+---------------------------+------------------------------+
+| hex_codec            | Convert operand to        | :meth:`base64.b16encode`,    |
+|                      | hexadecimal               | :meth:`base64.b16decode`     |
+|                      | representation, with two  |                              |
+|                      | digits per byte           |                              |
++----------------------+---------------------------+------------------------------+
+| quopri_codec         | Convert operand to MIME   | :meth:`quopri.encodestring`, |
+|                      | quoted printable          | :meth:`quopri.decodestring`  |
++----------------------+---------------------------+------------------------------+
+| uu_codec             | Convert the operand using | :meth:`uu.encode`,           |
+|                      | uuencode                  | :meth:`uu.decode`            |
++----------------------+---------------------------+------------------------------+
+| zlib_codec           | Compress the operand      | :meth:`zlib.compress`,       |
+|                      | using gzip                | :meth:`zlib.decompress`      |
++----------------------+---------------------------+------------------------------+
 
-The following codecs provide string-to-string mappings.
+.. [#b64] Rather than accepting any :term:`bytes-like object`,
+   ``'base64_codec'`` accepts only :class:`bytes` and :class:`bytearray` for
+   encoding and only :class:`bytes`, :class:`bytearray`, and ASCII-only
+   instances of :class:`str` for decoding
+
+
+The following codecs provide :class:`str` to :class:`str` mappings.
 
 .. tabularcolumns:: |l|L|
 
@@ -1228,7 +1248,7 @@
 +--------------------+---------------------------+
 
 .. versionadded:: 3.2
-   bytes-to-bytes and string-to-string codecs.
+   bytes-to-bytes and str-to-str codecs.
 
 
 :mod:`encodings.idna` --- Internationalized Domain Names in Applications

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list