Discussion ########## The following are various topics... .. warning:: The content of this page is incomplete! .. FIXME complete the page content Motivation ********** Discuss why! * Easy transition from argparse * Lightweight as possible * Customizable integration of of argparse-based and other CLI packages * Class based vs decorators * Well-defined initial scope, suitable for practice at producing a high-quality package Design Goals ************ Discuss... * Include discussion of related non-[initial-]goal topics * Use of Decree/Tree by themselves? Known Limitations & Issues ************************** Discuss... * Argparse problems... * Known TODO/FIXME/ISSUES... * No explicit support for late binding .. Note that ``argparse`` does not allow multiple subparsers for a command, so commands that intersperse subcommand names with options and other positional arguments are not easily constructed with ``decree-tree``. FIXME check on the accuracy statement above; add a reference? Future Plans ************ Discuss... * Support for `argcomplete `__ * Possibly optional logging configuration and verbosity * Full test coverage * Improved automation for package test, upload, and docs * Others... Alternatives ************ .. FIXME describe each option, as compared to decree-tree There are a variety of other excellent Python CLI packages, from both the standard library and third-parties. The Python standard library provides the following CLI packages: * `argparse `__ * `getopt `__ * `optparse `__ Some third party CLI packages are summarized here. There are others. See `awesome-cli-frameworks `__ and `awesome-python `__ for expanded lists. Many of these tools have goals that go beyond the scope of ``decree-tree``, or use different design paradigms than the goals of this package. * `Cleo `__ * `Click `__ * `docopt `__ * `duckargs `__ * `Python Fire `__ * `Tap `__ * `Typer `__ Refer to `Packaging guide `__