Mini Shell
import sys, platform
PY = sys.version_info[:2]
PY2 = sys.version_info[0] == 2
PY3 = sys.version_info[0] == 3
PYPY = '__pypy__' in sys.builtin_module_names
ONWINDOWS = platform.system() == "Windows"
stringtypes = (bytes, str, )
integertypes = (int, )
unicodestringtype = str
bytestringtype = bytes
INT2BYTE_CACHE = {i:bytes([i]) for i in range(256)}
def int2byte(character):
"""Converts (0 through 255) integer into b'...' character."""
return INT2BYTE_CACHE[character]
def byte2int(character):
"""Converts b'...' character into (0 through 255) integer."""
return character[0]
def str2bytes(string):
"""Converts '...' string into b'...' string. On PY2 they are equivalent. On PY3 its utf8 encoded."""
return string.encode("utf8")
def bytes2str(string):
"""Converts b'...' string into '...' string. On PY2 they are equivalent. On PY3 its utf8 decoded."""
return string.decode("utf8")
def reprstring(data):
"""Ensures there is b- u- prefix before the string."""
if isinstance(data, bytes):
return repr(data)
if isinstance(data, str):
return 'u' + repr(data)
def trimstring(data):
"""Trims b- u- prefix"""
if isinstance(data, bytes):
return repr(data)[1:]
if isinstance(data, str):
return repr(data)
def integers2bytes(ints):
"""Converts integer generator into bytes."""
return bytes(ints)
def bytes2integers(data):
"""Converts bytes into integer list, so indexing/iterating yields integers."""
return list(data)
Zerion Mini Shell 1.0