Skip to content
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

Use .. program:: and .. option:: directives for modules with a documented CLI #130160

Open
5 of 6 tasks
picnixz opened this issue Feb 15, 2025 · 6 comments · Fixed by #130253 or #130278
Open
5 of 6 tasks

Use .. program:: and .. option:: directives for modules with a documented CLI #130160

picnixz opened this issue Feb 15, 2025 · 6 comments · Fixed by #130253 or #130278
Labels
docs Documentation in the Doc dir

Comments

@picnixz
Copy link
Member

picnixz commented Feb 15, 2025

This is something (#129607 (comment)) I thought of when reviewing #129607. It's usually fine not to have links, but once we begin adding new command-line options to specific modules (e.g., http.server), I think it'd be nice to be able to reference them using Sphinx.

Using the .. program:: directive also improves readability. For instance, compare https://docs.python.org/3/library/dis.html#command-line-interface with https://docs.python.org/3/library/http.server.html where the CLI documentation is at the end of the page, without even a dedicated section.

I suggest going through the modules in #109435 and select those whose documentation page can be improved. By looking at the list, I found the following that can be improved:

quopri is both missing a documentation for its CLI so we can also add it. base64 as well, but I think it's meant to be undocumented. More modules can be found in #93096 as well.

For now, I suggest focusing on only those who already have a documented command-line interface and just improving them. Whether a module should have its main() function documented or not is out-of-scope for this issue.

Important

For those who want to work on the issue, please:

Linked PRs

@picnixz picnixz added the docs Documentation in the Doc dir label Feb 15, 2025
@picnixz picnixz added the easy label Feb 15, 2025
@tomasr8
Copy link
Member

tomasr8 commented Feb 15, 2025

Tangentially related, but the dis module uses the cmdoption directive (as opposed to option) to document its CLI. We might want to switch to option for consistency.

@picnixz
Copy link
Member Author

picnixz commented Feb 15, 2025

Yes, and cmdoption is actually deprecated so it's better to use option :)

@Mr-Sunglasses
Copy link
Contributor

@pfmoore , @sobolevn

There are more files related that need to be changed that are mentioned in this issue, so it's good that we should reopen this until all those changes are encountered.

@sobolevn sobolevn reopened this Feb 18, 2025
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Feb 18, 2025
…pip` CLI (pythongh-130253)

(cherry picked from commit 8cd7f8b)

Co-authored-by: Kanishk Pachauri <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Feb 18, 2025
…pip` CLI (pythongh-130253)

(cherry picked from commit 8cd7f8b)

Co-authored-by: Kanishk Pachauri <[email protected]>
pfmoore pushed a commit that referenced this issue Feb 18, 2025
…epip` CLI (gh-130253) (gh-130259)

gh-130160: use `.. program::` directive for documenting `ensurepip` CLI (gh-130253)
(cherry picked from commit 8cd7f8b)

Co-authored-by: Kanishk Pachauri <[email protected]>
pfmoore pushed a commit that referenced this issue Feb 18, 2025
…epip` CLI (gh-130253) (gh-130258)

gh-130160: use `.. program::` directive for documenting `ensurepip` CLI (gh-130253)
(cherry picked from commit 8cd7f8b)

Co-authored-by: Kanishk Pachauri <[email protected]>
sobolevn added a commit to sobolevn/cpython that referenced this issue Feb 18, 2025
…st` (pythonGH-130255)

(cherry picked from commit 97d0011)

Co-authored-by: sobolevn <[email protected]>
sobolevn added a commit to sobolevn/cpython that referenced this issue Feb 18, 2025
sobolevn added a commit that referenced this issue Feb 18, 2025
Mr-Sunglasses added a commit to Mr-Sunglasses/cpython that referenced this issue Feb 18, 2025
sobolevn added a commit to sobolevn/cpython that referenced this issue Feb 24, 2025
Mr-Sunglasses added a commit to Mr-Sunglasses/cpython that referenced this issue Feb 28, 2025
sobolevn pushed a commit that referenced this issue Mar 1, 2025
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Mar 1, 2025
…le` CLI (pythonGH-130314)

(cherry picked from commit 5181ddb)

Co-authored-by: Apostol Fet <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Mar 1, 2025
…le` CLI (pythonGH-130314)

(cherry picked from commit 5181ddb)

Co-authored-by: Apostol Fet <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
sobolevn pushed a commit that referenced this issue Mar 1, 2025
…ile` CLI (GH-130314) (#130745)

gh-130160: use `.. program::` directive for documenting `cProfile` CLI (GH-130314)
(cherry picked from commit 5181ddb)

Co-authored-by: Apostol Fet <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
sobolevn pushed a commit that referenced this issue Mar 1, 2025
…ile` CLI (GH-130314) (#130746)

gh-130160: use `.. program::` directive for documenting `cProfile` CLI (GH-130314)
(cherry picked from commit 5181ddb)

Co-authored-by: Apostol Fet <[email protected]>
Co-authored-by: Bénédikt Tran <[email protected]>
Co-authored-by: Adam Turner <[email protected]>
sobolevn pushed a commit that referenced this issue Mar 9, 2025
…CLI (#130995)

use `.. program::` directive for documenting `webbrowser` CLI
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Mar 9, 2025
…wser` CLI (pythonGH-130995)

use `.. program::` directive for documenting `webbrowser` CLI
(cherry picked from commit 92e5f82)

Co-authored-by: donBarbos <[email protected]>
sobolevn pushed a commit that referenced this issue Mar 9, 2025
…owser` CLI (GH-130995) (#131003)

gh-130160: use `.. program::` directive for documenting `webbrowser` CLI (GH-130995)

use `.. program::` directive for documenting `webbrowser` CLI
(cherry picked from commit 92e5f82)

Co-authored-by: donBarbos <[email protected]>
sobolevn pushed a commit that referenced this issue Mar 9, 2025
…owser` CLI (GH-130995) (#131004)

* gh-130160: use `.. program::` directive for documenting `webbrowser` CLI (#130995)

use `.. program::` directive for documenting `webbrowser` CLI

(cherry picked from commit 92e5f82)

* remove extra paragraph
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Mar 9, 2025
…LI (pythonGH-130996)

(cherry picked from commit c240c2d)

Co-authored-by: donBarbos <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Mar 9, 2025
…LI (pythonGH-130996)

(cherry picked from commit c240c2d)

Co-authored-by: donBarbos <[email protected]>
gaogaotiantian pushed a commit that referenced this issue Mar 9, 2025
…CLI (GH-130996) (#131014)

gh-130160: use `.. program::` directive for documenting `pdb` CLI (GH-130996)
(cherry picked from commit c240c2d)

Co-authored-by: donBarbos <[email protected]>
gaogaotiantian pushed a commit that referenced this issue Mar 9, 2025
…CLI (GH-130996) (#131013)

gh-130160: use `.. program::` directive for documenting `pdb` CLI (GH-130996)
(cherry picked from commit c240c2d)

Co-authored-by: donBarbos <[email protected]>
@picnixz
Copy link
Member Author

picnixz commented Mar 9, 2025

Except for venv where we may not want to do this, and for http.server which is the reason why I initially created this issue, I don't think we need to do more.

Exposing more CLIs likely requires a separate feature request for each module and deciding the fate of each existing CLI option such as those for self-testing should be tracked separately as well. So, once we're done with http.server and once we are done with venv as well, we will close this issue.

As such I'll remove the easy label as there is no "new" task apart from the ongoing ones.

@picnixz picnixz removed the easy label Mar 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir
Projects
Status: Todo
6 participants
@sobolevn @tomasr8 @picnixz @terryjreedy @Mr-Sunglasses and others