Merge pull request #31 from Carreau/pep-0042-to-rst
Convert PEP 42 to reST
This commit is contained in:
commit
3e3c016e52
270
pep-0042.txt
270
pep-0042.txt
|
@ -5,28 +5,30 @@ Last-Modified: $Date$
|
||||||
Author: Jeremy Hylton <jeremy@alum.mit.edu>
|
Author: Jeremy Hylton <jeremy@alum.mit.edu>
|
||||||
Status: Final
|
Status: Final
|
||||||
Type: Process
|
Type: Process
|
||||||
|
Content-Type: text/x-rst
|
||||||
Created: 12-Sep-2000
|
Created: 12-Sep-2000
|
||||||
Post-History:
|
Post-History:
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
|
|
||||||
This PEP contains a list of feature requests that may be
|
Introduction
|
||||||
considered for future versions of Python. Large feature requests
|
============
|
||||||
should not be included here, but should be described in separate
|
|
||||||
PEPs; however a large feature request that doesn't have its own
|
This PEP contains a list of feature requests that may be considered
|
||||||
PEP can be listed here until its own PEP is created. See
|
for future versions of Python. Large feature requests should not be
|
||||||
PEP 0 for details.
|
included here, but should be described in separate PEPs; however a
|
||||||
|
large feature request that doesn't have its own PEP can be listed here
|
||||||
|
until its own PEP is created. See PEP 0 for details.
|
||||||
|
|
||||||
This PEP was created to allow us to close bug reports that are really
|
This PEP was created to allow us to close bug reports that are really
|
||||||
feature requests. Marked as Open, they distract from the list of real
|
feature requests. Marked as Open, they distract from the list of real
|
||||||
bugs (which should ideally be less than a page). Marked as Closed, they
|
bugs (which should ideally be less than a page). Marked as Closed,
|
||||||
tend to be forgotten. The procedure now is: if a bug report is really
|
they tend to be forgotten. The procedure now is: if a bug report is
|
||||||
a feature request, add the feature request to this PEP; mark the bug as
|
really a feature request, add the feature request to this PEP; mark
|
||||||
"feature request", "later", and "closed"; and add a comment to the bug
|
the bug as "feature request", "later", and "closed"; and add a comment
|
||||||
saying that this is the case (mentioning the PEP explicitly). It is
|
to the bug saying that this is the case (mentioning the PEP
|
||||||
also acceptable to move large feature requests directly from the bugs
|
explicitly). It is also acceptable to move large feature requests
|
||||||
database to a separate PEP.
|
directly from the bugs database to a separate PEP.
|
||||||
|
|
||||||
This PEP should really be separated into four different categories
|
This PEP should really be separated into four different categories
|
||||||
(categories due to Laura Creighton):
|
(categories due to Laura Creighton):
|
||||||
|
@ -37,64 +39,62 @@ Introduction
|
||||||
BDFL will say 'change this and I will put it in' if you show up
|
BDFL will say 'change this and I will put it in' if you show up
|
||||||
with code.)
|
with code.)
|
||||||
|
|
||||||
(possibly divided into:
|
possibly divided into:
|
||||||
|
|
||||||
2a) BDFL would really like to see some code!
|
a) BDFL would really like to see some code!
|
||||||
|
|
||||||
2b) BDFL is never going to be enthusiastic about this, but
|
b) BDFL is never going to be enthusiastic about this, but
|
||||||
will work it in when it's easy.
|
will work it in when it's easy.
|
||||||
)
|
|
||||||
|
|
||||||
3. If you show up with code, BDFL will make a pronouncement. It
|
3. If you show up with code, BDFL will make a pronouncement. It might
|
||||||
might be ICK.
|
be ICK.
|
||||||
|
|
||||||
4. This is too vague. This is rejected, but only on the grounds
|
4. This is too vague. This is rejected, but only on the grounds of
|
||||||
of vagueness. If you like this enhancement, make a new PEP.
|
vagueness. If you like this enhancement, make a new PEP.
|
||||||
|
|
||||||
|
|
||||||
Core Language / Builtins
|
Core Language / Builtins
|
||||||
|
========================
|
||||||
|
|
||||||
- The parser should handle more deeply nested parse trees.
|
* The parser should handle more deeply nested parse trees.
|
||||||
|
|
||||||
The following will fail -- eval("["*50 + "]"*50) -- because the
|
The following will fail -- ``eval("["*50`` + ``"]"*50)`` -- because
|
||||||
parser has a hard-coded limit on stack size. This limit should
|
the parser has a hard-coded limit on stack size. This limit should
|
||||||
be raised or removed. Removal would be hard because the
|
be raised or removed. Removal would be hard because the current
|
||||||
current compiler can overflow the C stack if the nesting is too
|
compiler can overflow the C stack if the nesting is too deep.
|
||||||
deep.
|
|
||||||
|
|
||||||
http://www.python.org/sf/215555
|
http://www.python.org/sf/215555
|
||||||
|
|
||||||
- Non-accidental IEEE-754 support (Infs, NaNs, settable traps, etc).
|
* Non-accidental IEEE-754 support (Infs, NaNs, settable traps, etc).
|
||||||
Big project.
|
Big project.
|
||||||
|
|
||||||
- Windows: Trying to create (or even access) files with certain magic
|
* Windows: Trying to create (or even access) files with certain
|
||||||
names can hang or crash Windows systems. This is really a bug in the
|
magic names can hang or crash Windows systems. This is really a
|
||||||
OSes, but some apps try to shield users from it. When it happens,
|
bug in the OSes, but some apps try to shield users from it. When
|
||||||
the symptoms are very confusing.
|
it happens, the symptoms are very confusing.
|
||||||
|
|
||||||
Hang using files named prn.txt, etc
|
Hang using files named prn.txt, etc http://www.python.org/sf/481171
|
||||||
http://www.python.org/sf/481171
|
|
||||||
|
|
||||||
- eval and free variables: It might be useful if there was a way
|
* eval and free variables: It might be useful if there was a way to
|
||||||
to pass bindings for free variables to eval when a code object
|
pass bindings for free variables to eval when a code object with
|
||||||
with free variables is passed.
|
free variables is passed. http://www.python.org/sf/443866
|
||||||
http://www.python.org/sf/443866
|
|
||||||
|
|
||||||
Standard Library
|
Standard Library
|
||||||
|
================
|
||||||
|
|
||||||
- The urllib module should support proxies which require
|
* The urllib module should support proxies which require
|
||||||
authentication. See SourceForge bug #210619 for information:
|
authentication. See SourceForge bug #210619 for information:
|
||||||
|
|
||||||
http://www.python.org/sf/210619
|
http://www.python.org/sf/210619
|
||||||
|
|
||||||
- os.rename() should be modified to handle EXDEV errors on
|
* os.rename() should be modified to handle EXDEV errors on platforms
|
||||||
platforms that don't allow rename() to operate across filesystem
|
that don't allow rename() to operate across filesystem boundaries
|
||||||
boundaries by copying the file over and removing the original.
|
by copying the file over and removing the original. Linux is one
|
||||||
Linux is one system that requires this treatment.
|
system that requires this treatment.
|
||||||
|
|
||||||
http://www.python.org/sf/212317
|
http://www.python.org/sf/212317
|
||||||
|
|
||||||
- signal handling doesn't always work as expected. E.g. if
|
* signal handling doesn't always work as expected. E.g. if
|
||||||
sys.stdin.readline() is interrupted by a (returning) signal
|
sys.stdin.readline() is interrupted by a (returning) signal
|
||||||
handler, it returns "". It would be better to make it raise an
|
handler, it returns "". It would be better to make it raise an
|
||||||
exception (corresponding to EINTR) or to restart. But these
|
exception (corresponding to EINTR) or to restart. But these
|
||||||
|
@ -103,80 +103,80 @@ Standard Library
|
||||||
|
|
||||||
http://www.python.org/sf/210599
|
http://www.python.org/sf/210599
|
||||||
|
|
||||||
- Extend Windows utime to accept directory paths.
|
* Extend Windows utime to accept directory paths.
|
||||||
|
|
||||||
http://www.python.org/sf/214245
|
http://www.python.org/sf/214245
|
||||||
|
|
||||||
- Extend copy.py to module & function types.
|
* Extend copy.py to module & function types.
|
||||||
|
|
||||||
http://www.python.org/sf/214553
|
http://www.python.org/sf/214553
|
||||||
|
|
||||||
- Better checking for bad input to marshal.load*().
|
* Better checking for bad input to ``marshal.load*().``
|
||||||
|
|
||||||
http://www.python.org/sf/214754
|
http://www.python.org/sf/214754
|
||||||
|
|
||||||
- rfc822.py should be more lenient than the spec in the types of
|
* rfc822.py should be more lenient than the spec in the types of
|
||||||
address fields it parses. Specifically, an invalid address of
|
address fields it parses. Specifically, an invalid address of the
|
||||||
the form "From: Amazon.com <delivers-news2@amazon.com>" should
|
form "From: Amazon.com <delivers-news2@amazon.com>" should be
|
||||||
be parsed correctly.
|
parsed correctly.
|
||||||
|
|
||||||
http://www.python.org/sf/210678
|
http://www.python.org/sf/210678
|
||||||
|
|
||||||
- cgi.py's FieldStorage class should be more conservative with
|
* cgi.py's FieldStorage class should be more conservative with memory
|
||||||
memory in the face of large binary file uploads.
|
in the face of large binary file uploads.
|
||||||
|
|
||||||
http://www.python.org/sf/210674
|
http://www.python.org/sf/210674
|
||||||
|
|
||||||
There are two issues here: first, because
|
There are two issues here: first, because
|
||||||
read_lines_to_outerboundary() uses readline() it is possible
|
read_lines_to_outerboundary() uses readline() it is possible that a
|
||||||
that a large amount of data will be read into memory for a
|
large amount of data will be read into memory for a binary file
|
||||||
binary file upload. This should probably look at the
|
upload. This should probably look at the Content-Type header of the
|
||||||
Content-Type header of the section and do a chunked read if it's
|
section and do a chunked read if it's a binary type.
|
||||||
a binary type.
|
|
||||||
|
|
||||||
The second issue was related to the self.lines attribute, which
|
The second issue was related to the self.lines attribute, which was
|
||||||
was removed in revision 1.56 of cgi.py (see also):
|
removed in revision 1.56 of cgi.py (see also):
|
||||||
|
|
||||||
http://www.python.org/sf/219806
|
http://www.python.org/sf/219806
|
||||||
|
|
||||||
- urllib should support proxy definitions that contain just the
|
* urllib should support proxy definitions that contain just the host
|
||||||
host and port
|
and port
|
||||||
|
|
||||||
http://www.python.org/sf/210849
|
http://www.python.org/sf/210849
|
||||||
|
|
||||||
- urlparse should be updated to comply with RFC 2396, which
|
* urlparse should be updated to comply with RFC 2396, which defines
|
||||||
defines optional parameters for each segment of the path.
|
optional parameters for each segment of the path.
|
||||||
|
|
||||||
http://www.python.org/sf/210834
|
http://www.python.org/sf/210834
|
||||||
|
|
||||||
- The exceptions raised by pickle and cPickle are currently
|
* The exceptions raised by pickle and cPickle are currently
|
||||||
different; these should be unified (probably the exceptions
|
different; these should be unified (probably the exceptions should
|
||||||
should be defined in a helper module that's imported by both).
|
be defined in a helper module that's imported by both). [No bug
|
||||||
[No bug report; I just thought of this.]
|
report; I just thought of this.]
|
||||||
|
|
||||||
- More standard library routines should support Unicode. For
|
* More standard library routines should support Unicode. For
|
||||||
example, urllib.quote() could convert Unicode strings to UTF-8
|
example, urllib.quote() could convert Unicode strings to UTF-8 and
|
||||||
and then do the usual %HH conversion. But this is not the only
|
then do the usual %HH conversion. But this is not the only one!
|
||||||
one!
|
|
||||||
|
|
||||||
http://www.python.org/sf/216716
|
http://www.python.org/sf/216716
|
||||||
|
|
||||||
- There should be a way to say that you don't mind if str() or
|
* There should be a way to say that you don't mind if ``str()`` or
|
||||||
__str__() return a Unicode string object. Or a different
|
``__str__()`` return a Unicode string object. Or a different function
|
||||||
function -- ustr() has been proposed. Or something...
|
-- ``ustr()`` has been proposed. Or something...
|
||||||
|
|
||||||
http://sf.net/patch/?func=detailpatch&patch_id=101527&group_id=5470
|
http://sf.net/patch/?func=detailpatch&patch_id=101527&group_id=5470
|
||||||
|
|
||||||
- Killing a thread from another thread. Or maybe sending a
|
* Killing a thread from another thread. Or maybe sending a signal.
|
||||||
signal. Or maybe raising an asynchronous exception.
|
Or maybe raising an asynchronous exception.
|
||||||
|
|
||||||
http://www.python.org/sf/221115
|
http://www.python.org/sf/221115
|
||||||
|
|
||||||
- The debugger (pdb) should understand packages.
|
* The debugger (pdb) should understand packages.
|
||||||
|
|
||||||
http://www.python.org/sf/210631
|
http://www.python.org/sf/210631
|
||||||
|
|
||||||
- Jim Fulton suggested the following:
|
* Jim Fulton suggested the following:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
I wonder if it would be a good idea to have a new kind of
|
I wonder if it would be a good idea to have a new kind of
|
||||||
temporary file that stored data in memory unless:
|
temporary file that stored data in memory unless:
|
||||||
|
@ -190,139 +190,143 @@ Standard Library
|
||||||
|
|
||||||
http://www.python.org/sf/415692
|
http://www.python.org/sf/415692
|
||||||
|
|
||||||
- Jim Fulton pointed out that binascii's b2a_base64() function
|
* Jim Fulton pointed out that binascii's b2a_base64() function has
|
||||||
has situations where it makes sense not to append a newline,
|
situations where it makes sense not to append a newline, or to
|
||||||
or to append something else than a newline.
|
append something else than a newline.
|
||||||
|
|
||||||
Proposal:
|
Proposal:
|
||||||
|
|
||||||
- add an optional argument giving the delimiter string to be
|
- add an optional argument giving the delimiter string to be
|
||||||
appended, defaulting to "\n"
|
appended, defaulting to "\\n"
|
||||||
|
|
||||||
- possibly special-case None as the delimiter string to avoid
|
- possibly special-case None as the delimiter string to avoid adding
|
||||||
adding the pad bytes too???
|
the pad bytes too???
|
||||||
|
|
||||||
http://www.python.org/sf/415694
|
http://www.python.org/sf/415694
|
||||||
|
|
||||||
- pydoc should be integrated with the HTML docs, or at least
|
* pydoc should be integrated with the HTML docs, or at least be able
|
||||||
be able to link to them.
|
to link to them.
|
||||||
|
|
||||||
http://www.python.org/sf/405554
|
http://www.python.org/sf/405554
|
||||||
|
|
||||||
- Distutils should deduce dependencies for .c and .h files.
|
* Distutils should deduce dependencies for .c and .h files.
|
||||||
|
|
||||||
http://www.python.org/sf/472881
|
http://www.python.org/sf/472881
|
||||||
|
|
||||||
- asynchat is buggy in the face of multithreading.
|
* asynchat is buggy in the face of multithreading.
|
||||||
|
|
||||||
http://www.python.org/sf/595217
|
http://www.python.org/sf/595217
|
||||||
|
|
||||||
- It would be nice if the higher level modules (httplib, smtplib,
|
* It would be nice if the higher level modules (httplib, smtplib,
|
||||||
nntplib, etc.) had options for setting socket timeouts.
|
nntplib, etc.) had options for setting socket timeouts.
|
||||||
|
|
||||||
http://www.python.org/sf/723287
|
http://www.python.org/sf/723287
|
||||||
|
|
||||||
- The curses library is missing two important calls: newterm() and
|
* The curses library is missing two important calls: newterm() and
|
||||||
delscreen()
|
delscreen()
|
||||||
|
|
||||||
http://www.python.org/sf/665572, http://bugs.debian.org/175590
|
http://www.python.org/sf/665572, http://bugs.debian.org/175590
|
||||||
|
|
||||||
- It would be nice if the built-in SSL socket type could be used
|
* It would be nice if the built-in SSL socket type could be used for
|
||||||
for non-blocking SSL I/O. Currently packages such as Twisted
|
non-blocking SSL I/O. Currently packages such as Twisted which
|
||||||
which implement async servers using SSL have to require third-party
|
implement async servers using SSL have to require third-party
|
||||||
packages such as pyopenssl.
|
packages such as pyopenssl.
|
||||||
|
|
||||||
- reST as a standard library module
|
* reST as a standard library module
|
||||||
|
|
||||||
- The import lock could use some redesign.
|
* The import lock could use some redesign.
|
||||||
|
|
||||||
http://www.python.org/sf/683658
|
http://www.python.org/sf/683658
|
||||||
|
|
||||||
- A nicer API to open text files, replacing the ugly (in some
|
* A nicer API to open text files, replacing the ugly (in some
|
||||||
people's eyes) "U" mode flag. There's a proposal out there to
|
people's eyes) "U" mode flag. There's a proposal out there to have
|
||||||
have a new built-in type textfile(filename, mode, encoding).
|
a new built-in type textfile(filename, mode, encoding). (Shouldn't
|
||||||
(Shouldn't it have a bufsize argument too?)
|
it have a bufsize argument too?)
|
||||||
|
|
||||||
- Support new widgets and/or parameters for Tkinter
|
* Support new widgets and/or parameters for Tkinter
|
||||||
|
|
||||||
- For a class defined inside another class, the __name__ should be
|
* For a class defined inside another class, the __name__ should be
|
||||||
"outer.inner", and pickling should work. (GvR is no longer certain
|
"outer.inner", and pickling should work. (GvR is no longer certain
|
||||||
this is easy or even right.)
|
this is easy or even right.)
|
||||||
|
|
||||||
http://www.python.org/sf/633930
|
http://www.python.org/sf/633930
|
||||||
|
|
||||||
- Decide on a clearer deprecation policy (especially for modules)
|
* Decide on a clearer deprecation policy (especially for modules) and
|
||||||
and act on it.
|
act on it.
|
||||||
|
|
||||||
http://mail.python.org/pipermail/python-dev/2002-April/023165.html
|
http://mail.python.org/pipermail/python-dev/2002-April/023165.html
|
||||||
|
|
||||||
- Provide alternatives for common uses of the types module;
|
* Provide alternatives for common uses of the types module; Skip
|
||||||
Skip Montanaro has posted a proto-PEP for this idea:
|
Montanaro has posted a proto-PEP for this idea:
|
||||||
|
|
||||||
http://mail.python.org/pipermail/python-dev/2002-May/024346.html
|
http://mail.python.org/pipermail/python-dev/2002-May/024346.html
|
||||||
|
|
||||||
- Use pending deprecation for the types and string modules. This
|
* Use pending deprecation for the types and string modules. This
|
||||||
requires providing alternatives for the parts that aren't
|
requires providing alternatives for the parts that aren't covered
|
||||||
covered yet (e.g. string.whitespace and types.TracebackType).
|
yet (e.g. string.whitespace and types.TracebackType). It seems we
|
||||||
It seems we can't get consensus on this.
|
can't get consensus on this.
|
||||||
|
|
||||||
- Lazily tracking tuples?
|
* Lazily tracking tuples?
|
||||||
|
|
||||||
http://mail.python.org/pipermail/python-dev/2002-May/023926.html
|
http://mail.python.org/pipermail/python-dev/2002-May/023926.html
|
||||||
http://www.python.org/sf/558745
|
http://www.python.org/sf/558745
|
||||||
|
|
||||||
- Make 'as' a keyword. It has been a pseudo-keyword long enough.
|
* Make 'as' a keyword. It has been a pseudo-keyword long enough.
|
||||||
(It's deprecated in 2.5, and will become a keyword in 2.6.)
|
(It's deprecated in 2.5, and will become a keyword in 2.6.)
|
||||||
|
|
||||||
|
|
||||||
C API wishes
|
C API wishes
|
||||||
|
============
|
||||||
|
|
||||||
- Add C API functions to help Windows users who are building
|
* Add C API functions to help Windows users who are building embedded
|
||||||
embedded applications where the FILE * structure does not match
|
applications where the FILE \* structure does not match the FILE \*
|
||||||
the FILE * the interpreter was compiled with.
|
the interpreter was compiled with.
|
||||||
|
|
||||||
http://www.python.org/sf/210821
|
http://www.python.org/sf/210821
|
||||||
|
|
||||||
See this bug report for a specific suggestion that will allow a
|
See this bug report for a specific suggestion that will allow a
|
||||||
Borland C++ builder application to interact with a python.dll
|
Borland C++ builder application to interact with a python.dll build
|
||||||
build with MSVC.
|
with MSVC.
|
||||||
|
|
||||||
|
|
||||||
Tools
|
Tools
|
||||||
|
=====
|
||||||
|
|
||||||
- Python could use a GUI builder.
|
* Python could use a GUI builder.
|
||||||
|
|
||||||
http://www.python.org/sf/210820
|
http://www.python.org/sf/210820
|
||||||
|
|
||||||
|
|
||||||
Building and Installing
|
Building and Installing
|
||||||
|
=======================
|
||||||
|
|
||||||
- Modules/makesetup should make sure the 'config.c' file it
|
* Modules/makesetup should make sure the 'config.c' file it generates
|
||||||
generates from the various Setup files, is valid C. It currently
|
from the various Setup files, is valid C. It currently accepts
|
||||||
accepts module names with characters that are not allowable in
|
module names with characters that are not allowable in Python or C
|
||||||
Python or C identifiers.
|
identifiers.
|
||||||
|
|
||||||
http://www.python.org/sf/216326
|
http://www.python.org/sf/216326
|
||||||
|
|
||||||
- Building from source should not attempt to overwrite the
|
* Building from source should not attempt to overwrite the
|
||||||
Include/graminit.h and Parser/graminit.c files, at least for
|
Include/graminit.h and Parser/graminit.c files, at least for people
|
||||||
people downloading a source release rather than working from
|
downloading a source release rather than working from Subversion or
|
||||||
Subversion or snapshots. Some people find this a problem in unusual
|
snapshots. Some people find this a problem in unusual build
|
||||||
build environments.
|
environments.
|
||||||
|
|
||||||
http://www.python.org/sf/219221
|
http://www.python.org/sf/219221
|
||||||
|
|
||||||
- The configure script has probably grown a bit crufty with age and may
|
* The configure script has probably grown a bit crufty with age and
|
||||||
not track autoconf's more recent features very well. It should be
|
may not track autoconf's more recent features very well. It should
|
||||||
looked at and possibly cleaned up.
|
be looked at and possibly cleaned up.
|
||||||
|
|
||||||
http://mail.python.org/pipermail/python-dev/2004-January/041790.html
|
http://mail.python.org/pipermail/python-dev/2004-January/041790.html
|
||||||
|
|
||||||
- Make Python compliant to the FHS (the Filesystem Hierarchy Standard)
|
* Make Python compliant to the FHS (the Filesystem Hierarchy
|
||||||
|
Standard)
|
||||||
|
|
||||||
http://bugs.python.org/issue588756
|
http://bugs.python.org/issue588756
|
||||||
|
|
||||||
|
..
|
||||||
Local Variables:
|
Local Variables:
|
||||||
mode: indented-text
|
mode: indented-text
|
||||||
indent-tabs-mode: nil
|
indent-tabs-mode: nil
|
||||||
|
|
Loading…
Reference in New Issue