See also


Only missing directories are created.

In other words, the same directory can be specified multiple times safely without, for example, being recreated repeatedly. Sometimes, for pipelines with multiple entry points, this is the only way to make sure that certain working or output directories are always created or available before the pipeline runs.


@follows(task | “task_name” | mkdir (directory_name), [more_tasks, ...])


Indicates either

  • task dependencies
  • that the task requires a directory to be created first if necessary. (Existing directories will not be overwritten)


def task1():
    print "doing task 1"

def task2():
    print "doing task 2"


  • task:

    a list of tasks which have to be run before this function

  • “task_name”:

    Dependencies can be quoted function names. Quoted function names allow dependencies to be added before the function is defined.

    Functions in other modules need to be fully qualified.

  • directory_name:

    Directories which need to be created (only if they don’t exist) before the task is run can be specified via a mkdir indicator object:

    @follows(task_x, mkdir("/output/directory") ...)
    def task():