2024-08-19 09:56:38 +08:00
<!doctype html>
< html lang = "zh-CN" data-theme = "light" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width,initial-scale=1" / >
< meta name = "generator" content = "VuePress 2.0.0-rc.9" / >
< meta name = "theme" content = "VuePress Theme Hope 2.0.0-rc.32" / >
< style >
html {
background: var(--bg-color, #fff);
}
html[data-theme="dark"] {
background: var(--bg-color, #1d1e1f);
}
body {
background: var(--bg-color);
}
< / style >
< script >
const userMode = localStorage.getItem("vuepress-theme-hope-scheme");
const systemDarkMode =
window.matchMedia & &
window.matchMedia("(prefers-color-scheme: dark)").matches;
if (userMode === "dark" || (userMode !== "light" & & systemDarkMode)) {
document.documentElement.setAttribute("data-theme", "dark");
}
< / script >
2024-08-21 18:00:26 +08:00
< 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" : [ ] } < / script > < script src = "/js/zh/get_data.js" type = "module" > < / script > < script src = "/js/style.js" type = "module" > < / script > < link rel = "icon" href = "https://cdn.liteyuki.icu/favicon.ico" > < link rel = "stylesheet" href = "https://cdn.bootcdn.net/ajax/libs/firacode/6.2.0/fira_code.min.css" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" > < title > liteyuki.plugin.load | LiteyukiBot 轻雪机器人< / title > < meta name = "description" content = "def load_plugin(module_path: str | Path) -> Optional[Plugin] 加载单个插件,可以是本地插件或是通过 pip 安装的插件。 参数: 源代码 def load_plugins() -> set[Plugin] 导入文件夹下多个插件 参数: 源代码 def format_display_name(d..." >
2024-08-24 11:58:47 +08:00
< link rel = "preload" href = "/assets/style-DI-mIFA3.css" as = "style" > < link rel = "stylesheet" href = "/assets/style-DI-mIFA3.css" >
2024-08-25 14:26:55 +08:00
< link rel = "modulepreload" href = "/assets/app-Du8R6vOa.js" > < link rel = "modulepreload" href = "/assets/load.html-JlWBPVEM.js" >
< link rel = "prefetch" href = "/assets/index.html-x0IWm2BK.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-CIvh6R27.js" as = "script" > < link rel = "prefetch" href = "/assets/config.html-oOmS-QeG.js" as = "script" > < link rel = "prefetch" href = "/assets/fandq.html-BKQQtp7U.js" as = "script" > < link rel = "prefetch" href = "/assets/install.html-DTcMEl7C.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-DI-BptP0.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_comm.html-BGNY9WlG.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_lyfunc.html-C3Oi6K0A.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_lyplugin.html-CvHP02xG.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_resource_pack.html-MJ1kBa9y.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-CjyKhrpX.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-DO6iiAQu.js" as = "script" > < link rel = "prefetch" href = "/assets/plugin.html-DHjcTbok.js" as = "script" > < link rel = "prefetch" href = "/assets/resource.html-BsWYmWRy.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-CCilzksa.js" as = "script" > < link rel = "prefetch" href = "/assets/agreement.html-S_5vzydD.js" as = "script" > < link rel = "prefetch" href = "/assets/basic_command.html-vV3Trxh2.js" as = "script" > < link rel = "prefetch" href = "/assets/extra_command.html-BIl3wSD5.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-CuxNwGlO.js" as = "script" > < link rel = "prefetch" href = "/assets/config.html-ZFsgoOpy.js" as = "script" > < link rel = "prefetch" href = "/assets/exception.html-ChrdxW4Y.js" as = "script" > < link rel = "prefetch" href = "/assets/log.html-CbQepuX4.js" as = "script" > < link rel = "prefetch" href = "/assets/mkdoc.html-CM-6F3uN.js" as = "script" > < link rel = "prefetch" href = "/assets/utils.html-BYK56E4j.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-BfKVmPtn.js" as = "script" > < link rel = "prefetch" href = "/assets/config.html-B8KKRSGo.js" as = "script" > < link rel = "prefetch" href = "/assets/fandq.html-nP5FQLnZ.js" as = "script" > < link rel = "prefetch" href = "/assets/install.html-B9l6kKJH.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-DjchYj_L.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_comm.html-DE_QPs8S.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_lyfunc.html-Cp8CzwYT.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_lyplugin.html-D-n02KQp.js" as = "script" > < link rel = "prefetch" href = "/assets/dev_resource_pack.html-Cv1-Nrdp.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-DrVUKxDO.js" as = "script" > < link rel = "prefetch" href = "/assets/plugin.html-DRah-VaX.js" as = "script" > < link rel = "prefetch" href = "/assets/resource.html-DyATD4BF.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-Cxg7s6wT.js" as = "script" > < link rel = "prefetch" href = "/assets/agreement.html-BXJeq-sw.js" as = "script" > < link rel = "prefetch" href = "/assets/basic_command.html-BF_KXGsL.js" as = "script" > < link rel = "prefetch" href = "/assets/extra_command.html-kV_h5KHg.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-BcM7fmTS.js" as = "script" > < link rel = "prefetch" href = "/assets/lifespan.html-DiesbdaL.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-DHCRqwc1.js" as = "script" > < link rel = "prefetch" href = "/assets/channel.html-DMlB5KVY.js" as = "script" > < link rel = "prefetch" href = "/assets/event.html-DJvwTzX5.js" as = "script" > < link rel = "prefetch" href = "/assets/storage.html-B4P8Rp7i.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-UBzQGHUh.js" as = "script" > < link rel = "prefetch" href = "/assets/manager.html-BMVYDnjE.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-BiaCdCzr.js" as = "script" > < link rel = "prefetch" href = "/assets/observer.html-CMgxG4qQ.js" as = "script" > < link rel = "prefetch" href = "/assets/plugin.html-B4-Oe_wk.js" as = "script" > < link rel = "prefetch" href = "/assets/index.html-2RoM4LWM.js" as = "script" > < link rel = "prefetch" href = "/assets/event.html-BrFwwkHs.js" as = "script" > < link rel = "prefetch" href = "/assets/matcher.html-COchKKyo.js" as = "script" > < link rel = "prefetch" href = "/assets/on.html-DM0UzxEF.js" as = "script" > < link rel = "prefetch" href = "/assets/rule.html-iN0qgcVG.js" as = "s
2024-08-19 09:56:38 +08:00
< / head >
< body >
2024-08-24 01:47:27 +08:00
< div id = "app" > <!-- [ --> <!-- [ --> <!-- [ --> < span tabindex = "-1" > < / span > < a href = "#main-content" class = "vp-skip-link sr-only" > 跳至主要內容< / a > <!-- ] --> < div class = "theme-container has-toc" > <!-- [ --> < header id = "navbar" class = "vp-navbar" > < div class = "vp-navbar-start" > < button type = "button" class = "vp-toggle-sidebar-button" title = "Toggle Sidebar" > < span class = "icon" > < / span > < / button > <!-- [ --> <!-- --> <!-- ] --> <!-- [ --> < a class = "route-link vp-brand" href = "/" > < img class = "vp-nav-logo" src = "https://cdn.liteyuki.icu/static/img/liteyuki_icon_640.png" alt > <!-- --> < span class = "vp-site-name hide-in-pad" > LiteyukiBot 轻雪机器人< / span > < / a > <!-- ] --> <!-- [ --> <!-- --> <!-- ] --> < / div > < div class = "vp-navbar-center" > <!-- [ --> <!-- --> <!-- ] --> <!-- [ --> < nav class = "vp-nav-links" > < div class = "nav-item hide-in-mobile" > < a class = "route-link nav-link" href = "/" aria-label = "首页" > < span class = "font-icon icon fa-fw fa-sm fas fa-home" style = "" > < / span > 首页<!-- --> < / a > < / div > < div class = "nav-item hide-in-mobile" > < a class = "route-link nav-link" href = "/deploy/" aria-label = "安装及部署" > <!-- --> 安装及部署<!-- --> < / a > < / div > < div class = "nav-item hide-in-mobile" > < a class = "route-link nav-link" href = "/usage/" aria-label = "使用及功能" > <!-- --> 使用及功能<!-- --> < / a > < / div > < div class = "nav-item hide-in-mobile" > < a class = "route-link nav-link" href = "/store/" aria-label = "资源及插件" > <!-- --> 资源及插件<!-- --> < / a > < / div > < div class = "nav-item hide-in-mobile" > < a class = "route-link nav-link active" href = "/dev/" aria-label = "开发及贡献" > <!-- --> 开发及贡献<!-- --> < / a > < / div > < / nav > <!-- ] --> <!-- [ --> <!-- --> <!-- ] --> < / div > < div class = "vp-navbar-end" > <!-- [ --> <!-- --> <!-- ] --> <!-- [ --> < div class = "nav-item" > < div class = "dropdown-wrapper i18n-dropdown" > < button type = "button" class = "dropdown-title" aria-label = "选择语言" > <!-- [ --> < svg xmlns = "http://www.w3.org/2000/svg" class = "icon i18n-icon" viewBox = "0 0 1024 1024" fill = "currentColor" aria-label = "i18n icon" style = "width:1rem;height:1rem;vertical-align:middle;" > < path d = "M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z" > < / path > < / svg > <!-- ] --> < span class = "arrow" > < / span > < ul class = "nav-dropdown" > < li class = "dropdown-item" > < a class = "route-link nav-link active" href = "/dev/api/plugin/load.html" aria-label = "简体中文" > <!-- --> 简体中文<!-- --> < / a > < / li > < li class = "dropdown-item" > < a class = "route-link nav-link" href = "/en/dev/api/plugin/load.html" aria-label = "English" > <!-- --> English<!-- --> < / a > < / li > < / ul > < / button > < / div > < / div > < div class = "nav-item vp-repo" > < a class = "vp-repo-link" href = "https://github.com/LiteyukiStudio/LiteyukiBot" target = "_blank" rel = "noopener noreferrer" aria-label = "GitHub" > < svg xmlns = "http://www.w3.org/2000/svg" class = "icon github-icon" viewBox = "0 0 1024 1024" fill = "currentColor" aria-label = "github icon" style = "width:1.25rem;height:1.25rem;vertical-align:middle;" > < path d = "M511.957 21 . 333C241 . 024 21 . 333 21 . 333 240 . 981 21 . 333 512c0 216 . 832 140 . 544 400 . 725 335 . 574 465 . 664 24 . 49 4 . 395 32 . 256-10 . 07 32 . 256-23 . 083 0-11 . 69 . 256-44 . 245 0-85 . 205-136 . 448 29 . 61-164 . 736-64 . 64-164 . 736-64 . 64-22 . 315-56 . 704-54 . 4-71 . 765-54 . 4-71 . 765-44 . 587-30 . 464 3 . 285-29 . 824 3 . 285-29 . 824 49 . 195 3 . 413 75 . 179 50 . 517 75 . 179 50 . 517 43 . 776 75 . 008 114 . 816 53 . 333 142 . 762 40 . 79 4 . 523-31 . 66 17 . 152-53 . 377 31 . 19-65 . 537-108 . 971-12 . 458-223 . 488-54 . 485-223 . 488-242 . 602 0-53 . 547 19 . 114-97 . 323 50 . 517-131 . 67-5 . 035-12 . 33-21 . 93-62 . 293 4 . 779-129 . 834 0 0 41 . 258-13 . 184 134 . 912 50 . 346a469 . 803 469 . 803 0 0 1 122 . 88-16 . 554c41 . 642 . 213 83 . 626 5 . 632 122 . 88 16 . 554 93 . 653-63 . 488 134 . 784-50 . 346 134 . 784-50 . 346 26 . 752 67 . 541 9 . 898 117 . 504 4 . 864 129 . 834 31 . 402 34 . 347 50 . 474 78 . 123 50 . 474 131 . 67 0 188 . 586-114 . 73 230 . 016-224 . 042 242 . 09 17 . 578 15 . 232 33 . 578 44 . 672 33 . 578 90 . 454v135 . 85c0 13
2024-08-19 09:56:38 +08:00
或插件路径 `pathlib.Path(path/to/your/plugin)`
2024-08-21 18:00:26 +08:00
< / 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" > > < / 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" > " " " 加载单个插件,可以是本地插件或是通过 `pip` 安装的插件。
参数:
module_path: 插件名称 `path.to.your.plugin`
或插件路径 `pathlib.Path(path/to/your/plugin)`
" " " < / 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 >
2024-08-24 01:47:27 +08:00
_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" > ' __plugin_metadata__' < / 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" > ' PluginMetadata' < / span > < span class = "token operator" > =< / span > module< span class = "token punctuation" > .< / span > __dict__< span class = "token punctuation" > [< / span > < span class = "token string" > ' __plugin_metadata__' < / 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" > ' .' < / 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" > ' __liteyuki_plugin_meta__' < / 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" > ' PluginMetadata' < / span > < span class = "token operator" > =< / span > module< span class = "token punctuation" > .< / span > __dict__< span class = "token punctuation" > [< / span > < span class = "token string" > ' __liteyuki_plugin_meta__' < / 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" < / 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" > ' .' < / 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" > )" < / 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" > ' __plugin_meta__' < / span > < span class = "token punctuation" > ,< / span > < span class = "token boolean" > None< / span > < span class = "token punctuation" > )< / span > < span class = "token punctuation" > :< / span >
2024-08-21 18:00:26 +08:00
metadata< span class = "token punctuation" > :< / span > < span class = "token string" > ' PluginMetadata' < / span > < span class = "token operator" > =< / span > module< span class = "token punctuation" > .< / span > __dict__< span class = "token punctuation" > [< / span > < span class = "token string" > ' __plugin_meta__' < / 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" < / 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" > ' .' < / 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" > )" < / span > < / span > < span class = "token punctuation" > ,< / span > metadata< span class = "token punctuation" > .< / span > < span class = "token builtin" > type< / span > < span class = "token punctuation" > )< / span >
2024-08-24 01:47:27 +08:00
< 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' The metadata of Liteyuki plugin " < / 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" > " is not specified, use empty.' < / 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" > ' .' < / 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
2024-08-21 18:00:26 +08:00
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' Succeeded to load liteyuki plugin " < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > display_name< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > " ' < / 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' Failed to load liteyuki plugin " < r> < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > module_path< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > < /r> " ' < / 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 >
2024-08-24 01:47:27 +08:00
< / 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() -> set[Plugin]< / code > < / span > < / a > < / h3 > < p > 导入文件夹下多个插件< / p > < p > 参数:< / p > < pre > < code > plugin_dir: 文件夹路径
2024-08-19 09:56:38 +08:00
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
2024-08-21 18:00:26 +08:00
< / 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" > > < / 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" > " " " 导入文件夹下多个插件
参数:
plugin_dir: 文件夹路径
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
" " " < / 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" Plugins dir ' < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > dir_path< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > ' does not exist." < / 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" Plugins dir ' < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > dir_path< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > ' is empty." < / 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" Plugins dir ' < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > dir_path< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > ' is not a directory." < / 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" > ' .py' < / 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" > ' __init__.py' < / 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' < / 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" > ' < / 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" > ' __init__.py' < / 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) -> str< / code > < / span > < / a > < / h3 > < p > 设置插件名称颜色,根据不同类型插件设置颜色< / p > < p > Args:< / p > < pre > < code > display_name: 插件名称
2024-08-19 09:56:38 +08:00
plugin_type: 插件类型
< / code > < / pre > < p > Returns:< / p > < pre > < code > str: 设置后的插件名称 < y> name< /y>
2024-08-21 18:00:26 +08:00
< / 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" > > < / span > < span class = "token builtin" > str< / span > < span class = "token punctuation" > :< / span >
< span class = "token triple-quoted-string string" > " " "
设置插件名称颜色,根据不同类型插件设置颜色
Args:
display_name: 插件名称
plugin_type: 插件类型
Returns:
str: 设置后的插件名称 < y> name< /y>
" " " < / span >
color < span class = "token operator" > =< / span > < span class = "token string" > ' y' < / 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" > ' m' < / 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" > ' g' < / 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" > ' e' < / 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" > ' c' < / span >
< span class = "token keyword" > return< / span > < span class = "token string-interpolation" > < span class = "token string" > f' < < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > color< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > > < / 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" > ]< /< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > color< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > > ' < / span > < / span >
2024-08-24 01:47:27 +08:00
< / 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 = ' y' < / 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(' .' )[-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 = ' m' < / 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 = ' g' < / 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 = ' e' < / 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 = ' c' < / 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" {metadata.name}({module.__name__.split(' .' )[-1]})" , 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' {path_to_module_name(Path(dir_path))}.{f[:-3]}' < / 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" {metadata.name}({mo
2024-08-25 14:26:55 +08:00
< script type = "module" src = "/assets/app-Du8R6vOa.js" defer > < / script >
2024-08-19 09:56:38 +08:00
< / body >
< / html >