diff --git a/pep-3000.txt b/pep-3000.txt index 88784dee2..e01936870 100644 --- a/pep-3000.txt +++ b/pep-3000.txt @@ -38,18 +38,22 @@ of doing things. A general principle of the design will be that one obvious way of doing something is enough. [1]_ +Influencing PEPs +================ + +* PEP 238 (Changing the Division Operator) [#pep238]_ +* PEP 328 (Imports: Multi-Line and Absolute/Relative) [#pep328]_ +* PEP 343 (The "with" Statement) [#pep343]_ +* PEP 352 (Required Superclass for Exceptions) [#pep352]_ + + Core language ============= -* Remove distinction between int and long types [1]_ * True division becomes default behavior [10]_ -* Make all strings be Unicode, and have a separate bytes() type [1]_ * ``exec`` as a statement is not worth it -- make it a function * Add optional declarations for static typing [11]_ * Support only new-style classes; classic classes will be gone [1]_ -* Return iterators instead of lists where appropriate for atomic type methods - (e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.) - (Do we keep iter*() methods or remove them? I vote remove. -- nn) * Replace ``print`` by a function [16]_ * Do something so you can catch multiple exceptions using ``except E1, E2, E3:``. Maybe use ``except E1, E2, E3 as err:`` if you want the @@ -70,12 +74,13 @@ Core language be required for top-level packages. * Cleanup the Py_InitModule() variants {,3,4} (also import and parser APIs) * Cleanup the APIs exported in pythonrun, etc. -* Fix (or remove) {}.setdefault() [21]_ * Some expressions will require parentheses that didn't in 2.x: + - List comprehensions will require parentheses around the iterables. This will make list comprehensions more similar to generator comprehensions. [x for x in 1, 2] will need to be: [x for x in (1, 2)] - Lambdas will have to be parenthesized [23]_ + * Builtin module init function names (PyMODINIT_FUNC) will be prefixed with _Py (or Py). Currently they aren't namespace safe since the names start with init. @@ -95,9 +100,26 @@ To be removed: PySequence_In, PyEval_EvalFrame, PyEval_CallObject, _PyObject_Del, _PyObject_GC_Del, _PyObject_GC_Track, _PyObject_GC_UnTrack PyString_AsEncodedString, PyString_AsDecodedString - PyArg_NoArgs, PyArg_GetInt + PyArg_NoArgs, PyArg_GetInt, intargfunc, intintargfunc + + +Atomic Types +============ + +* Remove distinction between int and long types [1]_ +* Make all strings be Unicode, and have a separate bytes() type [1]_ +* Return iterators instead of lists where appropriate for atomic type methods + (e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.) + (Do we keep iter*() methods or remove them? I vote remove. -- nn) + +To be removed: + +* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()`` + or ``basestring.rindex()`` in a try/except block [15]_ +* ``file.xreadlines()`` method [17]_ +* ``dict.setdefault()`` [22]_ +* ``dict.has_key()`` method - typedefs: intargfunc, intintargfunc Built-in Namespace ================== @@ -127,18 +149,6 @@ To be removed: * ``xrange()``: use ``range()`` instead [1]_ -Atomic Types -============ - -To be removed: - -* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()`` - or ``basestring.rindex()`` in a try/except block [15]_ -* ``file.xreadlines()`` method [17]_ -* ``dict.setdefault()`` [22]_ -* ``dict.has_key()`` method - - Standard library ================ @@ -253,6 +263,18 @@ References .. [23] PEP 308 ("Conditional Expressions") http://www.python.org/peps/pep-0308.html +.. [#pep238] PEP 238 (Changing the Division Operator) + http://www.python.org/peps/pep-0238.html + +.. [#pep328] PEP 328 (Imports: Multi-Line and Absolute/Relative) + http://www.python.org/peps/pep-0328.html + +.. [#pep343] PEP 343 (The "with" Statement) + http://www.python.org/peps/pep-0343.html + +.. [#pep352] PEP 352 (Required Superclass for Exceptions) + http://www.python.org/peps/pep-0352.html + Copyright =========