summaryrefslogtreecommitdiff
path: root/gitdb/utils/encoding.py
blob: 2d03ad30c61ed1a6541ef0915e938ff95ef46409 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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)