from brian2.utils.caching import cached)
Decorator to cache a function so that it will not be re-evaluated when called with the same arguments. Uses the
_hashablefunction to make arguments usable as a dictionary key even though they mutable (lists, dictionaries, etc.).
func : function
The function to decorate.
decorated : function
The decorated function.
This is not a general-purpose caching decorator in any way comparable to
functools.lru_cacheor joblib’s caching functions. It is very simplistic (no maximum cache size, no normalization of calls, e.g.
foo(x=3)are not considered equivalent function calls) and makes very specific assumptions for our use case. Most importantly,
Variableobjects are considered to be identical when they refer to the same object, even though the actually stored values might have changed.