[Python-Dev] 2to3 porting HOWTO: setup.py question

Oscar Benjamin oscar.j.benjamin at gmail.com
Tue Jul 24 12:14:49 CEST 2012

On Jul 24, 2012 10:32 AM, "Terry Reedy" <tjreedy at udel.edu> wrote:
> On 7/24/2012 12:44 AM, anatoly techtonik wrote:
>> Python 3 check explicitly tells the reader that 2to3 should only be
>> used in Python 3. Otherwise everybody need to guess when this *_2to3
>> tools are triggered. As for me, I see no technical limitations why
>> *_2to3 can not be run by Python 2 (PyPy, RPython or whatever). Maybe I
>> don't have Python3, but want to build my package for Python 3. In
>> ideal world it is possible.
> This is not an ideal world and 2to3 is not good enough to convert files
without further intervention and testing.

Which is exactly why it's use should be explicit. To go back to the
original question is it not better to be explicit about the version check?
The try/importerror snippet in setup.py is often accompanied by a comment
that explains the fact that it is implicitly performing a version check
whereas I find the explicit version check self documenting.

I know python users often frown upon explicitly checking with if/else,
preferring the flexibility afforded by duck typing and the possibility of
monkey patching but I don't see any advantage in this case. As said above,
"it's called checking the thing that matters" which is definitely the
python version.


> --
> Terry Jan Reedy
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120724/177b5ee0/attachment.html>

More information about the Python-Dev mailing list