Description
Hi @initialcommit-io , it's me again 😆
With the inheritance model simplified, I think there is one other thing we could greatly improve - the way the command line arguments are handled.
I am a big fan of Typer, that tool makes it super easy to manage all that stuff - and it gives type hints!
The docs are also great and explain the whole concept better than I could ever do here, so maybe you want to have a look at that :)
I have worked on a branch showcasing the concept for some of the commands (log
and status
for now), check it out: typer
The basic idea is that each command is a function, and the function arguments are the corresponding CLI arguments / flags / options. But we don't have to do all that argparse
stuff (setting up parsers and subparsers in main()
, and having to sync that with the args.subcommand
in the actual Command classes ...).
Let me know if you like it!