Show More
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | # -*- coding: utf-8 -*- |
|
2 | 2 | """Magic functions for InteractiveShell. |
|
3 | 3 | |
|
4 |
$Id: Magic.py 13 |
|
|
4 | $Id: Magic.py 1380 2006-06-27 11:34:39Z vivainio $""" | |
|
5 | 5 | |
|
6 | 6 | #***************************************************************************** |
|
7 | 7 | # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and |
@@ -195,7 +195,7 b' license. To use profiling, please install"python2.3-profiler" from non-free.""")' | |||
|
195 | 195 | |
|
196 | 196 | # initialize results to 'null' |
|
197 | 197 | found = 0; obj = None; ospace = None; ds = None; |
|
198 | ismagic = 0; isalias = 0 | |
|
198 | ismagic = 0; isalias = 0; parent = None | |
|
199 | 199 | |
|
200 | 200 | # Look for the given name by splitting it in parts. If the head is |
|
201 | 201 | # found, then we look for all the remaining parts as members, and only |
@@ -210,6 +210,7 b' license. To use profiling, please install"python2.3-profiler" from non-free.""")' | |||
|
210 | 210 | else: |
|
211 | 211 | for part in oname_rest: |
|
212 | 212 | try: |
|
213 | parent = obj | |
|
213 | 214 | obj = getattr(obj,part) |
|
214 | 215 | except: |
|
215 | 216 | # Blanket except b/c some badly implemented objects |
@@ -241,7 +242,7 b' license. To use profiling, please install"python2.3-profiler" from non-free.""")' | |||
|
241 | 242 | ospace = 'Interactive' |
|
242 | 243 | |
|
243 | 244 | return {'found':found, 'obj':obj, 'namespace':ospace, |
|
244 | 'ismagic':ismagic, 'isalias':isalias} | |
|
245 | 'ismagic':ismagic, 'isalias':isalias, 'parent':parent} | |
|
245 | 246 | |
|
246 | 247 | def arg_err(self,func): |
|
247 | 248 | """Print docstring if incorrect arguments were passed""" |
@@ -632,7 +633,24 b' Currently the magic system has the following functions:\\n"""' | |||
|
632 | 633 | |
|
633 | 634 | oname = oname.strip() |
|
634 | 635 | info = Struct(self._ofind(oname)) |
|
636 | ||
|
635 | 637 | if info.found: |
|
638 | # Get the docstring of the class property if it exists. | |
|
639 | path = oname.split('.') | |
|
640 | root = '.'.join(path[:-1]) | |
|
641 | if info.parent is not None: | |
|
642 | try: | |
|
643 | target = getattr(info.parent, '__class__') | |
|
644 | # The object belongs to a class instance. | |
|
645 | try: | |
|
646 | target = getattr(target, path[-1]) | |
|
647 | # The class defines the object. | |
|
648 | if isinstance(target, property): | |
|
649 | oname = root + '.__class__.' + path[-1] | |
|
650 | info = Struct(self._ofind(oname)) | |
|
651 | except AttributeError: pass | |
|
652 | except AttributeError: pass | |
|
653 | ||
|
636 | 654 | pmethod = getattr(self.shell.inspector,meth) |
|
637 | 655 | formatter = info.ismagic and self.format_screen or None |
|
638 | 656 | if meth == 'pdoc': |
General Comments 0
You need to be logged in to leave comments.
Login now