LPX55's picture
Update utils.py from anycoder
9c53557 verified
Raw History Blame Contribute Delete
2.82 kB
"""
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.