Поиск базовых классов Python с помощью статического анализа и джедаев

Примечание. Я не считаю это дубликатом таких вопросов, как Перечислить все базовые классы в иерархии данного класса?, потому что у меня нет возможности создавать экземпляры классов во время выполнения. Основное внимание здесь уделяется статическому анализу, а не динамическому.

Я использую инструмент Jedi для статического анализа внутреннего исходного кода. Могу ли я использовать его, чтобы определить все классы, от которых наследуется данный класс?

Например, вот сценарий с именем utils.py:

class UtilBase:
    pass


class SampleUtil(UtilBase):
    pass

Вот код для его приема:

import jedi

script = jedi.Script('utils.py')
names = script.get_names()
sample = names[1]

# shows "utils"
print(sample.parent())

# shows "SampleUtil()"
print(sample.get_signatures()[0].to_string())

Я хочу получить имя UtilBase от sample.


person Lemur    schedule 11.02.2021    source источник
comment
В настоящее время Jedi не поддерживает этот вариант использования.   -  person Dave Halter    schedule 12.02.2021