[PATCH 2 of 2] py3: make util.posixfile compatible with py3
Yuya Nishihara
yuya at tcha.org
Thu Feb 23 09:33:15 EST 2017
On Thu, 23 Feb 2017 17:29:01 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit at gmail.com>
> # Date 1487768580 -19800
> # Wed Feb 22 18:33:00 2017 +0530
> # Node ID 4572027bbe6795e66758120375f647c1c1804195
> # Parent 80693cfda5a63dee28cf9e63cf0e8cef3f27f23a
> py3: make util.posixfile compatible with py3
>
> On python 3, python's inbuilt open function accepts unicodes as its mode
> argument whereas we need to pass bytes to windows.posixfile. So this patch
> adds that support.
>
> diff -r 80693cfda5a6 -r 4572027bbe67 mercurial/util.py
> --- a/mercurial/util.py Mon Feb 20 18:40:42 2017 +0530
> +++ b/mercurial/util.py Wed Feb 22 18:33:00 2017 +0530
> @@ -114,7 +114,6 @@
> pconvert = platform.pconvert
> poll = platform.poll
> popen = platform.popen
> -posixfile = platform.posixfile
> quotecommand = platform.quotecommand
> readpipe = platform.readpipe
> rename = platform.rename
> @@ -147,6 +146,15 @@
> # libraries, and sure enough Mercurial is not a library.)
> os.stat_float_times(False)
>
> +def posixfile(name, mode='r', buffering=-1):
> + if pycompat.ispy3:
> + if pycompat.osname == 'nt':
> + return platform.posixfile(name, mode, buffering)
> + else:
> + return platform.posixfile(name, pycompat.sysstr(mode), buffering)
> + else:
> + return platform.posixfile(name, mode, buffering)
Can we make a pycompat.open() wrapper that accepts bytes?
Optionally it could be auto-imported in the same manner as getattr().
More information about the Mercurial-devel
mailing list