util.py 887 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import uuid
  2. from datetime import datetime
  3. import jwt
  4. def datetime2timestamp(value: datetime):
  5. if not value:
  6. return None
  7. return value.timestamp()
  8. def str2datetime(value: str):
  9. if not value:
  10. return None
  11. return datetime.fromisoformat(value)
  12. def is_valid_datetime(date_str, format="%Y-%m-%d %H:%M:%S"):
  13. if not date_str or not isinstance(date_str, str):
  14. return False
  15. try:
  16. datetime.strptime(date_str, format)
  17. return True
  18. except ValueError:
  19. return False
  20. def random_uuid() -> str:
  21. return "ml-" + str(uuid.uuid4()).replace("-", "")
  22. def verify_jwt_expiration(token):
  23. decoded_token = jwt.decode(token, options={"verify_signature": False, "verify_exp": False})
  24. expiration_time = datetime.fromtimestamp(decoded_token['exp'])
  25. current_time = datetime.now()
  26. return current_time < expiration_time