mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-22 11:41:02 +02:00
Fixed quotaed triples
This commit is contained in:
parent
fe36f7db81
commit
d3ae8f7d6f
1 changed files with 9 additions and 3 deletions
|
|
@ -12,7 +12,7 @@ import logging
|
||||||
import base64
|
import base64
|
||||||
import types
|
import types
|
||||||
from dataclasses import asdict, is_dataclass
|
from dataclasses import asdict, is_dataclass
|
||||||
from typing import Any
|
from typing import Any, get_type_hints
|
||||||
|
|
||||||
from .backend import PubSubBackend, BackendProducer, BackendConsumer, Message
|
from .backend import PubSubBackend, BackendProducer, BackendConsumer, Message
|
||||||
|
|
||||||
|
|
@ -58,6 +58,7 @@ def dict_to_dataclass(data: dict, cls: type) -> Any:
|
||||||
Convert a dictionary back to a dataclass instance.
|
Convert a dictionary back to a dataclass instance.
|
||||||
|
|
||||||
Handles nested dataclasses and missing fields.
|
Handles nested dataclasses and missing fields.
|
||||||
|
Uses get_type_hints() to resolve forward references (string annotations).
|
||||||
"""
|
"""
|
||||||
if data is None:
|
if data is None:
|
||||||
return None
|
return None
|
||||||
|
|
@ -65,8 +66,13 @@ def dict_to_dataclass(data: dict, cls: type) -> Any:
|
||||||
if not is_dataclass(cls):
|
if not is_dataclass(cls):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
# Get field types from the dataclass
|
# Get field types from the dataclass, resolving forward references
|
||||||
field_types = {f.name: f.type for f in cls.__dataclass_fields__.values()}
|
# get_type_hints() evaluates string annotations like "Triple | None"
|
||||||
|
try:
|
||||||
|
field_types = get_type_hints(cls)
|
||||||
|
except Exception:
|
||||||
|
# Fallback if get_type_hints fails (shouldn't happen normally)
|
||||||
|
field_types = {f.name: f.type for f in cls.__dataclass_fields__.values()}
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
|
||||||
for key, value in data.items():
|
for key, value in data.items():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue