##// END OF EJS Templates
More work on componentizing everything....
More work on componentizing everything. I have also done some work on component: * componenets whose __init__ method fails are now unregistered. * Added a masquerade_as function to enable components to masquerade as one another. This is really a cheap and informal way of doing parts of an interface system.

File last commit:

r2205:8ce57664
r2243:5b86c0c8
Show More
generics.py
43 lines | 1.1 KiB | text/x-python | PythonLexer
"""Generic functions for extending IPython.
See http://cheeseshop.python.org/pypi/simplegeneric.
Here is an example from genutils.py::
def print_lsstring(arg):
"Prettier (non-repr-like) and more informative printer for LSString"
print "LSString (.p, .n, .l, .s available). Value:"
print arg
print_lsstring = result_display.when_type(LSString)(print_lsstring)
"""
from IPython.core.error import TryNext
from IPython.external.simplegeneric import generic
@generic
def result_display(result):
"""Print the result of computation."""
raise TryNext
@generic
def inspect_object(obj):
"""Called when you do obj?"""
raise TryNext
@generic
def complete_object(obj, prev_completions):
"""Custom completer dispatching for python objects.
Parameters
----------
obj : object
The object to complete.
prev_completions : list
List of attributes discovered so far.
This should return the list of attributes in obj. If you only wish to
add to the attributes already discovered normally, return
own_attrs + prev_completions.
"""
raise TryNext