diff --git a/dargs/dargs.py b/dargs/dargs.py index 6663c8b..02e4835 100644 --- a/dargs/dargs.py +++ b/dargs/dargs.py @@ -302,6 +302,9 @@ def _check_value(self, value: Any, path=None): def _check_strict(self, value: dict, path=None): allowed_keys = self.flatten_sub(value, path).keys() # curpath = [*path, self.name] + if not len(allowed_keys): + # no allowed keys defined, allow any keys + return for name in value.keys(): if name not in allowed_keys: raise ArgumentKeyError(path, diff --git a/tests/test_checker.py b/tests/test_checker.py index a294d52..bff457b 100644 --- a/tests/test_checker.py +++ b/tests/test_checker.py @@ -35,7 +35,7 @@ def test_name_type(self): # check any keywords ca = Argument("kwargs", dict) anydict = {"this": 1, "that": 2, "any": 3} - ca.check({"kwargs": anydict}) + ca.check({"kwargs": anydict}, strict=True) ca.check_value(anydict) def test_sub_fields(self):