##// END OF EJS Templates
Backport PR #2554: Avoid stopping in ipdb until we reach the main script....
Backport PR #2554: Avoid stopping in ipdb until we reach the main script. For example: ``` In [1]: %run -d -b 52 setup.py Breakpoint 1 at /tmp/ipython/setup.py:52 NOTE: Enter 'c' at the ipdb> prompt to start your script. > /tmp/ipython/setup.py(7)<module>() 6 Under Windows, the command sdist is not supported, since IPython ----> 7 requires utilities which are not available under Windows.""" 8 ``` compared to the previous behavior: ``` In [1]: %run -d -b 52 setup.py Breakpoint 1 at /tmp/ipython/setup.py:52 NOTE: Enter 'c' at the ipdb> prompt to start your script. > <string>(1)<module>() ``` Closes #1679 ("List command desn't work in ipdb debugger the first time")

File last commit:

r5390:c82649ea
r9835:45a6e8d3
Show More
plugin.py
51 lines | 1.6 KiB | text/x-python | PythonLexer
Brian Granger
Finishing work on configurables, plugins and extensions.
r2738 # encoding: utf-8
"""IPython plugins.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2010-2011 The IPython Development Team
Brian Granger
Finishing work on configurables, plugins and extensions.
r2738 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from IPython.config.configurable import Configurable
from IPython.utils.traitlets import Dict
#-----------------------------------------------------------------------------
# Main class
#-----------------------------------------------------------------------------
class PluginManager(Configurable):
"""A manager for IPython plugins."""
plugins = Dict({})
def __init__(self, config=None):
super(PluginManager, self).__init__(config=config)
def register_plugin(self, name, plugin):
if not isinstance(plugin, Plugin):
raise TypeError('Expected Plugin, got: %r' % plugin)
if self.plugins.has_key(name):
raise KeyError('Plugin with name already exists: %r' % name)
self.plugins[name] = plugin
def unregister_plugin(self, name):
del self.plugins[name]
def get_plugin(self, name, default=None):
return self.plugins.get(name, default)
class Plugin(Configurable):
"""Base class for IPython plugins."""
pass