#
from __future__ import with_statement
+import hashlib
import random
import re
import time
from django.core.files.uploadedfile import UploadedFile
from django.core.files.storage import DefaultStorage
from django.utils.encoding import force_unicode
-from django.utils.hashcompat import sha_constructor
from django.conf import settings
from os import mkdir, path, unlink
from errno import EEXIST, ENOENT
def get_random_hash(seed):
- sha_digest = sha_constructor('%s%s%s%s' %
+ sha_digest = hashlib.sha1('%s%s%s%s' %
(randrange(0, MAX_SESSION_KEY), time.time(), unicode(seed).encode('utf-8', 'replace'),
settings.SECRET_KEY)).digest()
return urlsafe_b64encode(sha_digest).replace('=', '').replace('_', '-').lower()
def get_dynamic_path(media, filename, ext=None, maxlen=100):
- from slughifi import slughifi
+ from fnpdjango.utils.text.slughifi import slughifi
# how to put related book's slug here?
if not ext:
if hasattr(self, more):
value = getattr(self, more)(value)
return value
+
+
+def trim_query_log(trim_to=25):
+ """
+connection.queries includes all SQL statements -- INSERTs, UPDATES, SELECTs, etc. Each time your app hits the database, the query will be recorded.
+This can sometimes occupy lots of memory, so trim it here a bit.
+ """
+ if settings.DEBUG:
+ from django.db import connection
+ connection.queries = trim_to > 0 \
+ and connection.queries[-trim_to:] \
+ or []
+