diff options
Diffstat (limited to 'swiftclient/multithreading.py')
-rw-r--r-- | swiftclient/multithreading.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/swiftclient/multithreading.py b/swiftclient/multithreading.py index 935f61f..2f498c9 100644 --- a/swiftclient/multithreading.py +++ b/swiftclient/multithreading.py @@ -16,6 +16,7 @@ from __future__ import print_function from itertools import chain +import six import sys from time import sleep from six.moves.queue import Queue @@ -184,7 +185,7 @@ class MultiThreadingManager(object): (defaults to ``sys.stdout``) and the :meth:`error` method will print to the supplied ``error_stream`` (defaults to ``sys.stderr``). Both of these printing methods will format the given string with any supplied ``*args`` - (a la printf) and encode the result to utf8 if necessary. + (a la printf). On Python 2, Unicode messages are encoded to utf8. The attribute :attr:`self.error_count` is incremented once per error message printed, so an application can tell if any worker threads @@ -196,9 +197,11 @@ class MultiThreadingManager(object): def __init__(self, print_stream=sys.stdout, error_stream=sys.stderr): """ :param print_stream: The stream to which :meth:`print_msg` sends - formatted messages, encoded to utf8 if necessary. + formatted messages :param error_stream: The stream to which :meth:`error` sends formatted - messages, encoded to utf8 if necessary. + messages + + On Python 2, Unicode messages are encoded to utf8. """ self.print_stream = print_stream self.printer = QueueFunctionManager(self._print, 1, self) @@ -259,7 +262,7 @@ class MultiThreadingManager(object): def _print(self, item, stream=None): if stream is None: stream = self.print_stream - if isinstance(item, unicode): + if six.PY2 and isinstance(item, unicode): item = item.encode('utf8') print(item, file=stream) |