3-manifolds/SnapPy

time to drop python2 compatibility ?

fchapoton opened this issue · 12 comments

in particular

  • usage of imports from __future__ and from six (done)
  • usage of xrange, iteritems and itervalues

Any opinion ?

Also:

  • remove object inheritance in classes

also change cython language level to 3str or 3 ?

We officially dropped Python 2 support with the release of SnapPy 3.0; specifically, we only support Python 3.6 and newer. So removing all of that unused cruft would be great.

one little step in #56, will remove future in another pull request

See #67 for some details in this spirit

some care for (object) in #70

there probably remains some "try except" about imports that should be cleaned up.

And also code in pari.py about old sage versions that is obsolete

And also code in pari.py about old sage versions that is obsolete

Given that we don't support Python 2, any code for Sage < 8.9 can go. Also, on the plain-Python side, we now require cypari>=2.3 so the stuff referring to pre-2.2.0 can be deleted as well.

I have also found that

git grep "if sys.version" .
mac_osx_app/__boot__.py:if sys.version_info[0] == 2:
mac_osx_app/__boot__.py:    if sys.version_info[0] == 2:
mac_osx_app/dmg-maker/dmg-maker.py:if sys.version_info.major == 2:
mac_osx_app/setup.py:if sys.version_info >= (3,4):
opengl/CyOpenGL.pyx:if sys.version_info[0] < 3:
python/database.py:    if sys.version_info >= (3,4):
python/gui.py:if sys.version_info.major < 3 or sys.version_info.minor < 7:
setup.py:        if sys.version_info.major == 2:
setup.py:        elif sys.version_info == (3,4):

Can I go on and carefuly get rid of all that ?

Yes, please do.

Maybe one should close this issue. Remaining issues can be fixed when found.

Agreed, closing now.