Craft 0.2.3

Like Makefile, but in Python
Craft is a tool like Makefile, except everything is in native Python.


pip install craft

Craft works on Python 2.7+ and Python 3.2+.

Crafty files

Craft will read attempt to read in the current directory or the environment variable $CRAFTFILE.

An example

from craft import task, depends

@depends('bar', 'foo')
def cake():
 Prints cake, and depends on foo & bar
 to run first
 print('Time for cake')

def bar():
 """ Prints bar """

def foo():
 print("Hi,I'm foo")

def auto():
 I will run when you supply no arguments to "craft".
 print("Auto - Doing my own thing. Which is 'foo' today.")

def setup():
 I will run once on any call to "craft"
 print("Hello good sir, I'm the setup routine.")


Running craft -h in the directory containing will show the list of available tasks. Example:

usage: craft [-h] [task [task ...]]

positional arguments:

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

Available tasks:

- cake: Prints cake, and depends on foo & bar to run first
- auto: I will run when you supply no arguments to "craft".
- setup: I will run once on any call to "craft"
- foo:
- bar: Prints bar

As you can see, the docstring for each @task function will then be represented in the help output, and docstrings can be omitted.

You can call individual tasks like:

craft foo

and run multiple tasks with one call like:

craft foo bar

last updated on:
August 31st, 2012, 5:14 GMT
developed by:
Jamie Paton
license type:
MIT/X Consortium License 
ROOT \ Programming \ Compilers
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!
What's New in This Release:
  • Fix error catching isolation from craft and the actual task
read full changelog

Add your review!