Skip to content

Commit 6ab748b

Browse files
vishalbolludeliahu
authored andcommitted
Remove extra parameters that may be sent JSON tricks encoder initialization (#565)
(cherry picked from commit 21f7ee4)
1 parent 2a21c66 commit 6ab748b

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

pkg/workloads/cortex/lib/util.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
import hashlib
2525
import msgpack
2626
import pathlib
27+
import inspect
28+
from inspect import Parameter
29+
2730
from copy import deepcopy
2831
from datetime import datetime
2932

@@ -38,6 +41,17 @@ def isclose(a, b, rel_tol=1e-09, abs_tol=0.0):
3841
def json_tricks_encoder(*args, **kwargs):
3942
kwargs["primitives"] = True
4043
kwargs["obj_encoders"] = json_tricks.nonp.DEFAULT_ENCODERS
44+
params = list(inspect.signature(json_tricks.TricksEncoder).parameters.values())
45+
params += list(inspect.signature(json.JSONEncoder).parameters.values())
46+
expected_keys = set()
47+
for param in params:
48+
if param.kind == Parameter.POSITIONAL_OR_KEYWORD or param.kind == Parameter.KEYWORD_ONLY:
49+
expected_keys.add(param.name)
50+
51+
for key in list(kwargs.keys()):
52+
if key not in expected_keys:
53+
kwargs.pop(key)
54+
4155
return json_tricks.TricksEncoder(*args, **kwargs)
4256

4357

0 commit comments

Comments
 (0)