I opened https://bugs.python.org/issue32491 so this wouldn't be lost under
the assumption that you'll eventually resolve your bugtracker account
situation. :)

I don't know what the correct behavior *should* be but agree that it seems
odd for decode to behave different than decodebytes.

-gps

On Wed, Jan 3, 2018 at 8:00 AM Oleg Sivokon <ol...@traiana.com> wrote:

> Hello,
>
> I've tried reading various RFCs around Base64 encoding, but I couldn't
> make the ends meet.  Yet there is an inconsistency between
> base64.decodebytes() and base64.decode() in that how they handle linebreaks
> that were used to collate the encoded text.  Below is an example of what
> I'm talking about:
>
> >>> import base64
> >>> foo = base64.encodebytes(b'123456789')
> >>> foo
> b'MTIzNDU2Nzg5\n'
> >>> foo = b'MTIzND\n' + b'U2Nzg5\n'
> >>> foo
> b'MTIzND\nU2Nzg5\n'
> >>> base64.decodebytes(foo)
> b'123456789'
> >>> from io import BytesIO
> >>> bytes_in = BytesIO(foo)
> >>> bytes_out = BytesIO()
> >>> bytes_in.seek(0)
> 0
> >>> base64.decode(bytes_in, bytes_out)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/somewhere/lib/python3.6/base64.py", line 512, in decode
>     s = binascii.a2b_base64(line)
> binascii.Error: Incorrect padding
> >>> bytes_in = BytesIO(base64.encodebytes(b'123456789'))
> >>> bytes_in.seek(0)
> 0
> >>> base64.decode(bytes_in, bytes_out)
> >>> bytes_out.getvalue()
> b'123456789'
>
> Obviously, I'd expect encodebytes() and encode both to either accept or to
> reject the same input.
>
> Thanks.
>
> Oleg
>
> PS. I couldn't register to the bug-tracker (never received an email
> confirmation, not even in a spam folder), this is why I'm sending it here.
> This communication and all information contained in or attached to it is
> confidential, intended solely for the addressee, may be legally privileged
> and is the intellectual property of one of the companies of NEX Group plc
> ("NEX") or third parties. If you are not the intended addressee or receive
> this message in error, please immediately delete all copies of it and
> notify the sender. We have taken precautions to minimise the risk of
> transmitting software viruses, but we advise you to carry out your own
> virus checks on any attachments. We do not accept liability for any loss or
> damage caused by software viruses. NEX reserves the right to monitor all
> communications. We do not accept any legal responsibility for the content
> of communications, and no communication shall be considered legally
> binding. Furthermore, if the content of this communication is personal or
> unconnected with our business, we accept no liability or responsibility for
> it. NEX Group plc is a public limited company regi
>  stered in England and Wales under number 10013770 and certain of its
> affiliates are authorised and regulated by regulatory authorities. For
> further regulatory information please see www.NEX.com.
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/greg%40krypto.org
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to