def uptodate_if_isdir(path): def do_check(): return os.path.isdir(path) return do_check def uptodate_if_older_than(dependency, *targets): def do_check(): dep_mtime = os.stat(dependency).st_mtime mtimes = [os.stat(t).st_mtime for t in targets if os.path.isfile(t)] target_mtime = max(mtimes) if mtimes else 0 return dep_mtime < target_mtime return do_check