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. Пользователям не следует создавать экземпляры этих классов.
Объекты функций
Экземпляры класса Function описывают функции, определённые оператором def. У них есть следующие атрибуты:
-
Function.file -
Имя файла, в котором определена функция.
-
Function.module -
Имя модуля, в котором определена описываемая функция.
-
Function.name -
Имя функции.
-
Function.lineno -
Номер строки в файле, где начинается определение.
-
Function.parent -
Для функций верхнего уровня — None. Для вложенных функций — родитель.
Добавлена в версии 3.7.
-
Function.children -
Словарь, сопоставляющий имена с описателями вложенных функций и классов.
Добавлена в версии 3.7.
-
Function.is_async -
Trueдля функций, определённых с префиксомasync,Falseв противном случае.Добавлена в версии 3.10.
Объекты классов
Экземпляры класса Class описывают классы, определённые оператором class. У них есть те же атрибуты, что и у функций, плюс два дополнительных:
-
Class.file -
Имя файла, в котором определён класс.
-
Class.module -
Имя модуля, в котором определён описываемый класс.
-
Class.name -
Имя класса.
-
Class.lineno -
Номер строки в файле, где начинается определение.
-
Class.parent -
Для классов верхнего уровня — None. Для вложенных классов — родитель.
Добавлена в версии 3.7.
-
Class.children -
Словарь, сопоставляющий имена с описателями вложенных функций и классов.
Добавлена в версии 3.7.
-
Class.super -
Список объектов
Class, описывающих непосредственные базовые классы описываемого класса. Классы, которые указаны как суперклассы, но которые не могут быть обнаружены функциейreadmodule_ex(), перечислены как строки с именем класса вместо объектовClass.
-
Class.methods -
Словарь, сопоставляющий имена методов с номерами строк. Это можно получить из нового словаря children, но он остался для обратной совместимости.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/pyclbr.html