##// END OF EJS Templates
Fix dispatching in the pretty printing module....
Fix dispatching in the pretty printing module. Search for the best method to use for pretty printing an object now no longer prefers any registered printer in type_printers for the class or any of the base classes over a _repr_pretty_ method defined in the class or any of its base classes. Instead the mro is walked, looking for both registered printers and _repr_pretty_ methods, so that the inheritance hierarchy will be taken into account.

File last commit:

r4872:34c10438
r6313:63f389bc
Show More
ipy_extutil.py
44 lines | 1.2 KiB | text/x-python | PythonLexer
vivainio
crlf cleanup
r680 """ 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
Brian Granger
ipapi.py => core/ipapi.py and imports updated.
r2027 from IPython.core import ipapi
ip = ipapi.get()
Brian Granger
Continuing a massive refactor of everything.
r2205 from IPython.core.iplib import InteractiveShell
vivainio
crlf cleanup
r680
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 """
Bernardo B. Marques
remove all trailling spaces
r4872
vivainio
crlf cleanup
r680 def describe(self):
for n,mod in self._active():
doc = inspect.getdoc(mod)
if doc:
print '== %s ==' % n
print indent(doc)
Bernardo B. Marques
remove all trailling spaces
r4872
vivainio
crlf cleanup
r680 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)
Brian Granger
Continuing a massive refactor of everything.
r2205 if isinstance(o, InteractiveShell):
vivainio
crlf cleanup
r680 act.append((mname,m))
Bernardo B. Marques
remove all trailling spaces
r4872 act.sort()
vivainio
crlf cleanup
r680 return act
Bernardo B. Marques
remove all trailling spaces
r4872 extutil = ExtUtil()
Brian Granger
Continuing a massive refactor of everything.
r2205 ip.push('extutil')