Module pywander.unique_key

Functions

def build_unique_key(base_key, *args, **kwargs)
Expand source code
def build_unique_key(base_key, *args, **kwargs):
    """
    缓存唯一id标识生成函数

    :param base_key: 基本的区分key值 比如函数名
    :param args: 必填参数
    :param kwargs: 其他参数
    :return:
    """
    args_id = ""
    kwargs_id = ""

    if args:
        args_id = '_'.join(args)

    if kwargs:
        kwargs = OrderedDict(sorted(kwargs.items(), key=lambda t: t[0]))
        kwargs_id = urlencode(kwargs)

    key = '_'.join([i for i in [base_key, args_id, kwargs_id] if i])

    key = md5(key.encode()).hexdigest()
    return key

缓存唯一id标识生成函数

:param base_key: 基本的区分key值 比如函数名 :param args: 必填参数 :param kwargs: 其他参数 :return:

def mapping_string(string, n=10)
Expand source code
def mapping_string(string, n=10):
    """
    use md5 hash method to mapping string
    """
    return reduce(add, [ord(i) for i in str_md5(string)]) % n

use md5 hash method to mapping string

def random_md5(limit=None)
Expand source code
def random_md5(limit=None):
    """
    输出基于uuid1产生的md5标识
    limit 截取最前面的几个
    """
    key = str(uuid1())
    text = str_md5(key)
    if limit:
        assert isinstance(limit, int)
        assert limit > 0
        return text[:limit]
    else:
        return text

输出基于uuid1产生的md5标识 limit 截取最前面的几个

def str_md5(key)
Expand source code
def str_md5(key):
    return md5(key.encode()).hexdigest()