From: Rob Golding Date: Mon, 17 Feb 2014 22:30:01 +0000 (+0000) Subject: Fix #2 -- correctly deal with unicode data X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/7bd8343eef3301ee695dde133a600ff046a6997e?ds=inline;hp=--cc Fix #2 -- correctly deal with unicode data --- 7bd8343eef3301ee695dde133a600ff046a6997e diff --git a/setup.py b/setup.py index 3546c3b..a70cfd4 100644 --- a/setup.py +++ b/setup.py @@ -15,6 +15,7 @@ setup( packages=find_packages(), include_package_data=True, test_suite='tasklib.tests', + install_requires=['six==1.5.2'], classifiers=[ 'Development Status :: 4 - Beta', 'Programming Language :: Python', diff --git a/tasklib/task.py b/tasklib/task.py index de0443c..6fbce77 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -1,8 +1,10 @@ +from __future__ import print_function import copy import datetime import json import logging import os +import six import subprocess DATE_FORMAT = '%Y%m%dT%H%M%SZ' @@ -36,8 +38,11 @@ class TaskResource(object): self._data[key] = dehydrate_func(value) self._modified_fields.add(key) - def __repr__(self): - return self.__unicode__() + def __str__(self): + s = six.text_type(self.__unicode__()) + if not six.PY3: + s = s.encode('utf-8') + return s class TaskAnnotation(TaskResource): @@ -297,7 +302,7 @@ class TaskWarrior(object): logger.debug(' '.join(command_args)) p = subprocess.Popen(command_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = [x.decode() for x in p.communicate()] + stdout, stderr = [x.decode('utf-8') for x in p.communicate()] if p.returncode: if stderr.strip(): error_msg = stderr.strip().splitlines()[-1]