Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
from fastapi import APIRouter, HTTPException | |
import os | |
import shutil | |
from .upload import session_files | |
import logging | |
router = APIRouter(tags=["cleanup"]) | |
# Root directory for uploads | |
UPLOAD_ROOT = "uploaded_files" | |
# List of base documents that should not be deleted | |
BASE_DOCUMENTS = ["the-bitter-lesson", "hurricane-faq", "pokemon-guide"] | |
async def cleanup_session(session_id: str): | |
""" | |
Removes the session directory after the user has viewed the evaluation results. | |
Does not remove base documents. | |
In development mode, does nothing and returns a log message. | |
Args: | |
session_id: ID of the session to delete | |
Returns: | |
Dictionary with status and message | |
""" | |
# Check if we are in development mode | |
if os.environ.get("ENVIRONEMENT", "").lower() == "development": | |
# if True: | |
logging.info(f"[DEV MODE] Cleanup called for session: {session_id} - No action taken in development mode") | |
return { | |
"success": True, | |
"message": f"Development mode - cleanup skipped for session: {session_id}" | |
} | |
# Check if the session_id exists and is not a base document | |
if session_id in BASE_DOCUMENTS: | |
return { | |
"success": False, | |
"message": f"Cannot delete base document: {session_id}" | |
} | |
session_dir = os.path.join(UPLOAD_ROOT, session_id) | |
# Check if the directory exists | |
if not os.path.exists(session_dir): | |
return { | |
"success": False, | |
"message": f"Session directory not found: {session_id}" | |
} | |
try: | |
# Remove the session file reference | |
if session_id in session_files: | |
del session_files[session_id] | |
# Remove the session directory | |
shutil.rmtree(session_dir) | |
return { | |
"success": True, | |
"message": f"Session cleaned up successfully: {session_id}" | |
} | |
except Exception as e: | |
return { | |
"success": False, | |
"message": f"Error cleaning up session: {str(e)}" | |
} |