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.
Links
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
PluginBase: http://pluginbase.pocoo.org/
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 (4.0.1): https://pypi.org/project/wxPython/#description
*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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| PlugSy-0.2.31.tar.gz | 24.4 kB | Without provenance | Details for PlugSy-0.2.31.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| PlugSy-0.2.31-py3-none-any.whl | Python 3 | none | any | Details for PlugSy-0.2.31-py3-none-any.whl |
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 |
Security for PlugSy 0.2.31
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.