import os def bundle_builder(bundle_name, folder, **kwargs): class file_map(object): def __init__(self, root): self.root = os.path.relpath(root, STATIC_ROOT) def __call__(self, file_name, **kwargs): if file_name not in kwargs.get('exclude', []): return "%s/%s" % (self.root, file_name) file_list = [bundle_name,] for root, dirs, files in os.walk(os.path.join(STATIC_ROOT, folder)): file_list.extend(map(file_map(root), files)) return tuple(file_list)