@@ -0,0 +1,1311 @@
+from buildlet.datastore import DataAutoDirectoryAutoValue%0Afrom buildlet.task import BaseCachedTask, BaseSimpleTask%0Afrom buildlet.runner import SimpleRunner%0A%0A%0Aclass BaseSimpleCachedTask(BaseSimpleTask, BaseCachedTask):%0A%0A    def run(self):%0A        print %22Running %7B0%7D...%22.format(self)%0A%0A%0Aclass SimpleRootTask(BaseSimpleCachedTask):%0A%0A    num_parents = 3%0A%0A    def __init__(self, basepath, **kwds):%0A        self.datastore = DataAutoDirectoryAutoValue(basepath)%0A        super(SimpleRootTask, self).__init__(basepath=basepath, **kwds)%0A%0A    def generate_parents(self):%0A        return %5B%0A            BaseSimpleCachedTask(%0A                # Only string key is supported by all nestable%0A                # data store types.%0A                datastore=self.datastore.get_substore(str(i)))%0A            for i in range(self.num_parents)%5D%0A%0A%0Adef run_simple_task(**kwds):%0A    task = SimpleRootTask(**kwds)%0A    runner = SimpleRunner()%0A    runner.run(task)%0A%0A%0Adef main(args=None):%0A    from argparse import ArgumentParser%0A    parser = ArgumentParser(description=__doc__)%0A    parser.add_argument('--basepath', default=%22.%22)%0A    parser.add_argument('--num-parents', type=int,%0A                        default=SimpleRootTask.num_parents)%0A    ns = parser.parse_args(args)%0A    run_simple_task(**vars(ns))%0A%0A%0Aif __name__ == '__main__':%0A    main()%0A

Add samples/simple.py