[Python-Dev] bitwise operations for bytes and bytearray
Blake Griffith
blake.a.griffith at gmail.com
Sat Jan 9 19:17:49 EST 2016
More information about the Python-Dev mailing list
Sat Jan 9 19:17:49 EST 2016
- Previous message (by thread): [Python-Dev] bitwise operations for bytes and bytearray
- Next message (by thread): [Python-Dev] bitwise operations for bytes and bytearray
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
A little update, I got ^, &, and | working for bytearrays. You can view the diff here: https://github.com/python/cpython/compare/master...cowlicks:bitwise-bytes?expand=1 How does it look? Joe, is this how I should allocate the arrays? Am I freeing them properly? Am I checking the input enough? After some feedback, I'll probably add bitshifting and negation. Then work on bytes objects. Does this warrant a pep? On Fri, Jan 8, 2016 at 2:08 AM, Cameron Simpson <cs at zip.com.au> wrote: > On 07Jan2016 16:12, Python-Dev <python-dev at python.org> wrote: > >> On Jan 7, 2016, at 15:57, Martin Panter <vadmium+py at gmail.com> wrote: >> >>> On 7 January 2016 at 22:26, Blake Griffith <blake.a.griffith at gmail.com> >>>> wrote: >>>> I'm interested in adding the functionality to do something like: >>>> >>>>> b'a' ^ b'b' >>>>>>> >>>>>> b'\x03' >>>> Instead of the good ol' TypeError. >>>> >>>> I think both bytes and bytearray should support all the bitwise >>>> operations. >>>> >>> >>> There is a bug open about adding this kind of functionality: >>> <https://bugs.python.org/issue19251>. >>> >> >> And it's in the needs patch stage, which makes it perfect for the OP: in >> addition to learning how to hack on builtin types, he can also learn the >> other parts of the dev process. (Even if the bug is eventually rejected, as >> seems likely given that it sat around for three years with no compelling >> use case and then Guido added a "very skeptical" comment.) >> > > The use case which springs immediately to my mind is cryptography. To > encrypt a stream symmetrically you can go: > > cleartext-bytes ^ cryptographicly-random-bytes-from-cipher > > so with this one could write: > > def crypted(byteses, crypto_source): > ''' Accept an iterable source of bytes objects and a preprimed source > of crypto bytes, yield encrypted versions of the bytes objects. > ''' > for bs in byteses: > cbs = crypto_source.next_bytes(len(bs)) > yield bs ^ cbs > > Cheers, > Cameron Simpson <cs at zip.com.au> > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/blake.a.griffith%40gmail.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160110/85a9c9cb/attachment.html>
- Previous message (by thread): [Python-Dev] bitwise operations for bytes and bytearray
- Next message (by thread): [Python-Dev] bitwise operations for bytes and bytearray
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list