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: Дескрипторы для вложенных определений. Доступ к ним осуществляется через новых детей атрибут. У каждого из них есть новый родительский атрибут.

Дескрипторы возвращенный этими функциями - сущности классов функции и класса. Пользователи не должны создавать сущности из этих классов.

Объекты функции

Класс Function сущности описывать функции, определенные def инструкцией. У них есть следующие атрибуты:

Function.file

Имя файла, в котором определена функция.

Function.module

Имя модуля, определяющего описанную функцию.

Function.name

Имя функции.

Function.lineno

Номер строки в файле, в котором начинается определение.

Function.parent

Для функций верхнего уровня, None. Для вложенных функций - родительский.

Добавлено в версии 3.7.

Function.children

Словарь, наносящий на карту имена к дескрипторы для вложенных функций и классов.

Добавлено в версии 3.7.

Объекты класса

Класс 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

Имя метода сопоставления словаря с номерами строк. Это может быть получено из нового дочернего словаря, но остается для обратной совместимости.