mirror of
https://github.com/ansible/awx.git
synced 2024-10-27 09:25:10 +03:00
get rid of decorator dependency
This commit is contained in:
parent
92f0893764
commit
d8d710a83d
@ -154,12 +154,11 @@ def test_memoize_delete(memoized_function, mock_cache):
|
||||
|
||||
|
||||
def test_memoize_parameter_error():
|
||||
@common.memoize(cache_key='foo', track_function=True)
|
||||
def fn():
|
||||
return
|
||||
|
||||
with pytest.raises(common.IllegalArgumentError):
|
||||
fn()
|
||||
@common.memoize(cache_key='foo', track_function=True)
|
||||
def fn():
|
||||
return
|
||||
|
||||
|
||||
def test_extract_ansible_vars():
|
||||
|
@ -18,14 +18,11 @@ import contextlib
|
||||
import tempfile
|
||||
import six
|
||||
import psutil
|
||||
from functools import reduce
|
||||
from functools import reduce, wraps
|
||||
from StringIO import StringIO
|
||||
|
||||
from decimal import Decimal
|
||||
|
||||
# Decorator
|
||||
from decorator import decorator
|
||||
|
||||
# Django
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.db import DatabaseError
|
||||
@ -136,31 +133,35 @@ def memoize(ttl=60, cache_key=None, track_function=False):
|
||||
'''
|
||||
Decorator to wrap a function and cache its result.
|
||||
'''
|
||||
if cache_key and track_function:
|
||||
raise IllegalArgumentError("Can not specify cache_key when track_function is True")
|
||||
cache = get_memoize_cache()
|
||||
|
||||
def _memoizer(f, *args, **kwargs):
|
||||
if cache_key and track_function:
|
||||
raise IllegalArgumentError("Can not specify cache_key when track_function is True")
|
||||
|
||||
if track_function:
|
||||
cache_dict_key = slugify('%r %r' % (args, kwargs))
|
||||
key = slugify("%s" % f.__name__)
|
||||
cache_dict = cache.get(key) or dict()
|
||||
if cache_dict_key not in cache_dict:
|
||||
value = f(*args, **kwargs)
|
||||
cache_dict[cache_dict_key] = value
|
||||
cache.set(key, cache_dict, ttl)
|
||||
def memoize_decorator(f):
|
||||
@wraps(f)
|
||||
def _memoizer(*args, **kwargs):
|
||||
if track_function:
|
||||
cache_dict_key = slugify('%r %r' % (args, kwargs))
|
||||
key = slugify("%s" % f.__name__)
|
||||
cache_dict = cache.get(key) or dict()
|
||||
if cache_dict_key not in cache_dict:
|
||||
value = f(*args, **kwargs)
|
||||
cache_dict[cache_dict_key] = value
|
||||
cache.set(key, cache_dict, ttl)
|
||||
else:
|
||||
value = cache_dict[cache_dict_key]
|
||||
else:
|
||||
value = cache_dict[cache_dict_key]
|
||||
else:
|
||||
key = cache_key or slugify('%s %r %r' % (f.__name__, args, kwargs))
|
||||
value = cache.get(key)
|
||||
if value is None:
|
||||
value = f(*args, **kwargs)
|
||||
cache.set(key, value, ttl)
|
||||
key = cache_key or slugify('%s %r %r' % (f.__name__, args, kwargs))
|
||||
value = cache.get(key)
|
||||
if value is None:
|
||||
value = f(*args, **kwargs)
|
||||
cache.set(key, value, ttl)
|
||||
|
||||
return value
|
||||
return decorator(_memoizer)
|
||||
return value
|
||||
|
||||
return _memoizer
|
||||
|
||||
return memoize_decorator
|
||||
|
||||
|
||||
def memoize_delete(function_name):
|
||||
|
@ -5,7 +5,6 @@ boto==2.47.0
|
||||
channels==1.1.8
|
||||
celery==4.2.1
|
||||
daphne==1.3.0 # Last before backwards-incompatible channels 2 upgrade
|
||||
decorator==4.2.1
|
||||
Django==1.11.16
|
||||
django-auth-ldap==1.2.8
|
||||
django-crum==0.7.2
|
||||
|
@ -23,7 +23,6 @@ channels==1.1.8
|
||||
constantly==15.1.0 # via twisted
|
||||
cryptography==2.3.1 # via requests
|
||||
daphne==1.3.0
|
||||
decorator==4.2.1
|
||||
defusedxml==0.4.1 # via python-saml
|
||||
django-auth-ldap==1.2.8
|
||||
django-crum==0.7.2
|
||||
|
Loading…
Reference in New Issue
Block a user