py3: have bytes version of sys.argv

sys.argv returns unicodes on Python 3. We need a bytes version for us.
There was also a python bug/feature request which wanted then to implement
one. They rejected and it is quoted in one of the comments that we can use
fsencode() to get a bytes version of sys.argv. Though not sure about its
correctness.

Link to the comment: http://bugs.python.org/issue8776#msg217416

After this patch we will have pycompat.sysargv which will return us bytes
version of sys.argv. If this patch goes in, i will like to make transformer
rewrite sys.argv with pycompat.argv because there are lot of occurences.
This commit is contained in:
Pulkit Goyal 2016-11-06 04:36:26 +05:30
parent 23fc422908
commit 41a3214683

View File

@ -43,6 +43,7 @@ if ispy3:
osname = os.name.encode('ascii')
ospathsep = os.pathsep.encode('ascii')
ossep = os.sep.encode('ascii')
sysargv = list(map(os.fsencode, sys.argv))
def sysstr(s):
"""Return a keyword str to be passed to Python functions such as
@ -91,6 +92,7 @@ else:
osname = os.name
ospathsep = os.pathsep
ossep = os.sep
sysargv = sys.argv
stringio = io.StringIO
empty = _queue.Empty