daren_project/venv/Lib/site-packages/rest_framework_simplejwt/utils.py

49 lines
1.0 KiB
Python
Raw Normal View History

import hashlib
from calendar import timegm
from datetime import datetime, timezone
from typing import Callable
from django.conf import settings
from django.utils.functional import lazy
def get_md5_hash_password(password: str) -> str:
"""
Returns MD5 hash of the given password
"""
return hashlib.md5(password.encode()).hexdigest().upper()
def make_utc(dt: datetime) -> datetime:
if settings.USE_TZ and dt.tzinfo is None:
return dt.replace(tzinfo=timezone.utc)
return dt
def aware_utcnow() -> datetime:
dt = datetime.now(tz=timezone.utc)
if not settings.USE_TZ:
dt = dt.replace(tzinfo=None)
return dt
def datetime_to_epoch(dt: datetime) -> int:
return timegm(dt.utctimetuple())
def datetime_from_epoch(ts: float) -> datetime:
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
if not settings.USE_TZ:
dt = dt.replace(tzinfo=None)
return dt
def format_lazy(s: str, *args, **kwargs) -> str:
return s.format(*args, **kwargs)
format_lazy: Callable = lazy(format_lazy, str)