Skip to main content

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

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

mach.py-0.1.3.tar.gz (56.4 kB view details)

Uploaded Source

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

Hashes for mach.py-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7b6585ce2deba8445d1f0ed54858f0ae6822efc1ba0e7aec0dc596cc39c35a66
MD5 200e5fbc73356fc1be6a6f908f028567
BLAKE2b-256 4e2c861ba3544eb8a5fb5a1a3595c644ed8f60ab514dbd20792e6677b1edeb79

See more details on using hashes here.

Provenance

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