Various status updates.

This commit is contained in:
Guido van Rossum 2007-07-27 19:21:32 +00:00
parent 00d28204ef
commit 1a0fce58f3
1 changed files with 15 additions and 19 deletions

View File

@ -69,16 +69,15 @@ Core language
* Support only new-style classes; classic classes will be gone [1]_ [done]
* Replace ``print`` by a function [14]_ [#pep3105]_ [done]
* The ``softspace`` attribute of files goes away. [done]
* Use ``except E1, E2, E3 as err:`` if you want the error variable. [3]_
* ``None`` becomes a keyword [4]_ [done; also ``True`` and ``False``]
* Use ``except E1, E2, E3 as err:`` if you want the error variable. [3]_ [done]
* ``None`` becomes a keyword [4]_; also ``True`` and ``False`` [done]
* ``...`` to become a general expression element [16]_ [done]
* ``as`` becomes a keyword [5]_ (starting in 2.6 already) [done]
* Have list comprehensions be syntactic sugar for passing an
equivalent generator expression to ``list()``; as a consequence the
loop variable will no longer be exposed [#pep289]_
loop variable will no longer be exposed [#pep289]_ [done]
* Comparisons other than ``==`` and ``!=`` between disparate types
will raise an exception unless explicitly supported by the type [6]_ [done]
* Exceptions might grow an attribute to store the traceback [11]_
* floats will not be acceptable as arguments in place of ints for operations
where floats are inadvertantly accepted (PyArg_ParseTuple() i & l formats)
* Remove from ... import * at function scope. This means that functions
@ -86,8 +85,8 @@ Core language
* Imports [#pep328]_
+ Imports will be absolute by default. [done]
+ Relative imports must be explicitly specified. [done]
+ Indirection entires in sys.modules will not be supported.
* __init__.py might become optional in sub-packages. __init__.py will still
+ Indirection entires in sys.modules will not be supported. (what's this???)
* __init__.py might become optional in sub-packages? __init__.py will still
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.
@ -95,8 +94,8 @@ Core language
- 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 may have to be parenthesized [#pep308]_
[x for x in 1, 2] will need to be: [x for x in (1, 2)] [done]
- Lambdas may have to be parenthesized [#pep308]_ [NO]
* __builtins__ should get a different name *or* completely unified
with __builtin__. Keeping both with confusingly similar spellings
@ -122,7 +121,7 @@ To be removed:
* ```x```: use ``repr(x)`` [2]_ [done]
* The ``<>`` operator: use ``!=`` instead [3]_ [done]
* The __mod__ and __divmod__ special methods on float. [21]_
* Might drop unbound methods? [7]_
* Might drop unbound methods? [7]_ [UNLIKELY]
* METH_OLDARGS
* WITH_CYCLE_GC [done]
* __getslice__, __setslice__, __delslice__ [#sequence-types]_;
@ -147,23 +146,22 @@ Atomic Types
literals with 'L' or 'l' suffix disappear [1]_ [done]
* Make all strings be Unicode, and have a separate bytes() type [1]_
The new string type will be called 'str'.
[halfway done, in py3k-struni branch]
[largely done, in py3k-struni branch]
* Return iterable views instead of lists where appropriate for atomic
type methods (e.g. ``dict.keys()``, ``dict.values()``,
``dict.items()``, etc.); iter* methods will be removed. [done]
* Make ``string.join()`` stringify its arguments? [18]_
* Fix open() so it returns a ValueError if the mode is bad rather than IOError.
(This probably affects lots of places, we should review the exceptions
and fix them if inappropriate.)
[done]
To be removed:
* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
or ``basestring.[r]partition()`` or
or ``basestring.rindex()`` in a try/except block??? [13]_
or ``basestring.rindex()`` in a try/except block??? [13]_ [UNLIKELY]
* ``file.xreadlines()`` method [#file-object]_ [done]
* ``dict.setdefault()``? [15]_
* ``dict.has_key()`` method [done]
* ``dict.setdefault()``? [15]_ [UNLIKELY]
* ``dict.has_key()`` method; use ``in`` operator [done]
Built-in Namespace
@ -171,8 +169,6 @@ Built-in Namespace
* Make built-ins return an iterator where appropriate (e.g. ``range()``,
``zip()``, ``map()``, ``filter()``, etc.) [done]
* Relevant functions should consume iterators (e.g. ``min()``,
``max()``) [They already do, since 2.2.]
* Remove ``input()`` and rename ``raw_input()`` to ``input()``.
If you need the old input(), use eval(input()). [done]
* Introduce ``trunc()``, which would call the ``__trunc__()`` method on its
@ -192,8 +188,8 @@ To be removed:
* ``intern()``: put in ``sys`` [2]_, [22]_ [done]
* ``reduce()``: write a loop instead [2]_, [9]_ [done]
* ``xrange()``: use ``range()`` instead [1]_ [See range() above] [done]
* ``StandardError``: this is a relic from the original exception hierachy; subclass
``Exception`` instead. [done]
* ``StandardError``: this is a relic from the original exception hierachy;
subclass ``Exception`` instead. [done]
Standard library