Skip to main content

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

Metadata

Release files for PlugSy 0.2.31

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PlugSy 0.2.31
File Size Uploaded
PlugSy-0.2.31.tar.gz 24.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PlugSy 0.2.31
File Interpreter ABI Platform
PlugSy-0.2.31-py3-none-any.whl Python 3 none any Details

Total release size: 58.1 kB

Release files / PlugSy-0.2.31.tar.gz

Download URL PlugSy-0.2.31.tar.gz
Size 24.4 kB
Tags Source
SHA-256 checksum
How to use checksums
322ca917434c32cb05d7433bf3bab9bb3c4f26816c54393a38dd506131f2ed75
BLAKE2b-256 checksum
How to use checksums
284a450b880bfa1e5b26230081c450c7d930c6f6e1f5311033148df165ad5bd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / PlugSy-0.2.31-py3-none-any.whl

Download URL PlugSy-0.2.31-py3-none-any.whl
Size 33.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f0e534f0fbb9c7b06318ef77ef04435726793959c1402d182ab0895cccc2683
BLAKE2b-256 checksum
How to use checksums
c9f59c3264ecc5277ce3dd5c2732878dce0fb8fa09c67fc420ad6b83e458031f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.31 This release

2 release files

0.2.30

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page