[issue20009] Property should expose wrapped function.

2014-01-15 Thread Nick Coghlan

Nick Coghlan added the comment:

__wrapped__ is specifically for the case where the outer function is a 
relatively straightforward wrapper around the inner one (i.e. those cases where 
it would be appropriate to use functools.wraps or Graham Dumpleton's more 
sophisticated wrapt module).

More complex decorators and descriptors (like property) will define their own 
mechanism for accessing the internal details.

--
resolution:  - invalid
stage:  - committed/rejected
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20009
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20009] Property should expose wrapped function.

2013-12-22 Thread Raymond Hettinger

Raymond Hettinger added the comment:

 When using the @property decorator the wrapped functions 
 are not exposed for source introspection. 
 (At least I can't see how they are.)

The underlying functions are already exposed as the fget, fset, and fdel 
attributes of property objects.

Here is an example of how to access the source:

class Dog:
@property
def age(self):
return 42

if __name__ == '__main__':
import inspect
age_property = Dog.__dict__['age']
lines, size = inspect.getsourcelines(age_property.fget)
print(''.join(lines))

--
nosy: +rhettinger

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20009
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20009] Property should expose wrapped function.

2013-12-19 Thread Éric Araujo

Changes by Éric Araujo mer...@netwok.org:


--
nosy: +eric.araujo, ncoghlan
versions:  -Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20009
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20009] Property should expose wrapped function.

2013-12-17 Thread steven Michalske

New submission from steven Michalske:

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.

--
messages: 206483
nosy: hardkrash
priority: normal
severity: normal
status: open
title: Property should expose wrapped function.
type: enhancement
versions: Python 3.4, Python 3.5

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20009
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com