|
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