1 Commits

Author SHA1 Message Date
maoake ed16566677 finish to fix parsing mypy 2026-03-31 22:43:03 +02:00
8 changed files with 24 additions and 35 deletions
-1
View File
@@ -216,4 +216,3 @@ __marimo__/
.streamlit/secrets.toml .streamlit/secrets.toml
test.txt test.txt
mazegen-1.0.0-py3-none-any.whl
+1 -10
View File
@@ -1,7 +1,3 @@
build:
uv build --clear --wheel
cp dist/*.whl mazegen-1.0.0-py3-none-any.whl
install: install:
uv sync uv sync
uv pip install mlx-2.2-py3-none-any.whl uv pip install mlx-2.2-py3-none-any.whl
@@ -16,10 +12,7 @@ debug:
uv pdb python3 a_maze_ing.py config.txt uv pdb python3 a_maze_ing.py config.txt
clean: clean:
rm -rf */**__pycache__ __pycache__ .mypy_cache .venv dist build */**/*.egg-info *.egg-info rm -rf __pycache__ .mypy_cache .venv
fclean: clean
rm mazegen-1.0.0-py3-none-any.whl
lint: lint:
uv run flake8 . --exclude=.venv uv run flake8 . --exclude=.venv
@@ -41,5 +34,3 @@ run_test:
uv run pytest uv run pytest
mlx: mlx:
uv run python3 test.py uv run python3 test.py
.PHONY: build install run debug clean fclean lint lint-strict run_test
View File
+4 -5
View File
@@ -1,6 +1,6 @@
from typing import Any from typing import Any
from src.AMazeIng import AMazeIng from src.AMazeIng import AMazeIng
from src.parsing.Parsing import DataMaze as Parsing from src.parsing import Parsing
from mlx import Mlx from mlx import Mlx
import numpy as np import numpy as np
import time import time
@@ -308,9 +308,8 @@ class MazeMLX:
if keycode == 52: if keycode == 52:
self.close_loop(None) self.close_loop(None)
def handle_key_press_mteriier( def handle_key_press_mteriier(self, keycode: int,
self, keycode: int, amazing: AMazeIng amazing: AMazeIng) -> None:
) -> None:
if keycode == 38: if keycode == 38:
self.restart_maze(amazing) self.restart_maze(amazing)
self.print_path = False self.print_path = False
@@ -340,7 +339,7 @@ def main() -> None:
mlx = None mlx = None
try: try:
mlx = MazeMLX(1000, 1000) mlx = MazeMLX(1000, 1000)
config = Parsing.get_data_maze("config.txt") config = Parsing.DataMaze.get_data_maze("config.txt")
amazing = AMazeIng(**config) amazing = AMazeIng(**config)
mlx.start(amazing) mlx.start(amazing)
with open("test.txt", "w") as output: with open("test.txt", "w") as output:
-8
View File
@@ -23,11 +23,3 @@ python_version = "3.10"
[tool.pytest.ini_options] [tool.pytest.ini_options]
pythonpath = ["src"] pythonpath = ["src"]
[build-system]
requires = ["setuptools>=78.1.0", "wheel>=0.45.1"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "src/amaz_lib"}
+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)
+6
View File
@@ -0,0 +1,6 @@
__version__ = "1.0.0"
__author__ = "mteriier, dgaillet"
from .Parsing import DataMaze
__all__ = ["DataMaze"]
Generated
+1 -1
View File
@@ -9,7 +9,7 @@ resolution-markers = [
[[package]] [[package]]
name = "a-maze-ing" name = "a-maze-ing"
version = "0.1.0" version = "0.1.0"
source = { editable = "." } source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
{ name = "numpy", version = "2.4.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.4.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },