-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type signature of @property not shown in help() #83306
Comments
Dear Maintainer, I want to request a feature on the generative documentation of type-hinting. class Foo:
@property
def bar(self) -> int: return 42
@bar.setter
def bar(self, value: int) -> None: pass
def baz(self, arg: float) -> str: pass whose documentation on CPython 3.7.5 (on Debian testing amd64 if that matters) class Foo(builtins.object)
| Methods defined here:
|
| baz(self, arg: float) -> str
|
| | Data descriptors defined here: I expect the documentation for bar to be as informative as bar, i.e. something >>> Foo.bar.fget.__annotations__
{'return': <class 'int'>}
>>> Foo.bar.fset.__annotations__
{'value': <class 'int'>, 'return': None} Have a Merry Christmas or other holiday of your choice, |
Currently docstring written for even property.setter is ignored in help as inspect.getdoc only inspects property.fget [0] for docstrings. I feel docs for setter could also be included. The docs also indicate the same at https://docs.python.org/3.6/library/functions.html#property . In the absence of docs maybe the signature for getter and setter could be included as per this proposal. class Foo:
@property
def bar(self) -> int:
'''Bar docs for property'''
return 42
@bar.setter
def bar(self, value: int) -> None:
'''Bar docs for setter'''
pass
help(Foo.bar) Help on property:
[0] Line 580 in 4b3b122
|
Relating to this, should there also be indication about the mode (get, set, del) the property? Currently there is no way to tell if the *attribute* is read-only, read-write or write-only. |
Is there any activity on this issue? The way Pybind11 generates accessors for attributes makes (as properties with getter and setter) makes it currently impossible to view the type info, which Pybind does provide. Thanks for any update. |
Read-only is segregated in the help() output. >>> class A:
@property
def computed_field(self):
'An example property'
>>> help(A)
Help on class A in module __main__: class A(builtins.object)
| Readonly properties defined here:
|
| computed_field
| An example property
|
| | Data descriptors defined here: |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: