Variable: python-shell-pdb-setup-code
python-shell-pdb-setup-code is a variable defined in python.el.gz.
Value
"def __PYTHON_EL_Pdb_setup():\n import pdb\n\n class _PYTHON_EL_Pdb(pdb.Pdb, object):\n def __init__(self, *args, **kw):\n super(_PYTHON_EL_Pdb, self).__init__(*args, **kw)\n import re\n self._python_el_def_pattern = re.compile('__(PYTHON_EL|FFAP|PYDOC)_')\n self._python_el_defs = {}\n for k, v in globals().items():\n if self._python_el_def_pattern.match(k):\n self._python_el_defs[k] = v\n\n def _python_el_setup(self):\n if not hasattr(self, 'curframe') or self.curframe is None:\n return\n frame_globals = self.curframe.f_globals\n if '__PYTHON_EL_eval' not in frame_globals:\n for k, v in self._python_el_defs.items():\n frame_globals[k] = v\n try:\n frame_globals['__PYTHON_EL_wrap_completer']()\n except Exception as e:\n print('failed to setup completer: {}'.format(str(e)))\n\n def preloop(self):\n super(_PYTHON_EL_Pdb, self).preloop()\n # Trigger precmd/postcmd when entering pdb.\n self.cmdqueue.append('pass # __PYTHON_EL_')\n\n def precmd(self, line):\n if self._python_el_def_pattern.search(line):\n self._real_lastcmd = self.lastcmd\n return super(_PYTHON_EL_Pdb, self).precmd(line)\n\n def postcmd(self, stop, line):\n self._python_el_setup()\n if self._python_el_def_pattern.search(line):\n self.lastcmd = self._real_lastcmd\n return super(_PYTHON_EL_Pdb, self).postcmd(stop, line)\n\n pdb.Pdb = _PYTHON_EL_Pdb\n\n__PYTHON_EL_Pdb_setup()\ndel __PYTHON_EL_Pdb_setup"
Documentation
Code used to setup the debugger in inferior Python processes.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
;;; PDB Track integration
(defconst python-shell-pdb-setup-code
"\
def __PYTHON_EL_Pdb_setup():
import pdb
class _PYTHON_EL_Pdb(pdb.Pdb, object):
def __init__(self, *args, **kw):
super(_PYTHON_EL_Pdb, self).__init__(*args, **kw)
import re
self._python_el_def_pattern = re.compile('__(PYTHON_EL|FFAP|PYDOC)_')
self._python_el_defs = {}
for k, v in globals().items():
if self._python_el_def_pattern.match(k):
self._python_el_defs[k] = v
def _python_el_setup(self):
if not hasattr(self, 'curframe') or self.curframe is None:
return
frame_globals = self.curframe.f_globals
if '__PYTHON_EL_eval' not in frame_globals:
for k, v in self._python_el_defs.items():
frame_globals[k] = v
try:
frame_globals['__PYTHON_EL_wrap_completer']()
except Exception as e:
print('failed to setup completer: {}'.format(str(e)))
def preloop(self):
super(_PYTHON_EL_Pdb, self).preloop()
# Trigger precmd/postcmd when entering pdb.
self.cmdqueue.append('pass # __PYTHON_EL_')
def precmd(self, line):
if self._python_el_def_pattern.search(line):
self._real_lastcmd = self.lastcmd
return super(_PYTHON_EL_Pdb, self).precmd(line)
def postcmd(self, stop, line):
self._python_el_setup()
if self._python_el_def_pattern.search(line):
self.lastcmd = self._real_lastcmd
return super(_PYTHON_EL_Pdb, self).postcmd(stop, line)
pdb.Pdb = _PYTHON_EL_Pdb
__PYTHON_EL_Pdb_setup()
del __PYTHON_EL_Pdb_setup"
"Code used to setup the debugger in inferior Python processes.")