Skip to content

Commit fdac7db

Browse files
refactor(dataclass): remove pyright ignores by using parameterized generic aliases as field factories (#5)
* Initial plan * refactor(kagent): replace unnecessary lambda wrappers in dataclass field factories Co-authored-by: shenxiangzhuang <17157965+shenxiangzhuang@users.noreply.github.com> * refactor: replace bare list/dict default_factory with parameterized generics, removing pyright ignores Co-authored-by: shenxiangzhuang <17157965+shenxiangzhuang@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shenxiangzhuang <17157965+shenxiangzhuang@users.noreply.github.com>
1 parent df6f66f commit fdac7db

File tree

5 files changed

+8
-8
lines changed

5 files changed

+8
-8
lines changed

packages/kagent/src/kagent/state.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class AgentState:
3838
trace: Trace = field(default_factory=Trace)
3939
"""Append-only execution trace. The single source of truth."""
4040

41-
tools: list[Tool] = field(default_factory=lambda: list[Tool]())
41+
tools: list[Tool] = field(default_factory=list[Tool])
4242
"""Available tools for the agent."""
4343

4444
@property

packages/kagent/src/kagent/trace/entry.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class TraceEntry:
105105
message: Message | None = None
106106
"""The ``kai.Message`` for message-bearing entries."""
107107

108-
data: dict[str, Any] = field(default_factory=lambda: {})
108+
data: dict[str, Any] = field(default_factory=dict[str, Any])
109109
"""Kind-specific structured data (e.g. anchor name, event payload)."""
110110

111111
meta: TraceMeta = field(default_factory=TraceMeta)

packages/kcastle/src/kcastle/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class ChannelConfig:
4949
"""Configuration for a single channel."""
5050

5151
enabled: bool = True
52-
options: dict[str, object] = field(default_factory=dict) # pyright: ignore[reportUnknownVariableType]
52+
options: dict[str, object] = field(default_factory=dict[str, object])
5353

5454

5555
@dataclass(frozen=True, slots=True)
@@ -65,7 +65,7 @@ class CastleConfig:
6565
skills_dir: Path
6666
"""User-level skills directory."""
6767

68-
providers: dict[str, ProviderEntry] = field(default_factory=dict) # pyright: ignore[reportUnknownVariableType]
68+
providers: dict[str, ProviderEntry] = field(default_factory=dict[str, ProviderEntry])
6969
"""Configured providers keyed by name."""
7070

7171
default_provider: str = ""

packages/kcastle/src/kcastle/providers/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ProviderConfig:
2222
api_key: str | None = None
2323
base_url: str | None = None
2424
extra_body: dict[str, object] | None = None
25-
options: dict[str, object] = field(default_factory=dict) # pyright: ignore[reportUnknownVariableType]
25+
options: dict[str, object] = field(default_factory=dict[str, object])
2626

2727
@property
2828
def name(self) -> str:
@@ -40,7 +40,7 @@ class ModelConfig:
4040
active: bool = True
4141
"""Whether this model is available for use."""
4242

43-
options: dict[str, object] = field(default_factory=dict) # pyright: ignore[reportUnknownVariableType]
43+
options: dict[str, object] = field(default_factory=dict[str, object])
4444
"""Provider-specific model options (``max_tokens``, ``reasoning``, etc.)."""
4545

4646

@@ -55,7 +55,7 @@ class ProviderEntry:
5555
config: ProviderConfig
5656
"""Runtime provider config."""
5757

58-
models: list[ModelConfig] = field(default_factory=list) # pyright: ignore[reportUnknownVariableType]
58+
models: list[ModelConfig] = field(default_factory=list[ModelConfig])
5959
"""Available models for this provider."""
6060

6161
@property

packages/kcastle/src/kcastle/skills/skill.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class Skill:
4040
path: Path
4141
"""Absolute path to the skill directory."""
4242

43-
tags: list[str] = field(default_factory=list) # pyright: ignore[reportUnknownVariableType]
43+
tags: list[str] = field(default_factory=list[str])
4444
"""Optional searchable tags."""
4545

4646
instructions: str = ""

0 commit comments

Comments
 (0)