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__''
, значенням якого є список, що містить шлях пошуку пакета.
Нове в версії 3.7: Дескриптори для вкладених визначень. Доступ до них здійснюється через атрибут new children. Кожен має новий батьківський атрибут.
Дескриптори, які повертаються цими функціями, є екземплярами класів Function і Class. Користувачі не повинні створювати екземпляри цих класів.
Функціональні об’єкти¶
Class Function
instances describe functions defined by def
statements. They have the following attributes:
-
Function.
file
¶ Ім’я файлу, в якому визначена функція.
-
Function.
module
¶ Назва модуля, що визначає описану функцію.
-
Function.
name
¶ Ім’я функції.
-
Function.
lineno
¶ Номер рядка у файлі, з якого починається визначення.
-
Function.
parent
¶ For top-level functions, None. For nested functions, the parent.
Нове в версії 3.7.
-
Function.
children
¶ Словник, що зіставляє імена з дескрипторами для вкладених функцій і класів.
Нове в версії 3.7.
Об’єкти класу¶
Class Class
instances describe classes defined by class
statements. They have the same attributes as Functions and two more.
-
Class.
file
¶ Ім’я файлу, в якому визначено клас.
-
Class.
module
¶ Назва модуля, що визначає описуваний клас.
-
Class.
name
¶ Назва класу.
-
Class.
lineno
¶ Номер рядка у файлі, з якого починається визначення.
-
Class.
parent
¶ For top-level classes, None. For nested classes, the parent.
Нове в версії 3.7.
-
Class.
children
¶ Словник, що зіставляє імена з дескрипторами для вкладених функцій і класів.
Нове в версії 3.7.
-
Class.
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 byreadmodule_ex()
are listed as a string with the class name instead of asClass
objects.
-
Class.
methods
¶ A dictionary mapping method names to line numbers. This can be derived from the newer children dictionary, but remains for back-compatibility.