summaryrefslogtreecommitdiff
path: root/swiftclient/multithreading.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-04-16 02:58:47 +0000
committerGerrit Code Review <review@openstack.org>2014-04-16 02:58:47 +0000
commitaaa563c74916bc40e2f8d5b560030b4e4ce9c08d (patch)
tree0007ef9eefe63398940866bf1d47c0aee85a5ad2 /swiftclient/multithreading.py
parentc810772623c9ffb17533a9327188793847975304 (diff)
parentea498fb052e6101e0b986fb8e4927a9fda77b04f (diff)
downloadpython-swiftclient-aaa563c74916bc40e2f8d5b560030b4e4ce9c08d.tar.gz
Merge "Fix test_multithreading on Python 3"
Diffstat (limited to 'swiftclient/multithreading.py')
-rw-r--r--swiftclient/multithreading.py11
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)