This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Python framework for commandline applications

Project Description

Python framework for commandline applications

Quickstart

Feeling impatient? I like your style.

$ pip install battalion

In mycli.py script:

from battalion.api import *


class DB(object):

    def __init__(self, state):
        self.msg = state.msg

    def myfunc(self):
        return self.msg


@fixture
def db(state):
    return DB(state)


class mycli(CLI):
    """
    Toplevel program - mycli
    """
    class State:
        version = '0.0.1'
        msg = ""

    @command
    def normal_function(cli, db, data=None):  # NOTE: the "db" arg will be populated from the "db" fixture function
        """Takes in data and outputs new data"""
        if data is None:
            return db.myfunc()
        else:
            return data

    @command
    def greeting(cli, name="Hello"):
        """
        Prints "Hello {name}!"
        """
        print "Hello {0}!".format(name)


class myhandler(Handler):
    """
    Organizational container of commands which can also add state variables
    """
    class State:
        version = '0.0.2'  # Handlers can have their own versioning
        cli = 'mycli'
        msg = "World"

    @command
    def validate(cli, data):
        return data

    @command
    def hello(cli, msg=None):
        """
        Prints "Hello World!"
        """
        name = cli.normal_function(data=msg)
        name = cli.myhandler.validate(data=name)
        cli.greeting(name=name)


if __name__ == "__main__":
    mycli.main()

Then on the commandline

$ python mycli.py myhandler hello
> Hello World!
$ #or if installed as a console script via setuptools
$ mycli myhandler hello
> Hello World!
$ #also
$ mycli myhandler hello "Josh"
> Hello Josh!
$ mycli --help
> Toplevel program - mycli
>
> Usage:
>     mycli [options] <command> [<args>...]
>     mycli [options]
>
> Options:
>     -h, --help                     Show this screen.
>     --version                      Show version.
>     -d, --debug                    Show debug messages
>     --config=<CONFIG>              The config filepath [default: ~/.mycli.cfg]
>
> Commands:
>     greeting                       Prints "Hello {name}!"
>     myhandler                      Organizational container of commands which can also add state variables
>
$ mycli myhandler hello --help
> Prints "Hello World!"
>
> Usage:
>     hello [options]
>     hello <msg>
>
> Options:
>     --msg=<MSG>                      [default: None]
>
Release History

Release History

This version
History Node

0.5.6

History Node

0.3.0

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

History Node

0.0.4

History Node

0.0.3

History Node

0.0.2

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
battalion-0.5.6-py2.py3-none-any.whl (14.4 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Feb 12, 2016
battalion-0.5.6.tar.gz (9.2 kB) Copy SHA256 Checksum SHA256 Source Feb 12, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting