Show More
@@ -0,0 +1,43 b'' | |||||
|
1 | """ IPython extension management tools. | |||
|
2 | ||||
|
3 | After installation, you'll have the 'extutil' object in your namespace. | |||
|
4 | to. | |||
|
5 | """ | |||
|
6 | ||||
|
7 | # for the purposes of this module, every module that has the name 'ip' globally | |||
|
8 | # installed as below is an IPython extension | |||
|
9 | ||||
|
10 | import IPython.ipapi | |||
|
11 | ip = IPython.ipapi.get() | |||
|
12 | ||||
|
13 | import sys,textwrap,inspect | |||
|
14 | ||||
|
15 | def indent(s, ind= ' '): | |||
|
16 | return '\n'.join([ind +l for l in s.splitlines()]) | |||
|
17 | ||||
|
18 | class ExtUtil: | |||
|
19 | """ IPython extensios (ipy_* etc.) management utilities """ | |||
|
20 | ||||
|
21 | def describe(self): | |||
|
22 | for n,mod in self._active(): | |||
|
23 | doc = inspect.getdoc(mod) | |||
|
24 | if doc: | |||
|
25 | print '== %s ==' % n | |||
|
26 | print indent(doc) | |||
|
27 | ||||
|
28 | ||||
|
29 | def ls(self): | |||
|
30 | """ Show list of installed extensions. """ | |||
|
31 | for n,m in self._active(): | |||
|
32 | print '%-20s %s' % (n,m.__file__.replace('\\','/')) | |||
|
33 | def _active(self): | |||
|
34 | act = [] | |||
|
35 | for mname,m in sys.modules.items(): | |||
|
36 | o = getattr(m, 'ip', None) | |||
|
37 | if isinstance(o, IPython.ipapi.IPApi): | |||
|
38 | act.append((mname,m)) | |||
|
39 | act.sort() | |||
|
40 | return act | |||
|
41 | ||||
|
42 | extutil = ExtUtil() | |||
|
43 | ip.to_user_ns('extutil') |
@@ -1,3 +1,8 b'' | |||||
|
1 | 2007-04-21 Ville Vainio <vivainio@gmail.com> | |||
|
2 | ||||
|
3 | * Extensions/ipy_extutil.py: added extension to manage other ipython | |||
|
4 | extensions. Now only supports 'ls' == list extensions. | |||
|
5 | ||||
1 | 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu> |
|
6 | 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu> | |
2 |
|
7 | |||
3 | * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that |
|
8 | * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that |
General Comments 0
You need to be logged in to leave comments.
Login now