# -*- coding: utf-8 -*-
'''
Created on Mar 13, 2012
@author: ymh and tc
'''
import hashlib
import logging
import re
from django.core.cache import cache
from django.utils.encoding import smart_str
logger = logging.getLogger(__name__)
def fix_cache_key(key):
cache_key = re.sub(r'\s+', '-', key)
cache_key = smart_str(cache_key)
if len(cache_key) > (250-(2+len(cache.key_prefix)+len(str(cache.version)))-33):
cache_key = cache_key[:(250-(2+len(cache.key_prefix)+len(str(cache.version)))-33)] + '-' + hashlib.md5(cache_key).hexdigest()
return cache_key
#
# from : http://cs.stackexchange.com/a/10321
#
def toDigits(n, b):
"""Convert a positive number n to its digit representation in base b."""
digits = []
while n > 0:
digits.insert(0, n % b)
n = n // b
return digits