[Python-checkins] r42714 - peps/trunk/pep-0000.txt peps/trunk/pep-0352.txt
brett.cannon
python-checkins at python.org
Wed Mar 1 05:48:54 CET 2006
Author: brett.cannon
Date: Wed Mar 1 05:48:52 2006
New Revision: 42714
Modified:
peps/trunk/pep-0000.txt
peps/trunk/pep-0352.txt
Log:
Change status of PEP 352 to final.
Also clarified wording to reflect the implementation; only exceptions are
new-style class. Wording was ambiguous and suggested that you could raise
any new-style class which was considered insane by everyone at the core sprint
at PyCon 2006. And, most importantly, a Tim-channeled Guido thought that the
current implementation was the way to go. No one should be able to ``raise
42``.
Modified: peps/trunk/pep-0000.txt
==============================================================================
--- peps/trunk/pep-0000.txt (original)
+++ peps/trunk/pep-0000.txt Wed Mar 1 05:48:52 2006
@@ -67,7 +67,6 @@
SA 328 Imports: Multi-Line and Absolute/Relative Aahz
SA 343 The "with" Statement GvR, Coghlan
- SA 352 Required Superclass for Exceptions GvR, Cannon
Open PEPs (under consideration)
@@ -166,6 +165,7 @@
SF 327 Decimal Data Type Batista
SF 341 Unifying try-except and try-finally Brandl
SF 342 Coroutines via Enhanced Generators GvR, Eby
+ SF 352 Required Superclass for Exceptions GvR, Cannon
SF 353 Using ssize_t as the index type von Loewis
Empty PEPs (or containing only an abstract)
Modified: peps/trunk/pep-0352.txt
==============================================================================
--- peps/trunk/pep-0352.txt (original)
+++ peps/trunk/pep-0352.txt Wed Mar 1 05:48:52 2006
@@ -3,7 +3,7 @@
Version: $Revision$
Last-Modified: $Date$
Author: Brett Cannon <brett at python.org>, Guido van Rossum <guido at python.org>
-Status: Accepted
+Status: Final
Type: Standards Track
Content-Type: text/x-rst
Created: 27-Oct-2005
@@ -16,10 +16,11 @@
In Python 2.4 and before, any (classic) class can be raised as an
exception. The plan is to allow new-style classes starting in Python
2.5, but this makes the problem worse -- it would mean *any* class (or
-instance) can be raised! This is a problem since it prevents any
-guarantees to be made about the interface of exceptions. This PEP
-proposes introducing a new superclass that all raised objects must
-inherit from. Imposing the restriction will allow a standard
+instance) can be raised (this is not the case in the final version;
+only built-in exceptions can be new-style)! This is a problem since it
+prevents any guarantees to be made about the interface of exceptions.
+This PEP proposes introducing a new superclass that all raised objects
+must inherit from. Imposing the restriction will allow a standard
interface for exceptions to exist that can be relied upon.
One might counter that requiring a specific base class for a
@@ -86,8 +87,6 @@
def __repr__(self):
if not self.args:
argss = "()"
- elif len(self.args) <= 1:
- argss = "(%s)" % repr(self.message)
else:
argss = repr(self.args)
return self.__class__.__name__ + argss
@@ -208,8 +207,6 @@
* Python 2.5
- - allow exceptions to be new-style classes
-
- all standard exceptions become new-style classes
- introduce BaseException
@@ -248,12 +245,7 @@
Implementation
==============
-An initial patch to make exceptions new-style classes has been
-authored by Michael Hudson can be found at SF patch #1104669
-[#SF_1104669]_. While it does not implement all points mentioned in
-this PEP, it will most likely be used as a basis for the final path
-to implement this PEP.
-
+The initial implementation of this PEP has been checked into Python 2.5 .
References
==========
More information about the Python-checkins
mailing list