Есть ли анализатор объема для Python?

Учитывая файл Python, я хочу выяснить все области и объявления для идентификаторов в файле.

Например, учитывая этот файл:

import a
from b import xyz

def my_func(g):
   print "2"

my_func(0)
a.function_in_a(3)
xyz(4)

Я хочу, чтобы вывод был:

  • по строке 7, my_func относится к my_func определено в строке 4 этого файла
  • в строке 8, a относится к модулю а. function_in_a относится к функции, определенной в модуле
  • в строке 9, xyz относится к функции, определенной в модуле b

Есть ли библиотека, которая делает это для меня? В основном я пытаюсь использовать в контексте функциональности IDE / автозаполнения кода / понимания областей переменных. По сути, мне интересно понять расположение определения идентификатора (переменной, функции и т. Д.), Так же как то, как его определяет среда IDE, такая как PyCharm.

1 ответ

Странно, что я не видел эту проблему раньше.

Там в jedi.names, который сделал бы в значительной степени то, что вы хотите!

http://jedi.readthedocs.io/en/latest/docs/plugin-api.html

Другие вопросы по тегам