Real pickling for bytes.

Restore complex pickling.
Use cPickle in io.py.
This commit is contained in:
Guido van Rossum 2007-04-11 05:40:58 +00:00
parent 0ad0812edb
commit 0dd32e246c
3 changed files with 29 additions and 6 deletions

View file

@ -23,12 +23,18 @@ def constructor(object):
if not callable(object):
raise TypeError("constructors must be callable")
# Example: provide pickling support for bytes objects.
# Example: provide pickling support for complex numbers.
def _pickle_bytes(b):
return bytes, (str(b),)
try:
complex
except NameError:
pass
else:
pickle(bytes, _pickle_bytes)
def pickle_complex(c):
return complex, (c.real, c.imag)
pickle(complex, pickle_complex, complex)
# Support for pickling new-style objects

View file

@ -30,10 +30,14 @@ __all__ = ["BlockingIOError", "open", "IOBase", "RawIOBase", "FileIO",
import os
import sys
import codecs
import pickle
import _fileio
import warnings
try:
import cPickle as pickle
except ImportError:
import pickle
# XXX Shouldn't we use st_blksize whenever we can?
DEFAULT_BUFFER_SIZE = 8 * 1024 # bytes