cpython: 1853679c6f71 (original) (raw)

Mercurial > cpython

changeset 89512:1853679c6f71

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). [#17618]

R David Murray rdmurray@bitdance.com
date Sat, 08 Mar 2014 12:53:28 -0500
parents 200207e50cbf
children e617f0ac696d
files Doc/library/base64.rst Doc/whatsnew/3.4.rst
diffstat 2 files changed, 27 insertions(+), 13 deletions(-)[+] [-] Doc/library/base64.rst 32 Doc/whatsnew/3.4.rst 8

line wrap: on

line diff

--- a/Doc/library/base64.rst +++ b/Doc/library/base64.rst @@ -1,27 +1,33 @@ -:mod:base64 --- RFC 3548: Base16, Base32, Base64 Data Encodings -================================================================= +:mod:base64 --- Base16, Base32, Base64, Base85 Data Encodings +=============================================================== .. module:: base64

.. 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 .. versionchanged:: 3.4 Any :term:bytes-like object\ s are now accepted by all

The modern interface provides:

--- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -583,6 +583,14 @@ The encoding and decoding functions in : :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 --------