Содержание страницы
pyclbr – поддержка браузера модулей Python¶pyclbr – Python module browser support
Исходный код: 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. Пользователи не должны создавать экземпляры этих классов.
Объекты функций¶Function Objects
- class pyclbr.Function¶
Экземпляры класса
Functionописывают функции, определённые с помощью операторов def. Они имеют следующие атрибуты:- file¶
Имя файла, в котором определена функция.
- module¶
Имя модуля, определяющего описываемую функцию.
- name¶
Имя функции.
- lineno¶
Номер строки в файле, с которой начинается определение.
- parent¶
Для функций верхнего уровня –
None. Для вложенных функций – родитель.Добавлено в версии 3.7.
- children¶
dictionary, сопоставляющее имена с дескрипторами для вложенных функций и классов.Добавлено в версии 3.7.
Объекты класса¶Class Objects
- 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, но он сохраняется для обратной совместимости.