unidecompiler-gui-sdk
Stable, read-only API for trusted unidecompiler-gui Python plugins. The SDK
does not depend on Qt, core internals, frontends, or the simulator implementation.
Install it directly when developing a plugin:
python -m pip install unidecompiler-gui-sdk
End users do not need to install it separately: unidecompiler-gui depends on
the matching SDK API.
Minimal Plugin
Place plugin.toml and the declared entry module in one directory:
[plugin]
id = "example.workspace-inspector"
name = "Workspace Inspector"
version = "1.0.0"
api = "1"
entry = "workspace_inspector:register"
[python]
requires = []
from unidecompiler_gui_sdk import Command, Panel, PanelState
def register(context):
context.panels.register(Panel("summary", "Summary"))
def refresh(plugin_context):
document = plugin_context.active_document
text = "No active document" if document is None else document.display_name
plugin_context.set_panel_state("summary", PanelState.text_view(text))
context.commands.register(Command("refresh", "Refresh summary", refresh))
context.subscribe("document_selected", lambda _document: refresh(context))
The plugin entry function receives a plugin-scoped context. Plugins are trusted
in-process code, are not sandboxed, and must not import Qt or private
decompiler/simulator modules. See the repository's
docs/GUI_PLUGIN_DEVELOPMENT.md for the complete contract.
The GUI calls the manifest entry function with a plugin-scoped PluginContext.
Context snapshots are frozen data and navigation/simulation are host requests.
Register extensions through context.commands.register(Command(...)) and
context.panels.register(Panel(...)); panels use PanelState data rather than
Qt widgets. The SDK exposes no generic IR, decoded artifacts, frontends, Qt
objects, or simulator execution internals.
For simulation, request frontend-owned targets with
request_simulation_targets(document_id). The asynchronous target job returns
SimulationTargetSnapshot values containing a display label, parameter names,
and an opaque query. Pass that query unchanged to submit_simulation. Finished
jobs contain SDK-owned SimulationResultSnapshot and
SimulationEventSnapshot data, never simulator implementation objects.
context.settings stores JSON-compatible values under the current plugin ID;
one plugin cannot address another plugin's settings namespace.
Metadata
Release files for unidecompiler-gui-sdk 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unidecompiler_gui_sdk-0.2.2.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unidecompiler_gui_sdk-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / unidecompiler_gui_sdk-0.2.2.tar.gz
| Download URL | unidecompiler_gui_sdk-0.2.2.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
239a5ac051faf745e09e3981d96b7fe36c26925f6cfa2ecd1638adad457abdcf
|
|
BLAKE2b-256 checksum How to use checksums |
5891434ad607adfb2ebc7c8302f623c81b0511b83e471c113f0cfa2f334bd027
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / unidecompiler_gui_sdk-0.2.2-py3-none-any.whl
| Download URL | unidecompiler_gui_sdk-0.2.2-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
994298aba588ad5b2699866f58e1ea4f3131d022fd4f488748ab3abfcdc902ac
|
|
BLAKE2b-256 checksum How to use checksums |
3949262b7bd47ad67e049f306b41d31effa6791188b58197be852dd90573b1f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|