Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Raymond Hettinger
[Brett]
 This obviously goes against what Guido last said he
 wanted, but I hope I can convince him to get rid of bare 'except's.

-1 on eliminating bare excepts.  This unnecessarily breaks tons of code
without offering ANY compensating benefits.  There are valid use cases
for this construct.  It is completely Pythonic to have bare keywords
apply a useful default as an aid to readability and ease of coding.

+1 on the new BaseException

+1 on moving NotImplementedError, SystemExit, and KeyboardInterrupt.

-1 on replacing except (KeyboardInterrupt, SystemExit) with except
TerminatingException.  1) Grepping existing code bases shows that these
two are almost never caught together so it is a bit silly to introduce a
second way to do it.  2) Efforts to keep the builtin namespace compact
argue against adding a new builtin that will almost never be used.  3)
The change unnecessarily sacrifices flatness, making the language more
difficult to learn.  4) The self-documenting rationale is weak -- if
needed, a two-word comment would suffice.  Existing code almost never
has had to comment on catching multiple exceptions -- the exception
tuple itself has been sufficiently obvious and explicit.  This rationale
assumes that code readers aren't smart enough to infer that SystemExit
has something to do with termination.



Raymond

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Oleg Broytmann
On Mon, Aug 15, 2005 at 09:16:47AM -0400, Raymond Hettinger wrote:
 It is completely Pythonic to have bare keywords
 apply a useful default as an aid to readability and ease of coding.

   Bare while: was rejected because of while WHAT?!. Bare except:
does not cause except WHAT?! reaction. Isn't it funny?! (-:

Oleg.
-- 
 Oleg Broytmannhttp://phd.pp.ru/[EMAIL PROTECTED]
   Programmers don't die, they just GOSUB without RETURN.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Raymond Hettinger
  It is completely Pythonic to have bare keywords
  apply a useful default as an aid to readability and ease of coding.

[Oleg]
Bare while: was rejected because of while WHAT?!. Bare
except:
 does not cause except WHAT?! reaction. Isn't it funny?! (-:

It's both funny and interesting.  It raises the question of what makes
the two different -- why is one instantly recognizable and why does the
other trigger a gag reflex.  My thought is that bare excepts occur in a
context that makes their meaning clear:

try:
block()
except SpecificException:
se_handler()
except:
handle_everything_else()

The pattern of use is similar to a default in a switch-case construct.
Viewed out-of-context, one would ask default WHAT.  Viewed after a
series of case statements, the meaning is vividly clear.


Raymond

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Toby Dickenson
On Monday 15 August 2005 14:16, Raymond Hettinger wrote:

 -1 on replacing except (KeyboardInterrupt, SystemExit) with except
 TerminatingException.  

The rationale for including TerminatingException in the PEP would also be 
satisfied by having a TerminatingExceptions tuple (in the exceptions 
module?). It makes sense to express the classification of exceptions that are 
intended to terminate the interpreter, but we dont need to express that 
classification as inheritence.

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Guido van Rossum
I'm with Raymond here.

On 8/15/05, Raymond Hettinger [EMAIL PROTECTED] wrote:
 [Brett]
  This obviously goes against what Guido last said he
  wanted, but I hope I can convince him to get rid of bare 'except's.
 
 -1 on eliminating bare excepts.  This unnecessarily breaks tons of code
 without offering ANY compensating benefits.  There are valid use cases
 for this construct.  It is completely Pythonic to have bare keywords
 apply a useful default as an aid to readability and ease of coding.
 
 +1 on the new BaseException
 
 +1 on moving NotImplementedError, SystemExit, and KeyboardInterrupt.
 
 -1 on replacing except (KeyboardInterrupt, SystemExit) with except
 TerminatingException.  1) Grepping existing code bases shows that these
 two are almost never caught together so it is a bit silly to introduce a
 second way to do it.  2) Efforts to keep the builtin namespace compact
 argue against adding a new builtin that will almost never be used.  3)
 The change unnecessarily sacrifices flatness, making the language more
 difficult to learn.  4) The self-documenting rationale is weak -- if
 needed, a two-word comment would suffice.  Existing code almost never
 has had to comment on catching multiple exceptions -- the exception
 tuple itself has been sufficiently obvious and explicit.  This rationale
 assumes that code readers aren't smart enough to infer that SystemExit
 has something to do with termination.
 
 
 
 Raymond
 
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: 
 http://mail.python.org/mailman/options/python-dev/guido%40python.org
 


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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Brett Cannon
OK, I will take this as BDFL pronouncement that ditching bare
'except's is just not going to happen.  Had to try.  =)

And I will strip out the TerminatingException proposal.

-Brett

On 8/15/05, Guido van Rossum [EMAIL PROTECTED] wrote:
 I'm with Raymond here.
 
 On 8/15/05, Raymond Hettinger [EMAIL PROTECTED] wrote:
  [Brett]
   This obviously goes against what Guido last said he
   wanted, but I hope I can convince him to get rid of bare 'except's.
 
  -1 on eliminating bare excepts.  This unnecessarily breaks tons of code
  without offering ANY compensating benefits.  There are valid use cases
  for this construct.  It is completely Pythonic to have bare keywords
  apply a useful default as an aid to readability and ease of coding.
 
  +1 on the new BaseException
 
  +1 on moving NotImplementedError, SystemExit, and KeyboardInterrupt.
 
  -1 on replacing except (KeyboardInterrupt, SystemExit) with except
  TerminatingException.  1) Grepping existing code bases shows that these
  two are almost never caught together so it is a bit silly to introduce a
  second way to do it.  2) Efforts to keep the builtin namespace compact
  argue against adding a new builtin that will almost never be used.  3)
  The change unnecessarily sacrifices flatness, making the language more
  difficult to learn.  4) The self-documenting rationale is weak -- if
  needed, a two-word comment would suffice.  Existing code almost never
  has had to comment on catching multiple exceptions -- the exception
  tuple itself has been sufficiently obvious and explicit.  This rationale
  assumes that code readers aren't smart enough to infer that SystemExit
  has something to do with termination.
 
 
 
  Raymond
 
  ___
  Python-Dev mailing list
  Python-Dev@python.org
  http://mail.python.org/mailman/listinfo/python-dev
  Unsubscribe: 
  http://mail.python.org/mailman/options/python-dev/guido%40python.org
 
 
 
 --
 --Guido van Rossum (home page: http://www.python.org/~guido/)
 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe: 
 http://mail.python.org/mailman/options/python-dev/brett%40python.org

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Brett Cannon
On 8/15/05, Toby Dickenson [EMAIL PROTECTED] wrote:
 On Monday 15 August 2005 14:16, Raymond Hettinger wrote:
 
  -1 on replacing except (KeyboardInterrupt, SystemExit) with except
  TerminatingException.
 
 The rationale for including TerminatingException in the PEP would also be
 satisfied by having a TerminatingExceptions tuple (in the exceptions
 module?). It makes sense to express the classification of exceptions that are
 intended to terminate the interpreter, but we dont need to express that
 classification as inheritence.
 

While the idea is fine, I just know that the point is going to be
brought up that the addition should not be done until experience with
the new hierarchy is had.  I will add a comment that tuples can be
added to the module after enough experience is had, but I am not going
to try pushing for this right now.

Of course I could be surprised and everyone could support the idea.  =)

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Scott David Daniels
Toby Dickenson wrote:
 On Monday 15 August 2005 14:16, Raymond Hettinger wrote:
 
 The rationale for including TerminatingException in the PEP would also be 
 satisfied by having a TerminatingExceptions tuple (in the exceptions 
 module?). It makes sense to express the classification of exceptions that are 
 intended to terminate the interpreter, but we dont need to express that 
 classification as inheritence.
 

An argument _for_ TerminatingException as a class is that I can
define my own subclasses of TerminatingException without forcing
it to being a subclass of KeyboardInterrupt or SystemExit.

-- Scott David Daniels
[EMAIL PROTECTED]

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


Re: [Python-Dev] PEP 348 (exception reorg) revised again

2005-08-15 Thread Guido van Rossum
On 8/15/05, Scott David Daniels [EMAIL PROTECTED] wrote:
 An argument _for_ TerminatingException as a class is that I can
 define my own subclasses of TerminatingException without forcing
 it to being a subclass of KeyboardInterrupt or SystemExit.

And how would that help you? Would your own exceptions be more like
SystemExit or more like KeyboardInterrupt, or neither? If you mean
them to be excluded by base except:, you can always subclass
BaseException, which exists for this purpose.

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


[Python-Dev] PEP 348 (exception reorg) revised again

2005-08-14 Thread Brett Cannon
I am sure people mainly care about the big changes inroduced by
revision 1.8 of the PEP (http://www.python.org/peps/pep-0348.html). 
So, first is that WindowsError is staying.  Enough people want it to
stay and have a legitimate use that I removed the proposal to ditch
it.

Second, I changed the bare 'except' proposal again to recommend its
removal.  I had been feeling they should just go for about a week, but
I solidified my thinking when I was talking with Alex and Anna
Martelli and managed to convince them bare 'except's should go after
Alex initially thought they should be changed to be ``except
Exception``.  This obviously goes against what Guido last said he
wanted, but I hope I can convince him to get rid of bare 'except's.

Minor stuff is fleshing out the arguments for TerminatingException (I
am sure Raymond loves that I am leaving this part in  =) and adding a
Roadmap for the transition.

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