astraybirdss's picture
Upload folder using huggingface_hub
105aff1 verified
raw
history blame
3.21 kB
"""
Configuration settings for GATE Motion Analysis Gradio deployment.
Optimized for HuggingFace Spaces and similar cloud platforms.
"""
import os
from pathlib import Path
# Application settings
APP_NAME = "GATE Motion Analysis"
APP_VERSION = "2.0.0"
APP_DESCRIPTION = "GPU-optimized motion analysis for exercise form feedback"
# Server configuration
DEFAULT_PORT = 7860
DEFAULT_HOST = "0.0.0.0"
# Feature flags
ENABLE_DEBUG = os.getenv("DEBUG_MODE", "false").lower() == "true"
ENABLE_GPU = os.getenv("USE_GPU", "false").lower() == "true"
ENABLE_ANALYTICS = False # Disabled to prevent tracking errors
ENABLE_API_DOCS = False # Disabled to reduce overhead
# File upload limits
MAX_FILE_SIZE_MB = 50
SUPPORTED_VIDEO_FORMATS = [".mp4", ".avi", ".mov", ".mkv"]
SUPPORTED_IMAGE_FORMATS = [".jpg", ".jpeg", ".png", ".bmp", ".webp"]
# Exercise configuration
DEFAULT_EXERCISES = [
"Squats",
"Push-ups",
"Lunges",
"Bicep Curls",
"Deadlifts",
"Planks",
"Jumping Jacks"
]
# UI theme settings
UI_THEME = "soft" # Options: "default", "soft", "glass", "monochrome"
UI_PRIMARY_COLOR = "#2563eb"
UI_SUCCESS_COLOR = "#059669"
UI_WARNING_COLOR = "#f59e0b"
UI_ERROR_COLOR = "#dc2626"
# Performance settings
MAX_CONCURRENT_USERS = 10
REQUEST_TIMEOUT_SECONDS = 30
ENABLE_QUEUE = False # Disabled to prevent internal API calls
MAX_QUEUE_SIZE = 50
# Security settings
ALLOWED_ORIGINS = ["*"] # Restrict in production
ENABLE_CORS = True
DISABLE_SSL_VERIFY = True # For development only
# Gradio launch configuration
LAUNCH_CONFIG = {
"server_name": DEFAULT_HOST,
"server_port": int(os.getenv("PORT", DEFAULT_PORT)),
"share": False, # Disabled to prevent external service issues
"show_error": True,
"show_api": ENABLE_API_DOCS,
"quiet": not ENABLE_DEBUG,
"favicon_path": None, # Prevents favicon 404 errors
"max_threads": 1, # Single thread to avoid concurrency issues
"analytics_enabled": ENABLE_ANALYTICS
}
# Error messages
ERROR_MESSAGES = {
"no_file": "Please upload a file to analyze",
"invalid_format": "Unsupported file format. Please use JPG, PNG, or MP4",
"file_too_large": f"File size exceeds {MAX_FILE_SIZE_MB}MB limit",
"processing_error": "Error processing file. Please try again",
"server_error": "Server error. Please contact support"
}
# Success messages
SUCCESS_MESSAGES = {
"analysis_complete": "Analysis completed successfully",
"upload_success": "File uploaded successfully",
"system_ready": "System ready for analysis"
}
def get_app_info():
"""Get application information for display."""
return {
"name": APP_NAME,
"version": APP_VERSION,
"description": APP_DESCRIPTION,
"debug_mode": ENABLE_DEBUG,
"gpu_enabled": ENABLE_GPU
}
def get_system_status():
"""Get current system status."""
return {
"status": "operational",
"uptime": "N/A", # Could be calculated from start time
"memory_usage": "N/A", # Could be calculated from system
"cpu_usage": "N/A" # Could be calculated from system
}