]> Untitled Git - axy/ft/a-maze-ing.git/commitdiff
Further error handling, almost done
authorAxy <gilliardmarthey.axel@gmail.com>
Sun, 29 Mar 2026 20:24:43 +0000 (22:24 +0200)
committerAxy <gilliardmarthey.axel@gmail.com>
Sun, 29 Mar 2026 20:24:43 +0000 (22:24 +0200)
a_maze_ing.py
mazegen/display/observer.py

index d83746492d4d657cbb6d0f3364986f6d5c91592c..a5ef646ee035cb56d67f853f46a46b3fad261aee 100644 (file)
@@ -1,4 +1,5 @@
 from sys import stderr
+import time
 from typing import Never
 from mazegen.config.parser_combinator import ParseError
 from mazegen.display.observer import MazeRegenerate, TTYTracker
@@ -75,8 +76,13 @@ if config.visual:
 
             maze_main()
 
-            with open(config.output_file, "w") as f:
-                f.write(format_output(maze))
+            try:
+                with open(config.output_file, "w") as f:
+                    f.write(format_output(maze))
+            except IOError:
+                if tty_tracker is not None:
+                    tty_tracker.uninit()
+                error(f"Failed to write to file {config.output_file}\n")
 
             while tty_tracker is not None:
                 tty_tracker.display_maze(wait_for_tick=True)
index 79e1b762764a13bac8ec69d251c9e7f2dfbdb856..d8c0a1d5e40596bdaf1ed6f29f0f6ca61e80e0a4 100644 (file)
@@ -182,3 +182,9 @@ class TTYTracker:
         self.__dirty_tracker.clear()
         self.poll_events()
         self.__backend.present()
+
+    def uninit(self) -> None:
+        """
+        Uninitializes the backed
+        """
+        self.__backend.uninit()