On Thu, 7 Jan 2016 at 14:29 Blake Griffith <blake.a.griffith at 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/d6dddb11cdb33032b39dcb9dfdaa7b10d4377b5f > > But 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___? > You need to set the PyNumberMethods struct with the appropriate function and then set that on the PyTypeObject. Look at https://hg.python.org/cpython/file/tip/Include/object.h#l237 and https://hg.python.org/cpython/file/tip/Objects/longobject.c#l5238 for an idea of what it takes. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160107/92a37da2/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4