Setting the Order of Commands in Typer
python
Typer is a nice application for succinctly building Python CLIs built on top of Click. However when you’ve got subcommands they’re listed in alphabetical order. It would be nice to have the commands ordered in the same way they are in the code, so you can present them to the user in the clearest order to read.
There’s a simple solution for this in Python 3.6+ (for older versions outside of C Python you may need a more elaborate version with OrderedDict).
import typer
import click
class NaturalOrderGroup(click.Group):
def list_commands(self, ctx):
return self.commands.keys()
= typer.Typer(cls=NaturalOrderGroup) app
That’s all there is to it, with that small change the commands will appear in the same order they are written in the code.