Я пытаюсь определить использование/причины функций и переменных в пакете python на уровне функции. Есть несколько модулей, где функции/переменные, используемые в других функциях, и я хотел бы создать словарь, который выглядит примерно так:Как найти все виды использования функции или переменной python в пакете python
{'function_name':{'uses': [...functions used in this function...],
'causes': [...functions that use this function...]},
...
}
функции, которые я имею в виду должны быть определены в модулях пакет.
Как я должен начать с этого? Я знаю, что я могу перебирать пакет __dict__
и тест для функций, определенных в пакете, выполнив:
import package
import inspect
import types
for name, obj in vars(package).items():
if isinstance(obj, types.FunctionType):
module, *_ = inspect.getmodule(obj).__name__.split('.')
if module == package.__name__:
# Now that function is obtained need to find usages or functions used within it
Но после того, что мне нужно найти функции, используемые в текущей функции. Как это может быть сделано? Есть ли что-то уже разработанное для такого рода работ? Я думаю, что профилирующие библиотеки, возможно, должны сделать что-то подобное этому.
проверить это https://docs.python.org/2/library/ast.html –
Выглядит многообещающе. По-видимому, это «отсутствующие» документы 'ast': https://greentreesnakes.readthedocs.io/en/latest/index.html – pbreach
@Ni. Спасибо за предложение этого модуля. Я закончил тем, что на самом деле работал. – pbreach