From d4057b5508ff8baf0728e25922d0817358df1852 Mon Sep 17 00:00:00 2001 From: Alex Corcoles Date: Fri, 28 Oct 2022 11:29:26 +0200 Subject: [PATCH] Explain the main argparse limitation --- programming/python/creating_nice_python_cli_tools.md | 1 + 1 file changed, 1 insertion(+) diff --git a/programming/python/creating_nice_python_cli_tools.md b/programming/python/creating_nice_python_cli_tools.md index e0071b2..f878c75 100644 --- a/programming/python/creating_nice_python_cli_tools.md +++ b/programming/python/creating_nice_python_cli_tools.md @@ -26,6 +26,7 @@ Following this advice can make your tools easy to install by others, pleasant to * Consider using the standard [logging](https://docs.python.org/3/library/logging.html) module with a format that uses a timestamp, so users can inspect how much time is spent in different parts of the program. You can also use logging module to implement flags such as `--debug` and `--verbose`. * Although fancier tools exist, the standard [argparse](https://docs.python.org/3/library/argparse.html) module is good enough for most argument parsing. + The main functionality missing is easy tab completion. It has decent support for [sub-commands](https://docs.python.org/3/library/argparse.html#sub-commands), and the linked document describes a very nice pattern to define functions for sub-commands, under "One particularly effective way of handling sub-commands..." Provide help text for non-obvious parameters. argparse supports a lot of different argument types with a lot of functionality out of the box, such as enumerated options, integers, and file names. -- 2.47.3