Я пытаюсь наметить использование/причины функций и переменных в пакете 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
Но после этого мне нужно найти функции, используемые в текущей функции. Как это может быть сделано? Есть ли что-то уже разработанное для такого рода работ? Я думаю, что библиотекам профилирования, возможно, придется сделать что-то подобное.
ast
документы: greentreesnakes.readthedocs.io/en/latest/index. html - person pbreach   schedule 22.12.2016