Spec-Zone.ru › Python 3.13

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.13/library/pyclbr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API