2006-04-05 03:17:23 -04:00
|
|
|
|
PEP: 3100
|
|
|
|
|
Title: Miscellaneous Python 3.0 Plans
|
2004-08-20 08:43:19 -04:00
|
|
|
|
Version: $Revision$
|
|
|
|
|
Last-Modified: $Date$
|
2004-08-20 11:05:39 -04:00
|
|
|
|
Author: A.M. Kuchling <amk@amk.ca>,
|
2004-08-20 08:43:19 -04:00
|
|
|
|
Brett Cannon <drifty@alum.berkeley.edu>
|
|
|
|
|
Status: Draft
|
|
|
|
|
Type: Informational
|
|
|
|
|
Content-Type: text/x-rst
|
|
|
|
|
Created: 20-Aug-2004
|
2004-08-20 11:05:39 -04:00
|
|
|
|
Post-History:
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
========
|
|
|
|
|
|
2006-04-05 03:17:23 -04:00
|
|
|
|
This PEP, previously known as PEP 3000, describes smaller scale changes
|
|
|
|
|
and new features for which no separate PEP is written yet, all targeted
|
|
|
|
|
for Python 3000.
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
The list of features included in this document is subject to change
|
|
|
|
|
and isn't binding on the Python development community; features may be
|
|
|
|
|
added, removed, and modified at any time. The purpose of this list is
|
|
|
|
|
to focus our language development effort on changes that are steps to
|
|
|
|
|
3.0, and to encourage people to invent ways to smooth the transition.
|
|
|
|
|
|
|
|
|
|
This document is not a wish-list that anyone can extend. While there
|
|
|
|
|
are two authors of this PEP, we're just supplying the text; the
|
|
|
|
|
decisions for which changes are listed in this document are made by
|
2004-08-20 11:05:39 -04:00
|
|
|
|
Guido van Rossum, who has chosen them as goals for Python 3.0.
|
|
|
|
|
|
2006-04-05 03:17:23 -04:00
|
|
|
|
Guido's pronouncements on things that will not change in Python 3.0
|
|
|
|
|
are recorded in PEP 3099. [#pep3099]_
|
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
General goals
|
|
|
|
|
=============
|
|
|
|
|
|
|
|
|
|
A general goal is to reduce feature duplication by removing old ways
|
|
|
|
|
of doing things. A general principle of the design will be that one
|
|
|
|
|
obvious way of doing something is enough. [1]_
|
|
|
|
|
|
|
|
|
|
|
2006-03-01 00:32:44 -05:00
|
|
|
|
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]_
|
|
|
|
|
|
|
|
|
|
|
2006-04-24 14:52:08 -04:00
|
|
|
|
Style changes
|
|
|
|
|
=============
|
|
|
|
|
|
|
|
|
|
* The C style guide will be updated to use 4-space indents, never tabs.
|
|
|
|
|
This style should be used for all new files; existing files can be
|
|
|
|
|
updated only if there is no hope to ever merge a particular file from
|
|
|
|
|
the Python 2 HEAD. Within a file, the indentation style should be
|
|
|
|
|
consistent. No other style guide changes are planned ATM.
|
|
|
|
|
|
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
Core language
|
|
|
|
|
=============
|
|
|
|
|
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* True division becomes default behavior [#pep238]_ [done]
|
2006-09-06 02:42:42 -04:00
|
|
|
|
* ``exec`` as a statement is not worth it -- make it a function [done]
|
2007-01-10 11:21:49 -05:00
|
|
|
|
* (Maybe) add optional declarations for static typing [#pep3107]_ [10]_
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* Support only new-style classes; classic classes will be gone [1]_ [done]
|
2006-12-19 16:20:00 -05:00
|
|
|
|
* Replace ``print`` by a function [14]_ [#pep3105]_
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* Use ``except E1, E2, E3 as err:`` if you want the error variable. [3]_
|
|
|
|
|
* ``None`` becomes a keyword [4]_ (What about ``True``, ``False``?)
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* ``...`` to become a general expression element [16]_ [done]
|
2006-09-06 02:42:42 -04:00
|
|
|
|
* ``as`` becomes a keyword [5]_ (starting in 2.6 already) [done]
|
2004-08-27 14:43:32 -04:00
|
|
|
|
* Have list comprehensions be syntactic sugar for passing an
|
2004-09-02 15:10:13 -04:00
|
|
|
|
equivalent generator expression to ``list()``; as a consequence the
|
2006-12-19 14:01:10 -05:00
|
|
|
|
loop variable will no longer be exposed [#pep289]_
|
2004-08-27 14:43:32 -04:00
|
|
|
|
* Comparisons other than ``==`` and ``!=`` between disparate types
|
2006-09-06 02:42:42 -04:00
|
|
|
|
will raise an exception unless explicitly supported by the type [6]_ [done]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* Exceptions might grow an attribute to store the traceback [11]_
|
2005-12-14 23:55:32 -05:00
|
|
|
|
* floats will not be acceptable as arguments in place of ints for operations
|
|
|
|
|
where floats are inadvertantly accepted (PyArg_ParseTuple() i & l formats)
|
2006-12-26 01:08:28 -05:00
|
|
|
|
* Remove from ... import * at function scope. This means that functions
|
|
|
|
|
can always be optimized and support for unoptimized functions can go away.
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* 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
|
2005-12-14 23:55:32 -05:00
|
|
|
|
be required for top-level packages.
|
2006-02-27 11:26:26 -05:00
|
|
|
|
* Cleanup the Py_InitModule() variants {,3,4} (also import and parser APIs)
|
2006-02-18 15:32:56 -05:00
|
|
|
|
* Cleanup the APIs exported in pythonrun, etc.
|
2006-02-28 12:18:37 -05:00
|
|
|
|
* Some expressions will require parentheses that didn't in 2.x:
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
2006-02-27 12:38:27 -05:00
|
|
|
|
- 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)]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
- Lambdas may have to be parenthesized [#pep308]_
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
2006-02-27 13:29:14 -05:00
|
|
|
|
* 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.
|
2006-03-15 00:25:39 -05:00
|
|
|
|
* __builtins__ should get a different name *or* completely unified
|
|
|
|
|
with __builtin__. Keeping both with confusingly similar spellings
|
|
|
|
|
and semantics is evil.
|
2006-04-22 17:21:18 -04:00
|
|
|
|
* Attributes on functions of the form ``func_whatever`` will be renamed
|
2006-12-19 14:01:10 -05:00
|
|
|
|
``__whatever__`` [17]_
|
|
|
|
|
* Set literals and comprehensions [19]_ [20]_ [done]
|
2006-05-04 14:15:10 -04:00
|
|
|
|
{x} means set([x]); {x, y} means set([x, y]).
|
2006-04-27 13:48:03 -04:00
|
|
|
|
{F(x) for x in S if P(x)} means set(F(x) for x in S if P(x)).
|
|
|
|
|
NB. {range(x)} means set([range(x)]), NOT set(range(x)).
|
2006-05-04 14:15:10 -04:00
|
|
|
|
There's no literal for an empty set; use set() (or {1}&{2} :-).
|
2006-04-27 13:48:03 -04:00
|
|
|
|
There's no frozenset literal; they are too rarely needed.
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* Might reconsider PEP 299 [#pep299]_: special __main__() function in modules.
|
2006-11-28 14:33:39 -05:00
|
|
|
|
* The ``__nonzero__`` special method will be renamed to ``__bool__``
|
|
|
|
|
and have to return a bool. The typeobject slot will be called
|
2006-12-19 14:01:10 -05:00
|
|
|
|
``tp_bool`` [23]_ [done]
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
To be removed:
|
|
|
|
|
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* String exceptions: use instances of an Exception class [2]_ [done]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* ``raise Exception, "message"``: use ``raise Exception("message")`` [12]_
|
2006-08-25 02:03:06 -04:00
|
|
|
|
* ```x```: use ``repr(x)`` [2]_ [done]
|
|
|
|
|
* The ``<>`` operator: use ``!=`` instead [3]_ [done]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* The __mod__ and __divmod__ special methods on float. [21]_
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* Might drop unbound methods? [7]_
|
|
|
|
|
* METH_OLDARGS
|
|
|
|
|
* WITH_CYCLE_GC [done]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* __getslice__, __setslice__, __delslice__ [#sequence-types]_;
|
2006-09-06 02:42:42 -04:00
|
|
|
|
remove slice opcodes and use slice objects.
|
|
|
|
|
[Thomas Wouters is working on this in a branch]
|
2005-12-14 23:55:32 -05:00
|
|
|
|
* C APIs (see code):
|
|
|
|
|
PyFloat_AsString, PyFloat_AsReprString, PyFloat_AsStringEx,
|
|
|
|
|
PySequence_In, PyEval_EvalFrame, PyEval_CallObject,
|
|
|
|
|
_PyObject_Del, _PyObject_GC_Del, _PyObject_GC_Track, _PyObject_GC_UnTrack
|
2006-01-03 03:22:57 -05:00
|
|
|
|
PyString_AsEncodedString, PyString_AsDecodedString
|
2006-03-01 00:32:44 -05:00
|
|
|
|
PyArg_NoArgs, PyArg_GetInt, intargfunc, intintargfunc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Atomic Types
|
|
|
|
|
============
|
|
|
|
|
|
|
|
|
|
* Remove distinction between int and long types [1]_
|
2006-03-14 23:41:44 -05:00
|
|
|
|
(int may become an abstract base type, with short and long subtypes.)
|
2006-09-06 02:42:42 -04:00
|
|
|
|
[MvL is working on this in the int_unification branch]
|
2006-03-01 00:32:44 -05:00
|
|
|
|
* Make all strings be Unicode, and have a separate bytes() type [1]_
|
2006-04-27 13:48:03 -04:00
|
|
|
|
The new string type will be called 'str'.
|
2006-03-01 00:32:44 -05:00
|
|
|
|
* Return iterators instead of lists where appropriate for atomic type methods
|
2006-03-01 13:47:47 -05:00
|
|
|
|
(e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.); iter*
|
2006-08-18 17:34:25 -04:00
|
|
|
|
methods will be removed.
|
|
|
|
|
Better: make keys(), etc. return views ala Java collections???
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* Make ``string.join()`` stringify its arguments? [18]_
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
|
|
|
|
To be removed:
|
|
|
|
|
|
|
|
|
|
* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
|
2006-09-06 02:42:42 -04:00
|
|
|
|
or ``basestring.[r]partition()`` or
|
2006-12-19 14:01:10 -05:00
|
|
|
|
or ``basestring.rindex()`` in a try/except block??? [13]_
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* ``file.xreadlines()`` method [#file-object]_ [done]
|
2006-12-19 14:01:10 -05:00
|
|
|
|
* ``dict.setdefault()``? [15]_
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* ``dict.has_key()`` method [done]
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
|
2005-08-27 14:27:33 -04:00
|
|
|
|
Built-in Namespace
|
|
|
|
|
==================
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
2005-04-28 14:57:40 -04:00
|
|
|
|
* Make built-ins return an iterator where appropriate (e.g. ``range()``,
|
2006-09-06 02:53:05 -04:00
|
|
|
|
``zip()``, etc.) [zip is done; Neal Norwitz has a patch for range()]
|
2004-08-20 11:05:39 -04:00
|
|
|
|
* Relevant functions should consume iterators (e.g. ``min()``,
|
2006-08-18 17:34:25 -04:00
|
|
|
|
``max()``) [They already do, since 2.2.]
|
2005-03-05 14:38:42 -05:00
|
|
|
|
* Introduce ``trunc()``, which would call the ``__trunc__()`` method on its
|
2005-04-28 14:57:40 -04:00
|
|
|
|
argument; suggested use is for objects like float where calling ``__int__()``
|
2006-08-18 17:34:25 -04:00
|
|
|
|
has data loss, but an integral representation is still desired? [8]_
|
|
|
|
|
* Exception hierarchy changes [#pep352]_ [done]
|
2004-08-20 11:05:39 -04:00
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
To be removed:
|
|
|
|
|
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* ``apply()``: use ``f(*args, **kw)`` instead [2]_ [done]
|
|
|
|
|
* ``buffer()``: must die (use a bytes() type instead) (?) [2]_
|
2006-12-03 03:23:02 -05:00
|
|
|
|
* ``callable()``: just call the object and catch the exception??? [2]_
|
2005-03-14 23:06:02 -05:00
|
|
|
|
* ``compile()``: put in ``sys`` (or perhaps in a module of its own) [2]_
|
2004-08-20 11:05:39 -04:00
|
|
|
|
* ``coerce()``: no longer needed [2]_
|
|
|
|
|
* ``execfile()``, ``reload()``: use ``exec()`` [2]_
|
2006-09-06 02:53:05 -04:00
|
|
|
|
* ``input()``: use ``eval(sys.stdin.readline())`` [2]_ [done]
|
2006-12-19 15:51:35 -05:00
|
|
|
|
* ``intern()``: put in ``sys`` [2]_, [22]_ [done]
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* ``map()``, ``filter()``: use list comprehensions instead??? [1]_, [9]_
|
2006-09-06 02:42:42 -04:00
|
|
|
|
(Actually these can stay.)
|
|
|
|
|
* ``reduce()``: write a loop instead [2]_, [9]_ [done]
|
2006-09-06 02:53:05 -04:00
|
|
|
|
* ``raw_input()``: use ``sys.stdin.readline()`` ??? [2]_ [done]
|
2006-09-06 02:42:42 -04:00
|
|
|
|
* ``xrange()``: use ``range()`` instead [1]_ [See range() above]
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Standard library
|
|
|
|
|
================
|
|
|
|
|
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* Reorganize the standard library to not be as shallow?
|
2005-12-14 23:55:32 -05:00
|
|
|
|
* Move test code to where it belongs, there will be no more test() functions
|
|
|
|
|
in the standard library
|
2006-08-18 17:34:25 -04:00
|
|
|
|
* Convert all tests to use either doctest or unittest.
|
2006-04-05 03:17:23 -04:00
|
|
|
|
* For the procedures of standard library improvement, see PEP 3001 [#pep3001]_
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
|
|
|
|
To be removed:
|
|
|
|
|
|
2007-01-09 20:30:33 -05:00
|
|
|
|
* The sets module. [done]
|
2006-07-06 23:33:39 -04:00
|
|
|
|
* stdlib modules to be removed
|
|
|
|
|
+ see docstrings and comments in the source
|
|
|
|
|
- ``macfs``, ``new``, ``reconvert``, ``stringold``, ``xmllib``,
|
|
|
|
|
``pcre``, ``pypcre``, ``strop``
|
2006-12-19 14:01:10 -05:00
|
|
|
|
+ see PEP 4 [#pep4]_
|
2006-07-06 23:33:39 -04:00
|
|
|
|
- ``posixfile``, ``pre``, ``regsub``, ``rfc822``,
|
2007-01-10 14:01:46 -05:00
|
|
|
|
``statcache``, ``string``, ``TERMIOS``, ``mimetools``,
|
2006-07-06 23:33:39 -04:00
|
|
|
|
``MimeWriter``, ``mimify``, ``mpz``, ``rgbimage``
|
2006-12-19 14:01:10 -05:00
|
|
|
|
+ Everything in lib-old [#pep4]_
|
2006-07-06 23:33:39 -04:00
|
|
|
|
- ``Para``, ``addpack``, ``cmp``, ``cmpcache``, ``codehack``,
|
|
|
|
|
``dircmp``, ``dump``, ``find``, ``fmt``, ``grep``,
|
|
|
|
|
``lockfile``, ``newdir``, ``ni``, ``packmail``, ``poly``,
|
|
|
|
|
``rand``, ``statcache``, ``tb``, ``tzparse``, ``util``,
|
|
|
|
|
``whatsound``, ``whrandom``, ``zmod``
|
|
|
|
|
* ``sys.exitfunc``: use atexit module instead [#sys-module]_
|
2005-12-14 23:55:32 -05:00
|
|
|
|
* ``sys.exc_type``, ``sys.exc_values``, ``sys.exc_traceback``:
|
|
|
|
|
not thread-safe; use ``sys.exc_info()`` or an attribute
|
2006-12-19 14:01:10 -05:00
|
|
|
|
of the exception [2]_ [11]_ [#sys-module]_
|
2006-07-06 23:33:39 -04:00
|
|
|
|
* ``array.read``, ``array.write`` [#array-module]_
|
2006-08-23 21:13:18 -04:00
|
|
|
|
* ``operator.isCallable`` : ``callable()`` built-in is being removed
|
|
|
|
|
[#operator-module]_
|
|
|
|
|
* ``operator.sequenceIncludes`` : redundant thanks to
|
|
|
|
|
``operator.contains`` [#operator-module]_
|
2006-02-28 15:56:18 -05:00
|
|
|
|
* In the thread module, the aquire_lock() and release_lock() aliases
|
|
|
|
|
for the acquire() and release() methods on lock objects.
|
|
|
|
|
(Probably also just remove the thread module as a public API,
|
|
|
|
|
in favor of always using threading.py.)
|
2006-04-05 03:17:23 -04:00
|
|
|
|
* UserXyz classes, in favour of XyzMixins.
|
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
|
2006-03-22 00:24:31 -05:00
|
|
|
|
Outstanding Issues
|
|
|
|
|
==================
|
|
|
|
|
|
|
|
|
|
* Require C99, so we can use // comments, named initializers, declare variables
|
2006-08-18 17:34:25 -04:00
|
|
|
|
without introducing a new scope, among other benefits. (Also better support
|
|
|
|
|
for IEEE floating point issues like NaN and infinities?)
|
2006-03-22 00:24:31 -05:00
|
|
|
|
|
2006-03-22 04:38:59 -05:00
|
|
|
|
* Remove support for old systems, including: BeOS, RISCOS, (SGI) Irix, Tru64
|
2006-03-22 00:24:31 -05:00
|
|
|
|
|
2006-04-05 03:17:23 -04:00
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
References
|
|
|
|
|
==========
|
|
|
|
|
|
2004-08-20 11:05:39 -04:00
|
|
|
|
.. [1] PyCon 2003 State of the Union:
|
2004-08-20 08:43:19 -04:00
|
|
|
|
http://www.python.org/doc/essays/ppt/pycon2003/pycon2003.ppt
|
|
|
|
|
|
2004-08-20 11:05:39 -04:00
|
|
|
|
.. [2] Python Regrets:
|
2004-08-20 08:43:19 -04:00
|
|
|
|
http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf
|
|
|
|
|
|
2004-08-20 11:05:39 -04:00
|
|
|
|
.. [3] Python Wiki:
|
2004-08-20 08:43:19 -04:00
|
|
|
|
http://www.python.org/moin/Python3.0
|
|
|
|
|
|
2004-08-27 01:24:03 -04:00
|
|
|
|
.. [4] python-dev email ("Constancy of None")
|
|
|
|
|
http://mail.python.org/pipermail/python-dev/2004-July/046294.html
|
|
|
|
|
|
2004-12-11 02:54:17 -05:00
|
|
|
|
.. [5] python-dev email (' "as" to be a keyword?')
|
2004-08-27 01:24:03 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2004-July/046316.html
|
|
|
|
|
|
2004-12-11 02:54:17 -05:00
|
|
|
|
.. [6] python-dev email ("Comparing heterogeneous types")
|
|
|
|
|
http://mail.python.org/pipermail/python-dev/2004-June/045111.html
|
|
|
|
|
|
2005-01-21 23:39:23 -05:00
|
|
|
|
.. [7] python-dev email ("Let's get rid of unbound methods")
|
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-January/050625.html
|
|
|
|
|
|
2005-03-14 23:06:02 -05:00
|
|
|
|
.. [8] python-dev email ("Fixing _PyEval_SliceIndex so that integer-like
|
2005-03-05 14:38:42 -05:00
|
|
|
|
objects can be used")
|
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-February/051674.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [9] Guido's blog ("The fate of reduce() in Python 3000")
|
|
|
|
|
http://www.artima.com/weblogs/viewpost.jsp?thread=98196
|
|
|
|
|
|
|
|
|
|
.. [10] Guido's blog ("Python Optional Typechecking Redux")
|
|
|
|
|
http://www.artima.com/weblogs/viewpost.jsp?thread=89161
|
|
|
|
|
|
|
|
|
|
.. [11] python-dev email ("anonymous blocks")
|
2005-04-28 16:04:32 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-April/053060.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [12] python-dev email ("PEP 8: exception style")
|
2005-08-27 14:27:33 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-August/055190.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [13] python-dev email (Remove str.find in 3.0?)
|
2005-08-27 14:27:33 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-August/055705.html
|
2005-08-06 19:13:59 -04:00
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [14] python-dev email (Replacement for print in Python 3.0)
|
2005-09-07 20:26:20 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2005-September/056154.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [15] python-dev email ("defaultdict")
|
2006-02-19 02:10:16 -05:00
|
|
|
|
http://mail.python.org/pipermail/python-dev/2006-February/061261.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [16] python-3000 email
|
2006-04-19 17:56:53 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-April/000996.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [17] python-3000 email ("Pronouncement on parameter lists")
|
2006-04-22 17:21:18 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-April/001175.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [18] python-3000 email ("More wishful thinking")
|
2006-04-27 05:55:12 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-April/000810.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [19] python-3000 email ("sets in P3K?")
|
2006-04-27 13:48:03 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-April/001286.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [20] python-3000 email ("sets in P3K?")
|
2006-05-04 14:15:10 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-May/001666.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [21] python-3000 email ("bug in modulus?")
|
2006-05-04 14:15:10 -04:00
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-May/001735.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [22] SF patch "sys.id() and sys.intern()"
|
|
|
|
|
http://www.python.org/sf/1601678
|
|
|
|
|
|
|
|
|
|
.. [23] python-3000 email ("__nonzero__ vs. __bool__")
|
|
|
|
|
http://mail.python.org/pipermail/python-3000/2006-November/004524.html
|
2006-07-06 23:33:39 -04:00
|
|
|
|
|
|
|
|
|
.. [#sys-module] Python docs (sys -- System-specific parameters and functions)
|
|
|
|
|
http://docs.python.org/lib/module-sys.html
|
|
|
|
|
|
|
|
|
|
.. [#operator-module] Python docs (operator -- Standard operators as functions)
|
|
|
|
|
http://docs.python.org/lib/module-operator.html
|
|
|
|
|
|
|
|
|
|
.. [#array-module] Python docs (array -- Efficient arrays of numeric values)
|
|
|
|
|
http://docs.python.org/lib/module-array.html
|
|
|
|
|
|
|
|
|
|
.. [#file-object] Python docs (File objects)
|
|
|
|
|
http://docs.python.org/lib/bltin-file-objects.html
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [#sequence-types] Python docs (Additional methods for emulation of sequence types)
|
|
|
|
|
http://docs.python.org/ref/sequence-methods.html
|
|
|
|
|
|
|
|
|
|
.. [#pep4] PEP 4 ("Deprecation of Standard Modules")
|
2006-07-06 23:33:39 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0004
|
2006-06-28 02:47:51 -04:00
|
|
|
|
|
2006-03-01 00:32:44 -05:00
|
|
|
|
.. [#pep238] PEP 238 (Changing the Division Operator)
|
2006-04-05 03:17:23 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0238
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [#pep289] PEP 289 ("Generator Expressions")
|
2006-07-06 23:33:39 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0289
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [#pep299] PEP 299 ("Special __main__() function in modules")
|
2006-07-06 23:33:39 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0299
|
|
|
|
|
|
2006-12-19 14:01:10 -05:00
|
|
|
|
.. [#pep308] PEP 308 ("Conditional Expressions")
|
2006-07-06 23:33:39 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0308
|
|
|
|
|
|
2006-03-01 00:32:44 -05:00
|
|
|
|
.. [#pep328] PEP 328 (Imports: Multi-Line and Absolute/Relative)
|
2006-04-05 03:17:23 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0328
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
|
|
|
|
.. [#pep343] PEP 343 (The "with" Statement)
|
2006-04-05 03:17:23 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0343
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
|
|
|
|
.. [#pep352] PEP 352 (Required Superclass for Exceptions)
|
2006-04-05 03:17:23 -04:00
|
|
|
|
http://www.python.org/dev/peps/pep-0352
|
|
|
|
|
|
2006-05-02 14:32:39 -04:00
|
|
|
|
.. [#pep3001] PEP 3001 (Process for reviewing and improving standard
|
|
|
|
|
library modules) http://www.python.org/dev/peps/pep-3001
|
2006-04-05 03:17:23 -04:00
|
|
|
|
|
|
|
|
|
.. [#pep3099] PEP 3099 (Things that will Not Change in Python 3000)
|
|
|
|
|
http://www.python.org/dev/peps/pep-3099
|
|
|
|
|
|
2006-12-19 16:20:00 -05:00
|
|
|
|
.. [#pep3105] PEP 3105 (Make print a function)
|
|
|
|
|
http://www.python.org/dev/peps/pep-3105
|
2006-03-01 00:32:44 -05:00
|
|
|
|
|
2006-12-26 01:08:28 -05:00
|
|
|
|
.. [#pep3107] PEP 3107 (Function Annotations)
|
|
|
|
|
http://www.python.org/dev/peps/pep-3107
|
|
|
|
|
|
2006-07-06 23:33:39 -04:00
|
|
|
|
|
2004-08-20 08:43:19 -04:00
|
|
|
|
Copyright
|
|
|
|
|
=========
|
|
|
|
|
|
|
|
|
|
This document has been placed in the public domain.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: indented-text
|
|
|
|
|
indent-tabs-mode: nil
|
|
|
|
|
sentence-end-double-space: t
|
|
|
|
|
fill-column: 70
|
|
|
|
|
End:
|