Spaces:
Sleeping
Sleeping
| from smolagents import tool | |
| import random | |
| import string | |
| def generate_password(length: int = 12, include_special: bool = True) -> str: | |
| """Generate a secure random password | |
| Args: | |
| length: Length of password (default: 12) | |
| include_special: Include special characters (default: True) | |
| """ | |
| try: | |
| if length < 8: | |
| return "Password length must be at least 8 characters" | |
| chars = string.ascii_letters + string.digits | |
| if include_special: | |
| chars += string.punctuation | |
| password = ''.join(random.choice(chars) for _ in range(length)) | |
| # Ensure password contains at least one of each required type | |
| if not any(c.isupper() for c in password): | |
| password = random.choice(string.ascii_uppercase) + password[1:] | |
| if not any(c.islower() for c in password): | |
| password = password[:-1] + random.choice(string.ascii_lowercase) | |
| if not any(c.isdigit() for c in password): | |
| pos = random.randint(1, len(password)-2) | |
| password = password[:pos] + random.choice(string.digits) + password[pos+1:] | |
| return f"Generated password: {password}" | |
| except Exception as e: | |
| return f"Error generating password: {str(e)}" |