clidir

A tiny Python library to easily create CLI applications with sub commands


License
MIT
Install
pip install clidir==0.1.2

Documentation

clidir

PyPI Changelog Tests License: MIT

Create CLI applications with sub commands easily.

Description

Even simple CLI applications usually require sub commands. For example, git has git remote add, where remote and add are sub commands. Doing this with argparse or even with more developer friendly libraries can be challenging.

Keeping the commands source code organized in the project can also be complicated.

clidir helps you easily implement commands and sub commands by organizing your Python files in sub directories, so that you can use argparse in the simplest way, without the need of add_subparsers().

For example, to create a git remote add command, the project structure would be:

├── main.py
├── commands/
│     ├── remote/
│           ├── add.py

And the implementation of the add.py command would be like this:

import argparse

def run(args: list[str]) -> None:
    parser = argparse.ArgumentParser(prog='git remote add')
    parser.add_argument("name")
    parser.add_argument("url")
    
    # the rest of the implementation

Installation

Install this tool using pip:

pip install clidir

Examples

Usage

  1. Create a main.py file with the following code:
import sys
import clidir

def main() -> int:
    args = sys.argv
    clidir.run(args)
    
    return 0

if __name__ == "__main__":
    exit(main())
  1. Create a commands folder.
  2. Within the commands folder, create sub folders for your commands. For example:
├── commands/
│     ├── remote/
│           ├── add.py
  1. Implement the command. For example, to implement the add command, use this boilerplate:
import argparse

description = "what the command does"

def run(args: list[str]) -> None:
    parser = argparse.ArgumentParser(prog='your-app remote add')

    print('running the add command...')
  1. Test the execution of the command:
% python3 main.py remote add      
running the add command...