Skip to content

Commit 107d670

Browse files
committed
Fix mypy issues
1 parent a7d1afe commit 107d670

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

src/neo4j_graphrag/tool.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class ArrayParameter(ToolParameter):
113113

114114
@model_validator(mode="before")
115115
@classmethod
116-
def _preprocess_items(cls, values):
116+
def _preprocess_items(cls, values: dict[str, Any]) -> dict[str, Any]:
117117
# Convert items from dict to ToolParameter if needed
118118
items = values.get("items")
119119
if isinstance(items, dict):
@@ -154,7 +154,7 @@ class ObjectParameter(ToolParameter):
154154

155155
@model_validator(mode="before")
156156
@classmethod
157-
def _preprocess_properties(cls, values):
157+
def _preprocess_properties(cls, values: dict[str, Any]) -> dict[str, Any]:
158158
# Convert properties from dicts to ToolParameter if needed
159159
props = values.get("properties")
160160
if isinstance(props, dict):

tests/unit/tool/test_tool.py

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
from typing import Any
23
from neo4j_graphrag.tool import (
34
StringParameter,
45
IntegerParameter,
@@ -12,7 +13,7 @@
1213
)
1314

1415

15-
def test_string_parameter():
16+
def test_string_parameter() -> None:
1617
param = StringParameter(description="A string", required=True, enum=["a", "b"])
1718
assert param.description == "A string"
1819
assert param.required is True
@@ -22,30 +23,30 @@ def test_string_parameter():
2223
assert d["enum"] == ["a", "b"]
2324

2425

25-
def test_integer_parameter():
26+
def test_integer_parameter() -> None:
2627
param = IntegerParameter(description="An int", minimum=0, maximum=10)
2728
d = param.model_dump_tool()
2829
assert d["type"] == ParameterType.INTEGER
2930
assert d["minimum"] == 0
3031
assert d["maximum"] == 10
3132

3233

33-
def test_number_parameter():
34+
def test_number_parameter() -> None:
3435
param = NumberParameter(description="A number", minimum=1.5, maximum=3.5)
3536
d = param.model_dump_tool()
3637
assert d["type"] == ParameterType.NUMBER
3738
assert d["minimum"] == 1.5
3839
assert d["maximum"] == 3.5
3940

4041

41-
def test_boolean_parameter():
42+
def test_boolean_parameter() -> None:
4243
param = BooleanParameter(description="A bool")
4344
d = param.model_dump_tool()
4445
assert d["type"] == ParameterType.BOOLEAN
4546
assert d["description"] == "A bool"
4647

4748

48-
def test_array_parameter_and_validation():
49+
def test_array_parameter_and_validation() -> None:
4950
arr_param = ArrayParameter(
5051
description="An array",
5152
items=StringParameter(description="str"),
@@ -61,17 +62,17 @@ def test_array_parameter_and_validation():
6162
# Test items as dict
6263
arr_param2 = ArrayParameter(
6364
description="Arr with dict",
64-
items={"type": "string", "description": "str"},
65+
items={"type": "string", "description": "str"}, # type: ignore
6566
)
66-
arr_param2 = arr_param2.validate_items()
6767
assert isinstance(arr_param2.items, StringParameter)
6868

6969
# Test error on invalid items
7070
with pytest.raises(ValueError):
71-
ArrayParameter(description="bad", items=123).validate_items()
71+
# Use type: ignore to bypass type checking for this intentional error case
72+
ArrayParameter(description="bad", items=123).validate_items() # type: ignore
7273

7374

74-
def test_object_parameter_and_validation():
75+
def test_object_parameter_and_validation() -> None:
7576
obj_param = ObjectParameter(
7677
description="Obj",
7778
properties={
@@ -91,20 +92,21 @@ def test_object_parameter_and_validation():
9192
obj_param2 = ObjectParameter(
9293
description="Obj2",
9394
properties={
94-
"foo": {"type": "string", "description": "foo"},
95+
"foo": {"type": "string", "description": "foo"}, # type: ignore
9596
},
9697
)
97-
obj_param2 = obj_param2.validate_properties()
9898
assert isinstance(obj_param2.properties["foo"], StringParameter)
9999

100100
# Test error on invalid property
101101
with pytest.raises(ValueError):
102+
# Use type: ignore to bypass type checking for this intentional error case
102103
ObjectParameter(
103-
description="bad", properties={"foo": 123}
104+
description="bad",
105+
properties={"foo": 123}, # type: ignore
104106
).validate_properties()
105107

106108

107-
def test_from_dict():
109+
def test_from_dict() -> None:
108110
d = {"type": ParameterType.STRING, "description": "desc"}
109111
param = ToolParameter.from_dict(d)
110112
assert isinstance(param, StringParameter)
@@ -137,8 +139,8 @@ def test_from_dict():
137139
ToolParameter.from_dict({"description": "no type"})
138140

139141

140-
def test_tool_class():
141-
def dummy_func(query, **kwargs):
142+
def test_tool_class() -> None:
143+
def dummy_func(query: str, **kwargs: Any) -> dict[str, Any]:
142144
return kwargs
143145

144146
params = ObjectParameter(

0 commit comments

Comments
 (0)