# HG changeset patch # User Pulkit Goyal <7895pul...@gmail.com> # Date 1473787789 -19800 # Tue Sep 13 22:59:49 2016 +0530 # Node ID ec133d50af780e84a6a24825b52d433c10f9cd55 # Parent 85bd31515225e7fdf9bd88edde054db2c74a33f8 py3: have an utility function to return string
There are cases when we need strings and can't use bytes in python 3. We need an utility function for these cases. I agree that this may not be the best possible way out. I will be happy if anybody else can suggest a better approach. We need this functions for os.path.join(), __slots__ and few more things. Added the function in pycompat.py as it is not too big to import. diff -r 85bd31515225 -r ec133d50af78 mercurial/pycompat.py --- a/mercurial/pycompat.py Sun Aug 21 13:16:21 2016 +0900 +++ b/mercurial/pycompat.py Tue Sep 13 22:59:49 2016 +0530 @@ -164,3 +164,18 @@ "SimpleHTTPRequestHandler", "CGIHTTPRequestHandler", )) + +# This function converts its arguments to strings +# on the basis of python version. Strings in python 3 +# are unicodes and our transformer converts everything to bytes +# in python 3. So we need to decode it to unicodes in +# py3. + +def coverttostr(word): + if sys.version_info[0] < 3: + assert isinstance(word, str), "Not a string in Python 2" + return word + # Checking word is bytes because we have the transformer, else + # raising error + assert isinstance(word, bytes), "Should be bytes because of transformer" + return word.decode(sys.getfilesystemencoding()) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel