Skip to main content

GUI for Yapsy plugin system

Project description

Yapsy QT GUI

Python plugin manager

This project is a GUI python plugin manager. Backend is implemented over Yapsy

Basic plugin structure:

plugin1.plugin
# Plugin descriptor file
[Core]
Name = Plugin Test
Module = plugin1

[Documentation]
Author = Leonel Hernandez
Version = 0.1
Website = https://github.com/leonelhs/
Description = This is a demo plugin
plugin1.py
# Plugin module file
from qtpy.QtWidgets import QPushButton
from yapsy.IPlugin import IPlugin


class PluginOne(IPlugin):

    def __init__(self):
        super().__init__()
        self.context = None
        self.name = "Plugin test-01"

    def action(self, context):
        self.context = context
        button = QPushButton(self.name)
        button.clicked.connect(self.task)
        context.layout().addWidget(button)

    def task(self):
        self.context.output.append("This is a text from plugin test-01")

Minimal Application

import sys
from qtpy import QtWidgets
from qtpy.QtWidgets import QWidget, QVBoxLayout, QPushButton, QTextBrowser
from yapsygui import DialogPlugins


def fetchPlugins(plugins):
    for plugin in plugins:
        plugin.plugin_object.action(win)


app = QtWidgets.QApplication()
win = QWidget(None)
win.setLayout(QVBoxLayout())
btn_manager = QPushButton("Show Manager")
win.layout().addWidget(btn_manager)

manager = DialogPlugins("./plugins")
manager.connect(fetchPlugins)
manager.loadPlugins()

btn_manager.clicked.connect(manager.show)
win.output = QTextBrowser(win)
win.layout().addWidget(win.output)

win.show()
sys.exit(app.exec_())

Install

foo@bar:~$ pip install yapsygui
foo@bar:~$ yapsygui

For install a new plugin just locate plugin descriptor

Test plugin action

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

yapsygui-1.1.3-py3.11.egg (38.1 kB view details)

Uploaded Source

yapsygui-1.1.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file yapsygui-1.1.3-py3.11.egg.

File metadata

  • Download URL: yapsygui-1.1.3-py3.11.egg
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for yapsygui-1.1.3-py3.11.egg
Algorithm Hash digest
SHA256 611a6a0192815cdcabfb293f80184fa2b56cdc72934f30cf60dd37552d0b2fb1
MD5 1cbe9f9a19b14893fc06401614015539
BLAKE2b-256 a9fc910a8c3aeeb5aef8ec3912cf60a021bd9aa7ec1c56d9d665d1389d848f25

See more details on using hashes here.

File details

Details for the file yapsygui-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: yapsygui-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for yapsygui-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c1626aaf86c8788dc33d3efe84229caf9f06948f970d7e440cad0a32edeb312e
MD5 32bd17116f1c93010dbd47e14ed79377
BLAKE2b-256 27d08e051e1f48fe698dab77a01f8a9059fec2a5012037fbb7943660cbb07306

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page