[Python-Dev] cpython: Rename contextlib.ignored() to contextlib.ignore().

Ethan Furman ethan at stoneleaf.us
Wed Oct 16 16:06:10 CEST 2013


On 10/16/2013 12:07 AM, Raymond Hettinger wrote:
> On Oct 15, 2013, at 4:24 PM, Nick Coghlan wrote:
>>
>> this thread still epitomises everything that sucks about soul destroying, energy draining bikeshed painting that makes
>> me wonder why I ever bother trying to make anything better.

I think each of us has had this experience.  It can certainly be draining and disheartening, but keep in mind we all 
want the same thing:  a beautiful language to work with.


> FWIW, here's a little history:
> * Last year, one of my clients suggested this feature
>    based on code his team had been using in production.
> * I thought it might be a good idea, so I scanned the standard
>    library and some third-party modules to see how well it worked
>    with existing examples of try/except/pass.
> * I posted the proposal to the tracker over a year ago (issue 15806)
>    along with some examples from the standard library.  I also posted
>    an egrep search so that others could evaluate it on their own code.

These three steps show on the bug tracker

> * Along the way, I did usability testing on some corporate Python
>    programmers who were attending my intermediate and advance
>    Python classes.  The feedback was positive (expressive, readable,
>    and concise).

This does not.

> * In February, I presented ignore() in the keynote for the U.S. Pycon.
>    Again, the feedback was positive.

This does not.

> * After some refinements, the module maintainer (Nick) blessed it

True, but what you are leaving out is that most of the feedback from pydevs in that issue was negative.  So to someone 
reading the issue, as I just did, it looks like:

  * Here's an idea

  * Here's examples

  * Not a good idea feedback

  * Not a good idea feedback

  * Here's a better way to write it

  * Not a good idea feedback

  * Committed


>    and the code was checked-in to the Python 3.4 codebase in early March.
> * This month, I made a minor name change from ignored() to ignore().
> * The next day, Antoine launched this thread and everything hit the fan.

It would have been better if this thread had been launched back in March, but we all have busy lives and sometimes 
things get missed.


> As Nick said, this thread was just awful.  I found it painful to read each day.
> Shoot from the hip comments were given greater weight than months
> of development.

Again, items that did not show up in the bug tracker.

>  Neither Nick nor I were given an ounce of respect
> for the thought we put into this or for our long track record of good design.

Everybody makes mistakes.


> The python-dev mailing list is a complex (and sometimes dysfunctional)
> environment.  I understand that everyone on the soccer field feels a need
> to step-in and kick the ball to affect the outcome, but this was too much.

We'll have to agree to disagree on this point.  I find pydev an invaluable resource for putting many eyes and many 
perspectives on code / issues / design questions.


> To each participant, it may not seem like bike-shedding, but there
> were almost a hundred emails in this thread just to kick around six lines
> of code that were checked-in seven months ago:

Actually, it was to kick around one line of code, the most import one:

     def ignored(...):


> P.S.  The name suppress() is not as good as ignore(), but I'm so burnt out
> on this thread that I just don't care anymore.

I agree it doesn't read as well, but despite that I think suppress is better.  'ignore' would surely be misinterpreted 
many more times.

--
~Ethan~


More information about the Python-Dev mailing list