205 lines
7.8 KiB
Plaintext
205 lines
7.8 KiB
Plaintext
PEP: 42
|
||
Title: Feature Requests
|
||
Version: $Revision$
|
||
Author: Jeremy Hylton <jeremy@beopen.com>
|
||
Status: Active
|
||
Type: Informational
|
||
Created: 12-Sep-2000
|
||
|
||
Introduction
|
||
|
||
This PEP contains a list of feature requests that may be
|
||
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
|
||
PEP can be listed here until its own PEP is created. See
|
||
pep-0000.txt for details.
|
||
|
||
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
|
||
bugs (which should ideally be less than a page). Marked as Closed, they
|
||
tend to be forgotten. The procedure now is: if a bug report is really
|
||
a feature request, add the feature request to this PEP; mark the bug as
|
||
"feature request", "later", and "closed"; and add a comment to the bug
|
||
saying that this is the case (mentioning the PEP explicitly). It is
|
||
also acceptable to move large feature requests directly from the bugs
|
||
database to a separate PEP.
|
||
|
||
|
||
Core Language / Builtins
|
||
|
||
- A builtin function that returns the number of bytes an object
|
||
uses internally. Apparently mxTools has a sizeof function that
|
||
returns the size of the object struct itself.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110835&group_id=5470
|
||
|
||
- Add C API functions to help Windows users who are building
|
||
embedded applications where the FILE * structure does not match
|
||
the FILE * the interpreter was compiled with.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110821&group_id=5470
|
||
|
||
See this bug report for a specific suggestion that will allow a
|
||
Borland C++ builder application to interact with a python.dll
|
||
build with MSVC.
|
||
|
||
- "continue" inside "try" should work as expect instead of raising
|
||
SyntaxError. The current behavior is considered an implementation
|
||
limit.
|
||
|
||
while 1:
|
||
try:
|
||
continue
|
||
except:
|
||
pass
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110830&group_id=5470
|
||
|
||
- When the compiler pass complains about something,
|
||
e.g. "continue" inside "try", it should complain about the
|
||
*first* error, not the second or last.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&group_id=5470&bug_id=115143
|
||
|
||
|
||
Standard Library
|
||
|
||
- The test suite is incomplete (and probably always will be).
|
||
This is a reminder to people that more regression tests are
|
||
needed.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&group_id=5470&bug_id=110819
|
||
|
||
- The urllib module should support proxies which require
|
||
authenication. See SourceForge bug #110619 for information:
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110619&group_id=5470
|
||
|
||
- Support passive FTP via urllib
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110848&group_id=5470
|
||
|
||
- Use objects with attributes in place of tuples of values for
|
||
return values in several places in the library. Two specific
|
||
APIs which could use this treatment include os.stat() and
|
||
os.statvfs(); see SourceForge bug #111481:
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=111481&group_id=5470
|
||
|
||
which shows very specifically why this approach is better than
|
||
the tuple approach: additional attributes can be added as needed
|
||
without having as detrimental an affect on existing code.
|
||
|
||
- os.rename() should be modified to handle EXDEV errors on
|
||
platforms that don't allow rename() to operate across filesystem
|
||
boundaries by copying the file over and removing the original.
|
||
Linux is one system that requires this treatment.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=112317&group_id=5470
|
||
|
||
- signal handling doesn't always work as expected. E.g. if
|
||
sys.stdin.readline() is interrupted by a (returning) signal
|
||
handler, it returns "". It would be better to make it raise an
|
||
exception (corresponding to EINTR) or to restart. But these
|
||
changes would have to applied to all places that can do blocking
|
||
interruptable I/O. So it's a big project.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110599&group_id=5470
|
||
|
||
- Ensure that all .py files in the std library use 4-space indents and
|
||
no hard tabs. This was actually a PEP200 precondition for the
|
||
release of 2.0b1, but got misinterpreted as the weaker condition that
|
||
tabnanny not complain. Tim Peters will do this now, but, since about
|
||
250 files are affected, will wait until after 2.0final is released.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=114557&group_id=5470
|
||
|
||
- Port the Python SSL code to Windows.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110683&group_id=5470
|
||
|
||
- Extend Windows utime to accept directory paths.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=114245&group_id=5470
|
||
|
||
- Extend copy.py to class, module & function types.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=114553&group_id=5470
|
||
|
||
- Better checking for bad input to marshal.load*().
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=114754&group_id=5470
|
||
|
||
- Generalize eval to accept any mapping objects for locals and globals.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=115126&group_id=5470
|
||
|
||
- Add a portable implementation of time.strptime() that works in
|
||
clearly defined ways on all platforms.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=115146&group_id=5470
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=112244&group_id=5470
|
||
|
||
- rfc822.py should be more lenient than the spec in the types of
|
||
address fields it parses. Specifically, an invalid address of
|
||
the form "From: Amazon.com <delivers-news2@amazon.com>" should
|
||
be parsed correctly.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110678&group_id=5470
|
||
|
||
- cgi.py's FieldStorage class should be more conservative with
|
||
memory in the face of large binary file uploads.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110674&group_id=5470
|
||
|
||
There are two issues here: first, because
|
||
read_lines_to_outerboundary() uses readline() it is possible
|
||
that a large amount of data will be read into memory for a
|
||
binary file upload. This should probably look at the
|
||
Content-Type header of the section and do a chunked read if it's
|
||
a binary type.
|
||
|
||
Second, because the lines that are read are stored in an
|
||
instance attribute (self.lines -- a list), the uploaded data is
|
||
never freed. self.lines isn't definied as part of the public
|
||
interface it /might/ be safe to remove it. OTOH, removing it
|
||
will break code clever and nosy code.
|
||
|
||
- urllib should support proxy definitions that contain just the
|
||
host and port
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110849&group_id=5470
|
||
|
||
- urlparse should be updated to comply with RFC 2396, which
|
||
defines optional parameters for each segment of the page.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110834&group_id=5470
|
||
|
||
Tools
|
||
|
||
- IDLE should reload & recompile modules changed externally. To
|
||
be done properly, scripts will have to be run in a separate
|
||
process.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110841&group_id=5470
|
||
|
||
- Python could use a GUI builder.
|
||
|
||
http://sourceforge.net/bugs/?func=detailbug&bug_id=110820&group_id=5470
|
||
|
||
|
||
Building and Installing
|
||
|
||
- You should be able to configure and build Python with a
|
||
cross-compiler.
|
||
|
||
https://sourceforge.net/bugs/?func=detailbug&bug_id=110836&group_id=5470
|
||
|
||
|
||
|
||
Local Variables:
|
||
mode: indented-text
|
||
indent-tabs-mode: nil
|
||
End:
|