diff --git a/src/pi/main.py b/src/pi/main.py index 06892c2..bb4d983 100644 --- a/src/pi/main.py +++ b/src/pi/main.py @@ -240,14 +240,14 @@ target: 更新対象の dataclass インスタンス updates: フィールド名と値の辞書 """ - fields = { - f.name: f.type - for f in dataclasses.fields(target) + field_names = { + f.name for f in dataclasses.fields(target) } for key, value in updates.items(): - if key not in fields: + if key not in field_names: continue - expected = fields[key] + current = getattr(target, key) + expected = type(current) # int フィールドに float が来た場合は変換を許容 if expected is int and isinstance(value, float): value = int(value)