Update dictionary type hinting

This commit is contained in:
2022-08-26 19:51:52 -04:00
parent 79486d4217
commit 28b3d56880
+6 -10
View File
@@ -58,7 +58,6 @@ class BoggleBoard:
# Generate BoardCell for each position on the board # Generate BoardCell for each position on the board
for row in range(0, self.__height): for row in range(0, self.__height):
for col in range(0, self.__width): for col in range(0, self.__width):
#self.adjacency_dict[(row, col)] = self.__get_adjacent_indexes(row, col)
self.__board[(row, col)] = BoardCell(row, col, board[row][col]) self.__board[(row, col)] = BoardCell(row, col, board[row][col])
# Update adjacent cell references for each BoardCell # Update adjacent cell references for each BoardCell
@@ -115,7 +114,7 @@ class BoggleBoard:
class WordNode: class WordNode:
'''A node describing a single letter in a WordTree.''' '''A node describing a single letter in a WordTree.'''
def __init__(self, letter: str, is_word: bool = False, parent: WordNode = None, children: dict[WordNode] = None, board_pos = None) -> WordNode: def __init__(self, letter: str, is_word: bool = False, parent: WordNode = None, children: dict[str, WordNode] = None, board_pos = None) -> WordNode:
self.__letter = letter self.__letter = letter
self.__is_word = is_word self.__is_word = is_word
self.__children = children if children is not None else {} self.__children = children if children is not None else {}
@@ -137,7 +136,7 @@ class WordNode:
self.__is_word = value self.__is_word = value
@property @property
def children(self) -> dict[WordNode]: def children(self) -> dict[str, WordNode]:
'''Getter for children property''' '''Getter for children property'''
return self.__children return self.__children
@@ -212,14 +211,14 @@ class WordTree:
return self.__max_word_len return self.__max_word_len
@property @property
def tree(self) -> dict[str]: def tree(self) -> dict[str, WordNode]:
'''Getter for tree property''' '''Getter for tree property'''
return self.__tree return self.__tree
def __str__(self): def __str__(self):
return ", ".join(self.wordlist) return ", ".join(self.wordlist)
def insert_letter(self, letter: str, parent: WordNode, is_word: bool = False, children: dict[WordNode] = None, board_pos = None): def insert_letter(self, letter: str, parent: WordNode, is_word: bool = False, children: dict[str, WordNode] = None, board_pos = None):
'''Create WordNode for `letter` and into WordTree under `parent`''' '''Create WordNode for `letter` and into WordTree under `parent`'''
node = WordNode(letter, is_word, parent, children, board_pos) node = WordNode(letter, is_word, parent, children, board_pos)
parent.add_child_node(node) parent.add_child_node(node)
@@ -300,9 +299,8 @@ def build_full_boggle_tree(board: BoggleBoard, wordlist_path: str) -> dict[str,
alphabet = "".join(sorted(set([cell.letter for cell in board.board.values()]))) alphabet = "".join(sorted(set([cell.letter for cell in board.board.values()])))
board_tree = {} board_tree = {}
index = {} index = {}
print("Reading in wordlists...") print("Reading in wordlists...")
# alphabet = "abcdefghijklmnopqrstuvwxyz"
for letter in alphabet: for letter in alphabet:
filename = "words_" + letter + ".txt" filename = "words_" + letter + ".txt"
print(f">> {letter}: {filename}") print(f">> {letter}: {filename}")
@@ -347,6 +345,4 @@ if __name__ == "__main__":
#b2_tree = WordTree("abcdefghijklmnopqrstuvwxyz", WordNode("a", False, board_pos=start_pos)) #b2_tree = WordTree("abcdefghijklmnopqrstuvwxyz", WordNode("a", False, board_pos=start_pos))
#sub_tree = sample_tree.build_boggle_tree(b2_board, b2_board.board[start_pos], b2_tree) #sub_tree = sample_tree.build_boggle_tree(b2_board, b2_board.board[start_pos], b2_tree)
# TODO fix dict[value] type hints to dict[key, value]
boggle_tree = build_full_boggle_tree(b2_board, "wordlists/dwyl") boggle_tree = build_full_boggle_tree(b2_board, "wordlists/dwyl")