Spaces:
Running
Running
File size: 1,198 Bytes
45021e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import uuid
import streamlit as st
import os
import time
import sys
import shutil
MAX_DIR_AGE_SECONDS = 1800
def get_session_id():
if 'session_id' not in st.session_state:
st.session_state.session_id = str(uuid.uuid4())
return st.session_state.session_id
def cleanup_stale_directories(base_dir: str):
"""Deletes directories under base_dir older than MAX_DIR_AGE_SECONDS."""
now = time.time()
for item_name in os.listdir(base_dir):
item_path = os.path.join(base_dir, item_name)
if os.path.isdir(item_path):
try:
mtime = os.path.getmtime(item_path)
if (now - mtime) > MAX_DIR_AGE_SECONDS:
shutil.rmtree(item_path)
print(f"Cleaned up stale directory: {item_path}", file=sys.stderr)
except Exception as e:
print(f"Error cleaning directory {item_path}: {e}", file=sys.stderr)
pass
def get_session_temp_dir(main_data_dir):
cleanup_stale_directories(main_data_dir)
session_id = get_session_id()
temp_dir = os.path.join(main_data_dir, session_id)
os.makedirs(temp_dir, exist_ok=True)
return temp_dir
|