-
-
Notifications
You must be signed in to change notification settings - Fork 32k
Missing documentation for decorators #81094
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
Comments
The documentation for decorators (for methods and classes) is pretty lacking. Searching for "decorator" ( https://docs.python.org/3/search.html?q=decorator ) brings up a lot of libraries that use decorators, but no documentation explaining what they are and how they work. The documentation should have a dedicated page for explaining decorators, and this should be the 1st search result. -- In the meantime, then search should give as a 1st result a link to the definition of decorator in the glossary: https://docs.python.org/3.7/glossary.html#glossary Actually, it seems that there is no way to directly link to a paragraph in the glossary - so that should be added as well. In general, it would be nice if a search for some term X would show as a 1st result the definition of X in the glossary (if it exists there). Thanks! |
Hi, Thank you for your feedback. In fact, there is a limitation with the current search engine of Sphinx (because we use it for the documentation). For example, if you try to find the meaning of "for", for us it's a keyword but for the search engine, it will try to find all the sections containing "for" (formatter, platform, argparse.ArgumentParser.format_help, etc...). For that, we could open an issue on the repository of Sphinx. Now, about the decorators. In the definition of a function, we explain the call of a decorator, See the grammar. https://docs.python.org/3/reference/compound_stmts.html#function-definitions """ But because it's a specification of the language which has been described with 2 PEPs you can read it on the PEP Index page. Function: https://www.python.org/dev/peps/pep-0318/ Class: https://www.python.org/dev/peps/pep-3129/ Now, I suggest one thing, add a link to the PEPs in this section https://docs.python.org/3/reference/compound_stmts.html#function-definitions |
Thank you for the quick response. Are PEPs considered de-facto documentation for language features? For example, string formatting was described in PEP-3101, but still has sections in the documentation dedicated to it. I believe that decorators should get a similar treatment :-) I also think that describing decorators as part of the grammar definition is lacking. Why is there a whole chapter for Errors and Exceptions and it's not only discussed under the grammar definition for raise? Decorators are a pretty unique (and cool!) feature of Python, and therefore new learners of the language need a better reference for learning about them. I realize that this is a big request, as you would need some expert to write this documentation. |
Hi Tomer,
For the decorator, it's different because a decorator is mainly a Example you can write this decorator: def my_decorator(func):
return func
def my_awesome_function(*args, **kwargs):
print(args)
print(kwargs)
return 42
my_awesome_function = my_decorator(my_awesome_function) in this case, we don't need to document the decorator. for the '@' syntax, it's described in the doc but it's syntactic sugar I would like to have the opinion of the other core-dev. @sizeof?
|
The PEP is not the first place I go looking for information on Python topics, just my two cents. |
It seems that the current search https://docs.python.org/3/search.html?q=decorator does point towards the glossary as the first search result. The Class Definitions section does link PEP 3129 and also references PEP 318 so everything's technically in the doc, but as mentioned PEP 318 can also go under the box at the end of Function definitions for clarity. |
Hello, I am a first time contributor. If this is something that still needs assistance, I could start by just adding a description of decorators in the docs, see if you accept that, and then start drafting entries for each decorator one by one. This would be a good learning experience for me,. Not sure if this is still something you guys believed needed to be worked on or not. |
Hello! I think all that's left is:
Would you like to open a PR? |
OK. I will do tomorrow.
John D. McDonald
PJ Consulting LLCPh. 1-312-945-3518Mobile 1-312-479-2854
On Thursday, December 28, 2023 at 01:25:10 AM CST, Hugo van Kemenade ***@***.***> wrote:
Hello! I think all that's left is:
PEP 318 can also go under the box at the end of Function definitions for clarity.
Would you like to open a PR?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Hi Hugo, Sorry if I am being dense here, but this is my first contribution. First, I tried just editing the code on Codespace in Github and then I tried forking, cloning, and making the change. Either way, I cannot seem to "find" where the docs "are" in the code. In other words, I see this: I don't actually 'see' the html for the docs that folks are referencing. I assume there is an html file somewhere for me to modify, but I cannot seem to find it. Apologies if this is a noob question, but I can't seem to see the next step here. |
The HTML is generated from RST files. If you go to https://docs.python.org/3/reference/compound_stmts.html#function-definitions and click Show Source in the left menu that takes you to https://github.com/python/cpython/blob/main/Doc/reference/compound_stmts.rst, which is the file to edit. To generate the HTML: cd Doc
.\make html And open build/html/index.html See also https://devguide.python.org/documentation/start-documenting/ |
Ok I'll give it a shot later today.
Sent from AOL on Android
On Sat, Dec 30, 2023 at 3:36 AM, Hugo van ***@***.***> wrote:
The HTML is generated from RST files.
If you go to https://docs.python.org/3/reference/compound_stmts.html#function-definitions and click Show Source in the left menu that takes you to https://github.com/python/cpython/blob/main/Doc/reference/compound_stmts.rst, which is the file to edit.
To generate the HTML:
cd Doc
.\make html
And open build/html/index.html
See also https://devguide.python.org/documentation/start-documenting/
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Co-authored-by: Hugo van Kemenade <[email protected]>
…-113588) (cherry picked from commit 8ff44f8) Co-authored-by: John D. McDonald <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
…-113588) (cherry picked from commit 8ff44f8) Co-authored-by: John D. McDonald <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
…) (#113644) Co-authored-by: John D. McDonald <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
…) (#113643) Co-authored-by: John D. McDonald <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
…13588) Co-authored-by: Hugo van Kemenade <[email protected]>
…13588) Co-authored-by: Hugo van Kemenade <[email protected]>
…13588) Co-authored-by: Hugo van Kemenade <[email protected]>
Uh oh!
There was an error while loading. Please reload this page.
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:
Linked PRs
The text was updated successfully, but these errors were encountered: