fix(signalr): fix SignalRMeta cannot be read

This commit is contained in:
MingxuanGame
2025-08-03 11:01:25 +00:00
parent c9fc07b29e
commit b7bc87b8b6
3 changed files with 20 additions and 16 deletions

View File

@@ -126,15 +126,19 @@ class MsgpackProtocol:
def process_object(v: Any, typ: type[BaseModel]) -> Any:
if isinstance(v, list):
d = {}
for i, f in enumerate(typ.model_fields.items()):
field, info = f
if info.exclude:
i = 0
for field, info in typ.model_fields.items():
metadata = next(
(m for m in info.metadata if isinstance(m, SignalRMeta)), None
)
if metadata and metadata.member_ignore:
continue
anno = info.annotation
if anno is None:
d[camel_to_snake(field)] = v[i]
continue
d[field] = MsgpackProtocol.validate_object(v[i], anno)
else:
d[field] = MsgpackProtocol.validate_object(v[i], anno)
i += 1
return d
return v