Various status updates. Added some "?"s to items I'm not sure about.
This commit is contained in:
parent
25ab0c551d
commit
aa0e308d3c
62
pep-3100.txt
62
pep-3100.txt
|
@ -63,29 +63,26 @@ Style changes
|
|||
Core language
|
||||
=============
|
||||
|
||||
* True division becomes default behavior [#pep238]_
|
||||
* True division becomes default behavior [#pep238]_ [done]
|
||||
* ``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]_
|
||||
* (Maybe) add optional declarations for static typing [11]_
|
||||
* Support only new-style classes; classic classes will be gone [1]_ [done]
|
||||
* Replace ``print`` by a function [16]_
|
||||
* Do something so you can catch multiple exceptions using ``except E1,
|
||||
E2:``. Probably use ``except E1, E2, E3 as err:`` if you want the
|
||||
error variable? [3]_
|
||||
* ``None``, ``True`` and ``False`` become keywords [4]_
|
||||
(Or perhaps just ``None``?)
|
||||
* Use ``except E1, E2, E3 as err:`` if you want the error variable. [3]_
|
||||
* ``None`` becomes a keyword [4]_ (What about ``True``, ``False``?)
|
||||
* ``...`` to become a general expression element [24]_
|
||||
* ``as`` becomes a keyword [5]_ (probably in 2.6 already)
|
||||
* ``as`` becomes a keyword [5]_ (probably 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 [12]_
|
||||
* Comparisons other than ``==`` and ``!=`` between disparate types
|
||||
will raise an exception unless explicitly supported by the type [6]_
|
||||
* Exceptions will grow an attribute to store the traceback [13]_
|
||||
* Exceptions might grow an attribute to store the traceback [13]_
|
||||
* floats will not be acceptable as arguments in place of ints for operations
|
||||
where floats are inadvertantly accepted (PyArg_ParseTuple() i & l formats)
|
||||
* Imports will be absolute by default.
|
||||
Relative imports must be explicitly specified [#pep328]_
|
||||
* __init__.py will be optional in sub-packages. __init__.py will still
|
||||
* Imports will be absolute by default. [done]
|
||||
Relative imports must be explicitly specified [#pep328]_ [done]
|
||||
* __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.
|
||||
|
@ -110,17 +107,18 @@ Core language
|
|||
NB. {range(x)} means set([range(x)]), NOT set(range(x)).
|
||||
There's no literal for an empty set; use set() (or {1}&{2} :-).
|
||||
There's no frozenset literal; they are too rarely needed.
|
||||
* Reconsider PEP 299 [30]_: special __main__() function in modules.
|
||||
* Might reconsider PEP 299 [30]_: special __main__() function in modules.
|
||||
|
||||
To be removed:
|
||||
|
||||
* String exceptions: use instances of an Exception class [2]_
|
||||
* String exceptions: use instances of an Exception class [2]_ [done]
|
||||
* ``raise Exception, "message"``: use ``raise Exception("message")`` [14]_
|
||||
* ```x```: use ``repr(x)`` [2]_
|
||||
* The ``<>`` operator: use ``!=`` instead [3]_
|
||||
* The __mod__ and __divmod__ special methods on float. [29]_
|
||||
* Unbound methods [7]_
|
||||
* METH_OLDARGS, WITH_CYCLE_GC
|
||||
* Might drop unbound methods? [7]_
|
||||
* METH_OLDARGS
|
||||
* WITH_CYCLE_GC [done]
|
||||
* __getslice__, __setslice__, __delslice__ [17]_
|
||||
* Remove slice opcodes and use slice objects
|
||||
* C APIs (see code):
|
||||
|
@ -140,17 +138,17 @@ Atomic Types
|
|||
The new string type will be called 'str'.
|
||||
* Return iterators instead of lists where appropriate for atomic type methods
|
||||
(e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.); iter*
|
||||
methods will be removed
|
||||
OR make keys(), etc. return views ala Java collections???
|
||||
methods will be removed.
|
||||
Better: make keys(), etc. return views ala Java collections???
|
||||
* Make ``string.join()`` stringify its arguments? [26]_
|
||||
|
||||
To be removed:
|
||||
|
||||
* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
|
||||
or ``basestring.rindex()`` in a try/except block [15]_
|
||||
* ``file.xreadlines()`` method [#file-object]_
|
||||
* ``dict.setdefault()`` [22]_
|
||||
* ``dict.has_key()`` method
|
||||
or ``basestring.rindex()`` in a try/except block??? [15]_
|
||||
* ``file.xreadlines()`` method [#file-object]_ [done]
|
||||
* ``dict.setdefault()``? [22]_
|
||||
* ``dict.has_key()`` method [done]
|
||||
|
||||
|
||||
Built-in Namespace
|
||||
|
@ -159,23 +157,23 @@ Built-in Namespace
|
|||
* Make built-ins return an iterator where appropriate (e.g. ``range()``,
|
||||
``zip()``, etc.)
|
||||
* Relevant functions should consume iterators (e.g. ``min()``,
|
||||
``max()``)
|
||||
``max()``) [They already do, since 2.2.]
|
||||
* Introduce ``trunc()``, which would call the ``__trunc__()`` method on its
|
||||
argument; suggested use is for objects like float where calling ``__int__()``
|
||||
has data loss, but an integral representation is still desired [8]_
|
||||
* Exception hierarchy changes [#pep352]_
|
||||
has data loss, but an integral representation is still desired? [8]_
|
||||
* Exception hierarchy changes [#pep352]_ [done]
|
||||
|
||||
To be removed:
|
||||
|
||||
* ``apply()``: use ``f(*args, **kw)`` instead [2]_
|
||||
* ``buffer()``: must die (use a bytes() type instead) [2]_
|
||||
* ``apply()``: use ``f(*args, **kw)`` instead [2]_ [done]
|
||||
* ``buffer()``: must die (use a bytes() type instead) (?) [2]_
|
||||
* ``callable()``: just call the object and catch the exception [2]_
|
||||
* ``compile()``: put in ``sys`` (or perhaps in a module of its own) [2]_
|
||||
* ``coerce()``: no longer needed [2]_
|
||||
* ``execfile()``, ``reload()``: use ``exec()`` [2]_
|
||||
* ``input()``: use ``eval(sys.stdin.readline())`` [2]_
|
||||
* ``intern()``, ``id()``: put in ``sys`` [2]_
|
||||
* ``map()``, ``filter()``: use list comprehensions instead [1]_, [9]_
|
||||
* ``map()``, ``filter()``: use list comprehensions instead??? [1]_, [9]_
|
||||
* ``reduce()``: write a loop instead [2]_, [9]_
|
||||
* ``raw_input()``: use ``sys.stdin.readline()`` [2]_
|
||||
* ``xrange()``: use ``range()`` instead [1]_
|
||||
|
@ -184,9 +182,10 @@ To be removed:
|
|||
Standard library
|
||||
================
|
||||
|
||||
* Reorganize the standard library to not be as shallow
|
||||
* Reorganize the standard library to not be as shallow?
|
||||
* Move test code to where it belongs, there will be no more test() functions
|
||||
in the standard library
|
||||
* Convert all tests to use either doctest or unittest.
|
||||
* For the procedures of standard library improvement, see PEP 3001 [#pep3001]_
|
||||
|
||||
To be removed:
|
||||
|
@ -222,7 +221,8 @@ Outstanding Issues
|
|||
==================
|
||||
|
||||
* Require C99, so we can use // comments, named initializers, declare variables
|
||||
without introducing a new scope, among other benefits.
|
||||
without introducing a new scope, among other benefits. (Also better support
|
||||
for IEEE floating point issues like NaN and infinities?)
|
||||
|
||||
* Remove support for old systems, including: BeOS, RISCOS, (SGI) Irix, Tru64
|
||||
|
||||
|
|
Loading…
Reference in New Issue