Skip to content

Commit 8a75d14

Browse files
committed
lint
1 parent 9dbdbd0 commit 8a75d14

1 file changed

Lines changed: 22 additions & 22 deletions

File tree

tests/test_maker.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,19 @@
1818
from effectful.ops.semantics import handler
1919
from effectful.ops.types import NotHandled
2020

21-
type Step = tuple[int, int]
21+
type Move = tuple[int, int]
22+
23+
24+
class Step(ABC):
25+
@property
26+
@abstractmethod
27+
def start(self) -> int:
28+
raise NotImplementedError
29+
30+
@property
31+
@abstractmethod
32+
def end(self) -> int:
33+
raise NotImplementedError
2234

2335

2436
@dataclass(frozen=True)
@@ -34,12 +46,12 @@ class GameState:
3446

3547
@classmethod
3648
def new(cls, size: int) -> "GameState":
37-
towers = [[] for _ in range(size)]
49+
towers: list[list[int]] = [[] for _ in range(size)]
3850
towers[0] = list(reversed(range(size)))
39-
towers = tuple(tuple(tower) for tower in towers)
40-
return cls(size, towers)
51+
state: tuple[tuple[int, ...], ...] = tuple(tuple(tower) for tower in towers)
52+
return cls(size, state)
4153

42-
def visualise_image(self) -> Image:
54+
def visualise_image(self) -> Image.Image:
4355
"Uses python graphics libraries to visualise the state of the hanoi game."
4456
tower_width = 150
4557
disk_height = 30
@@ -100,7 +112,7 @@ def visualise(self):
100112
img = self.visualise_image()
101113
img.show()
102114

103-
def apply(self, step: Step) -> Optional["GameState"]:
115+
def apply(self, step: Move) -> Optional["GameState"]:
104116
"""
105117
Given a tower `start` and a target tower `end` moves the topmost disk to the end tower.
106118
"""
@@ -134,7 +146,7 @@ def is_done(self) -> bool:
134146
for i in range(len(self.towers[-1]) - 1)
135147
)
136148

137-
def valid_steps(self) -> list[Step]:
149+
def valid_steps(self) -> list[Move]:
138150
steps = []
139151
for i, tower_i in enumerate(self.towers):
140152
for j, tower_j in enumerate(self.towers):
@@ -148,23 +160,11 @@ def valid_steps(self) -> list[Step]:
148160
return steps
149161

150162

151-
class Step(ABC):
152-
@property
153-
@abstractmethod
154-
def start(self) -> int:
155-
raise NotImplementedError
156-
157-
@property
158-
@abstractmethod
159-
def end(self) -> int:
160-
raise NotImplementedError
161-
162-
163163
def build_validated_model(game_state: GameState) -> type[Step]:
164164
valid_steps = game_state.valid_steps()
165165

166166
@pydantic.dataclasses.dataclass(frozen=True)
167-
class StepModel:
167+
class StepModel(Step):
168168
start: int
169169
end: int
170170
explanation: str = ""
@@ -191,11 +191,11 @@ def __hash__(self):
191191
return StepModel
192192

193193

194-
def predict_next_step(game_state: GameState) -> Step:
194+
def predict_next_step(game_state: GameState) -> Move:
195195
ValidStep = build_validated_model(game_state)
196196

197197
@Template.define
198-
def predict_next_step_inner(game_state) -> ValidStep:
198+
def predict_next_step_inner(game_state) -> ValidStep: # type: ignore
199199
"""
200200
Given the state of the game of towers of Hanoi as follows:
201201

0 commit comments

Comments
 (0)