refactor: 移除多余的override装饰器并整理依赖
1. 移除graph.py和storage.py中多余的typing-extensions override装饰器 2. 精简pyproject.toml的依赖项,移除不必要的typing-extensions 3. 添加mypy作为开发依赖 4. 修复示例代码的类型注解和废弃的赋值使用
This commit is contained in:
@@ -10,12 +10,11 @@ Shows:
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from typing import Any
|
||||
|
||||
import pyflowx as px
|
||||
|
||||
|
||||
async def fetch_user(uid: int) -> dict:
|
||||
async def fetch_user(uid: int) -> dict[str, object]:
|
||||
await asyncio.sleep(0.2)
|
||||
return {"id": uid, "name": f"User{uid}"}
|
||||
|
||||
@@ -26,7 +25,7 @@ async def fetch_posts(uid: int) -> list[int]:
|
||||
|
||||
|
||||
# Context annotation → receives the full mapping of upstream results.
|
||||
def aggregate(ctx: px.Context) -> dict[str, Any]:
|
||||
def aggregate(ctx: px.Context) -> dict[str, object]:
|
||||
return dict(ctx)
|
||||
|
||||
|
||||
@@ -41,7 +40,7 @@ def main() -> None:
|
||||
)
|
||||
|
||||
print("=== Dry run ===")
|
||||
px.run(graph, strategy="async", dry_run=True)
|
||||
_ = px.run(graph, strategy="async", dry_run=True)
|
||||
|
||||
events: list[px.TaskEvent] = []
|
||||
print("\n=== Async execution ===")
|
||||
|
||||
@@ -10,8 +10,6 @@ from __future__ import annotations
|
||||
import sys
|
||||
from typing import Iterable, Mapping, Sequence
|
||||
|
||||
from typing_extensions import override
|
||||
|
||||
from .errors import CycleError, DuplicateTaskError, MissingDependencyError
|
||||
from .task import TaskSpec
|
||||
|
||||
@@ -240,7 +238,6 @@ class Graph:
|
||||
out.append(f" Layer {layer_idx}: {layer}")
|
||||
return "\n".join(out)
|
||||
|
||||
@override
|
||||
def __repr__(self) -> str:
|
||||
return f"Graph(tasks={len(self._specs)})"
|
||||
|
||||
|
||||
@@ -21,8 +21,6 @@ from abc import ABC, abstractmethod
|
||||
from pathlib import Path
|
||||
from typing import Any, Mapping
|
||||
|
||||
from typing_extensions import override
|
||||
|
||||
from .errors import StorageError
|
||||
|
||||
|
||||
@@ -56,23 +54,18 @@ class MemoryBackend(StateBackend):
|
||||
def __init__(self) -> None:
|
||||
self._store: dict[str, Any] = {}
|
||||
|
||||
@override
|
||||
def load(self) -> Mapping[str, Any]:
|
||||
return dict(self._store)
|
||||
|
||||
@override
|
||||
def save(self, name: str, value: Any) -> None:
|
||||
self._store[name] = value
|
||||
|
||||
@override
|
||||
def has(self, name: str) -> bool:
|
||||
return name in self._store
|
||||
|
||||
@override
|
||||
def get(self, name: str) -> Any:
|
||||
return self._store[name]
|
||||
|
||||
@override
|
||||
def clear(self) -> None:
|
||||
self._store.clear()
|
||||
|
||||
@@ -110,11 +103,9 @@ class JSONBackend(StateBackend):
|
||||
except (OSError, TypeError) as exc:
|
||||
raise StorageError(f"cannot write state file {self._path!r}", exc) from exc
|
||||
|
||||
@override
|
||||
def load(self) -> Mapping[str, Any]:
|
||||
return dict(self._store)
|
||||
|
||||
@override
|
||||
def save(self, name: str, value: Any) -> None:
|
||||
# 在修改内存状态前先校验可序列化性。
|
||||
try:
|
||||
@@ -126,15 +117,12 @@ class JSONBackend(StateBackend):
|
||||
self._store[name] = value
|
||||
_ = self._flush()
|
||||
|
||||
@override
|
||||
def has(self, name: str) -> bool:
|
||||
return name in self._store
|
||||
|
||||
@override
|
||||
def get(self, name: str) -> Any:
|
||||
return self._store[name]
|
||||
|
||||
@override
|
||||
def clear(self) -> None:
|
||||
self._store.clear()
|
||||
_ = self._flush()
|
||||
|
||||
Reference in New Issue
Block a user