Skip to content

Commit 81bbf6b

Browse files
committed
Fix factory validation order
1 parent d7f3c34 commit 81bbf6b

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/attr/_make.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2325,10 +2325,15 @@ def _attrs_to_init_script(
23252325
" "
23262326
+ f"val = {init_factory_name}({maybe_self})"
23272327
)
2328-
lines.append(
2329-
" "
2330-
+ f"{validator_name}(self, a, val)"
2331-
)
2328+
if a.validator is not None:
2329+
val_name = "__attr_validator_" + a.name
2330+
attr_name_ref = "__attr_" + a.name
2331+
lines.append(
2332+
" "
2333+
+ f"{val_name}(self, {attr_name_ref}, val)"
2334+
)
2335+
names_for_globals[val_name] = a.validator
2336+
names_for_globals[attr_name_ref] = a
23322337
lines.append(
23332338
" "
23342339
+ fmt_setter(

0 commit comments

Comments
 (0)