# `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 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.

    Нове в версії 3.7.

  children

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

    Нове в версії 3.7.

  is_async

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

    Нове в версії 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.

    Нове в версії 3.7.

  children

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

    Нове в версії 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.