640K ought to be enough for anybody

master
daz 2014-02-02 15:51:30 +01:00
parent fe81eb02f2
commit 919333e70c
2 changed files with 19 additions and 22 deletions

View File

@ -7,7 +7,7 @@ from PIL import Image
# FIXME: kind of fugly.
@redis_me("noir_pope")
@redis_me
def get_noir_pope(width, height, pope_id):
pope_buffer = BytesIO()
pope = get_pope(width, height, pope_id)

View File

@ -26,29 +26,26 @@ def unpopable(width, height):
#======== your friendly decorators :3 ======================================
def redis_me(prefix):
def redis_me(func):
def inner(*args, **kwargs):
import ipdb; ipdb.set_trace()
if not redis or SAGE_REDIS:
return func(*args, **kwargs)
def decorator(func):
# FIXME: perhaps some better key value?
key = (func.__name__, args)
try:
image = redis.get(key)
if not image:
image = func(*args, **kwargs)
redis.set(key, image)
redis.expire(key, REDIS_TTL)
return image
def inner(*args, **kwargs):
if not redis or SAGE_REDIS:
return func(*args, **kwargs)
except RedisConnectionError:
return func(*args, **kwargs)
# FIXME: perhaps some better key value?
key = (prefix, args)
try:
image = redis.get(key)
if not image:
image = func(*args, **kwargs)
redis.set(key, image)
redis.expire(key, REDIS_TTL)
return image
except RedisConnectionError:
return func(*args, **kwargs)
return inner
return decorator
return inner
def habemus_papam(func):
@ -81,7 +78,7 @@ def http_return_image(func):
# =============================================================================
@redis_me("get_pope")
@redis_me
def get_pope(width, height, pope_id):
width, height = int(width), int(height)
if not unpopable(width, height):