src/hdalab/utils.py
author cavaliet
Tue, 26 Aug 2014 18:11:26 +0200
changeset 319 fef4317b915f
parent 293 b33caeba7faa
child 345 7bc38c7d6cf9
permissions -rw-r--r--
add CircleNodePlacer and clean utils
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
154
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Mar 13, 2012
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
290
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
     5
@author: ymh and tc
154
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.core.cache import cache
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from django.utils.encoding import smart_str
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
import md5
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
import re
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
290
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    12
import logging
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    13
logger = logging.getLogger(__name__)
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    14
154
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
def fix_cache_key(key):
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    cache_key = re.sub(r'\s+', '-', key)
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    cache_key = smart_str(cache_key)
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    if len(cache_key) > (250-(2+len(cache.key_prefix)+len(str(cache.version)))-33):
8527c5a3ddb7 add cache management to filter
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        cache_key = cache_key[:(250-(2+len(cache.key_prefix)+len(str(cache.version)))-33)] + '-' + md5.new(cache_key).hexdigest()
290
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    21
    return cache_key
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    22
        
fb86765b4c54 node placer classes
cavaliet
parents: 266
diff changeset
    23