omo posso acessar o nome do módulo ou da classe em execução no Pytho

Gostaria de conseguir recuperar dinamicamente o módulo em execução ou o nome da classe atual de dentro de um módulo importado. Aqui está um código:

foo.py:

def f():
    print __name__

bar.py:

from foo import f

def b(): f()

Isso obviamente não funciona como__name__ é o nome do módulo que contém a função. O que eu gostaria de acessar dentro dofoo module é o nome do módulo em execução atual que está usandofoo. Portanto, no caso acima, seriabar mas se algum outro módulo importoufoo Eu gostariafoo para acessar dinamicamente o nome desse módul

Editar Oinspect módulo @ parece bastante promissor, mas não é exatamente o que eu estava procurando. O que eu esperava era algum tipo de variável global ou em nível de ambiente que eu pudesse acessar que contivesse o nome do módulo em execução atual. Não que eu não esteja disposto a percorrer a pilha para encontrar essas informações - eu apenas pensei que o Python já pode ter exposto esses dados.

Editar Aqui está como eu estou tentando usar isso. Eu tenho dois aplicativos Django diferentes que precisam registrar erros no arquivo. Vamos dizer que eles são chamados "AppOne" e "AppTwo". Também tenho um local para o qual gostaria de registrar esses arquivos: "/home/hare/app_logs ". Em cada aplicativo, em um determinado momento, eu gostaria de poder importar meu módulo de logger e chamar a função de log que grava a cadeia de log no arquivo. No entanto, o que eu gostaria de fazer é criar um diretório emapp_logs esse é o nome do aplicativo atual ("AppOne" ou "AppTwo") para que os arquivos de log de cada aplicativo sejam inseridos em seus respectivos diretórios de registr

Para fazer isso, pensei que a melhor maneira seria o módulo de logger ter acesso a algum tipo de variável global que denota o nome do aplicativo atual, pois é responsável por conhecer a localização do diretório de log pai e criar o aplicativo diretório de log, se ainda não existi

questionAnswers(11)

yourAnswerToTheQuestion