Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Lightweight Python Build Tool.

Project Description

Calum J. Eadie (


  • Really quick to learn.
  • Manages dependancies between tasks.
  • Automatically generates a command line interface.


You can install microbuild from the Python Package Index (PyPI) or from source.

Using pip:

$ pip install microbuild

Using easy_install:

$ easy_install microbuild


The build script is written in pure Python and microbuild takes care of managing any dependancies between tasks and generating a command line interface.

Tasks are just regular Python functions marked with the @task() decorator. Dependancies are specified with @task() too. Tasks can be ignored with the @ignore decorator.

After defining all tasks build(sys.modules[__name__],sys.argv[1:]) is called to run the build.

import sys
from microbuild.microbuild import task,ignore,build

def clean():
    """Clean build directory."""
    print "Cleaning build directory..."

def html():
    """Generate HTML."""
    print "Generating HTML..."

def images():
    """Prepare images."""
    print "Preparing images..."

def android():
    """Package Android app."""
    print "Packaging android app..."

if __name__ == "__main__":

The command line interface and help is automatically generated. Task descriptions are extracted from function docstrings.

$ ./ -h
usage: [-h] task

positional arguments:
  task        perform specified task and all it's dependancies

optional arguments:
  -h, --help  show this help message and exit

  android     Package Android app.
  clean       Clean build directory.
  html        Generate HTML.
  images      Prepare images.

Dependancies between tasks are taken care of too.

$ ./ android
[ - Starting task "clean" ]
Cleaning build directory...
[ - Completed task "clean" ]
[ - Starting task "html" ]
Generating HTML...
[ - Completed task "html" ]
[ - Ignoring task "images" ]
[ - Starting task "android" ]
Packaging android app...
[ - Completed task "android" ]


microbuild is hosted at and contributions are very welcome.

epydoc is used for documentation generation and unittest for tests.

Run apidoc to generate documentation and test to run all unit tests.


microbuild is licensed under a MIT license. See LICENSE.txt.


0.3.3 - 26/03/2013

  • Improved README documentation.

0.3.1,0.3.2 - 15/12/2012

  • Improved README documentation.

0.3.0 - 18/09/2012

  • Fixed bug in logging. No longer modifies root logger.
  • Added ignore functionality.
  • Extended API documentation.

0.2.0 - 29/08/2012

  • Added progress tracking output.
  • Added handling of exceptions within tasks.

0.1.0 - 28/08/2012

  • Initial release.
  • Added management of dependancies between tasks.
  • Added automatic generation of command line interface.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(5.6 kB) Copy SHA256 Hash SHA256
Source None Mar 26, 2013

Supported By

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 Google Google Cloud Servers DreamHost DreamHost Log Hosting