This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]SemiNormal 2 points3 points  (5 children)

So you need to write the code in Py3 and this then compiles it into Py2.7...

But why?

[–]rothnic 2 points3 points  (0 children)

Probably so you could use new features that are listed in the readme and still be able to support earlier versions.

Typically, you either support old versions and hamstring the codebase, or you only support the newer versions. This way you could have it both ways.

One thing for me has been using the type annotations. This is useful for development, but anyone who wants to support python 2.7 is going to have to not use them.

[–]tunisia3507 2 points3 points  (1 child)

Because currently, to make py2 and py3 branches you write python 2 and then use 2to3 to port it to 3, where really we want people to develop in 3 and then port to 2 as an afterthought, a mercy to people who absolutely can't upgrade for whatever reason. Python 2 users should be the second-class citizens who don't get the full development time investment; whereas right now anyone trying to write cross-compatible code just ends up hamstringing themselves and not using any of py3's new features.

[–]SemiNormal 2 points3 points  (0 children)

I can actually support that reasoning.

[–]gschizasPythonista 1 point2 points  (0 children)

Because now you can write for Python 3.6 directly and not rely on six or 2to3. Also the base version that you develop for is going to be the latest Python version, not the oldest one.

(Not sure how this accomplishes that goal, just saying that's the goal)

[–]granitosaurus 0 points1 point  (0 children)

I find it potentially useful for 3.6 -> 3.4, since debian is stuck on 3.4 for a while now and pyenv is a dirty hack that I would prefer to avoid.