# PluginManager - Менеджер плагинов

class axipy.PluginManager

  Менеджер плагинов.

  Примечание

  Создание `axipy.PluginManager` не требуется, используйте объект `axipy.plugin_manager`.

  Пример:

      import axipy

      # Отслеживание загрузки и выгрузки плагинов
      axipy.plugin_manager.loaded.connect(lambda id_: print(f'Загружен плагин {id_}'))
      axipy.plugin_manager.unloaded.connect(lambda id_: print(f'Выгружен плагин {id_}'))
      plugin_name = 'my_module_id'
      # Загрузка плагина
      axipy.plugin_manager.load(plugin_name)
      # Получение кортежа идентификаторов доступных плагинов
      ids = axipy.plugin_manager.ids()
      # Получение информации о плагине
      pi = axipy.plugin_manager.info(plugin_name)
      print(pi.name, pi.author, pi.path)

  Методы:

  `ids`() | Кортеж идентификаторов плагинов.
  `info`(plugin_id) | Информация о плагине.
  `is_loaded`(plugin_id) | Загружен ли плагин.
  `load`(plugin_id) | Загрузка плагина.
  `unload`(plugin_id) | Выгрузка плагина.

  Сигналы:

  `loaded` | Плагин успешно загружен.
  `unloaded` | Плагин успешно выгружен.

  ids() → Tuple[str, ...]

    Кортеж идентификаторов плагинов.

  info(plugin_id: str) → PluginInfo

    Информация о плагине.

    Параметры:

      plugin_id – Идентификатор плагина.

    Исключение:

      ValueError – Если плагин не найден.

  is_loaded(plugin_id: str) → bool

    Загружен ли плагин.

    Параметры:

      plugin_id – Идентификатор плагина.

    Результат:

      True если плагин загружен. В противном случае False, также, если плагин отсутствует.

  load(plugin_id: str)

    Загрузка плагина. При ошибке выбрасывается исключение.

    Параметры:

      plugin_id – Идентификатор плагина.

    Исключение:

      ValueError – Если плагин не найден.

  property loaded: Signal

    Плагин успешно загружен.

    Тип результата:

      Signal[str], где str - идентификатор плагина.

  unload(plugin_id: str)

    Выгрузка плагина.

    Параметры:

      plugin_id – Идентификатор плагина.

    Исключение:

      ValueError – Если плагин не найден.

  property unloaded: Signal

    Плагин успешно выгружен.

    Тип результата:

      Signal[str], где str - идентификатор плагина.