ActionTree is a Python (2.7+ and 3.3+) library to execute (long) actions in parallel, respecting dependencies between those actions. You create the graph of the actions to be executed and then call the execute method of its root, specifying how many actions must be run in parallel and if errors should stop the execution.

It’s licensed under the MIT license. It’s available on the Python package index, its documentation is hosted by Python and its source code is on GitHub.

Questions? Remarks? Bugs? Want to contribute? Open an issue!

Quick start

Install from PyPI:

$ pip install ActionTree


>>> from ActionTree import *
>>> from ActionTree.stock import *

Execute some action:

>>> link = CallSubprocess(["g++", "-o", "test", "a.o", "b.o"])
>>> link.add_dependency(CallSubprocess(["g++", "-c", "doc/a.cpp", "-o", "a.o"]))
>>> link.add_dependency(CallSubprocess(["g++", "-c", "doc/b.cpp", "-o", "b.o"]))
>>> link.execute(jobs=2)

Indices and tables