summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2013-10-02 14:43:22 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2013-10-02 14:43:22 (GMT)
commitfdf239a855c82bc20df157815de947867aa2648e (patch)
tree05995514fc9cbb3283c5bdd2586982baebc3286b /Doc/library
parent73c6ee00805729919f98d4f2dbe27e16c54b4db2 (diff)
downloadcpython-fdf239a855c82bc20df157815de947867aa2648e.zip
cpython-fdf239a855c82bc20df157815de947867aa2648e.tar.gz
cpython-fdf239a855c82bc20df157815de947867aa2648e.tar.bz2
Close #17839: support bytes-like objects in base64 module
This mostly affected the encodebytes and decodebytes function (which are used by base64_codec) Also added a test to ensure all bytes-bytes codecs can handle memoryview input and tests for handling of multidimensional and non-bytes format input in the modern base64 API.
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/base64.rst4
-rw-r--r--Doc/library/codecs.rst65
2 files changed, 39 insertions, 30 deletions
diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst
index 3b23e79..de87441 100644
--- a/Doc/library/base64.rst
+++ b/Doc/library/base64.rst
@@ -27,6 +27,10 @@ byte strings, but only using the Base64 standard alphabet.
ASCII-only Unicode strings are now accepted by the decoding functions of
the modern interface.
+.. versionchanged:: 3.4
+ Any :term:`bytes-like object`\ s are now accepted by all
+ encoding and decoding functions in this module.
+
The modern interface provides:
.. function:: b64encode(s, altchars=None)
diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst
index fcef948..48c3b24 100644
--- a/Doc/library/codecs.rst
+++ b/Doc/library/codecs.rst
@@ -1208,36 +1208,41 @@ mappings.
.. tabularcolumns:: |l|L|L|
-+----------------------+---------------------------+------------------------------+
-| 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` |
-+----------------------+---------------------------+------------------------------+
-
-.. [#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
++----------------------+------------------------------+------------------------------+
+| 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'``) | |
+| | | |
+| | .. versionchanged:: 3.4 | |
+| | accepts any | |
+| | :term:`bytes-like object` | |
+| | as input for encoding and | |
+| | decoding | |
++----------------------+------------------------------+------------------------------+
+| 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` |
++----------------------+------------------------------+------------------------------+
+
+.. [#b64] In addition to :term:`bytes-like objects <bytes-like object>`,
+ ``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for
+ decoding
The following codecs provide :class:`str` to :class:`str` mappings.