From c502df4e3e00ec2481f1f0a80af37c9d822787b3 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 12 May 2013 11:41:12 +0200 Subject: Issue #17915: Fix interoperability of xml.sax with file objects returned by codecs.open(). --- Lib/xml/sax/saxutils.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Lib/xml') diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py index a62183a848..0798ecd70d 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 -- cgit v1.2.1