Martin v. Löwis [Sat, 16 Feb 2002 23:08:25 +0000 (23:08 +0000)]
The Grande 'sendall()' patch, copied from release21-maint. Fixes #516715.
Replaces calls to socket.send() (which isn't guaranteed to send all data)
with the new socket.sendall() method.
Fred Drake [Fri, 8 Feb 2002 21:31:23 +0000 (21:31 +0000)]
start() and stop() methods: return None where there is no exception;
returning NULL causes the interpreter to raise a SystemError.
Noted by Anthony Baxter at Python 10.
Fred Drake [Tue, 29 Jan 2002 14:54:18 +0000 (14:54 +0000)]
Revise cheeseshop example so that the order of the keyword output is
completely determined by the example; dict insertion order and the string
hash algorithm no longer affect the output.
This fixes SF bug #509281.
It's merge time! (well, this is the last one for the moment)
Backport gvanrossum's checkin of revision 2.236:
A tentative fix for SF bug #503837 (Roeland Rengelink):
type.__module__ problems (again?)
This simply initializes the __module__ local in a class statement from
the __name__ global. I'm not 100% sure that this is the correct fix,
although it usually does the right thing. The problem is that if the
class statement executes in a custom namespace, the __name__ global
may be taken from __builtins__, in which case it would have the value
__builtin__, or it may not exist at all (if the custom namespace also
has a custom __builtins__), in which case the class statement will
fail.
Nevertheless, unless someone finds a better solution, this is a 2.2.1
bugfix too.
_parsebody(): When adding subparts to a multipart container, make sure
that the first subpart added makes the payload a list object.
Otherwise, a multipart/* with only one subpart will not have the
proper structure.
There's no need for typechecks on the second and third argument of
new.instancemethod() -- the instancemethod object is now a perfectly
general container.
This fixes SF bug ##503091 (Pedro Rodriquez): new.instancemethod fails
for new classes
There's no need for typechecks on the second and third argument of
new.instancemethod() -- the instancemethod object is now a perfectly
general container.
This fixes SF bug ##503091 (Pedro Rodriquez): new.instancemethod fails
for new classes
Fred Drake [Sat, 5 Jan 2002 17:22:20 +0000 (17:22 +0000)]
Time2Internaldate(): Call isinstance() once for each of the type tests
instead of possibly twice by using a sequence of types to check for.
Add a message to the ValueError that can be raised.
Thread.__bootstrap(): ignore exceptions in the self.__delete() call in
the finally clause. An exception here could happen when a daemon
thread exits after the threading module has already been trashed by
the import finalization, and there's not much of a point in trying to
insist doing the cleanup in that stage.
This should fix SF bug ##497111: active_limbo_lock error at program
exit.
Backport gvanrossum's checkin of revisions
copy.py, 1.23 & test_descr.py, 1.114:
Fix for SF bug ##497426: can't deepcopy recursive new objects
deepcopy(), _reconstruct(): pass the memo to the other function, so
that recursive data structures built out of new-style objects may be
deeply copied correctly.
_reduce(): Avoid infinite recursion in the pickler when self.__class__
doesn't have the _HEAPTYPE flag set, e.g. for time.struct_time and
posix.stat_result.
This fixes the immediate symptoms of SF bug #496873 (cPickle /
time.struct_time loop), replacing the infinite loop with an exception.
eval_frame(): Under -Qnew, INPLACE_DIVIDE wasn't getting handed off to
INPLACE_TRUE_DIVIDE (like BINARY_DIVIDE was getting handed off to
BINARY_TRUE_DIVIDE).
Fred Drake [Fri, 28 Dec 2001 04:37:37 +0000 (04:37 +0000)]
Added index entries similar to some recommended by Skip, and used the word
"interpolation" in the text, to make the string formatting material easier to
find.
This closes SF bug #487165.
Fred Drake [Fri, 28 Dec 2001 04:36:14 +0000 (04:36 +0000)]
Make this do the right thing with entries which start with the percent sign,
in response to Skip's comments in SF bug #487165.
Make use of string methods instead of string module functions in most places.
Add (and make the default) a way to collapse symbol entries into a single
"Symbols" section in the generated index. This is similar to what makeindex
does, but does not include entries beginning with an underscore.
Fred Drake [Fri, 28 Dec 2001 04:31:36 +0000 (04:31 +0000)]
Fix wrongly-named formal parameters in three places: begin_y was used twice
instead of begin_y and begin_x for derwin(), subpad(), and subwin().
Reported for derwin() by Eric Huss.
Added class annotations for the window methods so they would be properly
described in the index.
Fred Drake [Thu, 20 Dec 2001 17:13:09 +0000 (17:13 +0000)]
Re-commit Ping's patch to the cgi and cgitb documentation, using the
right version this time. Thanks, Ping!
(This was from SF patch #494582, "\index -> \indexii" version.)
Barry Warsaw [Thu, 20 Dec 2001 16:37:27 +0000 (16:37 +0000)]
test_parseaddr_empty(): New test for assuring that
Utils.parseaddr('<>') -- i.e. on an empty address, returns the empty
string. Built on rfc822, this used to return None.
Guido van Rossum [Thu, 20 Dec 2001 15:54:48 +0000 (15:54 +0000)]
SF patch #495358 (Artur Zaprzala): rfc822.AddressList and "<>" address
rfc822.AddressList incorrectly handles empty address.
"<>" is converted to None and should be "".
AddressList.__str__() fails on None.
I got an email with such an address and my program
failed processing it.
Example:
>>> import rfc822
>>> rfc822.AddressList("<>").addresslist
[('', None)]
>>> str(rfc822.AddressList("<>"))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.1/rfc822.py", line 753, in __str__
return ", ".join(map(dump_address_pair,
self.addresslist))
TypeError: sequence item 0: expected string, None found
[His solution: in the internal routine AddrlistClass.getrouteaddr(),
initialize adlist to "".]
Tim Peters [Wed, 19 Dec 2001 19:05:01 +0000 (19:05 +0000)]
SF bug #495021: Crash calling os.stat with a trailing backslash
Patch from Mark Hammond, plus code rearrangement and comments from me.
posix_do_stat(): Windows-specific code could try to free() stack
memory in some cases when a path ending with a forward or backward slash
was passed to os.stat().
Guido van Rossum [Wed, 19 Dec 2001 16:56:54 +0000 (16:56 +0000)]
save(): Fix for SF bug #494904: Cannot pickle a class with a
metaclass, reported by Dan Parisien.
Objects that are instances of custom metaclasses, i.e. whose ob_type
is a subclass of PyType_Type, should be pickled the same as new-style
classes (objects whose ob_type is PyType_Type). This can't be done
through the existing dispatch switches, and the __reduce__ trick
doesn't work for these, since it finds the unbound __reduce__ for
instances of the class (inherited from PyBaseObject_Type). So check
explicitly using PyType_IsSubtype().
Guido van Rossum [Wed, 19 Dec 2001 16:55:02 +0000 (16:55 +0000)]
Pickler.save(): Fix for SF bug #494904: Cannot pickle a class with a
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().