def get_next_open_row(board, col):
    """
    Finds the topmost vacant cell in column `col`, in `board`'s grid.
    Returns that cell's corresponding row index.
    """
    n_rows = board.n_rows

    # check row by row, from bottom row to top row ([0][0] is topleft of grid)
    for row in range(n_rows - 1, -1, -1):
        if board.grid[row][col] == 0:
            return row

    # so pylint doesn't complain
    return None