Spaces:
Sleeping
Sleeping
File size: 930 Bytes
21ff07a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import random
import re
import string
from datetime import datetime,timedelta
def validate_email(email:str)->bool:
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return re.match(pattern,email) is not None
def validate_password(password:str)->tuple[bool,str]:
if len(password)<8:
return False,"Password must be at least 8 characters long."
if not re.search(r'[A-Z]',password):
return False,"Password must contain at least one uppercase letter."
if not re.search(r'[a-z]',password):
return False,"Password must contain at least one lowercase letter."
if not re.search(r'[0-9]',password):
return False,"Password must contain at least one digit."
return True,""
def generate_code()->str:
return ''.join(random.choices(string.digits,k=6))
def is_code_expired(expires_at:datetime)->bool:
return datetime.utcnow()>expires_at
|