(original) (raw)
You want to put the \`xor\` method in the \`nb\_xor\` field of the \`PyNumberMethods\` structure that lives in the \`tp\_as\_number\` field of the bytes type object. Two things I noticed in a quick pass: you might want to add some type checking around the case where \`a\` or \`b\` is not a \`PyByteArray\` object. Also, variable length arrays are added in C99, so you will need to manually allocate the \`raw\_\*\` arrays in the heap. This seems like a cool feature!
On Thu, Jan 7, 2016 at 5:26 PM, Blake Griffith <blake.a.griffith@gmail.com> wrote:
Hi!
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.
I've never hacked on cpython before. I'm starting by just trying to add xor to bytearray. I have a ByteArray\_Xor function that I think should do this here https://github.com/cowlicks/cpython/commit/d6dddb11cdb33032b39dcb9dfdaa7b10d4377b5fBut I'm not sure how to hook this in to the rest of cypython. I tried adding it where bytearray\_as\_sequence is declared in this bytearrayobject.c file. But that gave me compiler warnings and broke things.So now that I have this ByteArray\_Xor function, how do I make it be bytearray.\_\_xor\_\_\_?Thanks!Blake
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
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/joe%40quantopian.com