pyclbr
— Поддержка браузера модуля Python
Модуль 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 и Class. От пользователей не ожидается создания экземпляров данных классов.
Функциональные объекты
Экземпляры класса 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
Имена методов сопоставления словаря с номерами строк. Это может быть получено из более нового дочернего словаря, но остаётся для обратной совместимости.