def get(self, num): if num.isnumeric(): num = int(num) if num > config['CACHING_UPPER_LIMIT']: return helper.handle_invalid_usage(config['CACHE_LIMIT_EXCEEDED_ERROR'], config['CACHE_LIMIT_EXCEEDED_CODE'],config) elif num < 0: return helper.handle_invalid_usage(config['NEGATIVE_VALUE_ERROR'], config['NEGATIVE_CODE'],config) elif config['CACHE_ENABLE'] and num > config['LOWER_LIMIT_FOR_CACHING']: cachelist = os.listdir(config['CACHE_DIRECTORY']) if len(cachelist) > 0: #elif num < max(cachelist): if num in cachelist: res = Fibonacci().fibofetchFromCache(num,num) return helper.handle_success(res,config['SUCCESS_CODE'], config) else: templist = map(int,cachelist) templist.append(num) templist.sort() ifound = templist.index(num) if ifound+1 < len(templist): idealCacheFile = templist[ifound+1] res = Fibonacci().fibofetchFromCache(num,idealCacheFile) return helper.handle_success(res,config['SUCCESS_CODE'], config) else: idealCacheFile = None res = Fibonacci().fiboGen(num) return helper.handle_success(res,config['SUCCESS_CODE'], config) else: res = Fibonacci().fiboGen(num) return helper.handle_success(res,config['SUCCESS_CODE'], config) else: print "caching not necessary" res = Fibonacci().fiboGen(num) return helper.handle_success(res,config['SUCCESS_CODE'], config) else: return helper.handle_invalid_usage(config['NEGATIVE_VALUE_ERROR'], config['NEGATIVE_CODE'], config )
def get(self): return helper.handle_invalid_usage(config['NUMERIC_ONLY_ERROR'], config['NEGATIVE_CODE'], config)