MCPcopy Create free account
hub / github.com/MrNeRF/LichtFeld-Studio / register_plugins

Function register_plugins

src/python/lfs/py_plugins.cpp:32–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30 } // namespace
31
32 void register_plugins(nb::module_& m) {
33 auto plugins = m.def_submodule("plugins", "Plugin system - management, capabilities, panels, and settings");
34 plugins.attr("API_VERSION") = "1.0";
35
36 nb::list features;
37 features.append("capabilities.v1");
38 features.append("menus.v1");
39 features.append("operators.v1");
40 features.append("panels.v1");
41 features.append("settings.v1");
42 features.append("signals.v1");
43 plugins.attr("FEATURES") = features;
44
45 // ===== Plugin Management =====
46
47 plugins.def(
48 "discover", []() { return get_plugin_manager().attr("discover")(); },
49 "Discover plugins in ~/.lichtfeld/plugins/");
50
51 plugins.def(
52 "load", [](const std::string& name) { return nb::cast<bool>(get_plugin_manager().attr("load")(name)); },
53 nb::arg("name"), "Load plugin");
54
55 plugins.def(
56 "unload", [](const std::string& name) { return nb::cast<bool>(get_plugin_manager().attr("unload")(name)); },
57 nb::arg("name"), "Unload plugin");
58
59 plugins.def(
60 "reload", [](const std::string& name) { return nb::cast<bool>(get_plugin_manager().attr("reload")(name)); },
61 nb::arg("name"), "Reload plugin");
62
63 plugins.def(
64 "load_all", []() { return get_plugin_manager().attr("load_all")(); }, "Load all user-enabled plugins");
65
66 plugins.def(
67 "list_loaded", []() { return get_plugin_manager().attr("list_loaded")(); }, "List loaded plugins");
68
69 plugins.def(
70 "start_watcher", []() { get_plugin_manager().attr("start_watcher")(); }, "Start file watcher");
71
72 plugins.def(
73 "stop_watcher", []() { get_plugin_manager().attr("stop_watcher")(); }, "Stop file watcher");
74
75 plugins.def(
76 "get_state", [](const std::string& name) { return get_plugin_manager().attr("get_state")(name); },
77 nb::arg("name"), "Get plugin state");
78
79 plugins.def(
80 "get_error", [](const std::string& name) { return get_plugin_manager().attr("get_error")(name); },
81 nb::arg("name"), "Get plugin error");
82
83 plugins.def(
84 "get_traceback", [](const std::string& name) { return get_plugin_manager().attr("get_traceback")(name); },
85 nb::arg("name"), "Get plugin error traceback");
86
87 plugins.def(
88 "install",
89 [](const std::string& url, const bool auto_load, const std::string& transport) {

Callers 1

NB_MODULEFunction · 0.85

Calls 8

get_plugin_managerFunction · 0.85
get_capability_registryFunction · 0.85
CapabilitySchemaClass · 0.85
get_settings_managerFunction · 0.85
create_pluginFunction · 0.50
appendMethod · 0.45
emptyMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected