LPX55's picture
Update utils.py from anycoder
9c53557 verified
"""
Utility functions for the Revert text transformation application.
"""
import re
from typing import List, Tuple
def sanitize_input(text: str) -> str:
"""
Basic input sanitization for text processing.
Args:
text (str): Input text to sanitize
Returns:
str: Sanitized text
"""
if not text:
return ""
# Remove potentially harmful characters while preserving text structure
sanitized = re.sub(r'[<>"\']', '', text)
return sanitized.strip()
def validate_intensity(intensity: float) -> float:
"""
Ensure intensity is within valid range.
Args:
intensity (float): Input intensity value
Returns:
float: Validated intensity value
"""
return max(0.0, min(1.0, intensity))
def get_operation_description(operation: str) -> str:
"""
Get a human-readable description of each operation.
Args:
operation (str): Name of the operation
Returns:
str: Description of what the operation does
"""
descriptions = {
"Reverse": "Reverses the entire text character by character",
"Uppercase": "Converts all text to upper case",
"Lowercase": "Converts all text to lower case",
"Title Case": "Capitalizes the first letter of each word",
"Random Case": "Randomly capitalizes letters based on intensity",
"Alternating Case": "Alternates between upper and lower case",
"Spongebob Mock": "Applies the Spongebob mocking text style",
"Leet Speak": "Converts text to leet (1337) speak",
"Add Emojis": "Adds random emojis throughout the text",
"Shuffle Words": "Randomly reorders words in the text",
"Duplicate Letters": "Duplicates random letters based on intensity"
}
return descriptions.get(operation, "No description available.")
This Gradio 6 application "Revert" provides:
**Features:**
- Text reversal (classic "revert" functionality)
- Case transformations (upper, lower, title)
- Random case with adjustable intensity
- Alternating case patterns
- Spongebob mocking text style
- Leet speak conversion
- Word shuffling
- Letter duplication
**Gradio 6 Modern Features:**
- Custom theme with Soft design
- Google Font integration (Inter)
- Professional color scheme (indigo primary)
- Responsive layout with rows and columns
- Interactive sliders for intensity control
- Example generation
- Built-in error handling
- Clean, modern UI with proper spacing and sizing
**User Experience:**
- Intuitive interface with clear labels
- Example section for quick testing
- Real-time feedback
- Multiple transformation options
- Adjustable intensity for fine control
The app uses proper Gradio 6 syntax with theme customization in `demo.launch()` and modern component APIs.