summaryrefslogtreecommitdiffstats
path: root/Lib/pickletools.py
Commit message (Collapse)AuthorAgeFilesLines
* dis(): Added an optional memo argument, so that multiple pickles in aTim Peters2003-02-051-2/+38
| | | | | file can be dumped without (bogus) complaint if the the pickles were created using a single pickle memo.
* It's Official: for LONG1/LONG4, a "byte count" of 0 is taken as aTim Peters2003-01-311-3/+8
| | | | | shortcut meaning 0L. This allows LONG1 to encode 0L in two bytes total.
* Updated the INST/OBJ docs, to say they really are (almost) identicalTim Peters2003-01-301-0/+6
| | | | in 2.3.
* dis(): Simplified stack emulation a bit.Tim Peters2003-01-301-14/+16
|
* dis(): This had a problem with proto 0 pickles, in that POP sometimesTim Peters2003-01-291-17/+113
| | | | | | | | | | 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.
* minor grammar tweaksSkip Montanaro2003-01-291-5/+5
|
* Document the demise of all pretenses of safety, and the differenceGuido van Rossum2003-01-291-4/+17
| | | | | between cPickle and pickle.py regarding __safe_for_unpickling__ before Python 2.3.
* Whitespace normalization.Tim Peters2003-01-291-4/+4
|
* pickle: Comment repair.Tim Peters2003-01-291-23/+2
| | | | pickletools: Import decode_long from pickle instead of duplicating it.
* Use raw-mode docstring whenever there's an escape code in an example --Tim Peters2003-01-281-42/+42
| | | | they're easier to read this way.
* _dis_test should be a raw string now that it contains \x escapes.Guido van Rossum2003-01-281-1/+1
|
* dis(): Not all opcodes are printable anymore, so print the reprTim Peters2003-01-281-126/+150
| | | | | | | | | | of the opcode character instead (but stripping the quotes). Added a proto 2 test section for the canonical recursive-tuple case. Note that since pickle's save_tuple() takes different paths depending on tuple length now, beefier tests are really needed (but not in pickletools); the "short tuple" case tried here was actually broken yesterday, and it's subtle stuff so needs to be tested.
* Fix one disassembly output now that empty tuples are no longerGuido van Rossum2003-01-281-12/+11
| | | | | memoized in text mode. Fixed some variable names in the disassembler doctest.
* Comments.Tim Peters2003-01-281-1/+5
|
* Now that proto2 is defined, replaced XXX blocks with text about it.Tim Peters2003-01-281-175/+206
| | | | | Also moved the proto2 opcode descriptors into the sections they fit (like TUPLE{1,2,3} in the group of tuple-building opcodes; etc).
* Use proper function name in exception messagesNeal Norwitz2003-01-281-2/+2
|
* Removed the new LONG2 opcode: it's extravagant. If LONG1 isn't enough,Tim Peters2003-01-281-51/+13
| | | | | | | | | | | | | | | | | | | then the embedded argument consumes at least 256 bytes. The difference between a 3-byte prefix (LONG2 + 2 bytes) and a 5-byte prefix (LONG4 + 4 bytes) is at worst less than 1%. Note that binary strings and binary Unicode strings also have only "size is 1 byte, or size is 4 bytes?" flavors, and I expect for the same reason. The only place a 2-byte thingie was used was in BININT2, where the 2 bytes make up the *entire* embedded argument (and now EXT2 also does this); that's a large savings over 4 bytes, because the total opcode+argument size is so small in the BININT2/EXT2 case. Removed the TAKEN_FROM_ARGUMENT "number of bytes" code, and bifurcated it into TAKEN_FROM_ARGUMENT1 and TAKEN_FROM_ARGUMENT4. Now there's enough info in ArgumentDescriptor objects to deduce the # of bytes consumed by each opcode. Rearranged the order in which proto2 opcodes are listed in pickle.py.
* Documented the 2's-comp business for the new long opcodes.Tim Peters2003-01-271-3/+3
|
* Whitespace normalization.Tim Peters2003-01-271-3/+3
|
* decode_long(): Simplified the "is it negative?" test.Tim Peters2003-01-271-2/+5
|
* Begin the change from 'binary vs. text mode' to 'protocol 0, 1, 2'.Guido van Rossum2003-01-271-5/+5
| | | | The protocol now defaults to 1. Protocol 2 is still unimplemented.
* Begin documenting protocol 2.Guido van Rossum2003-01-271-0/+288
|
* Remove a stray quote.Guido van Rossum2003-01-271-1/+1
|
* Repaired comment.Tim Peters2003-01-271-2/+2
|
* stringnl_noescape_pair(): changed the reader to separate the twoTim Peters2003-01-271-6/+6
| | | | | | | component strings by a blank instead of a period. Guido pointed out that the component strings (at least the first one) can be dotted already. find_class() is overridable too, so only God knows all the possibilities that make sense to someone.
* Moving pickletools.py from the sandbox into the std library. I startedTim Peters2003-01-271-0/+1794
this over the weekend, and it made faster & better progress than I expected -- it's already useful <wink>.