pycompat: introduce identity function as a compat stub
authorYuya Nishihara <yuya@tcha.org>
Wed, 29 Mar 2017 21:13:55 +0900
changeset 31774 7d2cbe11ae48
parent 31773 5646d7bcd823
child 31775 8181f378b073
pycompat: introduce identity function as a compat stub I was sometimes too lazy to use 'str' instead of 'lambda a: a'. Let's add a named function for that purpose.
mercurial/encoding.py
mercurial/pycompat.py
--- a/mercurial/encoding.py	Sun Apr 02 02:29:51 2017 -0400
+++ b/mercurial/encoding.py	Wed Mar 29 21:13:55 2017 +0900
@@ -211,8 +211,8 @@
     strtolocal = unitolocal
     strfromlocal = unifromlocal
 else:
-    strtolocal = str
-    strfromlocal = str
+    strtolocal = pycompat.identity
+    strfromlocal = pycompat.identity
 
 if not _nativeenviron:
     # now encoding and helper functions are available, recreate the environ
--- a/mercurial/pycompat.py	Sun Apr 02 02:29:51 2017 -0400
+++ b/mercurial/pycompat.py	Wed Mar 29 21:13:55 2017 +0900
@@ -30,6 +30,9 @@
     import socketserver
     import xmlrpc.client as xmlrpclib
 
+def identity(a):
+    return a
+
 if ispy3:
     import builtins
     import functools
@@ -206,9 +209,7 @@
     bytechr = chr
     bytestr = str
     iterbytestr = iter
-
-    def sysstr(s):
-        return s
+    sysstr = identity
 
     # Partial backport from os.py in Python 3, which only accepts bytes.
     # In Python 2, our paths should only ever be bytes, a unicode path
@@ -222,17 +223,13 @@
 
     # In Python 2, fsdecode() has a very chance to receive bytes. So it's
     # better not to touch Python 2 part as it's already working fine.
-    def fsdecode(filename):
-        return filename
+    fsdecode = identity
 
     def getoptb(args, shortlist, namelist):
         return getopt.getopt(args, shortlist, namelist)
 
-    def strkwargs(dic):
-        return dic
-
-    def byteskwargs(dic):
-        return dic
+    strkwargs = identity
+    byteskwargs = identity
 
     osname = os.name
     ospathsep = os.pathsep