- 19 Dec, 2001 1 commit
-
-
Guido van Rossum authored
metaclass, reported by Dan Parisien. Objects that are instances of custom metaclasses, i.e. whose class is a subclass of 'type', should be pickled the same as new-style classes (objects whose class is 'type'). This can't be done through a dispatch table entry, and the __reduce__ trick doesn't work for these, since it finds the unbound __reduce__ for instances of the class (inherited from 'object'). So check explicitly using issubclass().
-
- 15 Nov, 2001 1 commit
-
-
Barry Warsaw authored
load_inst(): Implement the security hook that cPickle already had. When unpickling callables which are not classes, we look to see if the object has an attribute __safe_for_unpickling__. If this exists and has a true value, then we can call it to create the unpickled object. Otherwise we raise an UnpicklingError. find_class(): We no longer mask ImportError, KeyError, and AttributeError by transforming them into SystemError. The latter is definitely not the right thing to do, so we let the former three exceptions simply propagate up if they occur, i.e. we remove the try/except!
-
- 09 Nov, 2001 1 commit
-
-
Jeremy Hylton authored
-
- 15 Oct, 2001 1 commit
-
-
Jeremy Hylton authored
Remove test code. It's available in Lib/test/picklertester.py.
-
- 21 Sep, 2001 1 commit
-
-
Guido van Rossum authored
-
- 28 Aug, 2001 1 commit
-
-
Tim Peters authored
64-bit INTs on 32-bit boxes (where they become longs). Also exploit that int(str) and long(str) will ignore a trailing newline (saves creating a new string at the Python level). pickletester.py: Simulate reading a pickle produced by a 64-bit box.
-
- 17 Aug, 2001 1 commit
-
-
Guido van Rossum authored
is pickled as a global must now exist by the name under which it is pickled, otherwise the pickling fails. Previously, such things would fail on unpickling, or unpickle as the wrong global object. I'm hoping that this won't break existing code that is playing tricks with this. I need a volunteer to do this for cPickle too.
-
- 02 Aug, 2001 1 commit
-
-
Tim Peters authored
-
- 10 Apr, 2001 2 commits
-
-
Tim Peters authored
pickle.py The code implicitly assumed that all ints fit in 4 bytes, causing all sorts of mischief (from nonsense results to corrupted pickles). Repaired that. marshal.c The int marshaling code assumed that right shifts of signed longs sign-extend. Repaired that.
-
Tim Peters authored
parens, but no "while" test. Removed the former.
-
- 18 Feb, 2001 1 commit
-
-
Skip Montanaro authored
-
- 09 Feb, 2001 1 commit
-
-
Tim Peters authored
-
- 07 Feb, 2001 1 commit
-
-
Skip Montanaro authored
-
- 22 Jan, 2001 1 commit
-
-
Guido van Rossum authored
Allow pickle.py to be using with Jython unicode strings
-
- 15 Jan, 2001 1 commit
-
-
Tim Peters authored
-
- 19 Dec, 2000 1 commit
-
-
Guido van Rossum authored
bugs #126161 and 123634). The solution doesn't use the unicode-escape encoding; that has other problems (it seems not 100% reversible). Rather, it transforms the input Unicode object slightly before encoding it using raw-unicode-escape, so that the decoding will reconstruct the original string: backslash and newline characters are translated into their \uXXXX counterparts. This is backwards incompatible for strings containing backslashes, but for some of those strings, the pickling was already broken.
-
- 13 Dec, 2000 1 commit
-
-
Guido van Rossum authored
-
- 15 Sep, 2000 1 commit
-
-
Jeremy Hylton authored
Strings are unpickled by calling eval on the string's repr. This change makes pickle work like cPickle; it checks if the pickled string is safe to eval and raises ValueError if it is not. test suite modifications: Verify that pickle catches a variety of insecure string pickles Make test_pickle and test_cpickle use exactly the same test suite Add test for pickling recursive object
-
- 29 Jun, 2000 1 commit
-
-
Guido van Rossum authored
-
- 10 Mar, 2000 1 commit
-
-
Guido van Rossum authored
mode ('V') and in binary mode ('X').
-
- 04 Feb, 2000 1 commit
-
-
Guido van Rossum authored
who writes: Here is batch 2, as a big collection of CVS context diffs. Along with moving comments into docstrings, i've added a couple of missing docstrings and attempted to make sure more module docstrings begin with a one-line summary. I did not add docstrings to the methods in profile.py for fear of upsetting any careful optimizations there, though i did move class documentation into class docstrings. The convention i'm using is to leave credits/version/copyright type of stuff in # comments, and move the rest of the descriptive stuff about module usage into module docstrings. Hope this is okay.
-
- 10 Oct, 1999 1 commit
-
-
Guido van Rossum authored
I found the following patch helpful in tracking down a bug in some code. I had appended time, the module, instead of time.time(). Not sure if it is generally true that printing the repr of the object is good, but I expect that most unpicklable things will have fairly information and concise reprs (like files or sockets or modules).
-
- 25 Mar, 1999 1 commit
-
-
Guido van Rossum authored
points out) it doesn't work in JPython Applets.
-
- 22 Oct, 1998 1 commit
-
-
Guido van Rossum authored
""" I've attached a long overdue patch to pickle.py to bring it to format 1.3, which is the same as 1.2 except that the binary float format is supported. This is done using the new platform-indepent format features of struct. This patch also gets rid of the undocumented obsolete Pickler dump_special method. """
-
- 15 Sep, 1998 1 commit
-
-
Guido van Rossum authored
there's an __getinitargs__() method), if a TypeError occurs, catch and reraise it but add info to the error about the class name being instantiated. This makes debugging a lot easier if __getinitargs__() returns something bogus (e.g. a string instead of a singleton tuple).
-
- 27 May, 1998 1 commit
-
-
Jeremy Hylton authored
walks and quacks like a dictionary.
-
- 13 Apr, 1998 1 commit
-
-
Guido van Rossum authored
would still try to call the class...
-
- 31 Mar, 1998 2 commits
-
-
Guido van Rossum authored
-
Guido van Rossum authored
-
- 26 Mar, 1998 1 commit
-
-
Guido van Rossum authored
-
- 13 Feb, 1998 1 commit
-
-
Fred Drake authored
-
- 26 Jan, 1998 1 commit
-
-
Barry Warsaw authored
Fixed problems when unpickling in restricted execution environments. These methods try to assign to an instance's __class__ attribute, or access the instances __dict__, which are prohibited in REE. For the first two methods, I re-implemented the old behavior when assignment to value.__class__ fails. For the load_build() I also re-implemented the old behavior when inst.__dict__.update() fails but this means that unpickling in REE is semantically different than unpickling in unrestricted mode.
-
- 10 Dec, 1997 2 commits
-
-
Guido van Rossum authored
The attached patch adds the following behavior to the handling of REDUCE codes: - A user-defined type may have a __reduce__ method that returns a string rather than a tuple, in which case the object is saved as a global object with a name given by the string returned by reduce. This was a feature added to cPickle a long time ago. - User-defined types can now support unpickling without executing a constructor. The second value returned from '__reduce__' can now be None, rather than an argument tuple. On unpickling, if the second value returned from '__reduce__' during pickling was None, then rather than calling the first value returned from '__reduce__', directly, the '__basicnew__' method of the first value returned from '__reduce__' is called without arguments. I also got rid of a few of Chris' extra ()s, which he used to make python ifs look like C ifs.
-
Guido van Rossum authored
mode. The pickler always uses base 10 so the default base should be fine. (The base gets us in trouble when there's no strop module, as the atoi() in string.py only supports base 10. This is for JPython.)
-
- 05 Dec, 1997 1 commit
-
-
Guido van Rossum authored
not define __getinitargs__, bypass the __init__ constructor completely. This uses the trick of instantiating an empty dummy class and then changing inst.__class__ to the real class. This is done in two places: once for the INST and once for the OBJ format code. Also replaced the much outdated long doc string with a short summary of the module; the information of that doc string is already incorporated in the library reference manual.
-
- 12 Sep, 1997 1 commit
-
-
Guido van Rossum authored
- Don't use "from copy_reg import *". - Use cls.__module__ instead of calling whichobject(cls, cls.__name__); also try __module__ in whichmodule(), just in case. - After calling save_reduce(), add the object to the memo.
-
- 08 Sep, 1997 1 commit
-
-
Guido van Rossum authored
instance, use inst.__dict__.update(value) instead of a for loop with setattr() over the value.keys(). This is more consistent (the pickling doesn't use getattr() either but pickles inst.__dict__) and avoids problems with instances that have a __setattr__ hook. But it *is* a semantic change (because the setattr hook is no longer used). So beware!
-
- 03 Sep, 1997 1 commit
-
-
Guido van Rossum authored
copy.deepcopy() a while ago. Can't reproduce this but it doesn't break anything and it looks like the code could have the same problem.
-
- 25 Apr, 1997 1 commit
-
-
Guido van Rossum authored
- which_module() search __main__ last; - load_inst() no longer checks that the classname really refers to a class.
-
- 11 Apr, 1997 1 commit
-
-
Guido van Rossum authored
-