diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-02-24 07:05:52 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-02-24 07:05:52 +0000 |
| commit | 10e1fc36b192d0b157ff11aa44706cc159a1fd01 (patch) | |
| tree | aef7fae0f3aae55126f33a886eaf8f0e9f8d7104 /taskflow/utils/misc.py | |
| parent | 84e04ba6ea6230124cea55acbd0b3e9d33db8b30 (diff) | |
| parent | a44bc5e958cd6d098b938aeff76adbdab08b6d74 (diff) | |
| download | taskflow-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.py | 25 |
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,)): |
