PEPs 273+302 have landed.

New ideas:

  - Add reST?

  - Fix new-style pickling

  - Remove __safe_for_unpickling__
This commit is contained in:
Guido van Rossum 2003-01-06 18:58:25 +00:00
parent dcab216455
commit 070e5cfa2e
1 changed files with 59 additions and 7 deletions

View File

@ -40,16 +40,27 @@ Open issues
- Set API issues; is the sets module perfect?
I expect it's good enough to stop polishing it until we've had
more widespread user experience.
- 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
have a new built-in type textfile(filename, mode, encoding).
(Shouldn't it have a bufsize argument too?)
Ditto.
- Fredrik Lundh's basetime proposal:
http://effbot.org/ideas/time-type.htm
I believe this is dead now.
- New widgets for Tkinter???
Has anyone gotten the time for this? *Are* there any new
widgets in Tk 8.4? Note that we've got better Tix support
already (though not on Windows yet).
Completed features for 2.3
@ -140,6 +151,15 @@ Completed features for 2.3
may be tweaking the API during the alpha test period, I consider
this module basically complete -- except for its documentation.
- PEP 273 Import Modules from Zip Archives Ahlstrom
Implemented as a part of the PEP 302 implementation work.
- PEP 302 New Import Hooks JvR
Implemented (though the 2.3a1 release contained some bugs that
have been fixed post-release).
Planned features for 2.3
@ -152,18 +172,50 @@ Planned features for 2.3
feedback to python-dev@python.org; I hope to maintain this for the
life of the 2.3 development process.
- reST is going to be used a lot in Zope3. Maybe it could become
a standard library module?
- I really, really, really would like to improve pickling of
new-style classes.
I've finally come to the conclusion that any solution to making
pickled new-style class instances (and hence pickled datetime
objects) more efficient will require adding new codes to the
pickle protocol.
We can do that in Python 2.3. Because this is backwards
incompatible, I propose that you have to request this protocol
explicitly. I propose to "upgrade' the binary flag to a general
"protocol version" flag, with values:
0 - original protocol
1 - binary protocol
2 - new protocol
The new protocol can contain an explicit pickle code for the new
datetime objects. That's about all the thinking I've done so
far. We need to decide on the new format, but first we must
figure out ways how to efficiently pickle and unpickle subclass
instances of (picklable) built-in types, preferably without
having to copy all the data twice, and instances of new-style
classes with slots. And we need to implement these twice: in
Python for pickle.py and in C for cPickle.py.
- I'd also like to get rid of __safe_for_unpickling__ and all
other pseudo security features. Attempting to unpickle pickles
from an untrusted source is insane, and nothing can help us
there; I'd rather make the marshal protocol bulletproof (all it
needs is a few more checks for inconsistent data and a little
better error handling).
- For a class defined inside another class, the __name__ should be
"outer.inner", and pickling should work.
- PEP 273 Import Modules from Zip Archives Ahlstrom
There's a patch at http://www.python.org/sf/492105; an updated
patch at http://www.python.org/sf/645650; but my expectation is
that this will be subsumed by the PEP 302 work.
Ongoing tasks
- PEP 302 New Import Hooks JvR
This looks very promising. See http://www.python.org/sf/652586
The following are ongoing TO-DO items which we should attempt to
work on without hoping for completion by any particular date.
- Documentation: complete the distribution and installation
manuals.