[Python-3000] What is the state of xml.sax, tkinter, pmw?

Brett Cannon brett at python.org
Sun Aug 17 21:09:18 CEST 2008


On Sun, Aug 17, 2008 at 10:40 AM, Edward K. Ream <edreamleo at gmail.com> wrote:
> For Python 3.0b2 on Windows I don't see any test_xml_sax.py file in
> Python30\Lib\test for b2. Do unit tests exist?
>

Wrong name; it's test_sax.

> While trying to bring up Leo, I found what looks like a bug that will cause
> any byte stream to loop when calling xml.sax.parser.parse.  My quick fix was
> to change:
>
>     while buffer != "":
>
> to:
>
>     while buffer != "" and buffer != b"":
>
> at line 123 of xmlreader.py
>
> Here is the entire function:
>
> def parse(self, source):
>         from . import saxutils
>         source = saxutils.prepare_input_source(source)
>
>         self.prepareParser(source)
>         file = source.getByteStream()
>         buffer = file.read(self._bufsize)
>         ### while buffer != "":
>         while buffer != "" and buffer != b"": ### EKR
>             self.feed(buffer)
>             buffer = file.read(self._bufsize)
>         self.close()
>
> For reference, here is the code in Leo that was hanging::
>
>         parser = xml.sax.make_parser()
>         parser.setFeature(xml.sax.handler.feature_external_ges,1)
>             # Include external general entities, esp. xml-stylesheet lines.
>         handler = saxContentHandler(c,inputFileName,silent,inClipboard)
>         parser.setContentHandler(handler)
>         ### theFile must be a byte stream?
>         ### hangs in a loop in xmlreader.py near line 124.
>         ### I hacked the code to fix it.
>         parser.parse(theFile) # expat does not support parseString
>
> In this case theFile is simply the result of open(filename,'r') Iirc,
> attempting to speed up the parsing using various io.streams slowed things
> down dramatically.  Anyway, the code above works in Python 2.5.
>

Can you report this as a bug on the tracker, Edward? Otherwise this is
just going to get lost.

> Python26 -3 reports no errors in Leo, although several errors are reported
> in tkinter and Pmw 1.3.
>

I have been working on silencing warnings in the stdlib. Hopefully I
got the ones you found for tkinter. Otherwise you will find out in b3
and you can file a bug. =)

-Brett


More information about the Python-3000 mailing list