Skip to content

Commit e718c28

Browse files
committed
fix: ensure all arguments init
Signed-off-by: exploreriii <[email protected]>
1 parent 8da5da6 commit e718c28

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/hiero_sdk_python/tokens/token_info.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"""
1010

1111
import warnings
12-
from dataclasses import dataclass, field, fields
12+
from dataclasses import dataclass, field, fields, MISSING
1313
from typing import Optional, ClassVar, Dict, Any, Callable
1414

1515
from hiero_sdk_python.tokens.token_id import TokenId
@@ -100,10 +100,19 @@ def __init__(self, **kwargs: Any):
100100
else:
101101
kwargs.pop(legacy)
102102

103-
# 2) Assign every dataclass field from kwargs (only override defaults when provided)
103+
# 2) for *every* field, pick either the passed‑in value or the field’s own default/default_factory
104104
for f in fields(self):
105105
if f.name in kwargs:
106-
setattr(self, f.name, kwargs[f.name])
106+
value = kwargs[f.name]
107+
else:
108+
# dataclass default_factory lives in f.default_factory, default in f.default
109+
if getattr(f, "default_factory", MISSING) is not MISSING:
110+
value = f.default_factory()
111+
elif f.default is not MISSING:
112+
value = f.default
113+
else:
114+
value = None
115+
setattr(self, f.name, value)
107116

108117
# === setter methods ===
109118
def set_admin_key(self, admin_key: PublicKey):

0 commit comments

Comments
 (0)