scyjava icon indicating copy to clipboard operation
scyjava copied to clipboard

Replace lru_cache usage with cache

Open gselzer opened this issue 2 years ago • 0 comments

functools.lru_cache provides a nice way of caching function returns, and is super useful for things like jimport. As @ctrueden noted, however:

I think @cache is the nicest. It just implies (rightly so) that function results are cached and returned again the second time. Whereas lru_cache(maxsize=None) is an oxymoron to me: if there is no size limit, it's not "LRU" anymore.

This is a good point. Unfortunately, functools.cache is a feature introduced in Python 3.9, while scyjava requires >=3.6 and tests 3.8

Once we move on from these Python versions, we should probably reevaulate the usage of lru_cache on jimport.

gselzer avatar Mar 30 '22 15:03 gselzer