Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
encoding.py67 linesDownload Raw Back to common
1import json2import base643import struct4 5 6def to_bytes(x, charset='utf-8', errors='strict'):7    if x is None:8        return None9    if isinstance(x, bytes):10        return x11    if isinstance(x, str):12        return x.encode(charset, errors)13    if isinstance(x, (int, float)):14        return str(x).encode(charset, errors)15    return bytes(x)16 17 18def to_unicode(x, charset='utf-8', errors='strict'):19    if x is None or isinstance(x, str):20        return x21    if isinstance(x, bytes):22        return x.decode(charset, errors)23    return str(x)24 25 26def to_native(x, encoding='ascii'):27    if isinstance(x, str):28        return x29    return x.decode(encoding)30 31 32def json_loads(s):33    return json.loads(s)34 35 36def json_dumps(data, ensure_ascii=False):37    return json.dumps(data, ensure_ascii=ensure_ascii, separators=(',', ':'))38 39 40def urlsafe_b64decode(s):41    s += b'=' * (-len(s) % 4)42    return base64.urlsafe_b64decode(s)43 44 45def urlsafe_b64encode(s):46    return base64.urlsafe_b64encode(s).rstrip(b'=')47 48 49def base64_to_int(s):50    data = urlsafe_b64decode(to_bytes(s, charset='ascii'))51    buf = struct.unpack('%sB' % len(data), data)52    return int(''.join(["%02x" % byte for byte in buf]), 16)53 54 55def int_to_base64(num):56    if num < 0:57        raise ValueError('Must be a positive integer')58 59    s = num.to_bytes((num.bit_length() + 7) // 8, 'big', signed=False)60    return to_unicode(urlsafe_b64encode(s))61 62 63def json_b64encode(text):64    if isinstance(text, dict):65        text = json_dumps(text)66    return urlsafe_b64encode(to_bytes(text))67 
codekingpro/portable-devtools · Team Ai