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
. Возвращаемый словарь сопоставляет имена функций и классов уровня модуля с их дескрипторами. Вложенные объекты заносятся в дочерний словарь своего родителя. Как и в readmodule, module называет читаемый модуль, а path добавляется к sys.path. Если считываемый модуль является пакетом, возвращаемый словарь имеет ключ'__path__'
, значением которого является список, содержащий путь поиска пакета.
Добавлено в версии 3.7: Дескрипторы для вложенных определений. Доступ к ним осуществляется через атрибут new 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. Они имеют те же атрибуты, что и Functions, и еще два.
-
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, но остается для обратной совместимости.