Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-17 Thread Hrvoje Niksic

On 12/16/2014 08:18 PM, R. David Murray wrote:

On Tue, 16 Dec 2014 10:48:07 -0800, Mark Roberts wiz...@gmail.com wrote:

 Besides, using iteritems() and friends is generally a premature
 optimization, unless you know you'll have very large containers.
 Creating a list is cheap.

[...]

No.  A premature optimization is one that is made before doing any
performance analysis, so language features are irrelevant to that
labeling.  This doesn't mean you shouldn't use better idioms when they
are clear.


This is a relevant point. I would make it even stronger: using 
iteritems() is not a premature optimization, it is a statement of 
intent. More importantly, using items() in iteration is a statement of 
expectation that the dict will change during iteration. If this is not 
in fact the case, then items() is the wrong idiom for reasons of 
readability, not (just) efficiency.


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-17 Thread anatoly techtonik
On Wed, Dec 17, 2014 at 12:56 AM, Guido van Rossum gu...@python.org wrote:
 This thread hasn't been productive for a really long time now.

I agree. The constructive way would be to concentrate on looking for
causes. I don't know if there is a discipline of programming language
usability in computer science, but now is a good moment to apply it.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Antoine Pitrou
On Mon, 15 Dec 2014 19:08:17 -0800
Mark Roberts wiz...@gmail.com wrote:
 
 So, I'm the guy that used the hate word in relation to writing 2/3
 compliant code. And really, as a library maintainer/writer I do hate
 writing 2/3 compatible code. Having 4 future imports in every file and
 being forced to use a compatibility shim to do something as simple as
 iterating across a dictionary is somewhere between sad and infuriating -
 and that's just the beginning of the madness.

Iterating accross a dictionary doesn't need compatibility shims. It's
dead simple in all Python versions:

$ python2
Python 2.7.8 (default, Oct 20 2014, 15:05:19) 
[GCC 4.9.1] on linux2
Type help, copyright, credits or license for more information.
 d = {'a': 1}
 for k in d: print(k)
... 
a

$ python3
Python 3.4.2 (default, Oct  8 2014, 13:08:17) 
[GCC 4.9.1] on linux
Type help, copyright, credits or license for more information.
 d = {'a': 1}
 for k in d: print(k)
... 
a

Besides, using iteritems() and friends is generally a premature
optimization, unless you know you'll have very large containers.
Creating a list is cheap.

 From there we get into
 identifier related problems with their own compatibility shims - like
 str(), unicode(), bytes(), int(), and long(). Writing 2/3 compatible Python
 feels more like torture than fun.

It depends what kind of purpose your code is written for, or how you
write it. Unless you have a lot of network-facing code, writing 2/3
compatible code should actually be quite pedestrian.

Regards

Antoine.


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Petr Viktorin
On Sun, Dec 14, 2014 at 1:14 AM, Nick Coghlan ncogh...@gmail.com wrote:
[...]
 Barry, Petr, any of the other folks working on distro level C extension
 ports, perhaps one of you would be willing to consider an update to the C
 extension porting guide to be more in line with Brett's latest version of
 the Python level porting guide?

I can make it a 20%-time project starting in January, if no-one beats me to it.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Mark Roberts
On Tue, Dec 16, 2014 at 2:45 AM, Antoine Pitrou solip...@pitrou.net wrote:

 Iterating accross a dictionary doesn't need compatibility shims. It's
 dead simple in all Python versions:

 $ python2
 Python 2.7.8 (default, Oct 20 2014, 15:05:19)
 [GCC 4.9.1] on linux2
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 $ python3
 Python 3.4.2 (default, Oct  8 2014, 13:08:17)
 [GCC 4.9.1] on linux
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 Besides, using iteritems() and friends is generally a premature
 optimization, unless you know you'll have very large containers.
 Creating a list is cheap.


It seems to me that every time I hear this, the author is basically
admitting that Python is a toy language not meant for serious computing
(where serious is defined in extremely modest terms). The advice is also
very contradictory to literally every talk on performant Python that I've
seen at PyCon or PyData or ... well, anywhere. And really, doesn't it
strike you as incredibly presumptuous to call the *DEFAULT BEHAVIOR* of
Python 3 a premature optimization? Isn't the whole reason that the
default behavior switch was made is because creating lists willy nilly all
over the place really *ISN'T* cheap? This isn't the first time someone has
tried to run this line past me, but it's the first time I've been fed up
enough with the topic to call it complete BS on the spot. Please help me
stop the community at large from saying this, because it really isn't true
at all.

-Mark
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Brett Cannon
Mark, your tone is no longer constructive and is hurting your case in
arguing for anything. Please take it down a notch.

On Tue Dec 16 2014 at 1:48:59 PM Mark Roberts wiz...@gmail.com wrote:

 On Tue, Dec 16, 2014 at 2:45 AM, Antoine Pitrou solip...@pitrou.net
 wrote:

 Iterating accross a dictionary doesn't need compatibility shims. It's
 dead simple in all Python versions:

 $ python2
 Python 2.7.8 (default, Oct 20 2014, 15:05:19)
 [GCC 4.9.1] on linux2
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 $ python3
 Python 3.4.2 (default, Oct  8 2014, 13:08:17)
 [GCC 4.9.1] on linux
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 Besides, using iteritems() and friends is generally a premature
 optimization, unless you know you'll have very large containers.
 Creating a list is cheap.


 It seems to me that every time I hear this, the author is basically
 admitting that Python is a toy language not meant for serious computing
 (where serious is defined in extremely modest terms). The advice is also
 very contradictory to literally every talk on performant Python that I've
 seen at PyCon or PyData or ... well, anywhere. And really, doesn't it
 strike you as incredibly presumptuous to call the *DEFAULT BEHAVIOR* of
 Python 3 a premature optimization? Isn't the whole reason that the
 default behavior switch was made is because creating lists willy nilly all
 over the place really *ISN'T* cheap? This isn't the first time someone has
 tried to run this line past me, but it's the first time I've been fed up
 enough with the topic to call it complete BS on the spot. Please help me
 stop the community at large from saying this, because it really isn't true
 at all.

 -Mark
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: https://mail.python.org/mailman/options/python-dev/
 brett%40python.org

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Mark Roberts
Perhaps you are correct, and I will attempt to remain more constructive on
the topic (despite it being an *incredibly* frustrating experience).
However, my point remains: this is a patently false thing that is being
parroted throughout the Python community, and it's outright insulting to be
told my complaints about writing 2/3 compatible code are invalid on the
basis of premature optimization.

-Mark

On Tue, Dec 16, 2014 at 10:57 AM, Brett Cannon br...@python.org wrote:

 Mark, your tone is no longer constructive and is hurting your case in
 arguing for anything. Please take it down a notch.

 On Tue Dec 16 2014 at 1:48:59 PM Mark Roberts wiz...@gmail.com wrote:

 On Tue, Dec 16, 2014 at 2:45 AM, Antoine Pitrou solip...@pitrou.net
 wrote:

 Iterating accross a dictionary doesn't need compatibility shims. It's
 dead simple in all Python versions:

 $ python2
 Python 2.7.8 (default, Oct 20 2014, 15:05:19)
 [GCC 4.9.1] on linux2
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 $ python3
 Python 3.4.2 (default, Oct  8 2014, 13:08:17)
 [GCC 4.9.1] on linux
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 Besides, using iteritems() and friends is generally a premature
 optimization, unless you know you'll have very large containers.
 Creating a list is cheap.


 It seems to me that every time I hear this, the author is basically
 admitting that Python is a toy language not meant for serious computing
 (where serious is defined in extremely modest terms). The advice is also
 very contradictory to literally every talk on performant Python that I've
 seen at PyCon or PyData or ... well, anywhere. And really, doesn't it
 strike you as incredibly presumptuous to call the *DEFAULT BEHAVIOR* of
 Python 3 a premature optimization? Isn't the whole reason that the
 default behavior switch was made is because creating lists willy nilly all
 over the place really *ISN'T* cheap? This isn't the first time someone has
 tried to run this line past me, but it's the first time I've been fed up
 enough with the topic to call it complete BS on the spot. Please help me
 stop the community at large from saying this, because it really isn't true
 at all.

 -Mark
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: https://mail.python.org/mailman/options/python-dev/
 brett%40python.org


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread R. David Murray
On Tue, 16 Dec 2014 10:48:07 -0800, Mark Roberts wiz...@gmail.com wrote:
 On Tue, Dec 16, 2014 at 2:45 AM, Antoine Pitrou solip...@pitrou.net wrote:
 
  Iterating accross a dictionary doesn't need compatibility shims. It's
  dead simple in all Python versions:
 
  $ python2
  Python 2.7.8 (default, Oct 20 2014, 15:05:19)
  [GCC 4.9.1] on linux2
  Type help, copyright, credits or license for more information.
   d = {'a': 1}
   for k in d: print(k)
  ...
  a
 
  $ python3
  Python 3.4.2 (default, Oct  8 2014, 13:08:17)
  [GCC 4.9.1] on linux
  Type help, copyright, credits or license for more information.
   d = {'a': 1}
   for k in d: print(k)
  ...
  a
 
  Besides, using iteritems() and friends is generally a premature
  optimization, unless you know you'll have very large containers.
  Creating a list is cheap.
 
 
 It seems to me that every time I hear this, the author is basically
 admitting that Python is a toy language not meant for serious computing
 (where serious is defined in extremely modest terms). The advice is also
 very contradictory to literally every talk on performant Python that I've
 seen at PyCon or PyData or ... well, anywhere. And really, doesn't it
 strike you as incredibly presumptuous to call the *DEFAULT BEHAVIOR* of
 Python 3 a premature optimization?

No.  A premature optimization is one that is made before doing any
performance analysis, so language features are irrelevant to that
labeling.  This doesn't mean you shouldn't use better idioms when they
are clear.  But if you are complicating your code because of performance
concerns *without measuring it* you are doing premature optimization, by
definition[*].

 Isn't the whole reason that the
 default behavior switch was made is because creating lists willy nilly all
 over the place really *ISN'T* cheap? This isn't the first time someone has

No.  In Python3 we made the iterator protocol more central to the
language.  Any performance benefit is actually a side effect of that
change.  One that was considered, yes, but in the context of the
*language* as a whole and not any individual program's performance
profile.  And this doesn't make things worse for real world programs as
far as we can measure is a more important criterion for this kind of
language change than lets do this because we've measured and it makes
things better.

--David

[*] And yes, *we all do this*.  Sometimes doing it doesn't cost much.
Sometimes it does.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Brett Cannon
On Tue Dec 16 2014 at 2:05:28 PM Mark Roberts wiz...@gmail.com wrote:

 Perhaps you are correct, and I will attempt to remain more constructive on
 the topic (despite it being an *incredibly* frustrating experience).
 However, my point remains: this is a patently false thing that is being
 parroted throughout the Python community, and it's outright insulting to be
 told my complaints about writing 2/3 compatible code are invalid on the
 basis of premature optimization.


See, you're still using a very negative tone even after saying you would
try to scale it back. What Antoine said is not patently false and all he
said was that relying on iter*() methods on dicts is typically a premature
optimization for Python 2 code which is totally reasonable for him to say
and was done so in a calm tone. He didn't say you are prematurely
optimizing and you need to stop telling the community that because you're
wasting everyone's time in caring about performance! which how I would
expect you to state it if you were make the same claim based on how you
have been reacting.

For most use cases, you simply don't need a memory-efficient iterator. If
you have a large dict where memory issues from constructing a list comes
into play, then yes you should use iterkeys(), but otherwise the overhead
of temporarily constructing a list to hold all the keys is cheap since it's
just a list of pointers at the C level.

As for the changing of the default in Python 3, that's because we decided
to make iterators the default everywhere. And that was mostly for
consistency, not performance reasons. It was also for flexibility as you
can go from an iterator to a list by just wrapping the iterator in list(),
but you can't go the other way around. At no time did anyone go we really
need to change the default iterator for dicts to a memory-saving iterator
because people are wasting memory and having issues with memory pressure
all the time; it was always about consistency and using the best idiom
that had developed over the years.

So Antoine's point is entirely reasonable and valid and right.

-Brett



 -Mark

 On Tue, Dec 16, 2014 at 10:57 AM, Brett Cannon br...@python.org wrote:

 Mark, your tone is no longer constructive and is hurting your case in
 arguing for anything. Please take it down a notch.

 On Tue Dec 16 2014 at 1:48:59 PM Mark Roberts wiz...@gmail.com wrote:

 On Tue, Dec 16, 2014 at 2:45 AM, Antoine Pitrou solip...@pitrou.net
 wrote:

 Iterating accross a dictionary doesn't need compatibility shims. It's
 dead simple in all Python versions:

 $ python2
 Python 2.7.8 (default, Oct 20 2014, 15:05:19)
 [GCC 4.9.1] on linux2
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 $ python3
 Python 3.4.2 (default, Oct  8 2014, 13:08:17)
 [GCC 4.9.1] on linux
 Type help, copyright, credits or license for more information.
  d = {'a': 1}
  for k in d: print(k)
 ...
 a

 Besides, using iteritems() and friends is generally a premature
 optimization, unless you know you'll have very large containers.
 Creating a list is cheap.


 It seems to me that every time I hear this, the author is basically
 admitting that Python is a toy language not meant for serious computing
 (where serious is defined in extremely modest terms). The advice is also
 very contradictory to literally every talk on performant Python that I've
 seen at PyCon or PyData or ... well, anywhere. And really, doesn't it
 strike you as incredibly presumptuous to call the *DEFAULT BEHAVIOR* of
 Python 3 a premature optimization? Isn't the whole reason that the
 default behavior switch was made is because creating lists willy nilly all
 over the place really *ISN'T* cheap? This isn't the first time someone has
 tried to run this line past me, but it's the first time I've been fed up
 enough with the topic to call it complete BS on the spot. Please help me
 stop the community at large from saying this, because it really isn't true
 at all.

 -Mark
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: https://mail.python.org/mailman/options/python-dev/
 brett%40python.org


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Antoine Pitrou
On Tue, 16 Dec 2014 19:25:35 +
Brett Cannon br...@python.org wrote:
 
 As for the changing of the default in Python 3, that's because we decided
 to make iterators the default everywhere. And that was mostly for
 consistency, not performance reasons. It was also for flexibility as you
 can go from an iterator to a list by just wrapping the iterator in list(),
 but you can't go the other way around.

And two other reasons:
- the API becomes simpler to use as there's no need to choose
  between .items() and .iteritems(), etc.
- the 3.x methods don't return iterators but views, which have set-like
  features in addition to basic iterating

Regards

Antoine.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Marko Rauhamaa
Mark Roberts wiz...@gmail.com:

 it's outright insulting to be told my complaints about writing 2/3
 compatible code are invalid on the basis of premature optimization.

IMO, you should consider forking your library code for Python2 and
Python3. The multidialect code will look unidiomatic for each dialect.
When the critical mass favors Python3 (possibly within a couple of
years), the transition will be as total and quick as from VHS to DVDs.
At that point, a multidialect library would seem quaint, while a
separate Python2 fork can simply be left behind (bug fixes only).


Marko
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Skip Montanaro
On Tue, Dec 16, 2014 at 1:58 PM, Marko Rauhamaa ma...@pacujo.net wrote:

 IMO, you should consider forking your library code for Python2 and
 Python3.


I don't get the idea that Brett Cannon agrees with you:

http://nothingbutsnark.svbtle.com/commentary-on-getting-your-code-to-run-on-python-23

While he doesn't explicitly say so, I got the distinct impression reading
his recent blog post that he supports one source, not forked sources.

In the absence to evidence to the contrary, I think of Brett as the most
expert developer in the porting space.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Brian Curtin
On Tue, Dec 16, 2014 at 2:15 PM, Skip Montanaro
skip.montan...@gmail.com wrote:

 On Tue, Dec 16, 2014 at 1:58 PM, Marko Rauhamaa ma...@pacujo.net wrote:

 IMO, you should consider forking your library code for Python2 and
 Python3.


 I don't get the idea that Brett Cannon agrees with you:

 http://nothingbutsnark.svbtle.com/commentary-on-getting-your-code-to-run-on-python-23

 While he doesn't explicitly say so, I got the distinct impression reading
 his recent blog post that he supports one source, not forked sources.

 In the absence to evidence to the contrary, I think of Brett as the most
 expert developer in the porting space.

I'm a few inches shorter than Brett, but having done several sizable
ports, dual-source has never even on the table. I would prefer the
run 2to3 at installation time option before maintaining two versions
(which I do not prefer at all in reality).
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Marko Rauhamaa
Brian Curtin br...@python.org:

 I'm a few inches shorter than Brett, but having done several sizable
 ports, dual-source has never even on the table. I would prefer the
 run 2to3 at installation time option before maintaining two versions
 (which I do not prefer at all in reality).

How about run 3to2 at installation time?


Marko
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Skip Montanaro
On Tue, Dec 16, 2014 at 3:03 PM, Marko Rauhamaa ma...@pacujo.net wrote:

 How about run 3to2 at installation time?


In theory, yes, but that's not a fork either.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Ethan Furman
On 12/16/2014 11:25 AM, Brett Cannon wrote:
 
 What Antoine said is not patently false [...]

What Antoine said was:

 Unless you have a lot of network-facing code, writing 2/3
 compatible code should actually be quite pedestrian.

Or, to paraphrase slightly, if you aren't writing network code, and your 2/3 
code is painful, you must be doing
something wrong!

That may not be what he intended, but that is certainly how it felt.

--
~Ethan~



signature.asc
Description: OpenPGP digital signature
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Ethan Furman
On 12/16/2014 12:31 PM, Brian Curtin wrote:
 On Tue, Dec 16, 2014 at 2:15 PM, Skip Montanaro wrote:
 On Tue, Dec 16, 2014 at 1:58 PM, Marko Rauhamaa wrote:

 IMO, you should consider forking your library code for Python2 and
 Python3.

 I don't get the idea that Brett Cannon agrees with you:

 http://nothingbutsnark.svbtle.com/commentary-on-getting-your-code-to-run-on-python-23

 While he doesn't explicitly say so, I got the distinct impression reading
 his recent blog post that he supports one source, not forked sources.

 In the absence to evidence to the contrary, I think of Brett as the most
 expert developer in the porting space.
 
 I'm a few inches shorter than Brett, but having done several sizable
 ports, dual-source has never even on the table. I would prefer the
 run 2to3 at installation time option before maintaining two versions
 (which I do not prefer at all in reality).

I have a handful of projects.  The tiny ones are one-source, the biggest one 
(dbf) is not.

If I had an entire application I would probably split the difference, and just 
have dual source on a single module to
hold the classes/functions that absolutely-had-to-have-this-or-that-feature 
(exec (the statement) vs exec (the function)
comes to mind).

--
~Ethan~



signature.asc
Description: OpenPGP digital signature
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Guido van Rossum
This thread hasn't been productive for a really long time now.

On Tue, Dec 16, 2014 at 1:52 PM, Ethan Furman et...@stoneleaf.us wrote:

 On 12/16/2014 12:31 PM, Brian Curtin wrote:
  On Tue, Dec 16, 2014 at 2:15 PM, Skip Montanaro wrote:
  On Tue, Dec 16, 2014 at 1:58 PM, Marko Rauhamaa wrote:
 
  IMO, you should consider forking your library code for Python2 and
  Python3.
 
  I don't get the idea that Brett Cannon agrees with you:
 
 
 http://nothingbutsnark.svbtle.com/commentary-on-getting-your-code-to-run-on-python-23
 
  While he doesn't explicitly say so, I got the distinct impression
 reading
  his recent blog post that he supports one source, not forked sources.
 
  In the absence to evidence to the contrary, I think of Brett as the most
  expert developer in the porting space.
 
  I'm a few inches shorter than Brett, but having done several sizable
  ports, dual-source has never even on the table. I would prefer the
  run 2to3 at installation time option before maintaining two versions
  (which I do not prefer at all in reality).

 I have a handful of projects.  The tiny ones are one-source, the biggest
 one (dbf) is not.

 If I had an entire application I would probably split the difference, and
 just have dual source on a single module to
 hold the classes/functions that
 absolutely-had-to-have-this-or-that-feature (exec (the statement) vs exec
 (the function)
 comes to mind).

 --
 ~Ethan~


 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/guido%40python.org



-- 
--Guido van Rossum (python.org/~guido)
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Barry Warsaw
On Dec 16, 2014, at 02:15 PM, Skip Montanaro wrote:

While he doesn't explicitly say so, I got the distinct impression reading
his recent blog post that he supports one source, not forked sources.

I've ported a fair bit of code, both pure-Python and C extensions, both
libraries and applications.  For successful library ports to Python 3 that
need to remain Python 2 compatible, I would almost always recommend a single
source, common dialect, no-2to3 approach.  There may be exceptions, but this
strategy has proven effective over and over.  I generally find I don't need
`six` but it does provide some nice conveniences that can be helpful.  With
something like tox running your test suite, it doesn't even have to be painful
to maintain.

Cheers,
-Barry
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Chris McDonough

On 12/16/2014 03:09 AM, Barry Warsaw wrote:

On Dec 16, 2014, at 02:15 PM, Skip Montanaro wrote:


While he doesn't explicitly say so, I got the distinct impression reading
his recent blog post that he supports one source, not forked sources.


I've ported a fair bit of code, both pure-Python and C extensions, both
libraries and applications.  For successful library ports to Python 3 that
need to remain Python 2 compatible, I would almost always recommend a single
source, common dialect, no-2to3 approach.  There may be exceptions, but this
strategy has proven effective over and over.  I generally find I don't need
`six` but it does provide some nice conveniences that can be helpful.  With
something like tox running your test suite, it doesn't even have to be painful
to maintain.


I'll agree; with tox and some automated CI system like travis or jenkins 
or whatever, once you've done the port, it's only a minor nuisance to 
maintain a straddled 2/3 codebase.  Programming in only the subset still 
isn't much fun, but maintenance is slightly easier than I expected it to 
be.  Drive by contributions become slightly harder to accept because 
they often break 3 compatibility, and contributors are often unable or 
unwilling to install all the required versions that are tested by tox.


- C

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-16 Thread Nick Coghlan
On 17 December 2014 at 10:45, Chris McDonough chr...@plope.com wrote:
 On 12/16/2014 03:09 AM, Barry Warsaw wrote:

 On Dec 16, 2014, at 02:15 PM, Skip Montanaro wrote:

 While he doesn't explicitly say so, I got the distinct impression reading
 his recent blog post that he supports one source, not forked sources.


 I've ported a fair bit of code, both pure-Python and C extensions, both
 libraries and applications.  For successful library ports to Python 3 that
 need to remain Python 2 compatible, I would almost always recommend a
 single
 source, common dialect, no-2to3 approach.  There may be exceptions, but
 this
 strategy has proven effective over and over.  I generally find I don't
 need
 `six` but it does provide some nice conveniences that can be helpful.
 With
 something like tox running your test suite, it doesn't even have to be
 painful
 to maintain.


 I'll agree; with tox and some automated CI system like travis or jenkins or
 whatever, once you've done the port, it's only a minor nuisance to maintain
 a straddled 2/3 codebase.  Programming in only the subset still isn't much
 fun, but maintenance is slightly easier than I expected it to be.  Drive
 by contributions become slightly harder to accept because they often break
 3 compatibility, and contributors are often unable or unwilling to install
 all the required versions that are tested by tox.

It's worth noting that the last problem can potentially be mitigated
to some degree by taking advantage of the new pylint --py3k feature
making it easier to check that code is 2/3 source compatible without
needing a local copy of Python 3 to test against, and without needing
to adhere to pylint's other checks.

As far as Marko's suggestion of maintaining two code bases go, that's
what we do for the standard library, and we've *never* advised anyone
else to do the same. Even before experience showed the source
compatible approach was more practical, the original advice to third
party developers was to use 2to3 to automatically derive the Python 3
version from the Python 2 version and address any compatibility issues
by modifying the Python 2 sources.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Chris Barker
OK, this seems weird to me:

For what it’s worth, I almost exclusively write 2/3 compatible code (and
 that’s
 with the “easy” subset of 2.6+ and either 3.2+ or 3.3+)


ouch.


  However the way it used to work
 is that the newest version, with all the new features, would quickly become
 the dominant version within a year or two.


This seems completely contradictory to me: Yes, the 3.* transition can be
difficult, thus the need to support 1.*. But if you are still supporting
2.6, then clearly the newest version, with all the new features, would
quickly become
the dominant version within a year or two

But there are those use cases that seem to require sticking with old
version for ages, even if there have not been substantial incomparable
changes.

So we could be on version 2.12 now, and you'd still need to support 2.6,
and still be working in a legacy, least common denominator language. How
does this have anything to do with the 3.* transition?

But plenty of us are kind of stuck on 2.7 at this point -- we can upgrade,
but can't accommodate a major shift (for me it's currently wxPython that's
the blocker -- that may be the only one. Others are either supported or
small enough that we could handle the port ourselves.)

But anyway, if you don't hate 2.6 back in the day, why hate it now?

(yet, I know Donald didn't use the hate word).

I guess my pint is that you either would much prefer to be working with the
latest and greatest cool features or not -- but if you do the problem at
this point isn't anything about py3, it's about the fact that many of us
are required to support old versions, period.

-Chris


 However I can't really justify for most situations supporting _only_ those
 things because even today they are not the dominant version (or really
 close
 to it in any number I have access too). This means that if I want to take
 advantage of something newer I'm essentially dropping the largest part of
 the ecosystem.


Are you primarily writing packages for others to use? if so, then yes. But
I wonder how many people are in that camp? Don't most of us spend most of
our time writing our own purpose-built code?

That might be a nice thing to see in a survey, actually.


-Chris

-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Donald Stufft

 On Dec 15, 2014, at 2:30 PM, Chris Barker chris.bar...@noaa.gov wrote:
 
 OK, this seems weird to me:
 
 For what it’s worth, I almost exclusively write 2/3 compatible code (and 
 that’s
 with the “easy” subset of 2.6+ and either 3.2+ or 3.3+)
 
 ouch.
  
  However the way it used to work
 is that the newest version, with all the new features, would quickly become
 the dominant version within a year or two.
 
 This seems completely contradictory to me: Yes, the 3.* transition can be 
 difficult, thus the need to support 1.*. But if you are still supporting 2.6, 
 then clearly the newest version, with all the new features, would quickly 
 become
 the dominant version within a year or two
 
 But there are those use cases that seem to require sticking with old version 
 for ages, even if there have not been substantial incomparable changes.
 
 So we could be on version 2.12 now, and you'd still need to support 2.6, and 
 still be working in a legacy, least common denominator language. How does 
 this have anything to do with the 3.* transition?

Most of my libraries probably wouldn’t be 2.6+ if there was something after 
2.7. Other than pip itself I mostly only support 2.6 because it’s easy to do 
compared to 2.7 and there’s nothing in 2.7 that really makes me care to drop it 
in most situations. Realistically that’s what every decision to drop a version 
for a library ends up being, look at guesstimate numbers for the old version, 
and decide if that segment of the user base is worth either the pain of 
supporting back that far or missing out on the newer features. For 2.7 over 2.6 
that answer for me is primarily no it’s not (though 2.7.9 might make me start 
dropping support for older versions once it’s widely deployed).

 
 But plenty of us are kind of stuck on 2.7 at this point -- we can upgrade, 
 but can't accommodate a major shift (for me it's currently wxPython that's 
 the blocker -- that may be the only one. Others are either supported or small 
 enough that we could handle the port ourselves.)
 
 But anyway, if you don't hate 2.6 back in the day, why hate it now?

The answer is generally that developers are human beings and like new things, 
so while 2.6 might have been great back in the day, it’s not back in the day 
anymore and they are tired of it.

 
 (yet, I know Donald didn't use the hate word). 
 
 I guess my pint is that you either would much prefer to be working with the 
 latest and greatest cool features or not -- but if you do the problem at this 
 point isn't anything about py3, it's about the fact that many of us are 
 required to support old versions, period.

Right, It’s not _exactly_ about Python 3, but that Python 3.0 made it so that 
an old version is by far the dominant version which puts people who have 
outside users in a situation where they have to decide between new-and-shiny 
but hurting the bulk of their users and old-and-busted and being friendly to 
the bulk of their users.

 
 -Chris
 
 
  However I can't really justify for most situations supporting _only_ those
 things because even today they are not the dominant version (or really close
 to it in any number I have access too). This means that if I want to take
 advantage of something newer I'm essentially dropping the largest part of
 the ecosystem.
 
 Are you primarily writing packages for others to use? if so, then yes. But I 
 wonder how many people are in that camp? Don't most of us spend most of our 
 time writing our own purpose-built code?

Yes I am.

 
 That might be a nice thing to see in a survey, actually.
 
 
 -Chris
 
 -- 
 
 Christopher Barker, Ph.D.
 Oceanographer
 
 Emergency Response Division
 NOAA/NOS/ORR(206) 526-6959   voice
 7600 Sand Point Way NE   (206) 526-6329   fax
 Seattle, WA  98115   (206) 526-6317   main reception
 
 chris.bar...@noaa.gov mailto:chris.bar...@noaa.gov
---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Barry Warsaw
On Dec 14, 2014, at 10:14 AM, Nick Coghlan wrote:

Barry, Petr, any of the other folks working on distro level C extension
ports, perhaps one of you would be willing to consider an update to the C
extension porting guide to be more in line with Brett's latest version of
the Python level porting guide?

It's probably at least worth incorporating the quick guide on the wiki into
the howto:

https://wiki.python.org/moin/PortingToPy3k/BilingualQuickRef

Cheers,
-Barry
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Mark Roberts
On Mon, Dec 15, 2014 at 11:30 AM, Chris Barker chris.bar...@noaa.gov
wrote:

 Are you primarily writing packages for others to use? if so, then yes. But
 I wonder how many people are in that camp? Don't most of us spend most of
 our time writing our own purpose-built code?

 That might be a nice thing to see in a survey, actually.


So, I'm the guy that used the hate word in relation to writing 2/3
compliant code. And really, as a library maintainer/writer I do hate
writing 2/3 compatible code. Having 4 future imports in every file and
being forced to use a compatibility shim to do something as simple as
iterating across a dictionary is somewhere between sad and infuriating -
and that's just the beginning of the madness. From there we get into
identifier related problems with their own compatibility shims - like
str(), unicode(), bytes(), int(), and long(). Writing 2/3 compatible Python
feels more like torture than fun. Even the python-future.org FAQ mentions
how un-fun writing 2/3 compatible Python is.

The whole situation is made worse because I *KNOW* that Python 3 is a
better language than Python 2, but that it doesn't *MATTER* because Python
2 is what people are - and will be - using for the foreseeable future. It's
impractical to drop library support for Python 2 when all of your users use
Python 2, and bringing the topic up yields a response that amounts to:
WELL, Python 3 is the future! It has been out for SEVEN YEARS! You know
Python 2 won't be updated ever again! Almost every library has been updated
to Python 3 and you're just behind the times! And, you'll have to switch
EVENTUALLY anyway! If you'd just stop writing Python 2 libraries and focus
on pure Python 3 then you wouldn't have to write legacy code! PEOPLE LIKE
YOU are why the split is going to be there until at least 2020!. And then
my head explodes from the hostility of the core Python community. Perhaps
no individual response is quite so blunt, but the community (taken as a
whole) feels outright toxic on this topic to me.

Consider some statistics from Pypi:
- 13359 Python 2.7 packages
- 7140 Python 3.x packages
- 2732 Python 3.4 packages
- 4024 Python 2.7/3.x compatible packages
- 2281 2.7/3.4 compatible modules
- 9335 Python 2.7 without ANY Python 3 support
- 11078 Python 2.7 without Python 3.4 support
- 451 modules 3.4 only packages
- 3116 Python 3.x only packages
- 1004 Python 3.x modules without (tagged) Python 3.4 support

Looking at the numbers, I just cannot fathom how we as a community can
react this way. The top 50 projects (!!) still prevent a lot of people from
switching to Python 3, but the long tail of library likely an even bigger
blocker. I also don't understand how we can claim people should start ALL
new projects in Python 3 - and be indignant when they don't!. We haven't
successfully converted the top 50 projects after SEVEN YEARS, and the long
tail without 3.x support is still getting longer. Claims that we have
something approaching library parity seem... hilarious, at best?

I suppose what I'm saying is that there's lots of claims that the
conversion to Python 3 is inevitable, but I'm not convinced about that. I'd
posit that another outcome is the slow death of Python as a language. I
would suggest adding some community health metrics around the Python 2/3
split, as well as a question about whether someone considers themselves
primarily a library author, application developer, or both. I'd also ask
how many people have started a new application in another language instead
of Python 3 because of the split.

-Mark
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Ben Finney
Mark Roberts wiz...@gmail.com writes:

 So, I'm the guy that used the hate word in relation to writing 2/3
 compliant code. And really, as a library maintainer/writer I do hate
 writing 2/3 compatible code.

You're unlikely to get disagreement on that. I certainly concur.

The catch is, at the moment it's better that any of the alternatives for
writing medium-to-long-term maintainable Python code.

 The whole situation is made worse because I *KNOW* that Python 3 is a
 better language than Python 2, but that it doesn't *MATTER* because
 Python 2 is what people are - and will be - using for the foreseeable
 future.

Only if “people” means “any amount of people at all who are or might be
using Python”.

While developers might like something that allows them to serve such a
broad user base indefinitely, it's simply not realistic – and *no*
feasible support strategy for Python could allow that.

So, as developers writing Python code, we must set our expectations for
support base according to reality rather than wishing it were otherwise.

 It's impractical to drop library support for Python 2 when all of your
 users use Python 2

Right. The practical thing to do is to decide explicitly, per project,
what portion of those users you can afford to leave behind in
Python-2-only land, and how much cost you're willing to bear to keep
than number low.

 I suppose what I'm saying is that there's lots of claims that the
 conversion to Python 3 is inevitable, but I'm not convinced about
 that.

I've never seen such a claim from the PSF. Can you cite any, and are
they representative of the PSF's position on the issue?

Rather, the claim is that *if* one's code base doesn't migrate to Python
3, it will be decreasingly supported by the PSF and the Python community
at large.

Happily, what's also true is there is a huge amount of support – in
language features, tools, and community will – to help developers do
that migration. Much more than most other migrations I've observed.

So what's inevitable is: either a code base will benefit from all that
support and be migrated to Python 3 and hence be maintainable as the
Python ecosystem evolves; or it will be increasingly an outsider of that
ecosystem.

-- 
 \   “I have one rule to live by: Don't make it worse.” —Hazel |
  `\  Woodcock |
_o__)  |
Ben Finney

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Alex Gaynor
Ben Finney ben+python at benfinney.id.au writes:

 
 Rather, the claim is that *if* one's code base doesn't migrate to Python
 3, it will be decreasingly supported by the PSF and the Python community
 at large.
 

The PSF doesn't support any versions of Python. We have effectively no
involvement in the development of Python the language, or CPython. We 
certainly
don't care what version of Python you use.

Members of the python-dev list, or the CPython core development teams have
opinions probably, but that doesn't make them the opinion of the PSF.

Alex

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Ben Finney
Alex Gaynor alex.gay...@gmail.com writes:

 Ben Finney ben+python at benfinney.id.au writes:

  Rather, the claim is that *if* one's code base doesn't migrate to
  Python 3, it will be decreasingly supported by the PSF and the
  Python community at large.

 The PSF doesn't support any versions of Python. We have effectively no
 involvement in the development of Python the language, or CPython. We
 certainly don't care what version of Python you use.

Okay, I was under the impression that the entity blessing Python
releases as “official” is the PSF. What is that entity, then?

Whatever entity is the one which makes “this is an official release of
Python the language”, and “support for Python version A.B will end on
-MM-DD”, that's the entity I meant.

-- 
 \ “I went to the museum where they had all the heads and arms |
  `\  from the statues that are in all the other museums.” —Steven |
_o__)   Wright |
Ben Finney

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Nick Coghlan
On 16 December 2014 at 13:08, Mark Roberts wiz...@gmail.com wrote:
 The whole situation is made worse because I *KNOW* that Python 3 is a better
 language than Python 2, but that it doesn't *MATTER* because Python 2 is
 what people are - and will be - using for the foreseeable future. It's
 impractical to drop library support for Python 2 when all of your users use
 Python 2, and bringing the topic up yields a response that amounts to:
 WELL, Python 3 is the future! It has been out for SEVEN YEARS! You know
 Python 2 won't be updated ever again! Almost every library has been updated
 to Python 3 and you're just behind the times! And, you'll have to switch
 EVENTUALLY anyway! If you'd just stop writing Python 2 libraries and focus
 on pure Python 3 then you wouldn't have to write legacy code! PEOPLE LIKE
 YOU are why the split is going to be there until at least 2020!. And then
 my head explodes from the hostility of the core Python community. Perhaps
 no individual response is quite so blunt, but the community (taken as a
 whole) feels outright toxic on this topic to me.

The core Python development community are the ones ensuring that folks
feel comfortable continuing to run Python 2 (by promising upstream
support out to 2020 and adjusting our maintenance release policies to
account for the practical realities of long term support), as well as
working with redistributors and tool developers to reduce the
practical barriers to migration from Python 2 to Python 3 (such as
bundling pip with Python 2.7.9, or Brett's recent work on updating the
porting guide).

It's the folks just *outside* the language core development community
that legitimately feel the most hard done by, as they didn't choose
this path - we did. Folks working on libraries and frameworks likely
won't see any direct benefit from the migration for years - given the
timelines of previous version transitions within the Python 2 series,
we likely won't see projects widely dropping Python 2 support until
after there are versions of RHEL  CentOS available where the default
system Python is Python 3. In the meantime, they're stuck with working
in a hybrid language that only benefits from the subset of
improvements in each new Python 3 release that increase the size of
the source compatible Python 2/3 subset.

Living with carrier grade operating system update cycles when you're
used to upgrading your baseline target Python version every couple of
years is genuinely frustrating as a developer.

Unfortunately, the anger that library and framework authors should
really be directing at us, and at the commercial Linux distros
offering long term support for older versions of Python, occasionally
spills over into frustration at the *end users* that benefit from
those long term support offerings.

Explanations of the overarching industry patterns influencing the
migration (like
http://developerblog.redhat.com/2014/09/09/transition-to-multilingual-programming-python/)
are cold comfort when you're one of the ones actually doing the work
of supporting two parallel variants of the language.

Regards,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-15 Thread Nick Coghlan
On 16 December 2014 at 16:03, Ben Finney ben+pyt...@benfinney.id.au wrote:
 Alex Gaynor alex.gay...@gmail.com writes:

 Ben Finney ben+python at benfinney.id.au writes:

  Rather, the claim is that *if* one's code base doesn't migrate to
  Python 3, it will be decreasingly supported by the PSF and the
  Python community at large.

 The PSF doesn't support any versions of Python. We have effectively no
 involvement in the development of Python the language, or CPython. We
 certainly don't care what version of Python you use.

 Okay, I was under the impression that the entity blessing Python
 releases as “official” is the PSF. What is that entity, then?

The PSF controls the trademark, but its the comparatively informal
collective known as python-dev (ultimately helmed by Guido) that makes
the technical decisions.

To the degree with which the latter body is formally defined by
anything, it's defined by PEP 1.

 Whatever entity is the one which makes “this is an official release of
 Python the language”, and “support for Python version A.B will end on
 -MM-DD”, that's the entity I meant.

That would be the release managers for the respective CPython releases
(in collaboration with the rest of python-dev).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread Nick Coghlan
On 13 December 2014 at 16:28, Chris Angelico ros...@gmail.com wrote:
 On Sat, Dec 13, 2014 at 5:13 PM, Donald Stufft don...@stufft.io wrote:
 First of all, it's essentially the route that Python itself took and the side
 effects of that is essentially what is making things less-fun for me to write
 Python. Doing the same to the users of the things I write would make me feel
 bad that I was forcing them to either do all the work to port their stuff
 (and any dependencies) just so they can use a newer version of my library.

 Ultimately, those programs WILL have to be migrated, or they will have
 to remain on an unsupported system. You have the choice of either
 continuing to do what you find un-fun (cross-compatibility code) until
 2020 and maybe beyond, or stopping support for 2.7 sooner than that.
 All you're doing is changing *when* the inevitable migration happens.

One of the biggest blockers has been the lack of ready access to
Python 3 on RHEL  CentOS (just as a lot of folks waited until RHEL 7
and CentOS 7 were out before they started dropping Python 2.6
support). It's perfectly sensible for folks in that ecosystem to wait
for the appropriate tools to be provided at the platform layer to make
it easier for them to switch, but that unfortunately has consequences
for upstream library and framework developers who have to continue to
support those users.

The initial release of Software Collections (softwarecollections.org
and the associated Red Hat downstream product) was the first step in
providing easier access to Python 3 within the RHEL/CentOS ecosystem
(as far back as RHEL 6 and CentOS 6), and that approach is still our
long term preference for getting user applications out of the system
Python (so upstream isn't stuck supporting legacy Python versions for
years just because Red Hat is still supporting them for the base RHEL
platform). Unfortunately, the usage model for software collections is
sufficiently different from running directly in the system Python that
a lot of folks currently still prefer to stick with the system version
(and that's the case even for the much lower barrier of using the
Python 2.7 SCL instead of the system 2.6 installation on RHEL 6).

Containerisation is another technology that aims to make it easier to
run end user applications and services under newer language runtimes
without interfering with the system Python installation. As with
software collections, though, the environments that are reluctant to
upgrade to newer versions of Python also tend to be reluctant to
upgrade to newer deployment technologies, so it will take time for the
full impact of the shift to containerisation to make itself felt.

Finally, in addition to the existing work on getting Fedora 22 (due
mid next year) to only ship Python 3 on the LiveCD and other similarly
minimalist installations, Slavek (the lead Python maintainer for
Fedora  RHEL) is now also actively working on getting Python 3 into
EPEL 7: https://fedoraproject.org/wiki/User:Bkabrda/EPEL7_Python3

Between the work that is being done to migrate the platform layer in
the Fedora/RHEL/CentOS ecosystem, the work by Brett Cannon and others
to improve the tooling around lower risk Python 3 migrations, the
inclusion of pip in Python 2.7 to improve the availability of
migration tools and backported modules, and the return of printf-style
binary interpolation support in Python 3.5, several of the concrete
challenges that make migration harder than it needs to be are being
addressed.

Regards,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread Barry Warsaw
On Dec 13, 2014, at 12:29 AM, Donald Stufft wrote:

For what it’s worth, I almost exclusively write 2/3 compatible code (and
that’s with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and doing so
does make the language far less fun for me than when I was writing 2.x only
code.

For myself, the way I'd put it is:

With the libraries I maintain, I generally write Python 2/3 compatible code,
targeting Python 2.7 and 3.4, with 2.6, 3.3, and 3.2 support as bonuses,
although I will not contort too much to support those older versions.  Doing
so does make the language far less fun for me than when I am writing 3.x only
code.  All applications I write in pure Python 3, targeting Python 3.4, unless
my dependencies are not all available in Python 3, or I haven't yet had the
cycles/resources to port to Python 3.  Writing and maintaining applications in
Python 2 is far less fun than doing so in Python 3.

Cheers,
-Barry
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread Donald Stufft

 On Dec 13, 2014, at 10:17 AM, Barry Warsaw ba...@python.org wrote:
 
 On Dec 13, 2014, at 12:29 AM, Donald Stufft wrote:
 
 For what it’s worth, I almost exclusively write 2/3 compatible code (and
 that’s with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and doing so
 does make the language far less fun for me than when I was writing 2.x only
 code.
 
 For myself, the way I'd put it is:
 
 With the libraries I maintain, I generally write Python 2/3 compatible code,
 targeting Python 2.7 and 3.4, with 2.6, 3.3, and 3.2 support as bonuses,
 although I will not contort too much to support those older versions.  Doing
 so does make the language far less fun for me than when I am writing 3.x only
 code.  All applications I write in pure Python 3, targeting Python 3.4, unless
 my dependencies are not all available in Python 3, or I haven't yet had the
 cycles/resources to port to Python 3.  Writing and maintaining applications in
 Python 2 is far less fun than doing so in Python 3.
 

Yea that’s not unlike me in that. I don’t write many applications where I have
a choice of runtime. Most of what I write tends to be libraries or applications
for work where we’re using 2.7 or pip itself where if we dropped 2.7 or 2.6
support people would be after us with pitchforks.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread Steve Dower
This is also my approach, and the one that I'm encouraging throughout Microsoft 
as we start putting out more Python packages for stuff.

Top-posted from my Windows Phone

From: Barry Warsawmailto:ba...@python.org
Sent: ‎12/‎13/‎2014 7:19
To: python-dev@python.orgmailto:python-dev@python.org
Subject: Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

On Dec 13, 2014, at 12:29 AM, Donald Stufft wrote:

For what it’s worth, I almost exclusively write 2/3 compatible code (and
that’s with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and doing so
does make the language far less fun for me than when I was writing 2.x only
code.

For myself, the way I'd put it is:

With the libraries I maintain, I generally write Python 2/3 compatible code,
targeting Python 2.7 and 3.4, with 2.6, 3.3, and 3.2 support as bonuses,
although I will not contort too much to support those older versions.  Doing
so does make the language far less fun for me than when I am writing 3.x only
code.  All applications I write in pure Python 3, targeting Python 3.4, unless
my dependencies are not all available in Python 3, or I haven't yet had the
cycles/resources to port to Python 3.  Writing and maintaining applications in
Python 2 is far less fun than doing so in Python 3.

Cheers,
-Barry
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/steve.dower%40microsoft.com
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread R. David Murray
On Sat, 13 Dec 2014 10:17:59 -0500, Barry Warsaw ba...@python.org wrote:
 On Dec 13, 2014, at 12:29 AM, Donald Stufft wrote:
 
 For what it’s worth, I almost exclusively write 2/3 compatible code (and
 that’s with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and 
 doing so
 does make the language far less fun for me than when I was writing 2.x only
 code.
 
 For myself, the way I'd put it is:
 
 With the libraries I maintain, I generally write Python 2/3 compatible code,
 targeting Python 2.7 and 3.4, with 2.6, 3.3, and 3.2 support as bonuses,
 although I will not contort too much to support those older versions.  Doing
 so does make the language far less fun for me than when I am writing 3.x only
 code.  All applications I write in pure Python 3, targeting Python 3.4, unless
 my dependencies are not all available in Python 3, or I haven't yet had the
 cycles/resources to port to Python 3.  Writing and maintaining applications in
 Python 2 is far less fun than doing so in Python 3.

I think this is an important distinction.  The considerations are very
different for library maintainers than they are for application
maintainers.  Most of my work is in (customer) applications, and except
for one customer who insists on using an old version of RedHat, I've
been on latest python3 for those for quite a while now.  I suspect we
hear less here from people in that situation than would be proportional
to their absolute numbers.

--David
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-13 Thread Nick Coghlan
On 13 Dec 2014 05:19, Petr Viktorin encu...@gmail.com wrote:

 Also keep in mind that not all Python libraries are on PyPI.
 For non-Python projects with Python bindings (think video players,
 OpenCV, systemd, Samba), distribution via PyPI doesn't make much
 sense. And since the Python bindings are usually second-class
 citizens, the porting doesn't have a high priority.

 If anyone is wondering why their favorite Linux distribution is stuck
 with Python 2 – well, I can only speak for Fedora, but nowadays most
 of what's left are CPython bindings.
 No pylint --py3k or 2to3 will help there...

That's a good point. I actually think
https://docs.python.org/3/howto/cporting.html#cporting-howto is actually in
a worse state than the state the Python level porting guide was in until
Brett's latest round of updates, as it covers the underlying technical
details of the incompatibilities moreso than the available tools and
recommended processes for *executing* a migration.

For example, replacing a handcrafted Python extension with a normal C
library plus cffi, Cython or SWIG generated Python bindings can deliver
both an easier to maintain extension *and* Python 3 compatibility.

Similarly, converting an extension from C to Cython outright (without a
separate C library) can provide both benefits.

It's mainly when converting to one of those isn't desirable and/or feasible
that you really need to worry about C API level porting.

For that, tools like Dave Malcolm's static CPython extension analyser for
gcc could potentially be helpful (as pylint was to Brett's update to the
Python level guide), and Lennart also provides some more detailed practical
suggestions in http://python3porting.com/cextensions.html

I'm sure there are other useful techniques that can be employed, but aren't
necessarily well known outside the folks that have been busy implementing
these migrations.

Barry, Petr, any of the other folks working on distro level C extension
ports, perhaps one of you would be willing to consider an update to the C
extension porting guide to be more in line with Brett's latest version of
the Python level porting guide?

Regards,
Nick.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Mark Roberts
So, I'm more than aware of how to write Python 2/3 compatible code. I've
ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at
work. I'm also aware of how much writing 2/3 compatible code makes me hate
Python as a language. It'll be a happy day when one of the two languages
dies so that I never have to write code like that again. However, my point
was that just because the core libraries by usage are *starting* to roll
out Python 3 support doesn't mean that things are easy or convenient
yet. There are too many libraries in the long tail which fulfill
semi-common purposes and haven't been moved over yet. Yeah, sure, they
haven't been updated in years... but neither has the language they're built
on.

I suppose what I'm saying is that the long tail of libraries is far more
valuable than it seems the Python3 zealots are giving it credit for. Please
don't claim it's easy to move over just because merely most of the top 20
libraries have been moved over. :-/

-Mark

On Thu, Dec 11, 2014 at 12:14 PM, Dan Stromberg drsali...@gmail.com wrote:

 On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts wiz...@gmail.com wrote:
  I disagree. I know there's a huge focus on The Big Libraries (and
 wholesale
  migration is all but impossible without them), but the long tail of
  libraries is still incredibly important. It's like saying that migrating
 the
  top 10 Perl libraries to Perl 6 would allow people to completely ignore
 all
  of CPAN. It just doesn't make sense.

 Things in the Python 2.x vs 3.x world aren't that bad.

 See:
 https://python3wos.appspot.com/ and
 https://wiki.python.org/moin/PortingPythonToPy3k
 http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code
 to run on 2.x and 3.x)

 I believe just about everything I've written over the last few years
 either ran on 2.x and 3.x unmodified, or ran on 3.x alone.  If you go
 the former route, you don't need to wait for your libraries to be
 updated.

 I usually run pylint twice for my projects (after each change, prior
 to checkin), once with a 2.x interpreter, and once with a 3.x
 interpreter (using
 http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but
 I gather pylint has the option of running on a 2.x interpreter and
 warning about anything that wouldn't work on 3.x.

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Matěj Cepl
On 2014-12-11, 14:47 GMT, Giampaolo Rodola' wrote:
 I still think the only *real* obstacle remains the lack of 
 important packages such as twisted, gevent and pika which 
 haven't been ported yet.

And unwise decisions of some vendors (like, unfortunately my 
belvoed employer with RHEL-7) not to ship python3. Oh well.

Matěj

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Petr Viktorin
Also keep in mind that not all Python libraries are on PyPI.
For non-Python projects with Python bindings (think video players,
OpenCV, systemd, Samba), distribution via PyPI doesn't make much
sense. And since the Python bindings are usually second-class
citizens, the porting doesn't have a high priority.

If anyone is wondering why their favorite Linux distribution is stuck
with Python 2 – well, I can only speak for Fedora, but nowadays most
of what's left are CPython bindings.
No pylint --py3k or 2to3 will help there...


On Fri, Dec 12, 2014 at 7:24 PM, Mark Roberts wiz...@gmail.com wrote:
 So, I'm more than aware of how to write Python 2/3 compatible code. I've
 ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at
 work. I'm also aware of how much writing 2/3 compatible code makes me hate
 Python as a language. It'll be a happy day when one of the two languages
 dies so that I never have to write code like that again. However, my point
 was that just because the core libraries by usage are *starting* to roll out
 Python 3 support doesn't mean that things are easy or convenient yet.
 There are too many libraries in the long tail which fulfill semi-common
 purposes and haven't been moved over yet. Yeah, sure, they haven't been
 updated in years... but neither has the language they're built on.

 I suppose what I'm saying is that the long tail of libraries is far more
 valuable than it seems the Python3 zealots are giving it credit for. Please
 don't claim it's easy to move over just because merely most of the top 20
 libraries have been moved over. :-/

 -Mark

 On Thu, Dec 11, 2014 at 12:14 PM, Dan Stromberg drsali...@gmail.com wrote:

 On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts wiz...@gmail.com wrote:
  I disagree. I know there's a huge focus on The Big Libraries (and
  wholesale
  migration is all but impossible without them), but the long tail of
  libraries is still incredibly important. It's like saying that migrating
  the
  top 10 Perl libraries to Perl 6 would allow people to completely ignore
  all
  of CPAN. It just doesn't make sense.

 Things in the Python 2.x vs 3.x world aren't that bad.

 See:
 https://python3wos.appspot.com/ and
 https://wiki.python.org/moin/PortingPythonToPy3k
 http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code
 to run on 2.x and 3.x)

 I believe just about everything I've written over the last few years
 either ran on 2.x and 3.x unmodified, or ran on 3.x alone.  If you go
 the former route, you don't need to wait for your libraries to be
 updated.

 I usually run pylint twice for my projects (after each change, prior
 to checkin), once with a 2.x interpreter, and once with a 3.x
 interpreter (using
 http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but
 I gather pylint has the option of running on a 2.x interpreter and
 warning about anything that wouldn't work on 3.x.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Barry Warsaw
On Dec 12, 2014, at 08:07 PM, Petr Viktorin wrote:

If anyone is wondering why their favorite Linux distribution is stuck with
Python 2 – well, I can only speak for Fedora, but nowadays most of what's
left are CPython bindings.  No pylint --py3k or 2to3 will help there...

It's true that some of these are tough.  I tried and failed a few times to
port Xapian to Python 3.  The issue was opened upstream 6 years ago and it's
still unresolved: http://trac.xapian.org/ticket/346

OTOH, I ported dbus-python to Python 3 and that worked out much better; we've
had solid Python 3 bindings for several years now, which allowed us to port
many important Debian/Ubuntu tools to Python 3 and more importantly, do all
our new work in Python 3.  With other big toolkits like GObject introspection
working on Python 3, there's a lot you can do.

IME, if the underlying model is string/bytes clean, then the C extension port
can sometimes be easier than pure-Python, thanks to cpp games.  D-Bus's model
is pretty clean, Xapian I found to be not so much (it doesn't help that Xapian
is C++ ;).

We're actually not terribly far from switching Debian and Ubuntu's default
to Python 3.  On Debian, the big blocker is the BTS code (which uses SOAP) and
on Ubuntu it's the launchpadlib stack.  I hope to find time after Jessie to
work on the former, and before 16.04 LTS to work on the latter.

Not that I disagree that there's a long tail of code that would still benefit
a significant population if it got ported to Python 3.  By far Python 3 is a
better language, with a better stdlib, so the work is worth it.

Cheers,
-Barry
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Terry Reedy

On 12/12/2014 1:24 PM, Mark Roberts wrote:


However, my point was that just because the core libraries by usage are
*starting* to roll out Python 3 support doesn't mean that things are
easy or convenient yet.

...

I suppose what I'm saying is that the long tail of libraries is far more
valuable than it seems the Python3 zealots are giving it credit for.
Please don't claim it's easy to move over just because merely most of
the top 20 libraries have been moved over. :-/


I agree that we should refrain from characterizing the difficulty of 
other peoples' work.  Conversions range from trivial to effectively 
impossible.  What we can say is that a) each library conversion make 
conversion easier for the users of that library and b) the number of 
conversions continue to increase.  I think some are trying to say that 
the number has reached a point where it is no longer fair to say that 
conversion is typically impossible.


--
Terry Jan Reedy

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Steven D'Aprano
On Fri, Dec 12, 2014 at 10:24:15AM -0800, Mark Roberts wrote:
 So, I'm more than aware of how to write Python 2/3 compatible code. I've
 ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at
 work. I'm also aware of how much writing 2/3 compatible code makes me hate
 Python as a language.

I'm surprised by the strength of feeling there.

Most of the code I write supports 2.4+, with the exception of 3.0 where 
I say it should work, but if it doesn't, I don't care. I'll be *very* 
happy when I can drop support for 2.4, but with very few exceptions I 
have not found many major problems supporting both 2.7 and 3.3+ in the 
one code-base, and nothing I couldn't work around (sometimes by just 
dropping support for a specific feature in certain versions).

I'm not disputing that your experiences are valid, but I am curious what 
specific issues you have come across and wondering if there are things 
which 3.5 can include to ease that transition. E.g. 3.3 re-added support 
for u'' syntax.



-- 
Steven
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Donald Stufft

 On Dec 12, 2014, at 11:55 PM, Steven D'Aprano st...@pearwood.info wrote:
 
 On Fri, Dec 12, 2014 at 10:24:15AM -0800, Mark Roberts wrote:
 So, I'm more than aware of how to write Python 2/3 compatible code. I've
 ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at
 work. I'm also aware of how much writing 2/3 compatible code makes me hate
 Python as a language.
 
 I'm surprised by the strength of feeling there.
 
 Most of the code I write supports 2.4+, with the exception of 3.0 where 
 I say it should work, but if it doesn't, I don't care. I'll be *very* 
 happy when I can drop support for 2.4, but with very few exceptions I 
 have not found many major problems supporting both 2.7 and 3.3+ in the 
 one code-base, and nothing I couldn't work around (sometimes by just 
 dropping support for a specific feature in certain versions).
 
 I'm not disputing that your experiences are valid, but I am curious what 
 specific issues you have come across and wondering if there are things 
 which 3.5 can include to ease that transition. E.g. 3.3 re-added support 
 for u'' syntax.

For what it’s worth, I almost exclusively write 2/3 compatible code (and that’s
with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and doing so does make
the language far less fun for me than when I was writing 2.x only code. I’ve
though a lot about why that is, because it’s certainly not *hard* to do so, and
what I think it is for me at least is inherient in the fact you're using a
lowest common denominator approach to programming.

Because I can only use things which work the same in 2.6+ and 3.2+ it means I
cannot take advantage of any new features unless they are available as a
backport. Now this is always true of code that needs to straddle multiple
versions in order to maintain compatability. However the way it used to work
is that the newest version, with all the new features, would quickly become
the dominant version within a year or two. The older versions might still
command a respectable amount of use, but that tended to fall off quicker and
it wouldn't be unreasonable to be more aggresive in some situations than others
depending on what the new feature was I wanted to use.

However when we look at today, the new versions are Python 3.4, 3.3, or even
3.2. However I can't really justify for most situations supporting _only_ those
things because even today they are not the dominant version (or really close
to it in any number I have access too). This means that if I want to take
advantage of something newer I'm essentially dropping the largest part of
the ecosystem.

On top of all of this, I'm not sure I see a point in the near future where this
tipping point might happen and the normal order of the newest version with
the newest features rapidly becoming the dominant version gets restored. I'm
sort of holding out hope that the Linux distribution switching to Python 3
as a default might push it over, but I'm also not holding my breath there.

So that's basically it, lowest common demoniator programming where it's hard to
look at the future and see anything but the same (or similar) language subset
that I'm currently using. This is especially frustrating when you see other
languages doing cool and interesting new things and it feels like we're stuck
with what we had in 2008 or 2010.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Donald Stufft

 On Dec 13, 2014, at 12:29 AM, Donald Stufft don...@stufft.io wrote:
 
 
 On Dec 12, 2014, at 11:55 PM, Steven D'Aprano st...@pearwood.info wrote:
 
 On Fri, Dec 12, 2014 at 10:24:15AM -0800, Mark Roberts wrote:
 So, I'm more than aware of how to write Python 2/3 compatible code. I've
 ported 10-20 libraries to Python 3 and write Python 2/3 compatible code at
 work. I'm also aware of how much writing 2/3 compatible code makes me hate
 Python as a language.
 
 I'm surprised by the strength of feeling there.
 
 Most of the code I write supports 2.4+, with the exception of 3.0 where 
 I say it should work, but if it doesn't, I don't care. I'll be *very* 
 happy when I can drop support for 2.4, but with very few exceptions I 
 have not found many major problems supporting both 2.7 and 3.3+ in the 
 one code-base, and nothing I couldn't work around (sometimes by just 
 dropping support for a specific feature in certain versions).
 
 I'm not disputing that your experiences are valid, but I am curious what 
 specific issues you have come across and wondering if there are things 
 which 3.5 can include to ease that transition. E.g. 3.3 re-added support 
 for u'' syntax.
 
 For what it’s worth, I almost exclusively write 2/3 compatible code (and 
 that’s
 with the “easy” subset of 2.6+ and either 3.2+ or 3.3+) and doing so does make
 the language far less fun for me than when I was writing 2.x only code. I’ve
 though a lot about why that is, because it’s certainly not *hard* to do so, 
 and
 what I think it is for me at least is inherient in the fact you're using a
 lowest common denominator approach to programming.
 
 Because I can only use things which work the same in 2.6+ and 3.2+ it means I
 cannot take advantage of any new features unless they are available as a
 backport. Now this is always true of code that needs to straddle multiple
 versions in order to maintain compatability. However the way it used to work
 is that the newest version, with all the new features, would quickly become
 the dominant version within a year or two. The older versions might still
 command a respectable amount of use, but that tended to fall off quicker and
 it wouldn't be unreasonable to be more aggresive in some situations than 
 others
 depending on what the new feature was I wanted to use.
 
 However when we look at today, the new versions are Python 3.4, 3.3, or even
 3.2. However I can't really justify for most situations supporting _only_ 
 those
 things because even today they are not the dominant version (or really close
 to it in any number I have access too). This means that if I want to take
 advantage of something newer I'm essentially dropping the largest part of
 the ecosystem.
 
 On top of all of this, I'm not sure I see a point in the near future where 
 this
 tipping point might happen and the normal order of the newest version with
 the newest features rapidly becoming the dominant version gets restored. I'm
 sort of holding out hope that the Linux distribution switching to Python 3
 as a default might push it over, but I'm also not holding my breath there.
 
 So that's basically it, lowest common demoniator programming where it's hard 
 to
 look at the future and see anything but the same (or similar) language subset
 that I'm currently using. This is especially frustrating when you see other
 languages doing cool and interesting new things and it feels like we're stuck
 with what we had in 2008 or 2010.
 

Oh yea, in addition to this, actually backporting things is becoming
increasingly harder the further Python 3 gets developed. When the language was
mostly forwards compatible if a new feature/function was added you could often
times backport it into your own code in a compat shim by simply copy/pasting
the code. However with all the new features being done in Python 3, it's
increasingly the case that this code will *not* run on Python 2.6 and 2.7
because it's essentially being written for a different, but similar, language
and requires some amount of porting. This porting process might even need to
include incompatible changes because of differences in the language (see for
example, Trollius).

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Chris Angelico
On Sat, Dec 13, 2014 at 4:29 PM, Donald Stufft don...@stufft.io wrote:
 So that's basically it, lowest common demoniator programming where it's hard 
 to
 look at the future and see anything but the same (or similar) language subset
 that I'm currently using. This is especially frustrating when you see other
 languages doing cool and interesting new things and it feels like we're stuck
 with what we had in 2008 or 2010.

That's what happens when you want to support a version of Python that
was released in 2008 or 2010. Perhaps the impetus for people to move
onto Python 3 has to come from people like you saying I'm not going
to support 2.7 any more as of version X.Y, and letting them run two
interpreters. It's really not that hard to keep 2.7 around for what
expects it, and 3.4/3.5/whatever for everything else.

ChrisA
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Donald Stufft

 On Dec 13, 2014, at 12:40 AM, Chris Angelico ros...@gmail.com wrote:
 
 On Sat, Dec 13, 2014 at 4:29 PM, Donald Stufft don...@stufft.io wrote:
 So that's basically it, lowest common demoniator programming where it's hard 
 to
 look at the future and see anything but the same (or similar) language subset
 that I'm currently using. This is especially frustrating when you see other
 languages doing cool and interesting new things and it feels like we're stuck
 with what we had in 2008 or 2010.
 
 That's what happens when you want to support a version of Python that
 was released in 2008 or 2010. Perhaps the impetus for people to move
 onto Python 3 has to come from people like you saying I'm not going
 to support 2.7 any more as of version X.Y, and letting them run two
 interpreters. It's really not that hard to keep 2.7 around for what
 expects it, and 3.4/3.5/whatever for everything else.

I don’t think this option is really grounded in reality.

First of all, it's essentially the route that Python itself took and the side
effects of that is essentially what is making things less-fun for me to write
Python. Doing the same to the users of the things I write would make me feel
bad that I was forcing them to either do all the work to port their stuff
(and any dependencies) just so they can use a newer version of my library.

It also I think is incredibly likely to backfire on any author who does it
unless the thing they are writing is absolutely essential to their users AND
there are no alternatives AND it's essential that those people are using a
new version of that library. If all of those things are not the case, you're
going to end up with a majoritity of users either just stop using your tool
all together, switching to an alternative, or just sticking with an old
version. I don't think I'm unique in that I like writing software that other
people want to and can use.

I think it also assumes that people are writing one off scripts and things like
that which only use the standard library. I tend to write libraries and work
on complex distributed systems. I need to either port the entire stack or
nothing. I can't run half of my process in 2.7 and half in 3.4.

It's also something I've never had to do in Python before, I've always been
able to follow with the things I write. I could take a look at, or estimate,
the amount of users that dropping an older version of Python and I could
say that it was time to drop support for that version because very few people
are actively using it and the cost of maintaining support for that version
is no longer worth it. This is the same process I go through for *any*
backwards incompatible change I make to the things I write and when I drop
the old compatability shims. Ironically all versions of Python 3 combined are
low enough that if they were the *old* versions and not the *new* versions I'd
probably drop support from them for now. Really the major reasons I support
them at all is because I hold out hope that maybe at some point it will become
the dominant Python and because I try to be a good member of the ecosystem and
not hold back the adoption.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-12 Thread Chris Angelico
On Sat, Dec 13, 2014 at 5:13 PM, Donald Stufft don...@stufft.io wrote:
 First of all, it's essentially the route that Python itself took and the side
 effects of that is essentially what is making things less-fun for me to write
 Python. Doing the same to the users of the things I write would make me feel
 bad that I was forcing them to either do all the work to port their stuff
 (and any dependencies) just so they can use a newer version of my library.

Ultimately, those programs WILL have to be migrated, or they will have
to remain on an unsupported system. You have the choice of either
continuing to do what you find un-fun (cross-compatibility code) until
2020 and maybe beyond, or stopping support for 2.7 sooner than that.
All you're doing is changing *when* the inevitable migration happens.

ChrisA
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-11 Thread Giampaolo Rodola'
On Wed, Dec 10, 2014 at 5:59 PM, Bruno Cauet brunoca...@gmail.com wrote:

 Hi all,
 Last year a survey was conducted on python 2 and 3 usage.
 Here is the 2014 edition, slightly updated (from 9 to 11 questions).
 It should not take you more than 1 minute to fill. I would be pleased if
 you took that time.

 Here's the url: http://goo.gl/forms/tDTcm8UzB3
 I'll publish the results around the end of the year.

 Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey

 Thank you
 Bruno

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/g.rodola%40gmail.com


I still think the only *real* obstacle remains the lack of important
packages such as twisted, gevent and pika which haven't been ported yet.
With those ones ported switching to Python 3 *right now* is not only
possible and relatively easy, but also convenient.


-- 
Giampaolo - http://grodola.blogspot.com
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-11 Thread Mark Roberts
I disagree. I know there's a huge focus on The Big Libraries (and wholesale
migration is all but impossible without them), but the long tail of
libraries is still incredibly important. It's like saying that migrating
the top 10 Perl libraries to Perl 6 would allow people to completely ignore
all of CPAN. It just doesn't make sense.

-Mark

On Thu, Dec 11, 2014 at 6:47 AM, Giampaolo Rodola' g.rod...@gmail.com
wrote:



 On Wed, Dec 10, 2014 at 5:59 PM, Bruno Cauet brunoca...@gmail.com wrote:

 Hi all,
 Last year a survey was conducted on python 2 and 3 usage.
 Here is the 2014 edition, slightly updated (from 9 to 11 questions).
 It should not take you more than 1 minute to fill. I would be pleased if
 you took that time.

 Here's the url: http://goo.gl/forms/tDTcm8UzB3
 I'll publish the results around the end of the year.

 Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey

 Thank you
 Bruno

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/g.rodola%40gmail.com


 I still think the only *real* obstacle remains the lack of important
 packages such as twisted, gevent and pika which haven't been ported yet.
 With those ones ported switching to Python 3 *right now* is not only
 possible and relatively easy, but also convenient.


 --
 Giampaolo - http://grodola.blogspot.com


 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/wizzat%40gmail.com


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-11 Thread Dan Stromberg
On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts wiz...@gmail.com wrote:
 I disagree. I know there's a huge focus on The Big Libraries (and wholesale
 migration is all but impossible without them), but the long tail of
 libraries is still incredibly important. It's like saying that migrating the
 top 10 Perl libraries to Perl 6 would allow people to completely ignore all
 of CPAN. It just doesn't make sense.

Things in the Python 2.x vs 3.x world aren't that bad.

See:
https://python3wos.appspot.com/ and
https://wiki.python.org/moin/PortingPythonToPy3k
http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code
to run on 2.x and 3.x)

I believe just about everything I've written over the last few years
either ran on 2.x and 3.x unmodified, or ran on 3.x alone.  If you go
the former route, you don't need to wait for your libraries to be
updated.

I usually run pylint twice for my projects (after each change, prior
to checkin), once with a 2.x interpreter, and once with a 3.x
interpreter (using
http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but
I gather pylint has the option of running on a 2.x interpreter and
warning about anything that wouldn't work on 3.x.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-11 Thread Brett Cannon
On Thu Dec 11 2014 at 3:14:42 PM Dan Stromberg drsali...@gmail.com wrote:

 On Thu, Dec 11, 2014 at 11:35 AM, Mark Roberts wiz...@gmail.com wrote:
  I disagree. I know there's a huge focus on The Big Libraries (and
 wholesale
  migration is all but impossible without them), but the long tail of
  libraries is still incredibly important. It's like saying that migrating
 the
  top 10 Perl libraries to Perl 6 would allow people to completely ignore
 all
  of CPAN. It just doesn't make sense.

 Things in the Python 2.x vs 3.x world aren't that bad.

 See:
 https://python3wos.appspot.com/ and
 https://wiki.python.org/moin/PortingPythonToPy3k
 http://stromberg.dnsalias.org/~strombrg/Intro-to-Python/ (writing code
 to run on 2.x and 3.x)

 I believe just about everything I've written over the last few years
 either ran on 2.x and 3.x unmodified, or ran on 3.x alone.  If you go
 the former route, you don't need to wait for your libraries to be
 updated.

 I usually run pylint twice for my projects (after each change, prior
 to checkin), once with a 2.x interpreter, and once with a 3.x
 interpreter (using
 http://stromberg.dnsalias.org/svn/this-pylint/trunk/this-pylint) , but
 I gather pylint has the option of running on a 2.x interpreter and
 warning about anything that wouldn't work on 3.x.


Pylint 1.4 has a --py3k flag to run only checks related to Python 3
compatibility under Python 2.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-11 Thread Victor Stinner
2014-12-11 15:47 GMT+01:00 Giampaolo Rodola' g.rod...@gmail.com:
 I still think the only *real* obstacle remains the lack of important
 packages such as twisted, gevent and pika which haven't been ported yet.

twisted core works on python 3, right now. Contribute to Twisted if
you want to port more code... Or start something new, asyncio (with
trollius, it works on Python 2 too).

The develpoment branch of gevent supports Python 3, especially if you
dont use monkey patching. Ask the developers to release a version, at
least with experimental Python 3 support.

I don't know pika. I read Pika Python AMQP Client Library. You may
take a look at https://github.com/dzen/aioamqp if you would like to
play with asyncio.

 With those ones ported switching to Python 3 *right now* is not only
 possible and relatively easy, but also convenient.

 Victor
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-10 Thread Donald Stufft

 On Dec 10, 2014, at 11:59 AM, Bruno Cauet brunoca...@gmail.com wrote:
 
 Hi all,
 Last year a survey was conducted on python 2 and 3 usage.
 Here is the 2014 edition, slightly updated (from 9 to 11 questions).
 It should not take you more than 1 minute to fill. I would be pleased if you 
 took that time.
 
 Here's the url: http://goo.gl/forms/tDTcm8UzB3 
 http://goo.gl/forms/tDTcm8UzB3
 I'll publish the results around the end of the year.
 
 Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey 
 https://wiki.python.org/moin/2.x-vs-3.x-survey

Just going to say http://d.stufft.io/image/0z1841112o0C 
http://d.stufft.io/image/0z1841112o0C is a hard question to answer, since 
most code I write is both.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-10 Thread Ian Cordasco
On Wed, Dec 10, 2014 at 11:10 AM, Donald Stufft don...@stufft.io wrote:

 On Dec 10, 2014, at 11:59 AM, Bruno Cauet brunoca...@gmail.com wrote:

 Hi all,
 Last year a survey was conducted on python 2 and 3 usage.
 Here is the 2014 edition, slightly updated (from 9 to 11 questions).
 It should not take you more than 1 minute to fill. I would be pleased if you
 took that time.

 Here's the url: http://goo.gl/forms/tDTcm8UzB3
 I'll publish the results around the end of the year.

 Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey


 Just going to say http://d.stufft.io/image/0z1841112o0C is a hard question
 to answer, since most code I write is both.


The same holds for me.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-10 Thread Nathaniel Smith
On 10 Dec 2014 17:16, Ian Cordasco graffatcolmin...@gmail.com wrote:

 On Wed, Dec 10, 2014 at 11:10 AM, Donald Stufft don...@stufft.io wrote:
 
  On Dec 10, 2014, at 11:59 AM, Bruno Cauet brunoca...@gmail.com wrote:
 
  Hi all,
  Last year a survey was conducted on python 2 and 3 usage.
  Here is the 2014 edition, slightly updated (from 9 to 11 questions).
  It should not take you more than 1 minute to fill. I would be pleased
if you
  took that time.
 
  Here's the url: http://goo.gl/forms/tDTcm8UzB3
  I'll publish the results around the end of the year.
 
  Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey
 
 
  Just going to say http://d.stufft.io/image/0z1841112o0C is a hard
question
  to answer, since most code I write is both.
 

 The same holds for me.

That question appears to have just grown a compatible with both option.

It might make sense to add a similar option to the following question about
what you use for personal projects.

-n
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Python 2.x and 3.x use survey, 2014 edition

2014-12-10 Thread Bruno Cauet
Remarks heard  form updated.
Nathaniel, I'm not sure about that: even if the code is 2- and 3-compatible
you'll pick one runtime. 2 others questions now mention writing polyglot
code.

By the way I published the survey on HN, /r/programming  /r/python:
https://news.ycombinator.com/item?id=8730156 http://redd.it/2ovlwm
http://redd.it/2ovls4
Feel free to publish it anywhere else, to get as many answers as possible.

Bruno

2014-12-10 18:24 GMT+01:00 Nathaniel Smith n...@pobox.com:

 On 10 Dec 2014 17:16, Ian Cordasco graffatcolmin...@gmail.com wrote:
 
  On Wed, Dec 10, 2014 at 11:10 AM, Donald Stufft don...@stufft.io
 wrote:
  
   On Dec 10, 2014, at 11:59 AM, Bruno Cauet brunoca...@gmail.com
 wrote:
  
   Hi all,
   Last year a survey was conducted on python 2 and 3 usage.
   Here is the 2014 edition, slightly updated (from 9 to 11 questions).
   It should not take you more than 1 minute to fill. I would be pleased
 if you
   took that time.
  
   Here's the url: http://goo.gl/forms/tDTcm8UzB3
   I'll publish the results around the end of the year.
  
   Last year results: https://wiki.python.org/moin/2.x-vs-3.x-survey
  
  
   Just going to say http://d.stufft.io/image/0z1841112o0C is a hard
 question
   to answer, since most code I write is both.
  
 
  The same holds for me.

 That question appears to have just grown a compatible with both option.

 It might make sense to add a similar option to the following question
 about what you use for personal projects.

 -n

 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/brunocauet%40gmail.com


___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com