Spaces:
Sleeping
Sleeping
import gradio as gr | |
from uuid import uuid4 | |
from fileManager import FileManager | |
import re | |
import os | |
import random | |
import string | |
import glob | |
############################################################## | |
# File Manager Integration | |
############################################################## | |
fileManager = FileManager() | |
fileManager.start() | |
def saveFile(file): | |
with open(file.name, "rb") as rfile: | |
file_infor = fileManager.saveFile(rfile.read(), file.orig_name) | |
return f"https://emee-nx-storage.hf.space/file=./{file_infor['path']}" | |
############################################################## | |
# Random Text File Generation Function | |
############################################################## | |
def generate_random_string(length=100): | |
"""Generate a random string of fixed length.""" | |
return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length)) | |
num_files=10 | |
file_length=1000 | |
def generate_text_files(directory): | |
if not os.path.exists(directory): | |
return | |
for i in range(num_files): | |
file_name = os.path.join(directory, f'random_file_{i}.txt') | |
with open(file_name, 'w') as f: | |
for _ in range(file_length): | |
f.write(generate_random_string() + '\n') | |
############################################################## | |
# The Gradio App with File Management and Text Generation | |
############################################################## | |
with gr.Blocks() as demo: | |
# File Explorer for Upload (using fileManager integration) | |
gr.File(label="Upload File", upload=True, fn=saveFile) | |
# File Explorer for Existing Files (persistent storage) | |
working_dir = gr.FileExplorer(label="Working directory") | |
# Generate Random Text Files Button | |
generate_button = gr.Button("Generate Random Text Files") | |
def generate_files(event): | |
# Generate text files in working directory chosen by user | |
generate_text_files(working_dir.value) | |
gr.FileExplorer(root=working_dir.value, label="Persistent storage") | |
demo.launch() | |