Refactor protocol and transport modules to use type hints for improved clarity and consistency

- Updated Codec class to use abstract methods for encoding and decoding envelopes.
- Changed Envelope class to use Dict and Optional for payload and error fields.
- Refined error handling in RPCError class with Optional type hints for details.
- Enhanced manifest validation logic with type hints for better type safety.
- Improved plugin loading mechanism with consistent type annotations.
- Updated RPCClient to utilize Optional for codec and connection attributes.
- Refactored transport classes to use Optional for server attributes and socket paths.
This commit is contained in:
DrSmoothl
2026-03-11 00:07:13 +08:00
parent 7f1e79ea28
commit 69219e36f7
19 changed files with 273 additions and 253 deletions

View File

@@ -4,6 +4,7 @@
"""
from enum import Enum
from typing import Any, Dict, Optional
class ErrorCode(str, Enum):
@@ -38,13 +39,13 @@ class ErrorCode(str, Enum):
class RPCError(Exception):
"""RPC 调用异常"""
def __init__(self, code: ErrorCode, message: str = "", details: dict | None = None):
def __init__(self, code: ErrorCode, message: str = "", details: Optional[Dict[str, Any]] = None):
self.code = code
self.message = message or code.value
self.details = details or {}
super().__init__(f"[{code.value}] {self.message}")
def to_dict(self) -> dict:
def to_dict(self) -> Dict[str, Any]:
return {
"code": self.code.value,
"message": self.message,
@@ -52,7 +53,7 @@ class RPCError(Exception):
}
@classmethod
def from_dict(cls, data: dict) -> "RPCError":
def from_dict(cls, data: Dict[str, Any]) -> "RPCError":
code = ErrorCode(data.get("code", "E_UNKNOWN"))
return cls(
code=code,