Create CLI interfaces quickly
Project description
========
M.A.C.H
========
.. image:: https://readthedocs.org/projects/mach/badge/?version=latest
:target: http://mach.readthedocs.io/en/latest/?badge=latest
.. image:: https://travis-ci.org/oz123/mach.svg?branch=master
:target: https://travis-ci.org/oz123/mach
.. image:: https://coveralls.io/repos/github/oz123/mach/badge.svg?branch=master
:target: https://coveralls.io/github/oz123/mach?branch=master
.. image:: https://coveralls.io/repos/github/oz123/mach/badge.svg?branch=master
:target: https://coveralls.io/github/oz123/mach?branch=master
Magical Argparse Command Helper
.. image:: https://raw.githubusercontent.com/oz123/mach/master/imgs/mach-logo.jpg
Features
--------
* Get your CLI interfaces quickly
* Turn a simple class to a CLI application or an interactive interpreter.
Given:
.. code:: python
class Calculator:
def add(self, a, b):
"""adds two numbers and prints the result"""
return a + b
def div(self, a, b):
"""divide one number by the other"""
return a / b
You can make command line application using the decorator ``mach1``:
.. code:: python
from mach import mach1
@mach1
class Calculator:
def add(self, int: a, int: b):
"""adds two numbers and prints the result"""
print(a + b)
def div(self, int: a, int: b):
"""divide one number by the other"""
print(a / b)
calc = Calculator()
calc.run()
Now if you run the module, you will get a program that you can invoke with
the flag ``-h`` or ``--help``:
.. code:: shell
$ python calc.py -h
usage: calc.py [-h] {add,div} ...
positional arguments:
{add,div} commands
add adds two numbers and prints the result
div divide one number by the other
optional arguments:
-h, --help show this help message and exit
each method is a subcommand, with type checking and it's own very help.
Hench, this won't work:
.. code:: shell
$ python calc.py add foo bar
usage: calc.py add [-h] b a
calc.py add: error: argument b: invalid int value: 'foo'
And this will:
.. code:: shell
$ python calc.py add 4 9
13
To see the help of the subcommand use ``-h``:
.. code:: shell
$ python calc.py add -h
usage: calc.py add [-h] b a
positional arguments:
b
a
optional arguments:
-h, --help show this help message and exit
With the help of the decorator ``mach2`` you can turn your class to CLI
application and have also an iteractive shell which invoke when no
parameters are given:
.. code:: shell
$ ./examples/calc2.py
Welcome to the calc shell. Type help or ? to list commands.
calc2 > ?
Documented commands (type help <topic>):
========================================
add div exit help
calc2 > help add
adds two numbers and prints the result
calc2 > add 2 4
6
calc2 > div 6 2
3.0
calc2 > exit
Come back soon ...
$
M.A.C.H
========
.. image:: https://readthedocs.org/projects/mach/badge/?version=latest
:target: http://mach.readthedocs.io/en/latest/?badge=latest
.. image:: https://travis-ci.org/oz123/mach.svg?branch=master
:target: https://travis-ci.org/oz123/mach
.. image:: https://coveralls.io/repos/github/oz123/mach/badge.svg?branch=master
:target: https://coveralls.io/github/oz123/mach?branch=master
.. image:: https://coveralls.io/repos/github/oz123/mach/badge.svg?branch=master
:target: https://coveralls.io/github/oz123/mach?branch=master
Magical Argparse Command Helper
.. image:: https://raw.githubusercontent.com/oz123/mach/master/imgs/mach-logo.jpg
Features
--------
* Get your CLI interfaces quickly
* Turn a simple class to a CLI application or an interactive interpreter.
Given:
.. code:: python
class Calculator:
def add(self, a, b):
"""adds two numbers and prints the result"""
return a + b
def div(self, a, b):
"""divide one number by the other"""
return a / b
You can make command line application using the decorator ``mach1``:
.. code:: python
from mach import mach1
@mach1
class Calculator:
def add(self, int: a, int: b):
"""adds two numbers and prints the result"""
print(a + b)
def div(self, int: a, int: b):
"""divide one number by the other"""
print(a / b)
calc = Calculator()
calc.run()
Now if you run the module, you will get a program that you can invoke with
the flag ``-h`` or ``--help``:
.. code:: shell
$ python calc.py -h
usage: calc.py [-h] {add,div} ...
positional arguments:
{add,div} commands
add adds two numbers and prints the result
div divide one number by the other
optional arguments:
-h, --help show this help message and exit
each method is a subcommand, with type checking and it's own very help.
Hench, this won't work:
.. code:: shell
$ python calc.py add foo bar
usage: calc.py add [-h] b a
calc.py add: error: argument b: invalid int value: 'foo'
And this will:
.. code:: shell
$ python calc.py add 4 9
13
To see the help of the subcommand use ``-h``:
.. code:: shell
$ python calc.py add -h
usage: calc.py add [-h] b a
positional arguments:
b
a
optional arguments:
-h, --help show this help message and exit
With the help of the decorator ``mach2`` you can turn your class to CLI
application and have also an iteractive shell which invoke when no
parameters are given:
.. code:: shell
$ ./examples/calc2.py
Welcome to the calc shell. Type help or ? to list commands.
calc2 > ?
Documented commands (type help <topic>):
========================================
add div exit help
calc2 > help add
adds two numbers and prints the result
calc2 > add 2 4
6
calc2 > div 6 2
3.0
calc2 > exit
Come back soon ...
$
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
mach.py-0.1.3.tar.gz
(56.4 kB
view details)
File details
Details for the file mach.py-0.1.3.tar.gz
.
File metadata
- Download URL: mach.py-0.1.3.tar.gz
- Upload date:
- Size: 56.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b6585ce2deba8445d1f0ed54858f0ae6822efc1ba0e7aec0dc596cc39c35a66 |
|
MD5 | 200e5fbc73356fc1be6a6f908f028567 |
|
BLAKE2b-256 | 4e2c861ba3544eb8a5fb5a1a3595c644ed8f60ab514dbd20792e6677b1edeb79 |