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 -
Словарь, сопоставляющий имена вложенным функциям и классам.
Добавлен в версии 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 -
Словарь, сопоставляющий имена методов с номерами строк. Это можно вывести из нового словаря
children, но он сохраняется для обеспечения обратной совместимости.
-
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/pyclbr.html