[Python-ideas] add a single __future__ for py3?

Joao S. O. Bueno jsbueno at python.org.br
Mon Sep 21 17:10:58 CEST 2015


On 20 September 2015 at 10:59, Luciano Ramalho <luciano at ramalho.org> wrote:
> Chris,
>
> I don't think students should be worrying about writing code that is
> Python 2 and Python 3 compatible.
>
> That's a concern only for people who write libraries, tools and
> frameworks for others to use, and I do not think these are the kinds
> of programs students usually do. Even if they are doing something
> along those lines, they should be focusing on other more important
> features of the programs rather than whether they run on Python 2 and
> on Python 3.
>
> Having said that, I'd also like to add that I don't think ``from
> __future__ import unicode_literals`` is a great idea for making code
> 2/3 compatible nowadays. It was necessary before the u'' prefix was
> reinstated in Python 3.3, but since u'' is back it's much better to be
> explicit in your literals rather than dealing with runtime errors
> because of the blanket effect of the unicode_literals import.
>
> Anyone who cares about 2/3 compatibility should mark every single
> literal with a u'' or a b'' prefix.
>
> But students should not be distracted by this. They should be using
> Python 3 only ;-).

I care to disagree. Anyone writting maintaonable, future-proof code that
should sitll run on Python2 should add the "from __future__ import
unicode_literals"  -
and write the code fully aware that each string is text, and not bytes.

The "u" prefix is nice for quickly porting projects, without rethinking the flow
of every single string found inside.
>
> Cheers,
>
> Luciano
>
>
>
>
> On Sat, Sep 19, 2015 at 3:41 PM, Sven R. Kunze <srkunze at mail.de> wrote:
>> I totally agree here.
>>
>>
>> On 19.09.2015 19:50, Chris Barker wrote:
>>
>> Hi all,
>>
>> the common advise, these days, if you want to write py2/3 compatible code,
>> is to do:
>>
>> from __future__ import absolute_import
>> from __future__ import division
>> from __future__ import print_function
>> from __future__ import unicode_literals
>>
>> https://docs.python.org/2/howto/pyporting.html#prevent-compatibility-regressions
>>
>> I'm trying to do this in my code, and teaching my students to do it to.
>>
>> but that's actually a lot of code to write.
>>
>> It would be nice to have a:
>>
>> from __future__ import py3
>>
>> or something like that, that would do all of those in one swipe.
>>
>> IIIC, l can't make a little module that does that, because the __future__
>> imports only effect the module in which they are imported
>>
>> Sure, it's not a huge deal, but it would make it easier for folks wanting to
>> keep up this best practice.
>>
>> Of course, this wouldn't happen until 2.7.11, if an when there even is one,
>> but it would be nice to get it on the list....
>>
>> -Chris
>>
>>
>>
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR&R            (206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115       (206) 526-6317   main reception
>>
>> Chris.Barker at noaa.gov
>>
>>
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>>
>>
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>
>
>
> --
> Luciano Ramalho
> |  Author of Fluent Python (O'Reilly, 2015)
> |     http://shop.oreilly.com/product/0636920032519.do
> |  Professor em: http://python.pro.br
> |  Twitter: @ramalhoorg
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/


More information about the Python-ideas mailing list