pattern_img = get_pattern_img() # TODO: get only the string of the board from img, # do everything else via the solver board = get_board_from_img(pattern_img, get_black_thresh()) raw_board = get_board_from_img(pattern_img, get_black_thresh(), False) puzzle = Puzzle(board['red_count'], board['black_count']) app.jinja_env.globals.update(get_piece=puzzle.get_piece) pieces = list(puzzle.get_pieces()) solver = Solver(board, pieces, puzzle) # piece_sets = puzzle.get_piece_sets() pieces_registry = puzzle.get_pieces_registry() pieces_map = {} for name, piece in pieces_registry.items(): size = piece['size'] name = piece['name'] dev = piece['deviation'] if size not in pieces_map: pieces_map[size] = {} if dev not in pieces_map[size]: pieces_map[size][dev] = [name] else: pieces_map[size][dev].append(name)