app/assets/load.html-JlWBPVEM.js

97 lines
36 KiB
JavaScript

import{_ as n,o as a,c as s,e as t}from"./app-Du8R6vOa.js";const e={},p=t(`<h3 id="def-load-plugin-module-path-str-path-optional-plugin" tabindex="-1"><a class="header-anchor" href="#def-load-plugin-module-path-str-path-optional-plugin"><span><em><strong>def</strong></em> <code>load_plugin(module_path: str | Path) -&gt; Optional[Plugin]</code></span></a></h3><p>加载单个插件,可以是本地插件或是通过 <code>pip</code> 安装的插件。</p><p>参数:</p><pre><code>module_path: 插件名称 \`path.to.your.plugin\`
或插件路径 \`pathlib.Path(path/to/your/plugin)\`
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">load_plugin</span><span class="token punctuation">(</span>module_path<span class="token punctuation">:</span> <span class="token builtin">str</span> <span class="token operator">|</span> Path<span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> Optional<span class="token punctuation">[</span>Plugin<span class="token punctuation">]</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;加载单个插件,可以是本地插件或是通过 \`pip\` 安装的插件。
参数:
module_path: 插件名称 \`path.to.your.plugin\`
或插件路径 \`pathlib.Path(path/to/your/plugin)\`
&quot;&quot;&quot;</span>
module_path <span class="token operator">=</span> path_to_module_name<span class="token punctuation">(</span>Path<span class="token punctuation">(</span>module_path<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">if</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>module_path<span class="token punctuation">,</span> Path<span class="token punctuation">)</span> <span class="token keyword">else</span> module_path
<span class="token keyword">try</span><span class="token punctuation">:</span>
module <span class="token operator">=</span> import_module<span class="token punctuation">(</span>module_path<span class="token punctuation">)</span>
_plugins<span class="token punctuation">[</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">]</span> <span class="token operator">=</span> Plugin<span class="token punctuation">(</span>name<span class="token operator">=</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">,</span> module<span class="token operator">=</span>module<span class="token punctuation">,</span> module_name<span class="token operator">=</span>module_path<span class="token punctuation">)</span>
<span class="token keyword">if</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">&#39;__plugin_metadata__&#39;</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
metadata<span class="token punctuation">:</span> <span class="token string">&#39;PluginMetadata&#39;</span> <span class="token operator">=</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">[</span><span class="token string">&#39;__plugin_metadata__&#39;</span><span class="token punctuation">]</span>
display_name <span class="token operator">=</span> module<span class="token punctuation">.</span>__name__<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">&#39;.&#39;</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
<span class="token keyword">elif</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">&#39;__liteyuki_plugin_meta__&#39;</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
metadata<span class="token punctuation">:</span> <span class="token string">&#39;PluginMetadata&#39;</span> <span class="token operator">=</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">[</span><span class="token string">&#39;__liteyuki_plugin_meta__&#39;</span><span class="token punctuation">]</span>
display_name <span class="token operator">=</span> format_display_name<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;</span><span class="token interpolation"><span class="token punctuation">{</span>metadata<span class="token punctuation">.</span>name<span class="token punctuation">}</span></span><span class="token string">(</span><span class="token interpolation"><span class="token punctuation">{</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">&#39;.&#39;</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">)&quot;</span></span><span class="token punctuation">,</span> metadata<span class="token punctuation">.</span><span class="token builtin">type</span><span class="token punctuation">)</span>
<span class="token keyword">elif</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">&#39;__plugin_meta__&#39;</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
metadata<span class="token punctuation">:</span> <span class="token string">&#39;PluginMetadata&#39;</span> <span class="token operator">=</span> module<span class="token punctuation">.</span>__dict__<span class="token punctuation">[</span><span class="token string">&#39;__plugin_meta__&#39;</span><span class="token punctuation">]</span>
display_name <span class="token operator">=</span> format_display_name<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;</span><span class="token interpolation"><span class="token punctuation">{</span>metadata<span class="token punctuation">.</span>name<span class="token punctuation">}</span></span><span class="token string">(</span><span class="token interpolation"><span class="token punctuation">{</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">&#39;.&#39;</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">)&quot;</span></span><span class="token punctuation">,</span> metadata<span class="token punctuation">.</span><span class="token builtin">type</span><span class="token punctuation">)</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>opt<span class="token punctuation">(</span>colors<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;The metadata of Liteyuki plugin &quot;</span><span class="token interpolation"><span class="token punctuation">{</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">}</span></span><span class="token string">&quot; is not specified, use empty.&#39;</span></span><span class="token punctuation">)</span>
metadata <span class="token operator">=</span> PluginMetadata<span class="token punctuation">(</span>name<span class="token operator">=</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">)</span>
display_name <span class="token operator">=</span> module<span class="token punctuation">.</span>__name__<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">&#39;.&#39;</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
_plugins<span class="token punctuation">[</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">]</span><span class="token punctuation">.</span>metadata <span class="token operator">=</span> metadata
logger<span class="token punctuation">.</span>opt<span class="token punctuation">(</span>colors<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token punctuation">.</span>success<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Succeeded to load liteyuki plugin &quot;</span><span class="token interpolation"><span class="token punctuation">{</span>display_name<span class="token punctuation">}</span></span><span class="token string">&quot;&#39;</span></span><span class="token punctuation">)</span>
<span class="token keyword">return</span> _plugins<span class="token punctuation">[</span>module<span class="token punctuation">.</span>__name__<span class="token punctuation">]</span>
<span class="token keyword">except</span> Exception <span class="token keyword">as</span> e<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>opt<span class="token punctuation">(</span>colors<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token punctuation">.</span>success<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Failed to load liteyuki plugin &quot;&lt;r&gt;</span><span class="token interpolation"><span class="token punctuation">{</span>module_path<span class="token punctuation">}</span></span><span class="token string">&lt;/r&gt;&quot;&#39;</span></span><span class="token punctuation">)</span>
traceback<span class="token punctuation">.</span>print_exc<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">return</span> <span class="token boolean">None</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-load-plugins-set-plugin" tabindex="-1"><a class="header-anchor" href="#def-load-plugins-set-plugin"><span><em><strong>def</strong></em> <code>load_plugins() -&gt; set[Plugin]</code></span></a></h3><p>导入文件夹下多个插件</p><p>参数:</p><pre><code>plugin_dir: 文件夹路径
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">load_plugins</span><span class="token punctuation">(</span><span class="token operator">*</span>plugin_dir<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> ignore_warning<span class="token punctuation">:</span> <span class="token builtin">bool</span><span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> <span class="token builtin">set</span><span class="token punctuation">[</span>Plugin<span class="token punctuation">]</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;导入文件夹下多个插件
参数:
plugin_dir: 文件夹路径
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
&quot;&quot;&quot;</span>
plugins <span class="token operator">=</span> <span class="token builtin">set</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> dir_path <span class="token keyword">in</span> plugin_dir<span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>exists<span class="token punctuation">(</span>dir_path<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> ignore_warning<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;Plugins dir &#39;</span><span class="token interpolation"><span class="token punctuation">{</span>dir_path<span class="token punctuation">}</span></span><span class="token string">&#39; does not exist.&quot;</span></span><span class="token punctuation">)</span>
<span class="token keyword">continue</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> os<span class="token punctuation">.</span>listdir<span class="token punctuation">(</span>dir_path<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> ignore_warning<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;Plugins dir &#39;</span><span class="token interpolation"><span class="token punctuation">{</span>dir_path<span class="token punctuation">}</span></span><span class="token string">&#39; is empty.&quot;</span></span><span class="token punctuation">)</span>
<span class="token keyword">continue</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>isdir<span class="token punctuation">(</span>dir_path<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> ignore_warning<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&quot;Plugins dir &#39;</span><span class="token interpolation"><span class="token punctuation">{</span>dir_path<span class="token punctuation">}</span></span><span class="token string">&#39; is not a directory.&quot;</span></span><span class="token punctuation">)</span>
<span class="token keyword">continue</span>
<span class="token keyword">for</span> f <span class="token keyword">in</span> os<span class="token punctuation">.</span>listdir<span class="token punctuation">(</span>dir_path<span class="token punctuation">)</span><span class="token punctuation">:</span>
path <span class="token operator">=</span> Path<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>dir_path<span class="token punctuation">,</span> f<span class="token punctuation">)</span><span class="token punctuation">)</span>
module_name <span class="token operator">=</span> <span class="token boolean">None</span>
<span class="token keyword">if</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>isfile<span class="token punctuation">(</span>path<span class="token punctuation">)</span> <span class="token keyword">and</span> f<span class="token punctuation">.</span>endswith<span class="token punctuation">(</span><span class="token string">&#39;.py&#39;</span><span class="token punctuation">)</span> <span class="token keyword">and</span> <span class="token punctuation">(</span>f <span class="token operator">!=</span> <span class="token string">&#39;__init__.py&#39;</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
module_name <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>path_to_module_name<span class="token punctuation">(</span>Path<span class="token punctuation">(</span>dir_path<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">.</span><span class="token interpolation"><span class="token punctuation">{</span>f<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token format-spec">-3]</span><span class="token punctuation">}</span></span><span class="token string">&#39;</span></span>
<span class="token keyword">elif</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>isdir<span class="token punctuation">(</span>path<span class="token punctuation">)</span> <span class="token keyword">and</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>exists<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>path<span class="token punctuation">,</span> <span class="token string">&#39;__init__.py&#39;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
module_name <span class="token operator">=</span> path_to_module_name<span class="token punctuation">(</span>path<span class="token punctuation">)</span>
<span class="token keyword">if</span> module_name<span class="token punctuation">:</span>
load_plugin<span class="token punctuation">(</span>module_name<span class="token punctuation">)</span>
<span class="token keyword">if</span> _plugins<span class="token punctuation">.</span>get<span class="token punctuation">(</span>module_name<span class="token punctuation">)</span><span class="token punctuation">:</span>
plugins<span class="token punctuation">.</span>add<span class="token punctuation">(</span>_plugins<span class="token punctuation">[</span>module_name<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token keyword">return</span> plugins
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-format-display-name-display-name-str-plugin-type-plugintype-str" tabindex="-1"><a class="header-anchor" href="#def-format-display-name-display-name-str-plugin-type-plugintype-str"><span><em><strong>def</strong></em> <code>format_display_name(display_name: str, plugin_type: PluginType) -&gt; str</code></span></a></h3><p>设置插件名称颜色,根据不同类型插件设置颜色</p><p>Args:</p><pre><code>display_name: 插件名称
plugin_type: 插件类型
</code></pre><p>Returns:</p><pre><code>str: 设置后的插件名称 &lt;y&gt;name&lt;/y&gt;
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">format_display_name</span><span class="token punctuation">(</span>display_name<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> plugin_type<span class="token punctuation">:</span> PluginType<span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> <span class="token builtin">str</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
设置插件名称颜色,根据不同类型插件设置颜色
Args:
display_name: 插件名称
plugin_type: 插件类型
Returns:
str: 设置后的插件名称 &lt;y&gt;name&lt;/y&gt;
&quot;&quot;&quot;</span>
color <span class="token operator">=</span> <span class="token string">&#39;y&#39;</span>
<span class="token keyword">match</span> plugin_type<span class="token punctuation">:</span>
<span class="token keyword">case</span> PluginType<span class="token punctuation">.</span>APPLICATION<span class="token punctuation">:</span>
color <span class="token operator">=</span> <span class="token string">&#39;m&#39;</span>
<span class="token keyword">case</span> PluginType<span class="token punctuation">.</span>TEST<span class="token punctuation">:</span>
color <span class="token operator">=</span> <span class="token string">&#39;g&#39;</span>
<span class="token keyword">case</span> PluginType<span class="token punctuation">.</span>MODULE<span class="token punctuation">:</span>
color <span class="token operator">=</span> <span class="token string">&#39;e&#39;</span>
<span class="token keyword">case</span> PluginType<span class="token punctuation">.</span>SERVICE<span class="token punctuation">:</span>
color <span class="token operator">=</span> <span class="token string">&#39;c&#39;</span>
<span class="token keyword">return</span> <span class="token string-interpolation"><span class="token string">f&#39;&lt;</span><span class="token interpolation"><span class="token punctuation">{</span>color<span class="token punctuation">}</span></span><span class="token string">&gt;</span><span class="token interpolation"><span class="token punctuation">{</span>display_name<span class="token punctuation">}</span></span><span class="token string"> [</span><span class="token interpolation"><span class="token punctuation">{</span>plugin_type<span class="token punctuation">.</span>name<span class="token punctuation">}</span></span><span class="token string">]&lt;/</span><span class="token interpolation"><span class="token punctuation">{</span>color<span class="token punctuation">}</span></span><span class="token string">&gt;&#39;</span></span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="var-module-path-path-to-module-name-path-module-path-if-isinstance-module-path-path-else-module-path" tabindex="-1"><a class="header-anchor" href="#var-module-path-path-to-module-name-path-module-path-if-isinstance-module-path-path-else-module-path"><span><em><strong>var</strong></em> <code>module_path = path_to_module_name(Path(module_path)) if isinstance(module_path, Path) else module_path</code></span></a></h3><h3 id="var-plugins-set" tabindex="-1"><a class="header-anchor" href="#var-plugins-set"><span><em><strong>var</strong></em> <code>plugins = set()</code></span></a></h3><h3 id="var-color-y" tabindex="-1"><a class="header-anchor" href="#var-color-y"><span><em><strong>var</strong></em> <code>color = &#39;y&#39;</code></span></a></h3><h3 id="var-module-import-module-module-path" tabindex="-1"><a class="header-anchor" href="#var-module-import-module-module-path"><span><em><strong>var</strong></em> <code>module = import_module(module_path)</code></span></a></h3><h3 id="var-display-name-module-name-split-1" tabindex="-1"><a class="header-anchor" href="#var-display-name-module-name-split-1"><span><em><strong>var</strong></em> <code>display_name = module.__name__.split(&#39;.&#39;)[-1]</code></span></a></h3><h3 id="var-path-path-os-path-join-dir-path-f" tabindex="-1"><a class="header-anchor" href="#var-path-path-os-path-join-dir-path-f"><span><em><strong>var</strong></em> <code>path = Path(os.path.join(dir_path, f))</code></span></a></h3><h3 id="var-module-name-none" tabindex="-1"><a class="header-anchor" href="#var-module-name-none"><span><em><strong>var</strong></em> <code>module_name = None</code></span></a></h3><h3 id="var-color-m" tabindex="-1"><a class="header-anchor" href="#var-color-m"><span><em><strong>var</strong></em> <code>color = &#39;m&#39;</code></span></a></h3><h3 id="var-color-g" tabindex="-1"><a class="header-anchor" href="#var-color-g"><span><em><strong>var</strong></em> <code>color = &#39;g&#39;</code></span></a></h3><h3 id="var-color-e" tabindex="-1"><a class="header-anchor" href="#var-color-e"><span><em><strong>var</strong></em> <code>color = &#39;e&#39;</code></span></a></h3><h3 id="var-color-c" tabindex="-1"><a class="header-anchor" href="#var-color-c"><span><em><strong>var</strong></em> <code>color = &#39;c&#39;</code></span></a></h3><h3 id="var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type" tabindex="-1"><a class="header-anchor" href="#var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type"><span><em><strong>var</strong></em> <code>display_name = format_display_name(f&quot;{metadata.name}({module.__name__.split(&#39;.&#39;)[-1]})&quot;, metadata.type)</code></span></a></h3><h3 id="var-module-name-f-path-to-module-name-path-dir-path-f-3" tabindex="-1"><a class="header-anchor" href="#var-module-name-f-path-to-module-name-path-dir-path-f-3"><span><em><strong>var</strong></em> <code>module_name = f&#39;{path_to_module_name(Path(dir_path))}.{f[:-3]}&#39;</code></span></a></h3><h3 id="var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type-1" tabindex="-1"><a class="header-anchor" href="#var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type-1"><span><em><strong>var</strong></em> <code>display_name = format_display_name(f&quot;{metadata.name}({module.__name__.split(&#39;.&#39;)[-1]})&quot;, metadata.type)</code></span></a></h3><h3 id="var-metadata-pluginmetadata-name-module-name" tabindex="-1"><a class="header-anchor" href="#var-metadata-pluginmetadata-name-module-name"><span><em><strong>var</strong></em> <code>metadata = PluginMetadata(name=module.__name__)</code></span></a></h3><h3 id="var-display-name-module-name-split-1-1" tabindex="-1"><a class="header-anchor" href="#var-display-name-module-name-split-1-1"><span><em><strong>var</strong></em> <code>display_name = module.__name__.split(&#39;.&#39;)[-1]</code></span></a></h3><h3 id="var-module-name-path-to-module-name-path" tabindex="-1"><a class="header-anchor" href="#var-module-name-path-to-module-name-path"><span><em><strong>var</strong></em> <code>module_name = path_to_module_name(path)</code></span></a></h3>`,34),o=[p];function l(i,c){return a(),s("div",null,o)}const d=n(e,[["render",l],["__file","load.html.vue"]]),r=JSON.parse(`{"path":"/dev/api/plugin/load.html","title":"liteyuki.plugin.load","lang":"zh-CN","frontmatter":{"title":"liteyuki.plugin.load","order":1,"icon":"laptop-code","category":"API","description":"def load_plugin(module_path: str | Path) -> Optional[Plugin] 加载单个插件,可以是本地插件或是通过 pip 安装的插件。 参数: 源代码 def load_plugins() -> set[Plugin] 导入文件夹下多个插件 参数: 源代码 def format_display_name(d...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/api/plugin/load.html"}],["meta",{"property":"og:url","content":"https://vuepress-theme-hope-docs-demo.netlify.app/dev/api/plugin/load.html"}],["meta",{"property":"og:site_name","content":"LiteyukiBot 轻雪机器人"}],["meta",{"property":"og:title","content":"liteyuki.plugin.load"}],["meta",{"property":"og:description","content":"def load_plugin(module_path: str | Path) -> Optional[Plugin] 加载单个插件,可以是本地插件或是通过 pip 安装的插件。 参数: 源代码 def load_plugins() -> set[Plugin] 导入文件夹下多个插件 参数: 源代码 def format_display_name(d..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-21T09:59:21.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-21T09:59:21.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"liteyuki.plugin.load\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-21T09:59:21.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"def load_plugin(module_path: str | Path) -> Optional[Plugin]","slug":"def-load-plugin-module-path-str-path-optional-plugin","link":"#def-load-plugin-module-path-str-path-optional-plugin","children":[]},{"level":3,"title":"def load_plugins() -> set[Plugin]","slug":"def-load-plugins-set-plugin","link":"#def-load-plugins-set-plugin","children":[]},{"level":3,"title":"def format_display_name(display_name: str, plugin_type: PluginType) -> str","slug":"def-format-display-name-display-name-str-plugin-type-plugintype-str","link":"#def-format-display-name-display-name-str-plugin-type-plugintype-str","children":[]},{"level":3,"title":"var module_path = path_to_module_name(Path(module_path)) if isinstance(module_path, Path) else module_path","slug":"var-module-path-path-to-module-name-path-module-path-if-isinstance-module-path-path-else-module-path","link":"#var-module-path-path-to-module-name-path-module-path-if-isinstance-module-path-path-else-module-path","children":[]},{"level":3,"title":"var plugins = set()","slug":"var-plugins-set","link":"#var-plugins-set","children":[]},{"level":3,"title":"var color = 'y'","slug":"var-color-y","link":"#var-color-y","children":[]},{"level":3,"title":"var module = import_module(module_path)","slug":"var-module-import-module-module-path","link":"#var-module-import-module-module-path","children":[]},{"level":3,"title":"var display_name = module.__name__.split('.')[-1]","slug":"var-display-name-module-name-split-1","link":"#var-display-name-module-name-split-1","children":[]},{"level":3,"title":"var path = Path(os.path.join(dir_path, f))","slug":"var-path-path-os-path-join-dir-path-f","link":"#var-path-path-os-path-join-dir-path-f","children":[]},{"level":3,"title":"var module_name = None","slug":"var-module-name-none","link":"#var-module-name-none","children":[]},{"level":3,"title":"var color = 'm'","slug":"var-color-m","link":"#var-color-m","children":[]},{"level":3,"title":"var color = 'g'","slug":"var-color-g","link":"#var-color-g","children":[]},{"level":3,"title":"var color = 'e'","slug":"var-color-e","link":"#var-color-e","children":[]},{"level":3,"title":"var color = 'c'","slug":"var-color-c","link":"#var-color-c","children":[]},{"level":3,"title":"var display_name = format_display_name(f\\"{metadata.name}({module.__name__.split('.')[-1]})\\", metadata.type)","slug":"var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type","link":"#var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type","children":[]},{"level":3,"title":"var module_name = f'{path_to_module_name(Path(dir_path))}.{f[:-3]}'","slug":"var-module-name-f-path-to-module-name-path-dir-path-f-3","link":"#var-module-name-f-path-to-module-name-path-dir-path-f-3","children":[]},{"level":3,"title":"var display_name = format_display_name(f\\"{metadata.name}({module.__name__.split('.')[-1]})\\", metadata.type)","slug":"var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type-1","link":"#var-display-name-format-display-name-f-metadata-name-module-name-split-1-metadata-type-1","children":[]},{"level":3,"title":"var metadata = PluginMetadata(name=module.__name__)","slug":"var-metadata-pluginmetadata-name-module-name","link":"#var-metadata-pluginmetadata-name-module-name","children":[]},{"level":3,"title":"var display_name = module.__name__.split('.')[-1]","slug":"var-display-name-module-name-split-1-1","link":"#var-display-name-module-name-split-1-1","children":[]},{"level":3,"title":"var module_name = path_to_module_name(path)","slug":"var-module-name-path-to-module-name-path","link":"#var-module-name-path-to-module-name-path","children":[]}],"git":{"createdTime":1724031826000,"updatedTime":1724234361000,"contributors":[{"name":"snowy","email":"snowykami@outlook.com","commits":4}]},"readingTime":{"minutes":2.22,"words":665},"filePathRelative":"dev/api/plugin/load.md","localizedDate":"2024年8月19日","autoDesc":true}`);export{d as comp,r as data};