ysharma's picture
ysharma HF Staff
Update app.py
8120c3f verified
import gradio as gr
import tempfile
from PIL import Image
import uuid
import os
import shutil
from pathlib import Path
import random
import string
import glob
# Set the environment variable
os.environ['GRADIO_TEMP_DIR'] = '/data'
gradio_temp_dir = os.environ['GRADIO_TEMP_DIR']
#print(f'GRADIO_TEMP_DIR is = {gradio_temp_dir}')
#absolute_path1 = os.path.abspath(gradio_temp_dir)
#print(f"The absolute path of gradio_temp_dir is = {absolute_path1}")
# Get the path of the system's temporary directory
temp_directory = tempfile.gettempdir()
print(f"System's temporary directory is: {temp_directory}")
def create_local():
length = 100
text_string = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length))
#rand_num = random.randint(1, 10000)
file_name = os.path.join('temp_dir', f'random_file_1.txt')
with open(file_name, 'w') as f:
for _ in range(10):
f.write(text_string + '\n')
def movefiles():
# Get the path of the system's temporary directory
temp_directory = tempfile.gettempdir()
# Specify the path of the file to be moved
directory_name = 'temp_dir'
absolute_path = os.path.abspath(directory_name)
file_path = 'random_file_1.txt'
old_path = os.path.join(absolute_path, os.path.basename(file_path))
# Construct the new path in the temporary directory with the same filename
new_path = os.path.join(temp_directory, os.path.basename(file_path))
print(f'new_path - {new_path}')
# Move the file
shutil.move(old_path, new_path)
print(f"Moved the file to: {new_path}")
def create():
"""
Create a blank image with the specified dimensions, color, and filename.
"""
color='blue'
width=512
height=512
# Create a temporary file
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
print(f"Temporary file created at: {temp_file.name}")
# Create a new image with the given mode and size
image = Image.new("RGB", (width, height), color)
# Save the image to disk
image.save(temp_file, format='PNG')
# List all entries in the directory
temp_directory_file_list = os.listdir(temp_directory)
print(f'temp_directory_file_list is = {temp_directory_file_list}')
return temp_file.name, temp_directory_file_list
with gr.Blocks(delete_cache=(5,10),) as demo:
with gr.Row():
inp = gr.Textbox(placeholder="Temporary files at location specified with GRADIO_TEMP_DIR ")
out = gr.Image(type='filepath')
gr.FileExplorer(root="/data", label="Persistent storage")
with gr.Row(equal_height=False):
with gr.Column():
btn = gr.Button("Generate temp files!")
btn1 = gr.Button("Generate local files!")
gr.FileExplorer(label="local storage")
btn2 = gr.Button("Move files to temp dir!")
btn.click(create,inputs=[],outputs=[out, inp])
btn1.click(create_local,inputs=[],outputs=[])
btn2.click(movefiles,inputs=[],outputs=[])
demo.launch(debug=False)