Skip to content

Commit 90633a5

Browse files
authored
fix: redefine partial kwargs (#203)
1 parent a719bfc commit 90633a5

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

cachier/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def _convert_args_kwargs(
7575
# unwrap if the function is functools.partial
7676
if hasattr(func, "func"):
7777
args = func.args + args
78-
kwds = dict(**func.keywords, **kwds)
78+
kwds.update({k: v for k, v in func.keywords.items() if k not in kwds})
7979
func = func.func
8080
func_params = list(inspect.signature(func).parameters)
8181
args_as_kw = dict(

tests/test_general.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,12 +402,18 @@ def fn_minus(a, b=2):
402402
dummy_ = functools.partial(fn, 1)
403403
assert cachier_(dummy_)() == expected
404404

405+
dummy_ = functools.partial(fn, 1)
406+
assert cachier_(dummy_)(2) == expected
407+
405408
dummy_ = functools.partial(fn, a=1)
406409
assert cachier_(dummy_)() == expected
407410

408411
dummy_ = functools.partial(fn, b=2)
409412
assert cachier_(dummy_)(1) == expected
410413

414+
dummy_ = functools.partial(fn, b=2)
415+
assert cachier_(dummy_)(1, b=2) == expected
416+
411417
assert cachier_(fn)(1, 2) == expected
412418
assert cachier_(fn)(a=1, b=2) == expected
413419

0 commit comments

Comments
 (0)