<div dir="ltr">For Python 3.0b2 on Windows I don&#39;t see any test_xml_sax.py file in Python30\Lib\test for b2. Do unit tests exist?<br><br>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.&nbsp; My quick fix was to change:<br>


<br>&nbsp;&nbsp;&nbsp; while buffer != &quot;&quot;:<br><br>to:<br><br>&nbsp;&nbsp;&nbsp; while buffer != &quot;&quot; and buffer != b&quot;&quot;:<br><br>at line 123 of xmlreader.py<br><br>Here is the entire function:<br><br>def parse(self, source):<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from . import saxutils<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; source = saxutils.prepare_input_source(source)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.prepareParser(source)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file = source.getByteStream()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer = file.read(self._bufsize)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ### while buffer != &quot;&quot;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while buffer != &quot;&quot; and buffer != b&quot;&quot;: ### EKR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.feed(buffer)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer = file.read(self._bufsize)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.close()<br><br>For reference, here is the code in Leo that was hanging::<br>


<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parser = xml.sax.make_parser()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parser.setFeature(xml.sax.handler.feature_external_ges,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Include external general entities, esp. xml-stylesheet lines.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handler = saxContentHandler(c,inputFileName,silent,inClipboard)<br>


&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parser.setContentHandler(handler)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ### theFile must be a byte stream?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ### hangs in a loop in xmlreader.py near line 124.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ### I hacked the code to fix it.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parser.parse(theFile) # expat does not support parseString<br><br>In this case theFile is simply the result of open(filename,&#39;r&#39;) Iirc, attempting to speed up the parsing using various io.streams slowed things down dramatically.&nbsp; Anyway, the code above works in Python 2.5.<br>
<br>Python26 -3 reports no errors in Leo, although several errors are reported in tkinter and Pmw 1.3.<br>

<br>I&#39;m concerned about missing unit tests for the sax module. The new io module has the potential to break lots of code in subtle ways, as shown above.<br><br>I can&#39;t tell you more about sax until I sidestep Pmw and tkinter libs that aren&#39;t importing...Hopefully I&#39;ll get a curses gui working soon for Leo :-)<br>
<br>I&#39;m highly motivated to get tkinter, Pmw and sax working...Let me know if I can help.&nbsp; Is anyone else working on these libs?<br><br>Edward<br>--------------------------------------------------------------------<br>
Edward K. Ream email: <a href="mailto:edreamleo@gmail.com" target="_blank">edreamleo@gmail.com</a><br>

Leo: <a href="http://webpages.charter.net/edreamleo/front.html" target="_blank">http://webpages.charter.net/edreamleo/front.html</a><br>--------------------------------------------------------------------<br><br>
</div>