| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
M rpc.py
SF Bug 676398 Doesn't handle non-built-in exceptions
1. Move exception formatting to the subprocess; allows subclassing of
exceptions, including subclasses created in the shell without
introducing excessive complexity in the RPC mechanism.
2. Provide access to linecache from subprocess to support this.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
classes have a __reduce__ that returns (self.__class__,
self.__getstate__()). tzinfo.__reduce__() is a bit smarter, calling
__getinitargs__ and __getstate__ if they exist, and falling back to
__dict__ if it exists and isn't empty.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for this iconv() implementation in the init function.
For encoding: use a byteswapped version of the input if
neccessary.
For decoding: byteswap every piece returned by iconv()
if neccessary (but not those pieces returned from the
callback)
Comment out test_sane() in the test script, because
whether this works depends on whether byte swapping
is neccessary or not (an on Py_UNICODE_SIZE)
|
|
|
|
| |
in 2.3.
|
|
|
|
| |
_instantiate() method.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on the type instead of self.save(t). This defeated the purpose of
NEWOBJ, because it didn't generate a BINGET opcode when t was already
memoized; but moreover, it would generate multiple BINPUT opcodes for
the same type! pickletools.dis() doesn't like this.
How I found this? I was playing with picklesize.py in the datetime
sandbox, and noticed that protocol 2 pickles for multiple objects were
in fact larger than protocol 1 pickles! That was suspicious, so I
decided to disassemble one of the pickles.
This really needs a unit test, but I'm exhausted. I'll be late for
work as it is. :-(
|
| |
|
|
|
|
|
|
|
|
|
| |
the same function, don't save the state or write a BUILD opcode. This
is so that a type (e.g. datetime :-) can support protocol 2 using
__getnewargs__ while also supporting protocol 0 and 1 using
__getstate__. (Without this, the state would be pickled twice with
protocol 2, unless __getstate__ is defined to return None, which
breaks protocol 0 and 1.)
|
|
|
|
| |
Contributed by Jp Calderone.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
popped a MARK, but without stack emulation the disassembler couldn't
know that, and subsequent indentation got hosed.
Now the disassembler does do enough stack emulation to catch this. While
I was at it, also added lots of sanity checks for other stack operations,
and correct use of the memo. This goes (I think) a long way toward being
a "pickle verifier" now too.
|
|
|
|
|
|
|
|
| |
types. The special handling for these can now be removed from save_newobj().
Add some testing for this.
Also add support for setting the 'fast' flag on the Python Pickler class,
which suppresses use of the memo.
|
|
|
|
| |
want it to be. Log both the old and new mode.
|
|
|
|
| |
- Added test_aepack to the mac/darwin specific tests.
|
| |
|
|
|
|
|
|
| |
[ 676521 ] parser module validation failure
bugfix candidate.
|
| |
|
| |
|
|
|
|
| |
date values to FSSpec.{Get,Set}Dates didn't work in MacPython-OS9. Fixed.
|
|
|
|
|
| |
between cPickle and pickle.py regarding __safe_for_unpickling__ before
Python 2.3.
|
| |
|
| |
|
|
|
|
| |
TempAbstractPickleTests, because they don't work with cPickle yet.
|
| |
|
|
|
|
| |
pickletools: Import decode_long from pickle instead of duplicating it.
|
|
|
|
|
| |
sys.platform != mac. Likewise expect test_win{reg,sound} to get skipped
on non-win32 platforms.
|
| |
|
| |
|
|
|
|
|
|
| |
only get run by test_pickle.py now (& not by test_cpickle.py). This
should be undone when protocol 2 is implemented in cPickle too.
test_cpickle should pass again.
|
|
|
|
| |
__getnewargs__ method.
|
|
|
|
| |
Also tidied up a few lines, got rid of apply(), added a comment.
|
|
|
|
| |
fails, for reasons unrelated to this patch.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
object.__reduce__, do a getattr() on the class so we can explicitly
test for it. The reduce()-calling code becomes a bit more regular as
a result.
Also add support slots: if an object has slots, the default state is
(dict, slots) where dict is the __dict__ or None, and slots is a dict
mapping slot names to slot values. We do a best-effort approach to
find slot names, assuming the __slots__ fields of classes aren't
modified after class definition time to misrepresent the actual list
of slots defined by a class.
|
|
|
|
| |
non-windowing Python.
|
|
|
|
| |
macostools.
|
|
|
|
| |
isn't checked in yet. :-(
|
|
|
|
|
|
| |
possibility of calling save_reduce(). Add a special hack for this.
The tests for this are much simpler now (no __getstate__ or
__getnewargs__ needed).
|
|
|
|
| |
Check return value of PyLong_AsDouble(), it can return an error.
|
|
|
|
| |
after checking for __reduce__.
|
|
|
|
| |
fixed a bug in load_newobj().
|
| |
|
|
|
|
| |
so merge from the bsddb-bsddb3-schizo-branch back to the trunk.
|
| |
|