pyclbr — поддержка браузера модулей Python
Исходный код: Lib/pyclbr.py
Модуль pyclbr предоставляет ограниченную информацию о функциях, классах и методах, определённых в модуле, написанном на Python. Этой информации достаточно для реализации браузера модулей. Информация извлекается из исходного кода Python, а не путём импорта модуля, поэтому этот модуль безопасно использовать с недоверенным кодом. Это ограничение не позволяет использовать данный модуль с модулями, не реализованными на Python, включая все стандартные и необязательные модули расширений.
-
pyclbr.readmodule(module, path=None) -
Возвращает словарь, сопоставляющий имена классов уровня модуля с дескрипторами классов. Если возможно, включаются дескрипторы импортированных базовых классов. Параметр module — это строка с именем читаемого модуля; это может быть имя модуля внутри пакета. Если параметр path задан, он представляет собой последовательность путей к каталогам, добавляемую в начало
sys.path, который используется для поиска исходного кода модуля.Эта функция является исходным интерфейсом и сохранена только для обратной совместимости. Она возвращает отфильтрованную версию следующей функции.
-
pyclbr.readmodule_ex(module, path=None) -
Возвращает древовидную структуру на основе словаря, содержащую дескрипторы функций или классов для каждой функции и каждого класса, определённых в модуле с помощью инструкции
defилиclass. Возвращённый словарь сопоставляет имена функций и классов уровня модуля с их дескрипторами. Вложенные объекты помещаются в словарь children родительского объекта. Как и в readmodule, параметр module задаёт имя читаемого модуля, а параметр path добавляется в начало sys.path. Если читаемый модуль является пакетом, возвращённый словарь содержит ключ'__path__', значением которого является список путей поиска пакета.
Добавлено в версии 3.7: Дескрипторы вложенных определений. Доступ к ним осуществляется через новый атрибут children. У каждого из них есть новый атрибут parent.
Дескрипторы, возвращаемые этими функциями, являются экземплярами классов Function и Class. Предполагается, что пользователи не будут создавать экземпляры этих классов.
Объекты функций
-
class pyclbr.Function -
Экземпляры класса
Functionописывают функции, определённые инструкциями def. У них есть следующие атрибуты:-
file -
Имя файла, в котором определена функция.
-
module -
Имя модуля, в котором определена описываемая функция.
-
name -
Имя функции.
-
lineno -
Номер строки файла, в которой начинается определение.
-
parent -
Для функций верхнего уровня —
None. Для вложенных функций — родительская функция.Добавлено в версии 3.7.
-
children -
Объект
dictionary, сопоставляющий имена с дескрипторами вложенных функций и классов.Добавлено в версии 3.7.
-
is_async -
Trueдля функций, определённых с префиксомasync, иFalseв противном случае.Добавлено в версии 3.10.
-
Объекты классов
-
class pyclbr.Class -
Экземпляры класса
Classописывают классы, определённые инструкциями class. У них те же атрибуты, что и уFunctions, а также ещё два атрибута.-
file -
Имя файла, в котором определён класс.
-
module -
Имя модуля, в котором определён описываемый класс.
-
name -
Имя класса.
-
lineno -
Номер строки файла, в которой начинается определение.
-
parent -
Для классов верхнего уровня —
None. Для вложенных классов — родительский класс.Добавлено в версии 3.7.
-
children -
Словарь, сопоставляющий имена с дескрипторами вложенных функций и классов.
Добавлено в версии 3.7.
-
super -
Список объектов
Class, описывающих непосредственные базовые классы описываемого класса. Классы, указанные в качестве суперклассов, но недоступные для обнаружения с помощьюreadmodule_ex(), перечисляются в виде строки с именем класса, а не в виде объектовClass.
-
methods -
Объект
dictionary, сопоставляющий имена методов с номерами строк. Эти данные можно получить из более нового словаряchildren, но этот атрибут сохранён для обратной совместимости.
-
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/pyclbr.html