Spec-Zone.ru › Python 3.11

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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/pyclbr.html

Spec-Zone.ru

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