Skip to main content

Threaded plugin system and SDK

Project description

PlugSy is a cross-platform threaded plugin framework and SDK for Python. With PlugSy, each plugin runs in a separate thread and has a handle to the global PlugSy plugin management object, allowing plugins to communicate and interact with each other. Whilst there are numerous existing Python Plugin frameworks, it’s this built-in support for threading that makes PlugSy slightly different.

Documentation Status

Project Goal

The goal of this project is to aid with the rapid development of Python applications of varying size and complexity. PlugSy tries to make it easy for developers to create small modular components (plugins) that interact and combine to form the basis of a complete software piece. By keeping extensibility and modularity in mind, PlugSy allows you to move from a basic single-plugin application, to a large application with a multitude of complex plugins, at your own pace.

Features

  • Separation of plugins into core and addon packages

  • Cross-platform support

  • Pure-python, no dependencies required

  • Built-in logging support for the PlugSy manager and each individual plugin

  • SDK GUI for quickly creating and deleting plugins

Roadmap

  • PyInstaller integration and executable production
    • Combining PlugSy and any developed plugins into a PyInstaller executable via SDK and SDK GUI

    • Option to add a Windows service wrapper

  • Further support for additional Python versions

Similar Projects

Example Usage

PlugSy

Initiating PlugSy

from plugsy import Plugsy

plugsy = Plugsy()

Activating all existing plugins

plugsy.activate_plugins()

Activating specific plugins

plugsy.activate_plugins(["MainPlugin", "FirstPlugin", "FifthPlugin"])

Deactivating all plugins

plugsy.deactivate_plugins()

Deactivating specific plugins

plugsy.deactivate_plugins(["MainPlugin", "FirstPlugin", "FifthPlugin"])

Interacting with plugin objects

main_plugin = plugsy.get_plugin("MainPlugin")
main_plugin.do_something()
main_plugin.do_something_else()

first_plugin = plugsy.get_plugin("FirstPlugin")
first_plugin.take_an_action("some_action")
some_data = first_plugin.get_some_data()

SDK

Initiating the SDK

from plugsy.sdk.Sdk import Sdk

# Pass in path to directory containing plugins (or path to an empty dir)
sdk = Sdk(plugins_home_path=".\\plugins")

Creating a new plugin

# Pass in the plugin type (core or addon) and plugin name
sdk.create_plugin(plugin_type="core", name="MyNewPlugin")

Deleting a plugin

sdk.delete_plugin(name="MyNewPlugin")

Installation

Installation of PlugSy is simple using Pip:

pip install plugsy

Dependencies

*wxPython is only required if you’re running Windows and want to use the SDK GUI

Project details


Download files

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

Source Distribution

PlugSy-0.2.30.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PlugSy-0.2.30-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

Details for the file PlugSy-0.2.30.tar.gz.

File metadata

  • Download URL: PlugSy-0.2.30.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PlugSy-0.2.30.tar.gz
Algorithm Hash digest
SHA256 7228607193ad7ecc667d429600c6216ddc7a488d8f7818a44a867c06b81d20a0
MD5 616175855f3dd78d0b8fc99bb60d7c50
BLAKE2b-256 ed04ac682d3e0edacd4b34f718c222c8dad771bad8a9d14ee9f7e6da2afab11b

See more details on using hashes here.

File details

Details for the file PlugSy-0.2.30-py3-none-any.whl.

File metadata

File hashes

Hashes for PlugSy-0.2.30-py3-none-any.whl
Algorithm Hash digest
SHA256 1fdb5035293df563be1675a62f2932f7776e4989f03c09c2fea4414cd6d72227
MD5 7785538014292e2572155b4e53bba231
BLAKE2b-256 4c3b49bf3196eeba632aac53fa22a8dd17c45f276a4c94fea48d761350956c59

See more details on using hashes here.

Supported by

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