-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
Add a page to the documentation listing stdlib modules with a command-line interface (CLI) #109435
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
Document modules providing a command-line interface (CLI).
There's not a page listing them, and I was also thinking it would be good to have an index. @simonw found 90 and wrote up some highlights on his blog recently: https://til.simonwillison.net/python/stdlib-cli-tools @AA-Turner Is there some existing Sphinx automation we could use for this? Mark the CLI sections and have them all listed on a single page, with some custom intro text? For example, we have a Superseded Modules page, but it's a manually maintained page. |
You missed Not all modules with the CLI have main() function. See for example |
I completed the list in my PR. I also completed the list of modules that I don't want to document in: #109435 (comment) IMO documenting |
Since https://til.simonwillison.net/python/stdlib-cli-tools was written, PEP 594 removed many modules. |
Note on #109436, this was previously rejected -- we should instead aim to document command-line behaviour in appropriate places. A |
Ah, I was not the first one looking for such list :-)
I propose to remove them. |
I think it's useful because https://docs.python.org/3/library/index.html is "here's a list of Python APIs you can use programmatically", and this page is "here's a list of Python APIs you can use via the command-line". The discussion about a |
For |
Document modules providing a command-line interface (CLI).
Document modules providing a command-line interface (CLI).
Document modules providing a command-line interface (CLI).
#93410 proposed to display the list as a table, the idea is interesting. But I'm not interested to propose a change for that. If someone wants to enhance the list, please go ahead! |
Could this be re-opened? This discussion was relatively short, not on python-dev and did not seem to review previous on the same topic. Some specific comments of interest:
I still don’t see the use of a long list, or long table, of all the runnable modules. They don’t all have the same usefulness and audience, or the same maintained/documented status. |
Feel free to reopen the issue and/or start a new discussion if you want. |
@merwok: You reopened the issue but then did nothing. If you disagree with the added documentation, you can just remove it. |
@hugovk @AA-Turner Would you object to a revert? (see comment from October 15 and the links there for justification) |
I actually found it useful this week, as a quick reference to check if a certain module could be used as a CLI ( I'd rather see it (incrementally) updated to make it more useful. IIRC there was a suggestion to group them somehow? |
What's the status of https://docs.python.org/dev/library/cmdline.html ? |
I still think it's useful: I told someone about it last month who said they wished they'd known about it before. There have been suggestions to show it in a table, or group them somehow. But if you want to close this issue, I think they could be new issues or PRs. |
I agree that it's useful, that we should improve it incrementally, and that this issue can be closed. The current state where we have just a list of module references is better than nothing, and we can improve it further over time with new issues/PRs. |
Ok, I close the issue again. |
While reviewing PR #109152, I discover that the sqlite3 module has a command line interface. Maybe I knew and then I forgot.
Is there a a documentation page listing all modules with a command-line interface (CLI)? I don't know so.
By searching for
main(
pattern and for__main__.py
files, so far, I found:Some modules include self-tests in their main() function. I dislike that and I would suggest to remove it and at least move it to their test suite.
dbm.__init__
: get the DB type... but this CLI is not easy discoverable, it's in the init module!~/.netrc
if available, and then display nothing... not very usefulLinked PRs
The text was updated successfully, but these errors were encountered: