Added optional length argument to get_hexdigest utility.

This commit is contained in:
Jannis Leidel
2011-04-07 22:16:50 +02:00
parent 68a3576bab
commit e1d230e0e3
2 changed files with 11 additions and 10 deletions

View File

@@ -63,16 +63,14 @@ class Compressor(object):
@cached_property @cached_property
def mtimes(self): def mtimes(self):
for kind, value, elem in self.split_contents(): return [str(get_mtime(value))
if kind == 'file': for kind, value, _ in self.split_contents() if kind == 'file']
yield str(get_mtime(value))
@cached_property @cached_property
def cachekey(self): def cachekey(self):
cachestr = "".join( key = get_hexdigest(''.join(
chain([self.content], self.mtimes)).encode(self.charset) [self.content] + self.mtimes).encode(self.charset), 12)
return "django_compressor.%s.%s" % (socket.gethostname(), return "django_compressor.%s.%s" % (socket.gethostname(), key)
get_hexdigest(cachestr)[:12])
@cached_property @cached_property
def hunks(self): def hunks(self):

View File

@@ -8,8 +8,11 @@ from django.utils.hashcompat import sha_constructor
from compressor.conf import settings from compressor.conf import settings
def get_hexdigest(plaintext): def get_hexdigest(plaintext, length=None):
return sha_constructor(plaintext).hexdigest() digest = sha_constructor(plaintext).hexdigest()
if length:
return digest[:length]
return digest
def get_mtime_cachekey(filename): def get_mtime_cachekey(filename):
@@ -37,7 +40,7 @@ def get_mtime(filename):
def get_hashed_mtime(filename, length=12): def get_hashed_mtime(filename, length=12):
filename = os.path.realpath(filename) filename = os.path.realpath(filename)
mtime = str(int(get_mtime(filename))) mtime = str(int(get_mtime(filename)))
return get_hexdigest(mtime)[:length] return get_hexdigest(mtime, length)
cache = get_cache(settings.COMPRESS_CACHE_BACKEND) cache = get_cache(settings.COMPRESS_CACHE_BACKEND)