tkinter desiste ao portar o código 2.x para 3.x, o atributo do módulo 'tkinter' não existe

UPDATED: VEJA ABAIXO

Estou portando o código para esta tarefa:http: //www.stanford.edu/class/cs221/progAssignments/PA1/search.htm (todo o código-fonte está disponível como zip a partir daí) do Python 2.x ao 3.x. Observe que portar não é uma tarefa, é apenas eu tentando manter o código atualizado e evitar a instalação de outra versão do Python ...

Após as correções usuais da sintaxe 2.x -> 3.x (impressão, aumento de exceção, etc.) e percebendo que o móduloTkinter agora é conhecido comotkinter no 3.x (letras minúsculas), já deparei com problemas mais estranhos, com esse trecho e vários outros como ele:

def keys_pressed(d_o_e=tkinter.tkinter.dooneevent,d_w=tkinter.tkinter.DONT_WAIT)

Os erros são do tipo:

AttributeError: 'module' object has no attribute 'tkinter'

conclusão do código @ no meu IDE e o rastreamento da variável parecem indicar que otkinter módulo @ não possui atributo ou subclassetkinter sob o qual se pode se referir adooneevent ouDONT_WAIT. No entanto, existem algumas outras referências na Internet de pessoas que usam construções como

_tkinter.dooneevent(_tkinter.DONT_WAIT)

para avançar o loop principal, mas mesmo referenciando-o dessa maneira ainda gera o mesmo err

Todas as idéias muito apreciadas.

UPDATE: Fazer referência à notação _root_window via lambda parece funcionar, pois já não reclama tempo de pré-execução na maioria dos casos. Para meus olhos destreinados, no entanto, isso é basicamente "mágico" e, como tal, tenho pouca idéia do que esse erro subsequente está dizendo ou como contornar esse problema. O método agora se parece com isso, com minhas alterações na primeira linha:

def move_to(object, x, y=None, d_o_e=lambda arg: _root_window(arg), d_w=tkinter._tkinter.DONT_WAIT):
    if y is None:
        try: x, y = x
        except: raise  'incomprehensible coordinates'

    horiz = True
    newCoords = []
    current_x, current_y = _canvas.coords(object)[0:2] # first point
    for coord in  _canvas.coords(object):
      if horiz:
        inc = x - current_x
      else:
        inc = y - current_y
      horiz = not horiz

      newCoords.append(coord + inc)

    _canvas.coords(object, *newCoords)
    d_o_e(d_w)

e o erro que recebo é:

TypeError: 'Tk' object is not callable              

eferenciando a linha onde o método está definido (primeira linha acima

questionAnswers(1)

yourAnswerToTheQuestion