sqlmap/lib/core/decorators.py

28 lines
698 B
Python
Raw Normal View History

#!/usr/bin/env python
"""
2017-01-02 16:19:18 +03:00
Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.org/)
See the file 'doc/COPYING' for copying permission
"""
2012-07-30 12:06:14 +04:00
def cachedmethod(f, cache={}):
"""
Method with a cached content
Reference: http://code.activestate.com/recipes/325205-cache-decorator-in-python-24/
"""
2013-01-30 13:38:11 +04:00
2012-07-30 12:06:14 +04:00
def _(*args, **kwargs):
try:
key = (f, tuple(args), frozenset(kwargs.items()))
2016-05-14 15:18:34 +03:00
if key not in cache:
cache[key] = f(*args, **kwargs)
except:
key = "".join(str(_) for _ in (f, args, kwargs))
2016-05-14 15:18:34 +03:00
if key not in cache:
cache[key] = f(*args, **kwargs)
2012-07-30 12:06:14 +04:00
return cache[key]
2013-01-30 13:38:11 +04:00
2012-07-30 12:06:14 +04:00
return _