Skip to main content

A small cli command helper package

Project description

Climmands

Climmands is a small package that provides a convenient abstraction for cli subcommands.

Each command is described by different class. These classes should inherit from Command class. The CommandLoader class is responsible for collecting all commands in module scope. CommandExecutor execute a proper command and pass it the rest of command line arguments.

Warning: it's a toy and untested package. Use only for your own responsibility!

Installation

$ pip install climmands

Example

#!/usr/bin/env python

import argparse
import climmands

class HelloWorldCommand(climmands.Command):
	name = 'hello'
	description = 'Print Hello World message'

	def execute(self, parsed_arguments):
		print('Hello world')

class AddTwoNumbersCommand(climmands.Command):
	name = 'add'
	description = 'Add two numbers and print result'

	def initialize_arguments_parser(self, parser):
		parser.add_argument('first', help='First number')
		parser.add_argument('second', help='Second number')

	def execute(self, parsed_arguments):
		first = int(parsed_arguments.first)
		second = int(parsed_arguments.second)
		result = first + second

		print(f'{first} + {second} = {result}')

def main():
	parser = argparse.ArgumentParser(description='My great command')
	commands = climmands.CommandLoader(parser).load_commands()
	executor = climmands.CommandExecutor(commands)

	parsed_arguments = parser.parse_args()
	if not executor.execute(parsed_arguments):
		parser.print_help()

if __name__ == '__main__':
	main()

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

climmands-0.0.3.tar.gz (2.2 kB view hashes)

Uploaded Source

Built Distribution

climmands-0.0.3-py3-none-any.whl (3.3 kB view hashes)

Uploaded Python 3

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