[scikit-image] Python 3, revisited

Juan Nunez-Iglesias jni.soma at gmail.com
Mon Jul 10 22:07:12 EDT 2017

Hi everyone,

I’d like to revisit the Python 2 deprecation issue. Since the last discussion, IPython has gone Python 3-only, and Astropy just announced their 2.0 release as being the last one to support Python 2, with 3.0, scheduled in six months, out in 6 months.

I’ve been obsessively cataloguing all Python 2-related annoyances that have cropped up since our last discussion. (See below for the full list.) As expected, nothing was a show-stopper, but they do add up to something non-trivial.

I’d very much like a roadmap along these lines:

* 0.14, due before end of the year: last version to support Python 2.
* 1.0, due by SciPy next year: Python 3.5+ only (or even 3.6, though I definitely won’t push on this — but f-strings are so nice! =)

Thoughts? [*ducks*] =P



Several rounds of reviewing this because of a difference in how Python 2.7 and 3.x handle warnings:

Beautiful linalg syntax ruined by using Python 2.7

Unicode character in __init__.py caused a delay in PR 1357.

Use of "range" causes MemoryError in Python 2:

Merging dictionaries is unnecessarily verbose and ugly in this PR

Pretty terrible linalg in:

Bad API choices because we have to either change argument order relative to ndi or run a 2-release deprecation cycle; issue would be avoided if we used Python 3.5 only.

conda-forge release 0.13 delayed by 2.7 build error on Windows.

Python 2.7 lists don’t have a `.copy()` method

Whatever this is (six.get_self_method):

Concurrent futures not available:

ASCII codec can’t encode em-dash
'ascii' codec can't encode character u'\u2014' in position 41: ordinal not in range(128)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20170711/9b0e4e3b/attachment.html>

More information about the scikit-image mailing list