diff --git a/mercurial/lsprof.py b/mercurial/lsprof.py --- a/mercurial/lsprof.py +++ b/mercurial/lsprof.py @@ -91,6 +91,8 @@ def label(code): if isinstance(code, str): + if sys.version_info.major >= 3: + code = code.encode('latin-1') return code try: mname = _fn2mod[code.co_filename] @@ -104,10 +106,14 @@ mname = _fn2mod[code.co_filename] = k break else: - mname = _fn2mod[code.co_filename] = '<%s>' % code.co_filename + mname = _fn2mod[code.co_filename] = r'<%s>' % code.co_filename + + res = r'%s:%d(%s)' % (mname, code.co_firstlineno, code.co_name) - return '%s:%d(%s)' % (mname, code.co_firstlineno, code.co_name) + if sys.version_info.major >= 3: + res = res.encode('latin-1') + return res if __name__ == '__main__': import os