1 Commits

Author SHA1 Message Date
maoake ed16566677 finish to fix parsing mypy 2026-03-31 22:43:03 +02:00
+12 -10
View File
@@ -1,5 +1,6 @@
from src.amaz_lib.MazeGenerator import DepthFirstSearch, Kruskal from src.amaz_lib.MazeGenerator import DepthFirstSearch, Kruskal
from src.amaz_lib.MazeSolver import AStar, DepthFirstSearchSolver from src.amaz_lib.MazeSolver import AStar, DepthFirstSearchSolver
from typing import Any
class DataMaze: class DataMaze:
@@ -13,14 +14,14 @@ class DataMaze:
return data return data
@staticmethod @staticmethod
def transform_data(data: str) -> dict: def transform_data(data: str) -> dict[str, str]:
tmp = data.split("\n") tmp = data.split("\n")
tmp2 = [value.split("=", 1) for value in tmp if "=" in value] tmp2 = [value.split("=", 1) for value in tmp if "=" in value]
data_t = {value[0]: value[1] for value in tmp2} data_t = {value[0]: value[1] for value in tmp2}
return data_t return data_t
@staticmethod @staticmethod
def verif_key_data(data: dict) -> None: def verif_key_data(data: dict[str, str]) -> None:
key_test = { key_test = {
"WIDTH", "WIDTH",
"HEIGHT", "HEIGHT",
@@ -41,11 +42,11 @@ class DataMaze:
) )
@staticmethod @staticmethod
def convert_values(data: dict): def convert_values(data: dict[str, str]) -> dict[str, Any]:
key_int = {"WIDTH", "HEIGHT"} key_int = {"WIDTH", "HEIGHT"}
key_tuple = {"ENTRY", "EXIT"} key_tuple = {"ENTRY", "EXIT"}
key_bool = {"PERFECT"} key_bool = {"PERFECT"}
res: dict = {} res: dict[str, Any] = {}
for key in key_int: for key in key_int:
res.update({key: int(data[key])}) res.update({key: int(data[key])})
for key in key_tuple: for key in key_tuple:
@@ -60,13 +61,14 @@ class DataMaze:
return res return res
@staticmethod @staticmethod
def get_solver_generator(data: dict, entry: tuple, exit: tuple, def get_solver_generator(data: dict[str, str], entry: tuple[int, int],
perfect: bool) -> dict: exit: tuple[int, int],
available_generator = { perfect: bool) -> dict[str, Any]:
available_generator: dict[str, Any] = {
"Kruskal": Kruskal, "Kruskal": Kruskal,
"DFS": DepthFirstSearch, "DFS": DepthFirstSearch,
} }
available_solver = { available_solver: dict[str, Any] = {
"AStar": AStar, "AStar": AStar,
"DFS": DepthFirstSearchSolver "DFS": DepthFirstSearchSolver
} }
@@ -77,7 +79,7 @@ class DataMaze:
return res return res
@staticmethod @staticmethod
def convert_tuple(data: str) -> tuple: def convert_tuple(data: str) -> tuple[int, int]:
data_t = data.split(",") data_t = data.split(",")
if len(data_t) != 2: if len(data_t) != 2:
raise ValueError( raise ValueError(
@@ -96,7 +98,7 @@ class DataMaze:
return False return False
@staticmethod @staticmethod
def get_data_maze(name_file: str) -> dict: def get_data_maze(name_file: str) -> dict[str, Any]:
try: try:
data_str = DataMaze.get_file_data(name_file) data_str = DataMaze.get_file_data(name_file)
data_dict = DataMaze.transform_data(data_str) data_dict = DataMaze.transform_data(data_str)