##// END OF EJS Templates
Fix paste/cpaste bug and refactor/cleanup that code a lot....
Fix paste/cpaste bug and refactor/cleanup that code a lot. In fixing a pasting bug (mishandling of whitespace when input had prompts) it became clear the pasting code hadn't been updated when the new prefiltering machinery was added. Furthermore, the pasting magics are only for the terminal, but the code was in the base classes. This refactors and simplifies the pasting code, moving it to the terminal shell only, and removing unnecessary methods from the main class (using small utility functions instead). The tests were simplified because the previous regexp supported some odd edge cases that are not valid in the normal prefiltering code. We want to have a single location and set of rules for input prefiltering, so I changed some of the test cases to be consistent with what prefilter allows.

File last commit:

r2498:3eae1372
r5435:8bb887c8
Show More
ipy_pydb.py
31 lines | 813 B | text/x-python | PythonLexer
import inspect
from IPython.core import ipapi
from IPython.utils.process import arg_split
ip = ipapi.get()
from IPython.core import debugger
def call_pydb(self, args):
"""Invoke pydb with the supplied parameters."""
try:
import pydb
except ImportError:
raise ImportError("pydb doesn't seem to be installed.")
if not hasattr(pydb.pydb, "runv"):
raise ImportError("You need pydb version 1.19 or later installed.")
argl = arg_split(args)
# print argl # dbg
if len(inspect.getargspec(pydb.runv)[0]) == 2:
pdb = debugger.Pdb(color_scheme=self.colors)
ip.history_saving_wrapper( lambda : pydb.runv(argl, pdb) )()
else:
ip.history_saving_wrapper( lambda : pydb.runv(argl) )()
ip.define_magic("pydb",call_pydb)