Skip to content

Commit 49fcc99

Browse files
better docdict
1 parent 27afdc8 commit 49fcc99

1 file changed

Lines changed: 9 additions & 12 deletions

File tree

WDoc/utils/misc.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -149,26 +149,23 @@ class DocDict(dict):
149149
allowed_keys = doc_kwargs_keys
150150
allowed_types = loader_specific_keys
151151

152+
def __check_values__(self, key, value):
153+
if key not in self.allowed_keys:
154+
raise Exception(f"Cannot set key '{key}' in a DocDict")
155+
if key in self.allowed_types and value is not None:
156+
assert isinstance(value, self.allowed_types[key])
157+
152158
def __init__(self, *args, **kwargs):
153159
for arg in args:
154160
assert isinstance(arg, dict)
155161
for k, v in arg.items():
156-
if k not in self.allowed_keys:
157-
raise Exception(f"Cannot set key '{k}' in a DocDict")
158-
if k in self.allowed_types and v is not None:
159-
assert isinstance(v, self.allowed_types[k])
162+
self.__check_values__(k, v)
160163
for k, v in kwargs.items():
161-
if k not in self.allowed_keys:
162-
raise Exception(f"Cannot set key '{k}' in a DocDict")
163-
if k in self.allowed_types and v is not None:
164-
assert isinstance(v, self.allowed_types[k])
164+
self.__check_values__(k, v)
165165
super().__init__(*args, **kwargs)
166166

167167
def __setitem__(self, key, value):
168-
if key not in self.allowed_keys:
169-
raise Exception(f"Cannot set key '{key}' in a DocDict")
170-
if key in self.allowed_types and value is not None:
171-
assert isinstance(value, self.allowed_types[key])
168+
self.__check_values__(key, value)
172169
super().__setitem__(key, value)
173170

174171

0 commit comments

Comments
 (0)