subclasse __module__ definida como módulo de metaclasse ao criar manualmente uma nova classe com o tipo ()

No exemplo a seguir, a subclasse recém-criada acaba sendo a metaclasse__module__ em vez do módulo das classes pai. Eu só vi isso acontecer ao usarABCMeta então poderia ser algo específico para esse módulo, alguém sabe o que pode estar acontecendo?

In [1]: from abc import ABCMeta

In [2]: class test(metaclass=ABCMeta):
   ...:     pass
   ...: 

In [3]: newclass = type('newclass', (test,), {})

In [4]: newclass.__module__
Out[4]: 'abc'

O comportamento que eu quero acontece quando eu defino a subclasse da maneira mais padrão:

In [5]: class subtest(test):
   ...:     pass
   ...: 

In [6]: subtest.__module__
Out[6]: '__main__'

Alguém pode explicar por que esse é o caso e como você poderia, usandotype, crie uma nova subclasse com a correta__module__ atributo herdado (por exemplo,__module__=='__main__')?

questionAnswers(1)

yourAnswerToTheQuestion