|
10 | 10 |
|
11 | 11 | def _custom_dataclass_init(self, *args, **kwargs):
|
12 | 12 | # print(self.__class__.__name__, "__init__")
|
13 |
| - names = [f.name for f in fields(self)] |
| 13 | + names = [field.name for field in fields(self)] |
14 | 14 | used_names = set()
|
15 | 15 |
|
16 | 16 | # Handle positional arguments
|
17 |
| - for v in args: |
| 17 | + for value in args: |
18 | 18 | try:
|
19 |
| - k = names.pop(0) |
| 19 | + name = names.pop(0) |
20 | 20 | except IndexError:
|
21 | 21 | raise TypeError(f"__init__() given too many positional arguments")
|
22 | 22 | # print(f'setting {k}={v}')
|
23 |
| - setattr(self, k, v) |
24 |
| - used_names.add(k) |
| 23 | + setattr(self, name, value) |
| 24 | + used_names.add(name) |
25 | 25 |
|
26 | 26 | # Handle keyword arguments
|
27 |
| - for k, v in kwargs.items(): |
28 |
| - if k in names: |
| 27 | + for name, value in kwargs.items(): |
| 28 | + if name in names: |
29 | 29 | # print(f'setting {k}={v}')
|
30 |
| - setattr(self, k, v) |
31 |
| - used_names.add(k) |
32 |
| - elif k in used_names: |
33 |
| - raise TypeError(f"__init__() got multiple values for argument '{k}'") |
| 30 | + setattr(self, name, value) |
| 31 | + used_names.add(name) |
| 32 | + elif name in used_names: |
| 33 | + raise TypeError(f"__init__() got multiple values for argument '{name}'") |
34 | 34 | else:
|
35 | 35 | raise TypeError(
|
36 |
| - f"Unrecognized field '{k}' for dataclass {self.__class__.__name__}." |
| 36 | + f"Unrecognized field '{name}' for dataclass {self.__class__.__name__}." |
37 | 37 | "\nIf this field is valid, please add it to the dataclass in data.py."
|
38 | 38 | "\nIf adding an object-type field, please create a new dataclass for it."
|
39 | 39 | )
|
40 | 40 |
|
41 | 41 | # Check for missing positional arguments
|
42 | 42 | missing = [
|
43 |
| - f"'{f.name}'" for f in fields(self) |
44 |
| - if isinstance(f.default, dataclasses._MISSING_TYPE) and f.name not in used_names |
| 43 | + f"'{field.name}'" for field in fields(self) |
| 44 | + if isinstance(field.default, dataclasses._MISSING_TYPE) and field.name not in used_names |
45 | 45 | ]
|
46 | 46 | if len(missing) == 1:
|
47 | 47 | raise TypeError(f"__init__() missing 1 required positional argument: {missing[0]}")
|
@@ -321,8 +321,8 @@ def load(cls, path="config.json"):
|
321 | 321 | except IOError:
|
322 | 322 | print(f"FAIL: {path} file not found")
|
323 | 323 | raise SystemExit(1)
|
324 |
| - except TypeError as e: |
325 |
| - print(f"FAIL: {e}") |
| 324 | + except TypeError as ex: |
| 325 | + print(f"FAIL: {ex}") |
326 | 326 | raise SystemExit(1)
|
327 | 327 |
|
328 | 328 |
|
|
0 commit comments