mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
import sys
|
|
|
|
is_py3 = (sys.version_info.major >= 3)
|
|
|
|
# retrieve info about current encoding output
|
|
# Provite a warning if sys.stdout.encoding do not match GetConsoleOutputCP() ?
|
|
|
|
|
|
|
|
if is_py3:
|
|
def str_from_ascii_function(s):
|
|
return s.decode("ascii")
|
|
|
|
int_types = int
|
|
basestring = str
|
|
anybuff = (str, bytes)
|
|
|
|
def raw_encode(s):
|
|
if isinstance(s, str):
|
|
return s.encode("latin1")
|
|
return s
|
|
|
|
def raw_decode(s):
|
|
if isinstance(s, bytes):
|
|
return s.decode("latin1")
|
|
return s
|
|
|
|
# No encoding of unicode repr
|
|
# Python3 handle unicode natively in string and console output
|
|
def urepr_encode(s):
|
|
return s
|
|
|
|
else: # py2.7
|
|
def str_from_ascii_function(s):
|
|
return s
|
|
|
|
int_types = (int, long)
|
|
basestring = basestring
|
|
anybuff = basestring
|
|
|
|
def raw_encode(s):
|
|
if isinstance(s, unicode):
|
|
return s.encode("latin1")
|
|
return s
|
|
|
|
def raw_decode(s):
|
|
# No unicode for now on py2
|
|
return s
|
|
|
|
repr_encoding = sys.stdout.encoding
|
|
|
|
def urepr_encode(ustr):
|
|
# assert isinstance(s, unicode) # Make the check explicitly ?
|
|
return ustr.encode(repr_encoding, "backslashreplace") |