cli2 cli ======== You probably won't need this, unless you want to reverse engineer Python library from the command line in a beautful way. Initially, cli2 was supposed to just bring Python callables on the CLI without even a single line of code:: cli2 path.to.your.callable arg1 kwarg1=value This command was implemented again in this 10th rewrite of the CLI engine extracted from another repo, however this implementation features something pretty funny: cli2 is a Group subclass which overrides the default Group implementation based on the first argument passed on the command line. Basically, when you call ``cli2 path.to.module``, it will load a Group of name ``path.to.module`` which whill load one Command per callable in ``path.to.module``. When you call ``cli2 path.to.function`` it will execute the function. As a result, these three commands are strictly equivalent:: cli2 cli2.examples.obj2 nested cli2 cli2.examples.obj2.nested That is because cli2 generates a group with every member of the previous group! See for yourself with:: cli2 help cli2 Or just:: cli2 cli2 Because cli2.test_node is not a callable but a module, cli2's cli2 CLI created a command Group on the fly with the module and added every callable member as command. When you call a group on the command line, it displays help by default to drive the user.