diff options
Diffstat (limited to 'gitdb/utils/encoding.py')
| -rw-r--r-- | gitdb/utils/encoding.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gitdb/utils/encoding.py b/gitdb/utils/encoding.py new file mode 100644 index 0000000..2d03ad3 --- /dev/null +++ b/gitdb/utils/encoding.py @@ -0,0 +1,29 @@ +from gitdb.utils import compat + +if compat.PY3: + string_types = (str, ) + text_type = str +else: + string_types = (basestring, ) + text_type = unicode + +def force_bytes(data, encoding="ascii"): + if isinstance(data, bytes): + return data + + if isinstance(data, string_types): + return data.encode(encoding) + + return data + +def force_text(data, encoding="utf-8"): + if isinstance(data, text_type): + return data + + if isinstance(data, string_types): + return data.decode(encoding) + + if compat.PY3: + return text_type(data, encoding) + else: + return text_type(data) |
