i found the solution This is my first attempt at memcaching html page using cheetah since cheetah render needs locals() i use getCallerInfo() to get the locals() and send to memcached let me know if it is possible to better do this *notice getCallerInfo *
*utils.py* @log_time_func def renderpage(key, htmlfile, deleteafter=3600): from globaldb import mc try:page = mc.get(key) except: page=None clogger.info('except error mc.get '+ key) if not page: clogger.info(key+ ' rendering cheetah page') terms = getCallerInfo(1) #print terms page = str(web.render(htmlfile, asTemplate=True, terms=terms)) try:mc.set(key, page, deleteafter) except: clogger.info('except error mc.set '+ key) return page @log_time_func @memcachethis def mcrenderpage(key, htmlfile, deleteafter=3600): terms = getCallerInfo(2) #print terms return str(web.render(htmlfile, asTemplate=True, terms=terms)) def getCallerInfo(decorators=0): '''returns locals of caller using frame.optional pass number of decorators\nFrom Dig deep into python internals http://www.devx.com/opensource/Article/31593/1954'<http://www.devx.com/opensource/Article/31593/1954%27> '' f = sys._getframe(2+decorators) args = inspect.getargvalues(f) return args[3] *Usage* key=facebookstuff.APP_NAME+'newstart'+str(uid) return utils.renderpage(key, 'pick.html') -- Bidegg worlds best auction site http://bidegg.com
-- http://mail.python.org/mailman/listinfo/python-list