diff options
author | Georg Brandl <georg@python.org> | 2013-05-12 09:41:12 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2013-05-12 09:41:12 (GMT) |
commit | c502df4e3e00ec2481f1f0a80af37c9d822787b3 (patch) | |
tree | 71315fc75d9fa55815137fcbf93fd408bdec89ce /Lib/xml/sax | |
parent | 93b061bc3e1c9285ec1ce6405b85d3a1e072833f (diff) | |
download | cpython-c502df4e3e00ec2481f1f0a80af37c9d822787b3.zip cpython-c502df4e3e00ec2481f1f0a80af37c9d822787b3.tar.gz cpython-c502df4e3e00ec2481f1f0a80af37c9d822787b3.tar.bz2 |
Issue #17915: Fix interoperability of xml.sax with file objects returned by
codecs.open().
Diffstat (limited to 'Lib/xml/sax')
-rw-r--r-- | Lib/xml/sax/saxutils.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py index a62183a..0798ecd 100644 --- a/Lib/xml/sax/saxutils.py +++ b/Lib/xml/sax/saxutils.py @@ -5,6 +5,7 @@ convenience of application and driver writers. import os, urllib.parse, urllib.request import io +import codecs from . import handler from . import xmlreader @@ -77,6 +78,10 @@ def _gettextwriter(out, encoding): # use a text writer as is return out + if isinstance(out, (codecs.StreamWriter, codecs.StreamReaderWriter)): + # use a codecs stream writer as is + return out + # wrap a binary writer with TextIOWrapper if isinstance(out, io.RawIOBase): # Keep the original file open when the TextIOWrapper is |