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

Antoine Pitrou solipsis at pitrou.net
Sun Oct 13 14:34:27 CEST 2013


On Sun, 13 Oct 2013 16:57:09 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> 
> For the record, this thread did prompt me to consider the new construct
> anew, but on reflection, I still consider it a reasonable addition to
> contextlib.
> 
> It substantially improves the simple cases it is intended to help with,
> and, if anything, makes overly broad exception suppression *more* obviously
> dubious (because the name of the construct doesn't match the consequences
> for multi-line suites).

Why? Anyone can still write "try ... except".

The only sticking point for this construct is that it allows to save
one or two lines in rather uncommon cases (because most of the time you
should do something on an exception, not "ignore" it). The saving is
not worth it.

Basically instead of:

  try:
      # something
  except FooException:
      pass

You write:

  from contextlib import ignore
  with ignore(FooException):
      # something

There's actually more typing involved, and one more API to know about...
It is just another case of those "one-liners" that we generally refrain
from adding to the stdlib.

Regards

Antoine.




More information about the Python-Dev mailing list