A simple framework to create CLI tools
Project description
Chuda
Chuda is a very simple Python3 framework to create CLI (Command-Line-Interface) tools.
It will handle for you some basic stuff: parse configuration file, logging, argument parsing, signal handling etc...
Features
- Represent commands and argparse arguments by Python classes
- Handle parsing of a configuration file for you (INI, JSON, or YAML with pyyaml)
- Provide you a configurable logger, and some basic options to quiet/verbose mode
- Signals handling by decorator
Documentation
The documentation is accessible here
Example
import sys
import signal
from chuda import App, autorun, Command signal_handler, Option
class FooSubcommand(Command):
command_name = "foo"
description = "a foo subcommand"
def main(self):
self.logger.info("foo")
self.app.subcommands["bar"].run()
class BarSubcommand(Command):
command_name = "bar"
description = "the ultimate bar subcommand"
arguments = [
Option(name=["--path"], default="~")
]
def main(self):
process = self.shell.run(
"ls", cwd=self.arguments.path
)
self.logger.info(process.output)
@autorun()
class FooBarApp(App):
app_name = "foobar"
description = "Foobar application"
config_path = ["./config.ini", "../config.ini"]
subcommands = [FooSubcommand, BarSubcommand]
@signal_handler(signal.SIGINT)
def handle_ctrl_c(self, signum, frame):
self.logger.info("Stopping...")
sys.exit(2)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
chuda-0.1.1.tar.gz
(11.9 kB
view details)
File details
Details for the file chuda-0.1.1.tar.gz
.
File metadata
- Download URL: chuda-0.1.1.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3064aaa4e01a5a9b132c8d3665458e4b8cca4a659a846019e47c58e65b3c364d |
|
MD5 | 8372d85320d2ea8522444bc2195bdfcf |
|
BLAKE2b-256 | 14eb117ffe70d9c4071647ab3c13aedeb3e5eea56c83c89998b162a700e71dec |