# `pyclbr` — Python module browser support

Вихідний код: Lib/pyclbr.py

The `pyclbr` module provides limited information about the functions, classes, and methods defined in a Python-coded module. The information is sufficient to implement a module browser. The information is extracted from the Python source code rather than by importing the module, so this module is safe to use with untrusted code. This restriction makes it impossible to use this module with modules not implemented in Python, including all standard and optional extension modules.

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.