summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cPickle.c: Full support for the new LONG1 and LONG4. Added comments.Tim Peters2003-02-024-41/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assorted code cleanups; e.g., sizeof(char) is 1 by definition, so there's no need to do things like multiply by sizeof(char) in hairy malloc arguments. Fixed an undetected-overflow bug in readline_file(). longobject.c: Fixed a really stupid bug in the new _PyLong_NumBits. pickle.py: Fixed stupid bug in save_long(): When proto is 2, it wrote LONG1 or LONG4, but forgot to return then -- it went on to append the proto 1 LONG opcode too. Fixed equally stupid cancelling bugs in load_long1() and load_long4(): they *returned* the unpickled long instead of pushing it on the stack. The return values were ignored. Tests passed before only because save_long() pickled the long twice. Fixed bugs in encode_long(). Noted that decode_long() is quadratic-time despite our hopes, because long(string, 16) is still quadratic-time in len(string). It's hex() that's linear-time. I don't know a way to make decode_long() linear-time in Python, short of maybe transforming the 256's-complement bytes into marshal's funky internal format, and letting marshal decode that. It would be more valuable to make long(string, 16) linear time. pickletester.py: Added a global "protocols" vector so tests can try all the protocols in a sane way. Changed test_ints() and test_unicode() to do so. Added a new test_long(), but the tail end of it is disabled because it "takes forever" under pickle.py (but runs very quickly under cPickle: cPickle proto 2 for longs is linear-time).
* The C pickle now knows how to deal with a proto= argument. AssortedTim Peters2003-02-012-56/+95
| | | | code cleanups, and purged more references to text-vs-binary modes.
* removed bizarre construct, no idea why it was there...Just van Rossum2003-02-011-1/+0
|
* patch #678211 from Robin DunnJust van Rossum2003-02-011-7/+15
|
* icon support by Robin Dunn, closes patch #678218Just van Rossum2003-02-011-1/+14
|
* Removed needless include of errno.h.Tim Peters2003-02-011-4/+0
|
* The module docstring had an RCS ID from 1999 embedded in it. EnoughTim Peters2003-02-011-3/+1
| | | | already <wink>.
* Trimmed trailing whitespace.Tim Peters2003-02-011-223/+223
|
* Added #defines for proto 2 opcodes; gave the Pickler a proto member;Tim Peters2003-02-011-16/+30
| | | | | removed woefully inadequate opcode docs and pointed to pickletools.py instead.
* New functions alloc_{time,datetime}. Got rid of all setstate-likeTim Peters2003-02-011-168/+123
| | | | | | | | | | functions. Reworked {time,datetime}_new() to do what their corresponding setstates used to do in their state-tuple-input paths, but directly, without constructing an object with throwaway state first. Tightened the "is this a state tuple input?" paths to check the presumed state string-length too, and to raise an exception if the optional second state element isn't a tzinfo instance (IOW, check these paths for type errors as carefully as the normal paths).
* There's no good reason for datetime objects to expose __getstate__()Tim Peters2003-02-013-66/+6
| | | | | | anymore either, so don't. This also allows to get rid of obscure code making __getnewargs__ identical to __getstate__ (hmm ... hope there wasn't more to this than I realize!).
* Neaten ref count test.Raymond Hettinger2003-02-011-1/+1
|
* Removed all uses of the out-of-favor __safe_for_unpickling__ magicTim Peters2003-02-015-79/+5
| | | | attr, and copy_reg.safe_constructors.
* All over: changed comments to reflect pickling is straightforward now,Tim Peters2003-02-011-7/+5
| | | | not the maze it was.
* delta_setstate(): This waS no longer referenced, so nukeit.Tim Peters2003-02-011-38/+2
| | | | delta_reduce(): Simplified.
* Move itertools module from the sandbox and into production.Raymond Hettinger2003-02-018-0/+2027
|
* The various datetime object __setstate__() methods are no longer publicTim Peters2003-01-312-117/+111
| | | | | | | | (pickling no longer needs them, and immutable objects shouldn't have visible __setstate__() methods regardless). Rearranged the code to put the internal setstate functions in the constructor sections. Repaired the timedelta reduce() method, which was still producing stuff that required a public timedelta.__setstate__() when unpickling.
* Changed the tests to stop using __setstate__(). __setstate__() noTim Peters2003-01-311-65/+31
| | | | | | longer needs to be public, and shoudn't be public because all datetime objects are immutable. The Python implementation has changed accordingly, but still need to change the C implementation.
* Squash compiler wng about signed/unsigned comparison mismatch.Tim Peters2003-01-311-1/+1
|
* Ignore the state returned by __reduce__ if it is Py_None.Guido van Rossum2003-01-311-0/+2
|
* Patch #669198: Add cflags to RC compile.Thomas Heller2003-01-311-0/+3
|
* Pass the preprocessor options also to the resource compilerThomas Heller2003-01-311-1/+1
| | | | | | when compiling .RC files. From Robin Dunn, fixes SF # 669198.
* Add extension management to __all__.Guido van Rossum2003-01-311-1/+2
|
* Change the default protocol back to 0.Guido van Rossum2003-01-311-8/+12
| | | | | Add a feature suggested by Tim: a negative protocol value means to use the largest protocol value supported.
* Another extension to reduce(). It can return a 4- or 5-tuple now.Guido van Rossum2003-01-311-67/+92
| | | | | | | | | | | | | | The 4th item can be None or an iterator yielding list items, which are used to append() or extend() the object. The 5th item can be None or an iterator yielding a dict's (key, value) pairs, which are stuffed into the object using __setitem__. Also (as a separate, though related, feature) add "batching" for list and dict items. If you pickled a dict or list with a million items in the past, it would push a million items onto the stack. It now pushes only 1000 items at a time on the stack, using repeated APPENDS or SETITEMS opcodes. (For lists, I hope that using many short extend() calls doesn't exhibit quadratic behavior.)
* Document __module__.Jeremy Hylton2003-01-311-3/+11
|
* Provide __module__ attributes for functions defined in C and Python.Jeremy Hylton2003-01-318-18/+114
| | | | | | | | | | | | | | __module__ is the string name of the module the function was defined in, just like __module__ of classes. In some cases, particularly for C functions, the __module__ may be None. Change PyCFunction_New() from a function to a macro, but keep an unused copy of the function around so that we don't change the binary API. Change pickle's save_global() to use whichmodule() if __module__ is None, but add the __module__ logic to whichmodule() since it might be used outside of pickle.
* SF patch #678257 by Geoff Talvola.Guido van Rossum2003-01-311-1/+1
| | | | | In sendall(), do an internal select before each send() call, instead of only for the first one.
* SF patch 676472 by Geoff Talvola, reviewed by Ben Laurie.Guido van Rossum2003-01-311-13/+65
| | | | | | | | | | | | Geoff writes: This is yet another patch to _ssl.c that sets the underlying BIO to non-blocking if the socket being wrapped is non-blocking. It also correctly loops when SSL_connect, SSL_write, or SSL_read indicates that it needs to read or write more bytes. This seems to fix bug #673797 which was not fixed by my previous patch.
* I believe this fixesMichael W. Hudson2003-01-311-2/+3
| | | | | | [ 669692 ] pdb user_call breakage What an odd interface! I guess I should have read the docstring, though.
* Change the treatment of positions returned by PEP293Walter Dörwald2003-01-315-41/+122
| | | | | | | | | | | | | | | | error handers in the Unicode codecs: Negative positions are treated as being relative to the end of the input and out of bounds positions result in an IndexError. Also update the PEP and include an explanation of this in the documentation for codecs.register_error. Fixes a small bug in iconv_codecs: if the position from the callback is negative *add* it to the size instead of substracting it. From SF patch #677429.
* Pass the object to save_reduce(), so the memoize() call can go intoGuido van Rossum2003-01-311-3/+8
| | | | | save_reduce(), before the state is pickled. This makes it possible for an object to be referenced from its own (mutable) state.
* Add a magical feature to save_reduce so that __reduce__ can causeGuido van Rossum2003-01-311-4/+40
| | | | NEWOBJ to be generated.
* It's Official: for LONG1/LONG4, a "byte count" of 0 is taken as aTim Peters2003-01-312-9/+25
| | | | | shortcut meaning 0L. This allows LONG1 to encode 0L in two bytes total.
* Initialize swappedinput to silence the compiler warning aboutWalter Dörwald2003-01-311-1/+1
| | | | uninitialized variables.
* Make StringIO its own iterator, similar to real files.Guido van Rossum2003-01-311-1/+9
| | | | (This should also be done to cStringIO.)
* _PyLong_NumBits(): The definition of this was too specific to the quirkyTim Peters2003-01-313-34/+55
| | | | | | | | | needs of pickling longs. Backed off to a definition that's much easier to understand. The pickler will have to work a little harder, but other uses are more likely to be correct <0.5 wink>. _PyLong_Sign(): New teensy function to characterize a long, as to <0, ==0, or >0.
* Fix typoRaymond Hettinger2003-01-311-1/+1
|
* SF bug #671447: StringIO doc doesn't say it's sometimes read-only.Raymond Hettinger2003-01-311-0/+5
|
* M PyShell.pyKurt B. Kaiser2003-01-312-84/+42
| | | | | | | | | | 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.
* Fix typoNeal Norwitz2003-01-311-1/+1
|
* Linear-time implementations of {encode,decode}_long.Tim Peters2003-01-311-19/+50
|
* typo in commentBarry Warsaw2003-01-311-1/+1
|
* Backward branches are disgusting, at least when a forward branchTim Peters2003-01-311-6/+6
| | | | is just as easy.
* Give people who run "pydoc re" a clue.Neil Schemenauer2003-01-311-1/+1
|
* Fix markup error.Fred Drake2003-01-301-1/+1
|
* Change the approach to pickling to use __reduce__ everywhere. MostGuido van Rossum2003-01-302-295/+270
| | | | | | | 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.
* pickle.py has a few doctest'ed internal functions, so run their tests.Tim Peters2003-01-301-0/+1
|
* Check whether the choosen encoding requires byte swappingWalter Dörwald2003-01-302-11/+93
| | | | | | | | | | | | | | | 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)
* Updated the INST/OBJ docs, to say they really are (almost) identicalTim Peters2003-01-301-0/+6
| | | | in 2.3.