Skip to content
ogrisel edited this page Jan 7, 2013 · 2 revisions

In my branch, I got rid of the 2to3 translation in the top level setup.py file, then added six [1] in sklearn.external and then iteratively launched the build_ext --inplace + tests under python 3.2 (at the time, now we can focus on 3.3), spotted the most common failures, devise a bunch of "sed" commands to apply en-masse + vim macros and finally manual editiong + git diff quick check, then iterate.

Read this first: http://docs.python.org/dev/howto/pyporting.html#try-to-support-python-2-6-and-newer-only

and maybe http://docs.python.org/dev/howto/pyporting.html as a whole to get the global picture.

It's tedious but not very complicated. Try to have a quick glance at my commits in:

https://github.com/ogrisel/scikit-learn/commits/py3k

to get a feel of the work to do.

[1] http://packages.python.org/six/

Also: maybe the ROPE refactoring tool could help http://rope.sourceforge.net/