Show More
@@ -0,0 +1,1 b'' | |||
|
1 | Integration with pydb has been removed since pydb development has been stopped since 2012, and pydb is not installable from PyPI |
@@ -657,8 +657,7 b' class IPCompleter(Completer):' | |||
|
657 | 657 | |
|
658 | 658 | def all_completions(self, text): |
|
659 | 659 | """ |
|
660 | Wrapper around the complete method for the benefit of emacs | |
|
661 | and pydb. | |
|
660 | Wrapper around the complete method for the benefit of emacs. | |
|
662 | 661 | """ |
|
663 | 662 | return self.complete(text)[1] |
|
664 | 663 |
@@ -37,25 +37,10 b' from IPython.utils import coloransi, py3compat' | |||
|
37 | 37 | from IPython.core.excolors import exception_colors |
|
38 | 38 | from IPython.testing.skipdoctest import skip_doctest |
|
39 | 39 | |
|
40 | # See if we can use pydb. | |
|
41 | has_pydb = False | |
|
42 | 40 | prompt = 'ipdb> ' |
|
41 | ||
|
43 | 42 | #We have to check this directly from sys.argv, config struct not yet available |
|
44 | if '--pydb' in sys.argv: | |
|
45 | try: | |
|
46 | import pydb | |
|
47 | if hasattr(pydb.pydb, "runl") and pydb.version>'1.17': | |
|
48 | # Version 1.17 is broken, and that's what ships with Ubuntu Edgy, so we | |
|
49 | # better protect against it. | |
|
50 | has_pydb = True | |
|
51 | except ImportError: | |
|
52 | print("Pydb (http://bashdb.sourceforge.net/pydb/) does not seem to be available") | |
|
53 | ||
|
54 | if has_pydb: | |
|
55 | from pydb import Pdb as OldPdb | |
|
56 | prompt = 'ipydb> ' | |
|
57 | else: | |
|
58 | from pdb import Pdb as OldPdb | |
|
43 | from pdb import Pdb as OldPdb | |
|
59 | 44 | |
|
60 | 45 | # Allow the set_trace code to operate outside of an ipython instance, even if |
|
61 | 46 | # it does so with some limitations. The rest of this support is implemented in |
@@ -220,14 +205,9 b' class Pdb(OldPdb):' | |||
|
220 | 205 | except (TypeError, ValueError): |
|
221 | 206 | raise ValueError("Context must be a positive integer") |
|
222 | 207 | |
|
223 | if has_pydb and completekey is None: | |
|
224 | OldPdb.__init__(self,stdin=stdin,stdout=sys.stdout) | |
|
225 | else: | |
|
226 | OldPdb.__init__(self,completekey,stdin,stdout) | |
|
208 | OldPdb.__init__(self,completekey,stdin,stdout) | |
|
227 | 209 | |
|
228 | 210 | # IPython changes... |
|
229 | self.is_pydb = has_pydb | |
|
230 | ||
|
231 | 211 | self.shell = get_ipython() |
|
232 | 212 | |
|
233 | 213 | if self.shell is None: |
@@ -236,26 +216,6 b' class Pdb(OldPdb):' | |||
|
236 | 216 | TerminalInteractiveShell |
|
237 | 217 | self.shell = TerminalInteractiveShell.instance() |
|
238 | 218 | |
|
239 | if self.is_pydb: | |
|
240 | ||
|
241 | # interactiveshell.py's ipalias seems to want pdb's checkline | |
|
242 | # which located in pydb.fn | |
|
243 | import pydb.fns | |
|
244 | self.checkline = lambda filename, lineno: \ | |
|
245 | pydb.fns.checkline(self, filename, lineno) | |
|
246 | ||
|
247 | self.curframe = None | |
|
248 | self.do_restart = self.new_do_restart | |
|
249 | ||
|
250 | self.old_all_completions = self.shell.Completer.all_completions | |
|
251 | self.shell.Completer.all_completions=self.all_completions | |
|
252 | ||
|
253 | self.do_list = decorate_fn_with_doc(self.list_command_pydb, | |
|
254 | OldPdb.do_list) | |
|
255 | self.do_l = self.do_list | |
|
256 | self.do_frame = decorate_fn_with_doc(self.new_do_frame, | |
|
257 | OldPdb.do_frame) | |
|
258 | ||
|
259 | 219 | self.aliases = {} |
|
260 | 220 | |
|
261 | 221 | # Create color table: we copy the default one from the traceback |
@@ -482,12 +442,6 b' class Pdb(OldPdb):' | |||
|
482 | 442 | return tpl_line % (bp_mark_color + bp_mark, num, line) |
|
483 | 443 | |
|
484 | 444 | |
|
485 | def list_command_pydb(self, arg): | |
|
486 | """List command to use if we have a newer pydb installed""" | |
|
487 | filename, first, last = OldPdb.parse_list_cmd(self, arg) | |
|
488 | if filename is not None: | |
|
489 | self.print_list_lines(filename, first, last) | |
|
490 | ||
|
491 | 445 | def print_list_lines(self, filename, first, last): |
|
492 | 446 | """The printing (as opposed to the parsing part of a 'list' |
|
493 | 447 | command.""" |
@@ -31,7 +31,7 b' from io import open as io_open' | |||
|
31 | 31 | from pickleshare import PickleShareDB |
|
32 | 32 | |
|
33 | 33 | from traitlets.config.configurable import SingletonConfigurable |
|
34 |
from IPython.core import |
|
|
34 | from IPython.core import oinspect | |
|
35 | 35 | from IPython.core import magic |
|
36 | 36 | from IPython.core import page |
|
37 | 37 | from IPython.core import prefilter |
@@ -974,7 +974,7 b' class InteractiveShell(SingletonConfigurable):' | |||
|
974 | 974 | 'Control auto-activation of pdb at exceptions') |
|
975 | 975 | |
|
976 | 976 | def debugger(self,force=False): |
|
977 |
"""Call the p |
|
|
977 | """Call the pdb debugger. | |
|
978 | 978 | |
|
979 | 979 | Keywords: |
|
980 | 980 | |
@@ -991,15 +991,9 b' class InteractiveShell(SingletonConfigurable):' | |||
|
991 | 991 | error('No traceback has been produced, nothing to debug.') |
|
992 | 992 | return |
|
993 | 993 | |
|
994 | # use pydb if available | |
|
995 | if debugger.has_pydb: | |
|
996 | from pydb import pm | |
|
997 | else: | |
|
998 | # fallback to our internal debugger | |
|
999 | pm = lambda : self.InteractiveTB.debugger(force=True) | |
|
1000 | 994 | |
|
1001 | 995 | with self.readline_no_record: |
|
1002 | pm() | |
|
996 | self.InteractiveTB.debugger(force=True) | |
|
1003 | 997 | |
|
1004 | 998 | #------------------------------------------------------------------------- |
|
1005 | 999 | # Things related to IPython's various namespaces |
@@ -22,7 +22,7 b' from IPython.utils import py3compat' | |||
|
22 | 22 | from IPython.utils.contexts import preserve_keys |
|
23 | 23 | from IPython.utils.path import filefind |
|
24 | 24 | from traitlets import ( |
|
25 |
Unicode, Instance, List, Bool, CaselessStrEnum, |
|
|
25 | Unicode, Instance, List, Bool, CaselessStrEnum, observe, | |
|
26 | 26 | ) |
|
27 | 27 | from IPython.lib.inputhook import guis |
|
28 | 28 | |
@@ -50,14 +50,6 b" addflag('pdb', 'InteractiveShell.pdb'," | |||
|
50 | 50 | "Enable auto calling the pdb debugger after every exception.", |
|
51 | 51 | "Disable auto calling the pdb debugger after every exception." |
|
52 | 52 | ) |
|
53 | # pydb flag doesn't do any config, as core.debugger switches on import, | |
|
54 | # which is before parsing. This just allows the flag to be passed. | |
|
55 | shell_flags.update(dict( | |
|
56 | pydb = ({}, | |
|
57 | """Use the third party 'pydb' package as debugger, instead of pdb. | |
|
58 | Requires that pydb is installed.""" | |
|
59 | ) | |
|
60 | )) | |
|
61 | 53 | addflag('pprint', 'PlainTextFormatter.pprint', |
|
62 | 54 | "Enable auto pretty printing of results.", |
|
63 | 55 | "Disable auto pretty printing of results." |
@@ -321,7 +313,7 b' class InteractiveShellApp(Configurable):' | |||
|
321 | 313 | def _exec_file(self, fname, shell_futures=False): |
|
322 | 314 | try: |
|
323 | 315 | full_filename = filefind(fname, [u'.', self.ipython_dir]) |
|
324 |
except IOError |
|
|
316 | except IOError: | |
|
325 | 317 | self.log.warning("File not found: %r"%fname) |
|
326 | 318 | return |
|
327 | 319 | # Make sure that the running script gets a proper sys.argv as if it |
General Comments 0
You need to be logged in to leave comments.
Login now