##// END OF EJS Templates
tweak history prefix search (up/^p) in qtconsole...
tweak history prefix search (up/^p) in qtconsole moving the cursor around the line could result in weird inconsistencies in the prefix. This simplifies the logic by always using the cursor position to set the history prefix, and better determine when the history prefix has actually changed.

File last commit:

r4872:34c10438
r9205:ef8c14cd
Show More
ipy_extutil.py
44 lines | 1.2 KiB | text/x-python | PythonLexer
""" IPython extension management tools.
After installation, you'll have the 'extutil' object in your namespace.
to.
"""
# for the purposes of this module, every module that has the name 'ip' globally
# installed as below is an IPython extension
from IPython.core import ipapi
ip = ipapi.get()
from IPython.core.iplib import InteractiveShell
import sys,textwrap,inspect
def indent(s, ind= ' '):
return '\n'.join([ind +l for l in s.splitlines()])
class ExtUtil:
""" IPython extensios (ipy_* etc.) management utilities """
def describe(self):
for n,mod in self._active():
doc = inspect.getdoc(mod)
if doc:
print '== %s ==' % n
print indent(doc)
def ls(self):
""" Show list of installed extensions. """
for n,m in self._active():
print '%-20s %s' % (n,m.__file__.replace('\\','/'))
def _active(self):
act = []
for mname,m in sys.modules.items():
o = getattr(m, 'ip', None)
if isinstance(o, InteractiveShell):
act.append((mname,m))
act.sort()
return act
extutil = ExtUtil()
ip.push('extutil')