Jeremy Hylton [Tue, 14 Aug 2007 16:47:39 +0000 (16:47 +0000)]
Change xmlrpclib to use the newer httplib interface.
Note that it's hard to test xmlrpclib, because the server it attempts
to connect to doesn't seem to support the expected interfaces. Many
of the links via xmlrpc.com are dead, so I couldn't find another
server to use for tests.
Guido van Rossum [Mon, 13 Aug 2007 18:43:36 +0000 (18:43 +0000)]
Don't mess with string.letters any more. It is most likely going to disappear.
Even if it isn't, it shouldn't be changed based on the locale setting IMO.
(Incidentally, this makes test_csv.py pass again on my box.)
Guido van Rossum [Mon, 13 Aug 2007 17:50:00 +0000 (17:50 +0000)]
Improved patches for sndhdr and imghdr by Victor Stinner, who writes:
- fix "h[sbseek] == b'\1'" and "ratecode = ord(h[sbseek+4])" in test_voc()
- avoid division by zero
- use startswith method: replace h[:2] == b'BM' by h.startswith(b'BM')
- use aifc.open() instead of old aifc.openfp()
- use ord(b'P') instead of ord('P')
Neal Norwitz [Sun, 12 Aug 2007 17:23:54 +0000 (17:23 +0000)]
Cleanup a little.
Use bit fields for flags to reduce memory usage.
Return booleans where they are documented. Although a boolean for
seekable seems a bit odd when it can be unknown. Add a comment about this.
Barry Warsaw [Sun, 12 Aug 2007 14:37:20 +0000 (14:37 +0000)]
Compare what's read from files against proper byte literals. Neither of these
modules have unittests AFAICT, and I'm not improving things here, but these
changes make a bunch of email package tests succeed, and command line testing
against real files seems to make things better.
Added an __main__ section to imghdr.py so that it can be run from the command
line similarly to sndhdr.py. Someone else can figure out a better -m way of
doing this.
In sndhdr.py do a couple of very minor cleanups, and use a with statement to
not wait for gc to close the file.
Neal Norwitz [Sun, 12 Aug 2007 04:32:26 +0000 (04:32 +0000)]
Fix the refleak in strftime when converting a %Z with a user defined tzinfo.
I inverted some of the conditionals to reduce indent levels. Hopefully
this makes it a little easier to read.
This code caused the leak:
class FixedOffset(datetime.tzinfo):
def tzname(self, dt): return "UTC"
Kurt B. Kaiser [Sun, 12 Aug 2007 01:52:35 +0000 (01:52 +0000)]
1. Catch TypeError exception when writing to OutputWindow
2. PyShell: shell isn't working due to encoding issues. Temporarily direct
exceptions to the terminal. Also, trap exceptions occurring during write()
instead of passing.
Checking (2) in temporarily to aid finding the encoding problem in
IOBinding.py
Neal Norwitz [Sat, 11 Aug 2007 06:39:53 +0000 (06:39 +0000)]
Remove support for __members__ and __methods__. There still might be
some cleanup to do on this. Particularly in Python/traceback.c with
getting rid of the getattr if possible and Demo/*metaclasses/Enum.py.
In PyFile_WriteString(), call PyUnicode_FromString() instead of
PyString_FromString(). This is arguably more correct, even if it
shouldn't matter much (all the input is likely to be ASCII).
Fix some logic in PythonCmd() -- if the AsString() call failed, we'd
be calling LEAVE_PYTHON twice (once in PythonCmd_Error() and once in
PythonCmd() itself).
This fix doesn't fix the IDLE problems, but at least makes them more
debuggable by getting rid of the segfault.
Fix two bugs in socket_getaddr():
(a) 'single' shouldn't be DECREF'ed in the cleanup code;
(b) the fallback case in makesockaddr() should use y# instead of s#
in the format, since the data is bytes, not UTF-8 text.
Oops. The PyObject_Print() function was totally broken; the original code
was relying on PyString.tp_print but that no longer works.
Fortunately it's rarely called; only the gdb 'pyo' command seems affected.
Tests for dict comprehensions I forgot to 'svn add' when committing the
actual feature.
I was _sure_ I had checked in these new tests already, but I guess the
checkin failed and I didn't notice.
................
r56847 | guido.van.rossum | 2007-08-09 07:03:34 -0700 (Thu, 09 Aug 2007) | 30 lines
Merged revisions 56760-56846 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
SF patch# 1770008 by Christian Heimes (plus some extras).
Completely get rid of StringIO.py and cStringIO.c.
I had to fix a few tests and modules beyond what Christian did, and
invent a few conventions. E.g. in elementtree, I chose to
write/return Unicode strings whe no encoding is given, but bytes when
an explicit encoding is given. Also mimetools was made to always
assume binary files.
Thomas Heller [Wed, 8 Aug 2007 18:47:32 +0000 (18:47 +0000)]
Fix the ctypes tests. Patch from Victor Stinner. He writes:
The problem is that ctypes c_char (and c_char_p) creates unicode string
instead of byte string. I attached a proposition (patch) to change this
behaviour (use bytes for c_char).
So in next example, it will display 'bytes' and not 'str':
from ctypes import c_buffer, c_char
buf = c_buffer("abcdef")
print (type(buf[0]))
Other behaviour changes:
- repr(c_char) adds a "b"
eg. repr(c_char('x')) is "c_char(b'x')" instead of "c_char('x')"
- bytes is mutable whereas str is not:
this may break some modules based on ctypes
Jeremy Hylton [Wed, 8 Aug 2007 17:36:33 +0000 (17:36 +0000)]
Fix several failing tests in test_urllib2net.
The HTTPResponse object is being passed to BufferedReader, but it
wasn't designed to be used that way. These changes extend the hacks
that have already been made in urllib2 to get the tests to pass.
The hacks need to be removed and proper support for use with the io
library. That's a project for another day.
Fix the last remaining test_csv failure.
We were using T_CHAR for a UNICODE character.
(This happened to work on x86 most of the time due to endianness;
but not on PPC.)
Remove the coding line, and convert umlauted characters to \x escapes.
All code in the stdlib should be ASCII only, unless (a) it's test
input for testing the *parsing* of unicode, or (b) it's an author's
name in a comment.
Fix the test_minidom failure.
We just need to force the encoding when no encoding is passed to toxml()
or toprettyxml(), rather than relying on the default encoding (which is
unreliable).
Change the repr() of frozenset instances (and set subclasses)
from name([e1, e2, ...]) to name({e1, e2, ...}).
This makes more sense now we have the set notation.