feat: 添加 Action 协议
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"""动作类型统一入口,新增操作时在这里显式加入联合类型"""
|
||||
|
||||
from typing import Annotated
|
||||
|
||||
from pydantic import Field, TypeAdapter
|
||||
|
||||
from .base import ActionModel, BaseAction
|
||||
from .move import MoveAction
|
||||
from .resize import ResizeAction
|
||||
from .update import UpdateAction
|
||||
|
||||
# 按 type 选择对应模型,不维护重复的操作名称映射
|
||||
Action = Annotated[MoveAction | ResizeAction | UpdateAction, Field(discriminator="type")]
|
||||
action_adapter = TypeAdapter(Action)
|
||||
|
||||
|
||||
class ActionBatch(ActionModel):
|
||||
actions: list[Action] = Field(description="按数组顺序执行的动作列表,允许为空")
|
||||
|
||||
|
||||
__all__ = [
|
||||
"Action", "ActionBatch", "BaseAction", "MoveAction", "ResizeAction",
|
||||
"UpdateAction", "action_adapter",
|
||||
]
|
||||
Reference in New Issue
Block a user