Message206483
When using the @property decorator the wrapped functions are not exposed for source introspection. (At least I can't see how they are.)
The issue is then that Ipython "%psource" will show the source for the @property as opposed to the function that it wraps.
By implementing the __wrapped__ attribute you can set the wrapped function to fget and then the source for that function can me identified for source introspection.
I perform this hack in code to overcome this issue.
class qproperty(property):
# Fix for ipython ? and ?? (%pdef, %psource)
# Omitting the class doc string prevents ipython from showing the
# doctoring for the property builtin class; I suspect this is a
# bug.
def __init__(self, fget=None, fset=None, fdel=None, doc=None):
super(qproperty, self).__init__(fget, fset, fdel, doc)
self.__wrapped__ = fget
# Overwrite property with qproperty so that in the future this hack might
# be easily removed.
property = qproperty
This is related to issue #5982. |
|
Date |
User |
Action |
Args |
2013-12-17 21:49:55 | hardkrash | set | recipients:
+ hardkrash |
2013-12-17 21:49:55 | hardkrash | set | messageid: <1387316995.02.0.931185950843.issue20009@psf.upfronthosting.co.za> |
2013-12-17 21:49:54 | hardkrash | link | issue20009 messages |
2013-12-17 21:49:52 | hardkrash | create | |
|