# Класс Plugin

Модули пишутся в объектном стиле. Для этого, файл `__init__.py` должен содержать класс, наследуемый от класса `axipy.Plugin`. Тогда ГИС Аксиома при загрузке модуля создаст его экземпляр, а при выгрузке - удалит его.

Вспомогательный класс `axipy.Plugin` содержит свойства и методы, которые нужны для написания плагина. Например: загрузка/сохранение настроек `axipy.Plugin.settings`; получение пути к папке с модулем `axipy.Plugin.plugin_dir`; перевод строк `axipy.Plugin.tr()`; добавление кнопок в интерфейс `axipy.Plugin.create_action` и другие.

Пример модуля `__init__.py`

    """
    Пример добавления кнопки и подключение действия по нажатию на нее (показ сообщения).
    При выгрузке кнопка удаляется из интерфейса.
    """
    from axipy import Position, Plugin, Notifications

    class ExamplePluginMinimal(Plugin):
        def __init__(self) -> None:
            self._title = self.tr("Минимальный плагин")

            self._action = self.create_action(
                "Пример действия",
                icon="://icons/share/32px/run3.png",
                on_click=self.show_message,
            )
            position = Position("Примеры модулей", "Минимальный")
            position.add(self._action)
            self._action.action.setToolTip("Всплывающая подсказка")

        def unload(self) -> None:
            self._action.remove()

        def show_message(self) -> None:
            Notifications.push(self._title, "Пример выполнения действия по нажатию кнопки")

- При загрузке Аксиома создаст экземпляр модуля и вызовет конструктор класса `axipy.Plugin.__init__()`.

- После создания главного окна, Аксиома вызовет метод `axipy.Plugin.load()`.

- `axipy.Plugin.unload()` - вызывается, когда модуль выгружается.