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. Повернений словник відображає назви функцій і класів рівня модуля на їхні дескриптори. Вкладені об’єкти вводяться до дочірнього словника їх батьків. Як і для readmodule, module називає модуль, який потрібно прочитати, а path додається до sys.path. Якщо модуль, який читається, є пакетом, повернутий словник має ключ '__path__'', значенням якого є список, що містить шлях пошуку пакета.

Added in version 3.7: Дескриптори для вкладених визначень. Доступ до них здійснюється через атрибут new children. Кожен має новий батьківський атрибут.

Дескриптори, які повертаються цими функціями, є екземплярами класів Function і Class. Користувачі не повинні створювати екземпляри цих класів.

Функціональні об’єкти

class pyclbr.Function

Class Function instances describe functions defined by def statements. They have the following attributes:

file

Ім’я файлу, в якому визначена функція.

module

Назва модуля, що визначає описану функцію.

name

Ім’я функції.

lineno

Номер рядка у файлі, з якого починається визначення.

parent

For top-level functions, None. For nested functions, the parent.

Added in version 3.7.

children

A dictionary mapping names to descriptors for nested functions and classes.

Added in version 3.7.

is_async

True for functions that are defined with the async prefix, False otherwise.

Added in version 3.10.

Об’єкти класу

class pyclbr.Class

Class Class instances describe classes defined by class statements. They have the same attributes as Functions and two more.

file

Ім’я файлу, в якому визначено клас.

module

Назва модуля, що визначає описуваний клас.

name

Назва класу.

lineno

Номер рядка у файлі, з якого починається визначення.

parent

For top-level classes, None. For nested classes, the parent.

Added in version 3.7.

children

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

Added in version 3.7.

super

A list of Class objects which describe the immediate base classes of the class being described. Classes which are named as superclasses but which are not discoverable by readmodule_ex() are listed as a string with the class name instead of as Class objects.

methods

A dictionary mapping method names to line numbers. This can be derived from the newer children dictionary, but remains for back-compatibility.