Skip to content

Commit f5403bd

Browse files
cemdeclaude
andcommitted
fix: resolve lint and typecheck issues after merge
- Remove unused variable in shorthand path test - Add ty: ignore[unknown-argument] for ARE Scenario constructor (optional dependency not resolvable by type checker) - Apply ruff formatting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0a417d9 commit f5403bd

5 files changed

Lines changed: 35 additions & 26 deletions

File tree

maseval/interface/environments/are.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,7 @@ def setup_state(self, environment_data: Dict[str, Any]) -> Dict[str, Any]:
116116
scenario = environment_data.get("scenario")
117117

118118
if scenario is None and "apps" not in environment_data:
119-
raise ValueError(
120-
"environment_data must contain either 'scenario' (ARE Scenario object) "
121-
"or 'apps' (list of ARE App instances)."
122-
)
119+
raise ValueError("environment_data must contain either 'scenario' (ARE Scenario object) or 'apps' (list of ARE App instances).")
123120

124121
if scenario is None:
125122
scenario = self._build_scenario_from_shorthand(environment_data)
@@ -176,13 +173,13 @@ def _build_scenario_from_shorthand(self, environment_data: Dict[str, Any]) -> An
176173
time_increment = environment_data.get("time_increment_in_seconds", 1)
177174

178175
scenario = Scenario(
179-
scenario_id=environment_data.get("scenario_id", "custom"),
180-
apps=apps,
181-
events=events,
182-
duration=duration,
183-
seed=seed,
184-
start_time=start_time,
185-
time_increment_in_seconds=time_increment,
176+
scenario_id=environment_data.get("scenario_id", "custom"), # ty: ignore[unknown-argument]
177+
apps=apps, # ty: ignore[unknown-argument]
178+
events=events, # ty: ignore[unknown-argument]
179+
duration=duration, # ty: ignore[unknown-argument]
180+
seed=seed, # ty: ignore[unknown-argument]
181+
start_time=start_time, # ty: ignore[unknown-argument]
182+
time_increment_in_seconds=time_increment, # ty: ignore[unknown-argument]
186183
)
187184
scenario.initialize()
188185
return scenario

maseval/interface/environments/are_tool_wrapper.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ def __init__(self, are_tool: Any, environment: "AREEnvironment"):
6464

6565
# Expose ARE tool metadata via AppToolAdapter (canonical source of truth)
6666
if AppToolAdapter is None:
67-
raise ImportError(
68-
"ARE (Agent Research Environments) is required for AREToolWrapper.\n"
69-
"Install with: pip install maseval[are]"
70-
)
67+
raise ImportError("ARE (Agent Research Environments) is required for AREToolWrapper.\nInstall with: pip install maseval[are]")
7168
adapter = AppToolAdapter(are_tool)
7269
self.name: str = adapter.name
7370
self.description: str = adapter.description

tests/interface/environments/test_are_environment.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""Tests for AREEnvironment."""
22

3-
from unittest.mock import MagicMock, patch, PropertyMock
4-
import sys
3+
from unittest.mock import MagicMock, patch
54
import pytest
65

76
from maseval.interface.environments.are import AREEnvironment
@@ -10,6 +9,7 @@
109
@pytest.fixture(autouse=True)
1110
def mock_app_tool_adapter():
1211
"""Mock AppToolAdapter so AREToolWrapper can initialize without ARE installed."""
12+
1313
def make_adapter(are_tool):
1414
adapter = MagicMock()
1515
adapter.name = are_tool.name
@@ -275,12 +275,15 @@ def test_shorthand_passes_config_to_scenario(self, mock_import):
275275
mock_scenario_instance = _make_mock_scenario()
276276
mock_scenario_cls.return_value = mock_scenario_instance
277277

278-
with patch.dict("sys.modules", {
279-
"are": MagicMock(),
280-
"are.simulation": MagicMock(),
281-
"are.simulation.scenarios": MagicMock(),
282-
"are.simulation.scenarios.scenario": MagicMock(Scenario=mock_scenario_cls),
283-
}):
278+
with patch.dict(
279+
"sys.modules",
280+
{
281+
"are": MagicMock(),
282+
"are.simulation": MagicMock(),
283+
"are.simulation.scenarios": MagicMock(),
284+
"are.simulation.scenarios.scenario": MagicMock(Scenario=mock_scenario_cls),
285+
},
286+
):
284287
apps = [MagicMock(), MagicMock()]
285288
environment_data = {
286289
"apps": apps,
@@ -289,7 +292,7 @@ def test_shorthand_passes_config_to_scenario(self, mock_import):
289292
"start_time": 100,
290293
"time_increment_in_seconds": 5,
291294
}
292-
env = AREEnvironment(environment_data=environment_data)
295+
AREEnvironment(environment_data=environment_data)
293296

294297
mock_scenario_cls.assert_called_once()
295298
call_kwargs = mock_scenario_cls.call_args[1]
@@ -422,6 +425,7 @@ def test_uses_app_tool_adapter_for_metadata(self, mock_adapter_cls):
422425
mock_env = MagicMock()
423426

424427
from maseval.interface.environments.are_tool_wrapper import AREToolWrapper
428+
425429
wrapper = AREToolWrapper(mock_tool, mock_env)
426430

427431
mock_adapter_cls.assert_called_once_with(mock_tool)

tests/interface/environments/test_are_integration.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
try:
66
import are # noqa: F401
7+
78
HAS_ARE = True
89
except ImportError:
910
HAS_ARE = False
@@ -17,15 +18,18 @@ class TestAREEnvironmentIntegration:
1718
def test_import_works(self):
1819
"""AREEnvironment can be imported when ARE is installed."""
1920
from maseval.interface.environments.are import AREEnvironment
21+
2022
assert AREEnvironment is not None
2123

2224
def test_tool_wrapper_import(self):
2325
"""AREToolWrapper can be imported when ARE is installed."""
2426
from maseval.interface.environments.are_tool_wrapper import AREToolWrapper
27+
2528
assert AREToolWrapper is not None
2629

2730
def test_package_init_exports(self):
2831
"""Package __init__ exports AREEnvironment when ARE is installed."""
2932
from maseval.interface.environments import AREEnvironment, AREToolWrapper
33+
3034
assert AREEnvironment is not None
3135
assert AREToolWrapper is not None

tests/interface/environments/test_are_tool_wrapper.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
@pytest.fixture(autouse=True)
1010
def mock_app_tool_adapter():
1111
"""Mock AppToolAdapter so AREToolWrapper can initialize without real ARE validation."""
12+
1213
def make_adapter(are_tool):
1314
adapter = MagicMock()
1415
adapter.name = are_tool.name
@@ -25,8 +26,14 @@ def make_adapter(are_tool):
2526
class TestAREToolWrapper:
2627
"""Tests for AREToolWrapper."""
2728

28-
def _make_mock_are_tool(self, name="Calendar__create_event", description="Create a calendar event",
29-
inputs=None, output_type="string", return_value="Event created"):
29+
def _make_mock_are_tool(
30+
self,
31+
name="Calendar__create_event",
32+
description="Create a calendar event",
33+
inputs=None,
34+
output_type="string",
35+
return_value="Event created",
36+
):
3037
"""Create a mock ARE tool."""
3138
tool = MagicMock()
3239
tool.name = name

0 commit comments

Comments
 (0)