[Python-Dev] Why does base64 return bytes?

Terry Reedy tjreedy at udel.edu
Tue Jun 14 14:42:36 EDT 2016

On 6/14/2016 12:29 PM, Mark Lawrence via Python-Dev wrote:

> As I've the time to play detective I'd suggest
> https://mail.python.org/pipermail/python-3000/2007-July/008975.html

Thank you for finding that.  I reread it and still believe that bytes 
was the right choice.  Base64 is an generic edge encoding for binary 
data.  It fits in with the the standard paradigm as a edge encoding.

Receive encoded bytes.
Decode bytes to python objects
Manipulate python objects
Encode python objects to bytes
Send bytes.

Receive and send can be from and to either local files or sockets 
usually connected to remote systems.  Transmissions can have blocks with 
different encodings. In the latter case, the bytes need to be parsed 
into blocks with different encodings.

In the (fairly common) special case that a transmission consists 
entirely of text in *1* encoding (ignoring any transmission wrappers), 
decode and encode can be incorporated into a text-mode file object.  If 
a transmission consists entirely or partly of binary, one can open in 
binary mode and .write one or more blocks of encoded bytes, possible 
with encoding data.

Terry Jan Reedy

More information about the Python-Dev mailing list