refactor: 移除多余的override装饰器并整理依赖

1.  移除graph.py和storage.py中多余的typing-extensions override装饰器
2.  精简pyproject.toml的依赖项,移除不必要的typing-extensions
3.  添加mypy作为开发依赖
4.  修复示例代码的类型注解和废弃的赋值使用
This commit is contained in:
2026-06-21 08:28:23 +08:00
parent 22ae4b0084
commit 56c018e72e
5 changed files with 327 additions and 26 deletions
+3 -4
View File
@@ -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 ===")
-3
View File
@@ -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)})"
-12
View File
@@ -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()