Added exception handling to opening file in player
[getaclue.git] / crosswordpuzzle.py
index a02f469..d02890b 100644 (file)
@@ -136,8 +136,7 @@ class CrosswordPuzzle:
        def export_image (self, pngfile, htmlfile=None, puztitle="Crossword Puzzle",
                solution=True):
                # don't export if grid is not frozen
-               if self.frozen_grid is False:
-                       raise FrozenGridException
+               self.assert_frozen_grid ()
 
                # create cairo image surface and context
                px = 30
@@ -226,8 +225,7 @@ class CrosswordPuzzle:
        # get the AcrossLite(TM) data for exporting
        def export_acrosslite (self, title, author, copyright):
                # don't export if grid is not frozen
-               if self.frozen_grid is False:
-                       raise FrozenGridException
+               self.assert_frozen_grid ()
 
                across_data = []
                across_data.append ("<ACROSS PUZZLE>\r\n")
@@ -373,9 +371,8 @@ class CrosswordPuzzle:
 
        # setting a down word
        def set_word_down (self, row, col, word):
-               # if the grid is frozen the abort
-               if self.frozen_grid is True:
-                       raise FrozenGridException
+               # if the grid is frozen then abort
+               self.assert_unfrozen_grid ()
 
                # if the word length greater than totalrows - startrow
                if len(word) > self.rows - row:
@@ -428,9 +425,8 @@ class CrosswordPuzzle:
 
        # setting an across word
        def set_word_across (self, row, col, word):
-               # if the grid is frozen the abort
-               if self.frozen_grid is True:
-                       raise FrozenGridException
+               # if the grid is frozen then abort
+               self.assert_unfrozen_grid ()
 
                # is the word length greater than totalcols - startcol?
                if len(word) > self.cols - col:
@@ -511,6 +507,16 @@ class CrosswordPuzzle:
 
                self.frozen_grid = False
 
+       # raise an exception if the grid is frozen
+       def assert_unfrozen_grid (self):
+               if self.frozen_grid is True:
+                       raise FrozenGridException
+
+       # raise an exception if the grid is NOT frozen
+       def assert_frozen_grid (self):
+               if self.frozen_grid is False:
+                       raise FrozenGridException
+
        # reset the entire grid
        def reset_grid (self):
                # run through the grid
@@ -524,8 +530,7 @@ class CrosswordPuzzle:
        # remove an across word at position
        def remove_word_across (self, row, col):
                # if grid is frozen don't allow removal of word
-               if self.frozen_grid is True:
-                       raise FrozenGridException
+               assert_unfrozen_grid ()
 
                word, brow, bcol, l = self.get_word_across (row, col)
 
@@ -541,8 +546,7 @@ class CrosswordPuzzle:
        # remove a down word at position
        def remove_word_down (self, row, col):
                # if grid is frozen don't allow removal of word
-               if self.frozen_grid is True:
-                       raise FrozenGridException
+               self.assert_unfrozen_grid ()
 
                word, brow, bcol, l = self.get_word_down (row, col)
                # traverse from the beginn to end of the word and erase it