Add TypedDict Support (Experimental)

This commit is contained in:
Xuwznln
2025-11-25 13:24:59 +08:00
parent 58628910f4
commit 31c89ccc26
4 changed files with 380 additions and 2 deletions

View File

@@ -9,6 +9,8 @@ class Properties(TypedDict, total=False):
ros_msg_cls_path: str
ros_msg_cls_namespace: str
json_schema: Dict[str, Any]
typed_dict_class_module: str
typed_dict_class_name: str
class FormatMetadata(TypedDict, total=False):

View File

@@ -358,14 +358,14 @@ class TypeInfoProvider(ABC):
@abstractmethod
def get_field_type_info(
self, field_name: str, field_value: Any, field_accessor: "FieldAccessor"
self, field_name: str, field_value: Any, parent_field_accessor: "FieldAccessor"
) -> Optional[TypeInfo]:
"""获取指定字段的类型信息
Args:
field_name: 字段名,简单字段名如 'field'
field_value: 字段的当前值用于动态类型推断不能为None
field_accessor: 字段访问器提供额外的上下文信息不能为None
parent_field_accessor: 字段访问器提供额外的上下文信息不能为None
Returns:
字段的TypeInfo如果字段不存在则返回None

View File

@@ -11,6 +11,7 @@ class MessageType(Enum):
JSON_SCHEMA = "json_schema"
DICT = "dict"
YAML = "yaml"
TYPED_DICT = "typed_dict" # Experimental
class ConversionError(Exception):