本提交新增了全渠道SDK核心模块: 1. 异步锁、目标解析、动作调度等基础工具 2. 消息动作注册与统一调度系统 3. 测试套件与契约测试框架 4. 完整的目标解析流水线与工具函数 5. 资源依赖注入与生命周期管理
18 lines
433 B
Python
18 lines
433 B
Python
from __future__ import annotations
|
|
|
|
import asyncio
|
|
from collections.abc import Callable, Coroutine
|
|
from typing import TypeVar
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
def create_async_lock() -> Callable[[Callable[[], Coroutine[None, None, T]]], Coroutine[None, None, T]]:
|
|
lock = asyncio.Lock()
|
|
|
|
async def with_lock(task: Callable[[], Coroutine[None, None, T]]) -> T:
|
|
async with lock:
|
|
return await task()
|
|
|
|
return with_lock
|