Corda Python: Como encontrar todas as importações e erros ausentes em todos os refatores de submódulos

Estou tentando encontrar todas as instruções de importação e erros ausentes para cada módulo e seus submódulos.

Existe uma ferramenta dedicada para o que estou tentando fazer?

O código que escrevi, mas parece realmente terrível e talvez algo assim já exista ?:

import os
def find_missing_imports(walk):
    for items in walk:
        d = items[0]
        f_list = items[1]
        for f in f_list:
            module = f[:-3]
            # posix_path
            module_path = d.lstrip('.').replace('/','.').lstrip('.')
            try:
                __import__(module_path, fromlist=[module])
            except IndentationError, e:
                #print(f,e)
                pass
            except NameError, e:
                print(d,f,e)
                pass
            except Exception, e:
                print(f,e)
                pass

walk = [[root,files] for root,dirs,files in os.walk('.') for fn in files if  fn.endswith('.py')]
find_missing_imports(walk)

Saídas:

.[snip]
('./Sky_Group_Inventory_Scanner-wxpython/display_image/Dialogs', 'ImageSelectionFrame.py', NameError("name 'wx' is not defined",))
('./Sky_Group_Inventory_Scanner-wxpython/display_image/Dialogs', 'ItemSpecificsDialog.py', NameError("name 'wx' is not defined",))
('./Sky_Group_Inventory_Scanner-wxpython/display_image/Dialogs', 'ReturnCorrectWatchTitle.py', NameError("name 'wx' is not defined",))
.[snip]

Meu projeto antes da refatoração era uma bagunça, mas meio útil, agora está quebrado após a refatoração.

Depois de ler 'O programador pragmático' com base nas sugestões do meu post inicial na revisão de códigos:

https://codereview.stackexchange.com/questions/46223/wxpython-item-information-scraper

Tenho pesquisado o código fonte de:

/usr/local/lib/python2.7/dist-packages/rope

A documentação para o ROPE parece um pouco esparsa. Também uso o Ninja-IDE, mas não consegui encontrar uma solução para o problema que estou enfrentando.

No geral, acho que perdi o barco sobre o que é refatoração.

O layout do diretório pai atual pode ser vistoaqui.

Em comparação com o que eraantes.

Qualquer ajuda, no preenchimento da terminologia que falta, ou no que estou pedindo, seria ótimo.

Solução:

pylint -E /path/to/module

questionAnswers(1)

yourAnswerToTheQuestion