MCPcopy
hub / github.com/nonebot/nonebot2 / _new_plugin

Function _new_plugin

nonebot/plugin/__init__.py:96–124  ·  view source on GitHub ↗
(
    module_name: str, module: ModuleType, manager: "PluginManager"
)

Source from the content-addressed store, hash-verified

94
95
96def _new_plugin(
97 module_name: str, module: ModuleType, manager: "PluginManager"
98) -> "Plugin":
99 plugin_id = _module_name_to_plugin_id(module_name)
100 if plugin_id in _plugins:
101 raise RuntimeError(
102 f"Plugin {plugin_id} already exists! Check your plugin name."
103 )
104
105 parent_plugin_id = _find_parent_plugin_id(module_name)
106 if parent_plugin_id is not None and parent_plugin_id not in _plugins:
107 raise RuntimeError(
108 f"Parent plugin {parent_plugin_id} must "
109 f"be loaded before loading {plugin_id}."
110 )
111 parent_plugin = _plugins[parent_plugin_id] if parent_plugin_id is not None else None
112
113 plugin = Plugin(
114 name=_module_name_to_plugin_name(module_name),
115 module=module,
116 module_name=module_name,
117 manager=manager,
118 parent_plugin=parent_plugin,
119 )
120 if parent_plugin:
121 parent_plugin.sub_plugins.add(plugin)
122
123 _plugins[plugin_id] = plugin
124 return plugin
125
126
127def _revert_plugin(plugin: "Plugin") -> None:

Callers 1

exec_moduleMethod · 0.85

Calls 4

_find_parent_plugin_idFunction · 0.85
PluginClass · 0.85

Tested by

no test coverage detected