| import os | |
| import re | |
| def format_directory(directory): | |
| output = [] | |
| def helper(directory, level, output): | |
| files = os.listdir(directory) | |
| for i, item in enumerate(files): | |
| is_folder = os.path.isdir(os.path.join(directory, item)) | |
| joiner = "βββ " if i < len(files) - 1 else "βββ " | |
| item_html = item + "/" if is_folder else f"<a href='file={os.path.join(directory, item)}'>{item}</a>" | |
| output.append("β " * level + joiner + item_html) | |
| if is_folder: | |
| helper(os.path.join(directory, item), level + 1, output) | |
| output.append(os.path.basename(directory) + "/") | |
| helper(directory, 1, output) | |
| return "\n".join(output) | |
| DOWNLOAD_OUTPUTS_JS = """ | |
| () => { | |
| const a = document.createElement('a'); | |
| a.href = 'file=outputs.zip'; | |
| a.download = 'outputs.zip'; | |
| document.body.appendChild(a); | |
| a.click(); | |
| document.body.removeChild(a); | |
| }""" | |
| def remove_color(text): | |
| ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') | |
| return ansi_escape.sub('', text) |