'Does less need to run?'

def should_run(self):

    css_targets = [pjoin(static, 'css', 'style.min.css')]
    css_maps = [(t + '.map') for t in css_targets]
    targets = (css_targets + css_maps)
    if (not all((os.path.exists(t) for t in targets))):
        return True
    earliest_target = sorted((mtime(t) for t in targets))[0]
    for (dirpath, dirnames, filenames) in os.walk(static):
        for f in filenames:
            if f.endswith('.less'):
                path = pjoin(static, dirpath, f)
                timestamp = mtime(path)
                if (timestamp > earliest_target):
                    return True
    return False
