From 0341b368b33ca76b87553a62343e51a31993b391 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Fri, 2 Apr 2021 16:42:47 -0500 Subject: [PATCH] first_arg_dependent_memoize: do not ignore kwargs when caching --- pyopencl/tools.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pyopencl/tools.py b/pyopencl/tools.py index fc7f459d..d7e56dc9 100644 --- a/pyopencl/tools.py +++ b/pyopencl/tools.py @@ -83,6 +83,10 @@ def first_arg_dependent_memoize(func): .. versionadded:: 2011.2 """ + if kwargs: + cache_key = (args, kwargs) + else: + cache_key = args try: ctx_dict = func._pyopencl_first_arg_dep_memoize_dic except AttributeError: @@ -92,11 +96,11 @@ def first_arg_dependent_memoize(func): _first_arg_dependent_caches.append(ctx_dict) try: - return ctx_dict[cl_object][args] + return ctx_dict[cl_object][cache_key] except KeyError: arg_dict = ctx_dict.setdefault(cl_object, {}) result = func(cl_object, *args, **kwargs) - arg_dict[args] = result + arg_dict[cache_key] = result return result from functools import update_wrapper -- GitLab