Skip to content

akitada/invoke

 
 

Repository files navigation

https://secure.travis-ci.org/pyinvoke/invoke.png?branch=master

BIG HONKIN' DISCLAIMER: This software is currently in beta. It's test-driven and dogfooded, but feature set & documentation has holes & rough spots. Please make sure you search the known issues before submitting new bug reports -- we already know it doesn't do X, Y and Z and will be sprinting to beef things up ASAP.

Thank you!


Invoke is a Python (2.6+ and 3.2+) task execution tool & library, drawing inspiration from various sources to arrive at a powerful & clean feature set.

  • Like Ruby's Rake tool and Invoke's own predecessor Fabric 1.x, it provides a clean, high level API for running shell commands and defining/organizing task functions from a tasks.py file:

    from invoke import run, task
    
    @task
    def clean(docs=False, bytecode=False, extra=''):
        patterns = ['build']
        if docs:
            patterns += 'docs/_build'
        if bytecode:
            patterns += '**/*.pyc'
        if extra:
            patterns += extra
        for pattern in patterns:
            run("rm -rf %s" % pattern)
    
    @task
    def build(docs=False):
        run("python setup.py build")
        if docs:
            run("sphinx-build")
    
  • From GNU Make, it inherits an emphasis on minimal boilerplate for common patterns and the ability to run multiple tasks in a single invocation:

    $ invoke clean build
    
  • Following the lead of most Unix CLI applications, it offers a traditional flag-based style of command-line parsing, deriving flag names and value types from task signatures (optionally, of course!):

    $ invoke clean --docs --bytecode build --docs --extra='**/*.pyo'
    $ invoke clean -d -b build --docs -e '**/*.pyo'
    $ invoke clean -db build -de '**/*.pyo'
    
  • Like many of its predecessors, it offers advanced features as well -- namespacing, task aliasing, before/after hooks, parallel execution and more.

For documentation, including detailed installation information, please see http://docs.pyinvoke.org. Post-install usage information may be found in invoke --help.

You can install the development version via pip install invoke==dev.

About

Simple Python task execution

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 90.7%
  • CSS 9.3%