diff mercurial/pycompat.py @ 30500:fc0cfe6c87d7

py3: add os.getcwdb() to have bytes path Following the behaviour of Python 3, os.getcwd() return unicodes. We need bytes version as path variables are bytes in UNIX. Python 3 has os.getcwdb() which returns current working directory in bytes. Like rest of the things there in pycompat, like osname, ossep, we need to rewrite every instance of os.getcwd to pycompat.getcwd to make them work correctly on Python 3.
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 22 Nov 2016 18:46:50 +0530
parents 277f4fe6d01a
children c6ce11f2ee50
line wrap: on
line diff
--- a/mercurial/pycompat.py	Tue Nov 22 18:13:02 2016 -0800
+++ b/mercurial/pycompat.py	Tue Nov 22 18:46:50 2016 +0530
@@ -43,6 +43,9 @@
     osname = os.name.encode('ascii')
     ospathsep = os.pathsep.encode('ascii')
     ossep = os.sep.encode('ascii')
+    # os.getcwd() on Python 3 returns string, but it has os.getcwdb() which
+    # returns bytes.
+    getcwd = os.getcwdb
 
     # TODO: .buffer might not exist if std streams were replaced; we'll need
     # a silly wrapper to make a bytes stream backed by a unicode one.
@@ -110,6 +113,7 @@
     stdout = sys.stdout
     stderr = sys.stderr
     sysargv = sys.argv
+    getcwd = os.getcwd
 
 stringio = io.StringIO
 empty = _queue.Empty