summaryrefslogtreecommitdiff
path: root/gitdb/utils/encoding.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitdb/utils/encoding.py')
-rw-r--r--gitdb/utils/encoding.py29
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)