whatsnew: base65 encodings. (#17618)

Also updated the base64 module title and introduction to adjust for
the fact that these new encodings are included.

Also adjusted the wording about the base64 alphabets (see
issue #20837).
This commit is contained in:
R David Murray 2014-03-08 12:53:28 -05:00
parent 9bd6a37df2
commit c210de1ea1
2 changed files with 27 additions and 13 deletions

View File

@ -1,27 +1,33 @@
:mod:`base64` --- RFC 3548: Base16, Base32, Base64 Data Encodings
=================================================================
:mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings
===============================================================
.. module:: base64
:synopsis: RFC 3548: Base16, Base32, Base64 Data Encodings
:synopsis: RFC 3548: Base16, Base32, Base64 Data Encodings;
Base85 and Ascii85
.. index::
pair: base64; encoding
single: MIME; base64 encoding
This module provides data encoding and decoding as specified in :rfc:`3548`.
This standard defines the Base16, Base32, and Base64 algorithms for encoding
and decoding arbitrary binary strings into ASCII-only byte strings that can be
This module provides functions for encoding binary data to printable
ASCII characters and decoding such encodings back to binary data.
It provides encoding and decoding functions for the encodings specified in
in :rfc:`3548`, which defines the Base16, Base32, and Base64 algorithms,
and for the de-facto standard Ascii85 and Base85 encodings.
The :rfc:`3548` encodings are suitable for encoding binary data so that it can
safely sent by email, used as parts of URLs, or included as part of an HTTP
POST request. The encoding algorithm is not the same as the
:program:`uuencode` program.
There are two interfaces provided by this module. The modern interface
supports encoding and decoding ASCII byte string objects using all three
alphabets. Additionally, the decoding functions of the modern interface also
accept Unicode strings containing only ASCII characters. The legacy interface
provides for encoding and decoding to and from file-like objects as well as
byte strings, but only using the Base64 standard alphabet.
There are two :rfc:`3548` interfaces provided by this module. The modern
interface supports encoding and decoding ASCII byte string objects using all
three :rfc:`3548` defined alphabets (normal, URL-safe, and filesystem-safe).
Additionally, the decoding functions of the modern interface also accept
Unicode strings containing only ASCII characters. The legacy interface provides
for encoding and decoding to and from file-like objects as well as byte
strings, but only using the Base64 standard alphabet.
.. versionchanged:: 3.3
ASCII-only Unicode strings are now accepted by the decoding functions of
@ -29,7 +35,7 @@ byte strings, but only using the Base64 standard alphabet.
.. versionchanged:: 3.4
Any :term:`bytes-like object`\ s are now accepted by all
encoding and decoding functions in this module.
encoding and decoding functions in this module. Ascii85/Base85 support added.
The modern interface provides:

View File

@ -583,6 +583,14 @@ The encoding and decoding functions in :mod:`base64` now accept any
:class:`bytes` or :class:`bytearray` instance. (Contributed by Nick Coghlan in
:issue:`17839`.)
New functions :func:`~base64.a85encode`, :func:`~base64.a85decode`,
:func:`~base64.b85encode`, and :func:`~base64.b85decode` provide the ability to
encode and decode binary data from and to ``Ascii85`` and the git/mercurial
``Base85`` formats, respectively. The ``a85`` functions have options that can
be sued to make them compatible with the variants of the ``Ascii85`` encoding,
including the Adobe variant. (Contributed by Martin Morrison, the Mercurial
project, Serhiy Storchaka, and Antoine Pitrou in :issue:`17618`.)
colorsys
--------