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 <c...@zip.com.au> wrote:

> On 07Jan2016 16:12, Python-Dev <python-dev@python.org> wrote:
>
>> On Jan 7, 2016, at 15:57, Martin Panter <vadmium...@gmail.com> wrote:
>>
>>> On 7 January 2016 at 22:26, Blake Griffith <blake.a.griff...@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 <c...@zip.com.au>
> _______________________________________________
> 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/blake.a.griffith%40gmail.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/archive%40mail-archive.com

Reply via email to