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

49 lines
1.0 KiB
Python

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)