summaryrefslogtreecommitdiff
path: root/taskflow/utils/misc.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-02-24 07:05:52 +0000
committerGerrit Code Review <review@openstack.org>2015-02-24 07:05:52 +0000
commit10e1fc36b192d0b157ff11aa44706cc159a1fd01 (patch)
treeaef7fae0f3aae55126f33a886eaf8f0e9f8d7104 /taskflow/utils/misc.py
parent84e04ba6ea6230124cea55acbd0b3e9d33db8b30 (diff)
parenta44bc5e958cd6d098b938aeff76adbdab08b6d74 (diff)
downloadtaskflow-10e1fc36b192d0b157ff11aa44706cc159a1fd01.tar.gz
Merge "Use oslo.utils encodeutils for encode/decode functions"
Diffstat (limited to 'taskflow/utils/misc.py')
-rw-r--r--taskflow/utils/misc.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/taskflow/utils/misc.py b/taskflow/utils/misc.py
index 383b3e2..39708b5 100644
--- a/taskflow/utils/misc.py
+++ b/taskflow/utils/misc.py
@@ -28,6 +28,7 @@ import types
import enum
from oslo_serialization import jsonutils
+from oslo_utils import encodeutils
from oslo_utils import importutils
from oslo_utils import netutils
from oslo_utils import reflection
@@ -216,30 +217,28 @@ def fix_newlines(text, replacement=os.linesep):
return replacement.join(text.splitlines())
-def binary_encode(text, encoding='utf-8'):
- """Converts a string of into a binary type using given encoding.
+def binary_encode(text, encoding='utf-8', errors='strict'):
+ """Encodes a text string into a binary string using given encoding.
- Does nothing if text not unicode string.
+ Does nothing if data is already a binary string (raises on unknown types).
"""
if isinstance(text, six.binary_type):
return text
- elif isinstance(text, six.text_type):
- return text.encode(encoding)
else:
- raise TypeError("Expected binary or string type not '%s'" % type(text))
+ return encodeutils.safe_encode(text, encoding=encoding,
+ errors=errors)
-def binary_decode(data, encoding='utf-8'):
- """Converts a binary type into a text type using given encoding.
+def binary_decode(data, encoding='utf-8', errors='strict'):
+ """Decodes a binary string into a text string using given encoding.
- Does nothing if data is already unicode string.
+ Does nothing if data is already a text string (raises on unknown types).
"""
- if isinstance(data, six.binary_type):
- return data.decode(encoding)
- elif isinstance(data, six.text_type):
+ if isinstance(data, six.text_type):
return data
else:
- raise TypeError("Expected binary or string type not '%s'" % type(data))
+ return encodeutils.safe_decode(data, incoming=encoding,
+ errors=errors)
def decode_json(raw_data, root_types=(dict,)):