comparison mercurial/pycompat.py @ 36334:4cd2d1cc2a31

pycompat: correct the shlex.split() proxy method signature in py3
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 20 Feb 2018 21:37:30 -0500
parents b44fac3a49fb
children 63fe5ca93b13
comparison
equal deleted inserted replaced
36333:579c28576ba5 36334:4cd2d1cc2a31
259 """ 259 """
260 dic = dict((k.encode('latin-1'), v) for k, v in dic.iteritems()) 260 dic = dict((k.encode('latin-1'), v) for k, v in dic.iteritems())
261 return dic 261 return dic
262 262
263 # TODO: handle shlex.shlex(). 263 # TODO: handle shlex.shlex().
264 def shlexsplit(s): 264 def shlexsplit(s, comments=False, posix=True):
265 """ 265 """
266 Takes bytes argument, convert it to str i.e. unicodes, pass that into 266 Takes bytes argument, convert it to str i.e. unicodes, pass that into
267 shlex.split(), convert the returned value to bytes and return that for 267 shlex.split(), convert the returned value to bytes and return that for
268 Python 3 compatibility as shelx.split() don't accept bytes on Python 3. 268 Python 3 compatibility as shelx.split() don't accept bytes on Python 3.
269 """ 269 """
270 ret = shlex.split(s.decode('latin-1')) 270 ret = shlex.split(s.decode('latin-1'), comments, posix)
271 return [a.encode('latin-1') for a in ret] 271 return [a.encode('latin-1') for a in ret]
272 272
273 def emailparser(*args, **kwargs): 273 def emailparser(*args, **kwargs):
274 import email.parser 274 import email.parser
275 return email.parser.BytesParser(*args, **kwargs) 275 return email.parser.BytesParser(*args, **kwargs)