Open tnielens opened 2 years ago
By design 🤷‍♂️
Could make “get” use keyword-only arguments (https://www.python.org/dev/peps/pep-3102/) to prevent the footgun.
I expected the ignore parameter to work without specifying my parameter position. A bit of python doc on this might be helpful for users (I didn't find any). Maybe interesting to take into consideration: I'm changing one of my project from joblib to diskcache for memoization. Joblib implements the alternative approach and lets the user only specify the parameter name.
In any case, diskcache is really nice and I'm happy with the switch :+1:!
Better docs would probably be good. If you want to add a sentence or two to the memoize docstrings then I think that would be a good place. Pull request welcome đź‘Ť
I used this in anger and thought it could be done better. It would be nice if in the case given at the top, “session” would automatically work for either the keyword argument or positional argument. I get the ergonomics now.
Here’s the code in joblib: https://github.com/joblib/joblib/blob/0730b779fc9713d2deff66e1685d84e3f8530c60/joblib/func_inspect.py#L197 . Little complex but maybe that’s the best here.
@cache.memoize(ignore={'session', 1})
works fine. But it's a little error-prone.diskcache version: 5.3.1