Metadata-Version: 2.1
Name: climmands
Version: 0.0.2
Summary: A small cli command helper package
Home-page: https://github.com/qwercik/climmands
Author: Eryk Andrzejewski
Author-email: erykandrzejewski@gmail.com
License: UNKNOWN
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
        ```bash
        $ pip install climmands
        ```
        
        ## Example
        ```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', 'First number')
        		parser.add_argument('second', 'Second number')
        
        	def execute(self, parsed_arguments):
        		first = parsed_arguments.first
        		second = parsed_arguments.second
        		result = first + second
        
        		print(f'{first} + {second} = {result}')
        
        def main():
        	parser = argparse.ArgumentsParser(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()
        ```
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
