[pycrypto] Once again: Python3 with PyCrypto
sbehrens at gmx.li
Thu Dec 23 19:20:28 CST 2010
I've looked into this some more. There are two basic approaches:
a) Create .py code that will work in Python 2.x and 3.x. Code will
become uglier; for example try except blocks have to be used for
imports. One can catch a glimpse here:
b) Leave .py code to be written for Python 2.x, with some cleanup
applied to redo constructs that cannot be converted by 2to3. When ready
to release, run 2to3 on the source tree, and release two versions: One
for Python 2.x, one for Python 3.x.
b) is how the authors of Python intend things to be, and is likely the
cleanest way of operation. I don't relish the idea of following a) and
butchering the 2.x code so it will run in both 2.x and 3.x without change.
The C code will require some #defines and some #ifdefs in places, to
deal with int/long, the fact that bytes are a type now and shouldn't be
strings (can be done with defines), and the module initialization code.
Are you comfortable with b)? Objections? Reservations?
If you are good to give it a go, I'd need to know from you how you like
to handle branches in git. I'd assume that this work should be carried
out in a separate branch, not the trunk. This is going to touch a lot of
More information about the pycrypto