From 8da37a32ee082f299a3af2c76ee1b7c0efeca2e5 Mon Sep 17 00:00:00 2001 From: Bastian Kleineidam Date: Fri, 11 Mar 2011 20:05:27 +0100 Subject: [PATCH] Refactor sys.stdout wrapping into a function. --- linkcheck/logger/__init__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/linkcheck/logger/__init__.py b/linkcheck/logger/__init__.py index 18e29dc4..d8c1a35a 100644 --- a/linkcheck/logger/__init__.py +++ b/linkcheck/logger/__init__.py @@ -54,6 +54,14 @@ ContentTypes = dict( other=0, ) + +def get_stdout_writer (encoding=i18n.default_encoding, errors='replace'): + """Get wrapped sys.stdout writer with given encoding and error + handling.""" + Writer = codecs.getwriter(encoding) + return Writer(sys.stdout, errors) + + class LogStatistics (object): """Gather log statistics: - number of errors, warnings and valid links @@ -199,8 +207,8 @@ class Logger (object): elif 'fd' in args: self.fd = args['fd'] else: - Writer = codecs.getwriter(self.output_encoding) - self.fd = Writer(sys.stdout, self.codec_errors) + self.fd = get_stdout_writer(encoding=self.output_encoding, + errors=self.codec_errors) def start_fileoutput (self): """Start output to configured file."""