# HG changeset patch # User Pulkit Goyal # Date 2019-02-27 22:18:07 # Node ID b10bbbe995eb08bea428cfb5b1bc6f5d4e0d979f # Parent b38c7304974f1f4d03cf4586a363e0f23cce281e py3: make contrib/debugshell.py work with Python 3 I changed default mercurial installation of my personal laptop to one installed with python 3.7. debugshell is one of the extension which I have enabled and it was failing. This patch makes debugshell works with Python 3. I found that chg does not work with python 3. Differential Revision: https://phab.mercurial-scm.org/D6031 diff --git a/contrib/debugshell.py b/contrib/debugshell.py --- a/contrib/debugshell.py +++ b/contrib/debugshell.py @@ -7,6 +7,7 @@ import mercurial import sys from mercurial import ( demandimport, + pycompat, registrar, ) @@ -32,10 +33,10 @@ def ipdb(ui, repo, msg, **opts): IPython.embed() -@command('debugshell|dbsh', []) +@command(b'debugshell|dbsh', []) def debugshell(ui, repo, **opts): bannermsg = ("loaded repo : %s\n" - "using source: %s" % (repo.root, + "using source: %s" % (pycompat.sysstr(repo.root), mercurial.__path__[0])) pdbmap = { @@ -43,17 +44,19 @@ def debugshell(ui, repo, **opts): 'ipdb' : 'IPython' } - debugger = ui.config("ui", "debugger") + debugger = ui.config(b"ui", b"debugger") if not debugger: debugger = 'pdb' + else: + debugger = pycompat.sysstr(debugger) # if IPython doesn't exist, fallback to code.interact try: with demandimport.deactivated(): __import__(pdbmap[debugger]) except ImportError: - ui.warn(("%s debugger specified but %s module was not found\n") + ui.warn((b"%s debugger specified but %s module was not found\n") % (debugger, pdbmap[debugger])) - debugger = 'pdb' + debugger = b'pdb' getattr(sys.modules[__name__], debugger)(ui, repo, bannermsg, **opts)