Skip to main content

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

Project description

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...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clidir-0.1.2.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

clidir-0.1.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file clidir-0.1.2.tar.gz.

File metadata

  • Download URL: clidir-0.1.2.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for clidir-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ca9ae4c6626f54b742ede55ebf20c0027bf81891daf8ad665515572480cde1d1
MD5 8d3dee9474fd5d897ebb58818e9ba9d0
BLAKE2b-256 3b0a5047790c28bfed91ea49189b1396152c8879c99fd2292d27330c7c0c5efe

See more details on using hashes here.

File details

Details for the file clidir-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: clidir-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for clidir-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eef49019e86db7316c79b8e4e7dbf314ae3987dafe4d92eb0272e744da6d0905
MD5 37d42d56f7c84837ed00f9fc08ba8b99
BLAKE2b-256 185ba7cf63da55b9645067cc0143bfb8a483019b83182822f87d1f76a3ef105e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page