32 lines
No EOL
926 B
Python
32 lines
No EOL
926 B
Python
import datetime
|
|
import json
|
|
import random
|
|
import string
|
|
import traceback
|
|
import unicodedata
|
|
|
|
from functools import wraps
|
|
from werkzeug.security import generate_password_hash, check_password_hash
|
|
|
|
def hash_password(s):
|
|
return generate_password_hash(s)
|
|
|
|
def check_password(hashed_password, try_password):
|
|
return check_password_hash(hashed_password, try_password)
|
|
|
|
def generate_string(length=32, alpha=string.hexdigits):
|
|
return "".join([random.choice(alpha) for x in range(length)])
|
|
|
|
def unix_time_millis(dt):
|
|
epoch = datetime.datetime.utcfromtimestamp(0)
|
|
return (dt - epoch).total_seconds() * 1000.0
|
|
|
|
def get_time_since_epoch():
|
|
return unix_time_millis(datetime.datetime.now())
|
|
|
|
def flat_multi(multidict):
|
|
flat = {}
|
|
for key, values in multidict.items():
|
|
value = values[0] if type(values) == list and len(values) == 1 else values
|
|
flat[key] = unicodedata.normalize("NFKD", value).encode("ascii", "ignore")
|
|
return flat |