Spaces:
Sleeping
Sleeping
# src/utils.py | |
import re | |
import datetime | |
from typing import Dict, List, Any | |
import salt.constants | |
def get_language_name(lang_code: str) -> str: | |
"""Get full language name from ISO code.""" | |
if lang_code is None: | |
return "Unknown" | |
return salt.constants.SALT_LANGUAGE_NAMES.get(lang_code, str(lang_code)) | |
def format_model_name(model_path: str) -> str: | |
"""Format model name for display in leaderboard.""" | |
if model_path == 'google-translate': | |
return 'Google Translate' | |
# Extract model name from HuggingFace path | |
if '/' in model_path: | |
return model_path.split('/')[-1] | |
return model_path | |
def validate_model_path(model_path: str) -> bool: | |
"""Validate if model path is supported.""" | |
if model_path == 'google-translate': | |
return True | |
# Check if it's a valid HuggingFace model path format | |
pattern = r'^[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+$' | |
return bool(re.match(pattern, model_path)) or not '/' in model_path | |
def get_model_type(model_path: str) -> str: | |
"""Determine model type from path.""" | |
model_path_lower = model_path.lower() | |
if model_path == 'google-translate': | |
return 'google-translate' | |
elif 'gemma' in model_path_lower: | |
return 'gemma' | |
elif 'qwen' in model_path_lower: | |
return 'qwen' | |
elif 'llama' in model_path_lower: | |
return 'llama' | |
elif 'nllb' in model_path_lower: | |
return 'nllb' | |
else: | |
return 'other' | |
def create_submission_id() -> str: | |
"""Create unique submission ID.""" | |
return datetime.datetime.now().strftime("%Y%m%d_%H%M%S") | |
def sanitize_input(text: str) -> str: | |
"""Sanitize user input.""" | |
if not text: | |
return "" | |
return re.sub(r'[^\w\-./]', '', text.strip()) |