Как получить минимальную информацию о модули не импортируя сам модуль?
Стандартная библиотека pyclbr позволяет это сделать. Она не импортит модуль, а только парсит код и возвращает список имеющихся в модуле классов и функций в виде специальных объектов. Например, вы сможете узнать какие в модуле есть классы, от чего они наследованы и какие у них методы.
Возьмём для примера такой простой модуль
# mymodule.py
class Cls1:
def __init__(self):
pass
def execute(self):
pass
class Cls2(Cls1):
pass
def start():
pass
Запускаем анализ
>>> import pyclbr
>>> mdata = pyclbr.readmodule_ex('mymodule')
# список всего что нашлось
>>> print(mdata)
{'Cls1': <pyclbr.Class object at 0x000001B62F9D4288>,
'Cls2': <pyclbr.Class object at 0x000001B62F9DD908>,
'start': <pyclbr.Function object at 0x000001B62F8A8288>}
# список методов класса (имя метода и строка объявления)
>>> mdata['Cls1'].methods
{'__init__': 3, 'execute': 6}
# получения наследуемых классов
>>> mdata['Cls2'].super
[<pyclbr.Class object at 0x000001B62F9D4288>]
>>> mdata['Cls2'].super[0].name
'Cls1'
#libs#tricks