← Back to team overview

duplicity-team team mailing list archive

Python 3 Status Update

 

Heyo!  I worked on the python3 plan-of-record (as I understand it) this
past weekend.  Just wanted to say how it's going.

So to make sure we're on the same page, the plan is to enable 2to3
translation on the fly if the user runs setup.py under python3.  This would
not necessarily be a supported mode.

Well, I have some good progress on that.   It's not at all done, but for
the curious, here it is:
https://code.launchpad.net/~mterry/duplicity/python3

This branch is mostly three things:
1) Packaging fixes to let the tests run via "setup.py test" and look for
scripts and modules in the build dirs.
2) Small fixes here and there in the code itself to help 2to3 out (like
renaming some variables that confuse it and such)
3) Massive amounts of changes to clarify unicode vs bytes.

That last one has been the most work.  Naturally, 2to3 can't determine
intent, so can't fix unicode issues for us.  But these changes are good
anyway, since they will fix existing unicode issues we have in python2.

Specifically, my branch will make all filenames be treated as byte strings
that we only every try to turn into unicode for the sake of printing to the
console.  And when we do print, we replace characters that couldn't be
converted with a replacement marker.

Anyway.  Just a heads up that because of the unicode issues that python3
forces us to deal with, the branch will be much more invasive than I hoped.
 But it's a good sort of invasive.

-mt