diff options
| author | Sebastian Thiel <byronimo@gmail.com> | 2014-11-14 12:45:19 +0100 |
|---|---|---|
| committer | Sebastian Thiel <byronimo@gmail.com> | 2014-11-14 12:45:19 +0100 |
| commit | 2f2fe4eea8ba4f47e63a7392a1f27f74f5ee925d (patch) | |
| tree | 176a493d114fab7cc6e930bf318b2339db386cf5 /gitdb/utils/encoding.py | |
| parent | 81707c606b88e971cc359e3e9f3abeeea2204860 (diff) | |
| parent | 0dcec5a27b341ce58e5ab169f91aa25b2cafec0c (diff) | |
| download | gitdb-0.6.0.tar.gz | |
Merge branch 'py2n3'0.6.0
* python 3 compatibility
* all tests work in py2.6, 2.7, 3.3, 3.4
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) |
