@@ -46,23 +46,35 @@ def cache_method_decorator(method: Callable) -> Callable:
4646 Returns:
4747 The wrapped cached method.
4848 """
49+ # Function for returning cache key
4950 cache_key_fn = _cache_key_function (cache_args , require_hashable )
5051
51- @ functools . wraps ( method )
52- def _cached_method ( self , * args , ** kwargs ):
53- # Initialize cache if none provided
54- if isinstance ( cache , str ):
52+ # Function for returning cache dict
53+ if isinstance ( cache , str ):
54+
55+ def _cache_fn ( self , method ):
5556 if not hasattr (self , cache ):
5657 setattr (self , cache , {})
5758 instance_cache = getattr (self , cache )
58- else :
59- instance_cache = cache
59+ name = method .__name__
60+ if name not in instance_cache :
61+ instance_cache [name ] = {}
62+ return instance_cache [name ]
63+
64+ else :
6065
61- name = method .__name__
62- if name not in instance_cache :
63- instance_cache [name ] = {}
64- meth_cache = instance_cache [name ]
66+ def _cache_fn (self , method ):
67+ # pylint: disable = unused-argument
68+ name = method .__name__
69+ if name not in cache :
70+ cache [name ] = {}
71+ return cache [name ]
6572
73+ # Cached method function
74+
75+ @functools .wraps (method )
76+ def _cached_method (self , * args , ** kwargs ):
77+ meth_cache = _cache_fn (self , method )
6678 key = cache_key_fn (* args , ** kwargs )
6779 if key in meth_cache :
6880 return meth_cache [key ]
0 commit comments