2024-08-19 23:51:06 +08:00
|
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en-US" 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="zh-cn" href="https://vuepress-theme-hope-docs-demo.netlify.app/dev/api/mkdoc.html"><meta property="og:url" content="https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/api/mkdoc.html"><meta property="og:site_name" content="LiteyukiBot"><meta property="og:title" content="liteyuki.mkdoc"><meta property="og:description" content="def get_relative_path(base_path: str, target_path: str) -> str 获取相对路径 Args: 源代码 def write_to_files(file_data: dict[str, str]) -> None 输出文件 Args: 源代码 def get_file_list(module_fol..."><meta property="og:type" content="article"><meta property="og:locale" content="en-US"><meta property="og:locale:alternate" content="zh-CN"><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.mkdoc","image":[""],"dateModified":"2024-08-21T09:59:21.000Z","author":[]}</script><script src="/js/en/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.mkdoc | LiteyukiBot</title><meta name="description" content="def get_relative_path(base_path: str, target_path: str) -> str 获取相对路径 Args: 源代码 def write_to_files(file_data: dict[str, str]) -> None 输出文件 Args: 源代码 def get_file_list(module_fol...">
|
2024-08-19 23:51:06 +08:00
|
|
|
|
<link rel="preload" href="/assets/style-CSEr-Ojo.css" as="style"><link rel="stylesheet" href="/assets/style-CSEr-Ojo.css">
|
2024-08-21 18:00:26 +08:00
|
|
|
|
<link rel="modulepreload" href="/assets/app-Dq2hGnN2.js"><link rel="modulepreload" href="/assets/mkdoc.html-svj1jGCP.js">
|
|
|
|
|
<link rel="prefetch" href="/assets/index.html-CN4-F2I3.js" as="script"><link rel="prefetch" href="/assets/index.html-C1HQ8hNh.js" as="script"><link rel="prefetch" href="/assets/config.html-C0bgMjiV.js" as="script"><link rel="prefetch" href="/assets/fandq.html-PDskdXV4.js" as="script"><link rel="prefetch" href="/assets/install.html-Bn0x9PsM.js" as="script"><link rel="prefetch" href="/assets/index.html-Dq4YGfp6.js" as="script"><link rel="prefetch" href="/assets/dev_comm.html-DpClbo4t.js" as="script"><link rel="prefetch" href="/assets/dev_lyfunc.html-DVQUmBRy.js" as="script"><link rel="prefetch" href="/assets/dev_lyplugin.html-b3WzFuot.js" as="script"><link rel="prefetch" href="/assets/dev_resource_pack.html-DmHh_sCk.js" as="script"><link rel="prefetch" href="/assets/index.html-aEupiO2c.js" as="script"><link rel="prefetch" href="/assets/index.html-Z5Jae6Md.js" as="script"><link rel="prefetch" href="/assets/plugin.html-Doo4aKX0.js" as="script"><link rel="prefetch" href="/assets/resource.html-SjP8o6DQ.js" as="script"><link rel="prefetch" href="/assets/index.html-Bu2wePRL.js" as="script"><link rel="prefetch" href="/assets/agreement.html-DrE_NdAt.js" as="script"><link rel="prefetch" href="/assets/basic_command.html-LOsbhou1.js" as="script"><link rel="prefetch" href="/assets/extra_command.html-CfJU50DI.js" as="script"><link rel="prefetch" href="/assets/index.html-iao5k0wv.js" as="script"><link rel="prefetch" href="/assets/config.html-ciTU-GYX.js" as="script"><link rel="prefetch" href="/assets/exception.html-rLauExXr.js" as="script"><link rel="prefetch" href="/assets/log.html-C18c_FLc.js" as="script"><link rel="prefetch" href="/assets/mkdoc.html-CgsbwXTX.js" as="script"><link rel="prefetch" href="/assets/utils.html-C266gHtK.js" as="script"><link rel="prefetch" href="/assets/index.html-CCTxrLrB.js" as="script"><link rel="prefetch" href="/assets/config.html-BT64I6w2.js" as="script"><link rel="prefetch" href="/assets/fandq.html-BGoTQt3j.js" as="script"><link rel="prefetch" href="/assets/install.html-uWgT7RQq.js" as="script"><link rel="prefetch" href="/assets/index.html-pOqN0-6i.js" as="script"><link rel="prefetch" href="/assets/dev_comm.html-1wzT5KxC.js" as="script"><link rel="prefetch" href="/assets/dev_lyfunc.html-B7jNXpdo.js" as="script"><link rel="prefetch" href="/assets/dev_lyplugin.html-1RULjlwN.js" as="script"><link rel="prefetch" href="/assets/dev_resource_pack.html-CgenLd_2.js" as="script"><link rel="prefetch" href="/assets/index.html-pa-TRQAF.js" as="script"><link rel="prefetch" href="/assets/plugin.html-CONOv3AN.js" as="script"><link rel="prefetch" href="/assets/resource.html-BKHRnVba.js" as="script"><link rel="prefetch" href="/assets/index.html-1skOl8AK.js" as="script"><link rel="prefetch" href="/assets/agreement.html-BQpf56Lm.js" as="script"><link rel="prefetch" href="/assets/basic_command.html-DShxp1cF.js" as="script"><link rel="prefetch" href="/assets/extra_command.html-qTGw5F5_.js" as="script"><link rel="prefetch" href="/assets/index.html-C6twlVDw.js" as="script"><link rel="prefetch" href="/assets/lifespan.html-DawuC4lI.js" as="script"><link rel="prefetch" href="/assets/index.html-DEAUCZJ7.js" as="script"><link rel="prefetch" href="/assets/channel.html-Ck89nSM2.js" as="script"><link rel="prefetch" href="/assets/event.html-CN-cpe9T.js" as="script"><link rel="prefetch" href="/assets/storage.html-DNi5WIUG.js" as="script"><link rel="prefetch" href="/assets/index.html-BD4Nfxzu.js" as="script"><link rel="prefetch" href="/assets/manager.html-YXxGFQy3.js" as="script"><link rel="prefetch" href="/assets/index.html-pxd2YrUC.js" as="script"><link rel="prefetch" href="/assets/observer.html-C8lYgsSz.js" as="script"><link rel="prefetch" href="/assets/plugin.html-DWfnyknG.js" as="script"><link rel="prefetch" href="/assets/index.html-CurKLMTu.js" as="script"><link rel="prefetch" href="/assets/event.html-BtjkeMzk.js" as="script"><link rel="prefetch" href="/assets/matcher.html-DINjSrtz.js" as="script"><link rel="prefetch" href="/assets/on.html-Crup5Y_C.js" as="script"><link rel="prefetch" href="/assets/rule.html-QhG7UPvU.js" as="s
|
2024-08-19 23:51:06 +08:00
|
|
|
|
</head>
|
|
|
|
|
<body>
|
2024-08-21 18:00:26 +08:00
|
|
|
|
<div id="app"><!--[--><!--[--><!--[--><span tabindex="-1"></span><a href="#main-content" class="vp-skip-link sr-only">Skip to main content</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="/en/"><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="/en/" aria-label="Home"><span class="font-icon icon fa-fw fa-sm fas fa-home" style=""></span>Home<!----></a></div><div class="nav-item hide-in-mobile"><a class="route-link nav-link" href="/en/deploy/" aria-label="Deploy"><!---->Deploy<!----></a></div><div class="nav-item hide-in-mobile"><a class="route-link nav-link" href="/en/usage/" aria-label="Usage"><!---->Usage<!----></a></div><div class="nav-item hide-in-mobile"><a class="route-link nav-link" href="/en/store/" aria-label="Extensions"><!---->Extensions<!----></a></div><div class="nav-item hide-in-mobile"><a class="route-link nav-link active" href="/en/dev/" aria-label="Contribute"><!---->Contribute<!----></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="Select language"><!--[--><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" href="/dev/api/mkdoc.html" aria-label="简体中文"><!---->简体中文<!----></a></li><li class="dropdown-item"><a class="route-link nav-link active" href="/en/dev/api/mkdoc.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.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002
|
2024-08-19 23:51:06 +08:00
|
|
|
|
|
|
|
|
|
target_path: 目标路径
|
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">get_relative_path</span><span class="token punctuation">(</span>base_path<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> target_path<span class="token punctuation">:</span> <span class="token builtin">str</span><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:
|
|
|
|
|
base_path: 基础路径
|
|
|
|
|
target_path: 目标路径
|
|
|
|
|
"""</span>
|
|
|
|
|
<span class="token keyword">return</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>relpath<span class="token punctuation">(</span>target_path<span class="token punctuation">,</span> base_path<span class="token punctuation">)</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></div></details><h3 id="def-write-to-files-file-data-dict-str-str-none" tabindex="-1"><a class="header-anchor" href="#def-write-to-files-file-data-dict-str-str-none"><span><em><strong>def</strong></em> <code>write_to_files(file_data: dict[str, str]) -> None</code></span></a></h3><p>输出文件</p><p>Args:</p><pre><code>file_data: 文件数据 相对路径
|
|
|
|
|
</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">write_to_files</span><span class="token punctuation">(</span>file_data<span class="token punctuation">:</span> <span class="token builtin">dict</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token builtin">str</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token triple-quoted-string string">"""
|
|
|
|
|
输出文件
|
|
|
|
|
Args:
|
|
|
|
|
file_data: 文件数据 相对路径
|
|
|
|
|
"""</span>
|
|
|
|
|
<span class="token keyword">for</span> <span class="token punctuation">(</span>rp<span class="token punctuation">,</span> data<span class="token punctuation">)</span> <span class="token keyword">in</span> file_data<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><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>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>dirname<span class="token punctuation">(</span>rp<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
os<span class="token punctuation">.</span>makedirs<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>dirname<span class="token punctuation">(</span>rp<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span>rp<span class="token punctuation">,</span> <span class="token string">'w'</span><span class="token punctuation">,</span> encoding<span class="token operator">=</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
|
|
|
|
|
f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>data<span class="token punctuation">)</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></div></details><h3 id="def-get-file-list-module-folder-str-none" tabindex="-1"><a class="header-anchor" href="#def-get-file-list-module-folder-str-none"><span><em><strong>def</strong></em> <code>get_file_list(module_folder: str) -> None</code></span></a></h3><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">get_file_list</span><span class="token punctuation">(</span>module_folder<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
file_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
|
|
|
|
<span class="token keyword">for</span> <span class="token punctuation">(</span>root<span class="token punctuation">,</span> dirs<span class="token punctuation">,</span> files<span class="token punctuation">)</span> <span class="token keyword">in</span> os<span class="token punctuation">.</span>walk<span class="token punctuation">(</span>module_folder<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">for</span> <span class="token builtin">file</span> <span class="token keyword">in</span> files<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">file</span><span class="token punctuation">.</span>endswith<span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token string">'.py'</span><span class="token punctuation">,</span> <span class="token string">'.pyi'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
file_list<span class="token punctuation">.</span>append<span class="token punctuation">(</span>os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>root<span class="token punctuation">,</span> <span class="token builtin">file</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">return</span> file_list
|
|
|
|
|
</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></div></details><h3 id="def-get-module-info-normal-file-path-str-ignore-private-bool-moduleinfo" tabindex="-1"><a class="header-anchor" href="#def-get-module-info-normal-file-path-str-ignore-private-bool-moduleinfo"><span><em><strong>def</strong></em> <code>get_module_info_normal(file_path: str, ignore_private: bool) -> ModuleInfo</code></span></a></h3><p>获取函数和类</p><p>Args:</p><pre><code>file_path: Python 文件路径
|
2024-08-19 23:51:06 +08:00
|
|
|
|
|
|
|
|
|
ignore_private: 忽略私有函数和类
|
|
|
|
|
</code></pre><p>Returns:</p><pre><code>模块信息
|
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">get_module_info_normal</span><span class="token punctuation">(</span>file_path<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> ignore_private<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> ModuleInfo<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token triple-quoted-string string">"""
|
|
|
|
|
获取函数和类
|
|
|
|
|
Args:
|
|
|
|
|
file_path: Python 文件路径
|
|
|
|
|
ignore_private: 忽略私有函数和类
|
|
|
|
|
Returns:
|
|
|
|
|
模块信息
|
|
|
|
|
"""</span>
|
|
|
|
|
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span>file_path<span class="token punctuation">,</span> <span class="token string">'r'</span><span class="token punctuation">,</span> encoding<span class="token operator">=</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span> <span class="token keyword">as</span> <span class="token builtin">file</span><span class="token punctuation">:</span>
|
|
|
|
|
file_content <span class="token operator">=</span> <span class="token builtin">file</span><span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
|
|
|
|
tree <span class="token operator">=</span> ast<span class="token punctuation">.</span>parse<span class="token punctuation">(</span>file_content<span class="token punctuation">)</span>
|
|
|
|
|
dot_sep_module_path <span class="token operator">=</span> file_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span>os<span class="token punctuation">.</span>sep<span class="token punctuation">,</span> <span class="token string">'.'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.py'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.pyi'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span>
|
|
|
|
|
module_docstring <span class="token operator">=</span> ast<span class="token punctuation">.</span>get_docstring<span class="token punctuation">(</span>tree<span class="token punctuation">)</span>
|
|
|
|
|
module_info <span class="token operator">=</span> ModuleInfo<span class="token punctuation">(</span>module_path<span class="token operator">=</span>dot_sep_module_path<span class="token punctuation">,</span> functions<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> classes<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> attributes<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> docstring<span class="token operator">=</span>module_docstring <span class="token keyword">if</span> module_docstring <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">for</span> node <span class="token keyword">in</span> ast<span class="token punctuation">.</span>walk<span class="token punctuation">(</span>tree<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>node<span class="token punctuation">,</span> <span class="token punctuation">(</span>ast<span class="token punctuation">.</span>FunctionDef<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>AsyncFunctionDef<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token keyword">not</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>ClassDef<span class="token punctuation">)</span> <span class="token keyword">for</span> parent <span class="token keyword">in</span> ast<span class="token punctuation">.</span>iter_child_nodes<span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token keyword">not</span> ignore_private <span class="token keyword">or</span> <span class="token keyword">not</span> node<span class="token punctuation">.</span>name<span class="token punctuation">.</span>startswith<span class="token punctuation">(</span><span class="token string">'_'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> node<span class="token punctuation">.</span>args<span class="token punctuation">.</span>args<span class="token punctuation">:</span>
|
|
|
|
|
first_arg <span class="token operator">=</span> node<span class="token punctuation">.</span>args<span class="token punctuation">.</span>args<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
|
|
|
|
|
<span class="token keyword">if</span> first_arg<span class="token punctuation">.</span>arg <span class="token keyword">in</span> <span class="token punctuation">(</span><span class="token string">'self'</span><span class="token punctuation">,</span> <span class="token string">'cls'</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">continue</span>
|
|
|
|
|
function_docstring <span class="token operator">=</span> ast<span class="token punctuation">.</span>get_docstring<span class="token punctuation">(</span>node<span class="token punctuation">)</span>
|
|
|
|
|
func_info <span class="token operator">=</span> FunctionInfo<span class="token punctuation">(</span>name<span class="token operator">=</span>node<span class="token punctuation">.</span>name<span class="token punctuation">,</span> args<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">(</span>arg<span class="token punctuation">.</span>arg<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>arg<span class="token punctuation">.</span>annotation<span class="token punctuation">)</span> <span class="token keyword">if</span> arg<span class="token punctuation">.</span>annotation <span class="token keyword">else</span> NO_TYPE_ANY<span class="token punctuation">)</span> <span class="token keyword">for</span> arg <span class="token keyword">in</span> node<span class="token punctuation">.</span>args<span class="token punctuation">.</span>args<span class="token punctuation">]</span><span class="token punctuation">,</span> return_type<span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>node<span class="token punctuation">.</span>returns<span class="token punctuation">)</span> <span class="token keyword">if</span> node<span class="token punctuation">.</span>returns <span class="token keyword">else</span> <span class="token string">'None'</span><span class="token punctuation">,</span> docstring<span class="token operator">=</span>function_docstring <span class="token keyword">if</span> function_docstring <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token operator">=</span>DefType<span class="token punctuation">.</span>FUNCTION<span class="token punctuation">,</span> is_async<span class="token operator">=</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>AsyncFunctionDef<span class="token punctuation">)</span><span class="token punctuation">,</span> source_code<span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
module_info<span class="token punctuation">.</span>functions<span class="token punctuation">.</span>append<span class="token punctuation">(</span>func_info<span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">elif</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>ClassDef<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
class_docstring <span class="token operator">=</span> ast<span class="token punctuation">.</span>get_docstring<span class="token punctuation">(</span>node<span class="token punctuation">)</span>
|
|
|
|
|
class_info <span class="token operator">=</span> ClassInfo<span class="token punctuation">(</span>name<span class="token operator">=</span>node<span class="token punctuation">.</span>name<span class="token punctuation">,</span> docstring<span class="token operator">=</span>class_docstring <span class="token keyword">if</span> class_docstring <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">,</span> methods<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> attributes<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> inherit<span class="token operator">=</span><span class="token punctuation">[</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>base<span class="token punctuation">)</span> <span class="token keyword">for</span> base <span class="token keyword">in</span> node<span class="token punctuation">.</span>bases<span class="token punctuation">]</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">for</span> class_node <span class="token keyword">in</span> node<span class="token punctuation">.</span>body<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>class_node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>FunctionDef<span class="token punctuation">)</span> <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token keyword">not</span> ignore_private <span class="token keyword">or</span> <span class="token keyword">not</span> class_node<span class="token punctuation">.</span>name<span class="token punctuation">.</span>startswith<span class="token punctuation">(</span><span class="token string">'_'</span><span class="token punctuation">)</span> <span class="token keyword">or</span> class_node<span class="token punctuation">.</span>name <span class="token operator">==</span> <span class="token string">'__init__'</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
method_docstring <span class="token operator">=</span> ast<span class="token punctuation">.</span>get_docstring<span class="token punctuation">(</span>class_node<span class="token punctuation">)</span>
|
|
|
|
|
def_type <span class="token operator">=</span> DefType<span class="token punctuation">.</span>METHOD
|
|
|
|
|
<span class="token keyword">if</span> class_node<span class="token punctuation">.</span>decorator_list<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>decorator<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Name<span class="token punctuation">)</span> <span class="token keyword">and</span> decorator<span class="token punctuation">.</span><span class="token builtin">id</span> <span class="token operator">==</span> <span class="token string">'staticmethod'</span> <span class="token keyword">for</span> decorator <span class="token keyword">in</span> class_node<span class="token punctuation">.</span>decorator_list<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
def_type <span class="token operator">=</span> DefType<span class="token punctuation">.</span>STATIC_METHOD
|
|
|
|
|
<span class="token keyword">elif</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>decorator<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Name<span class="token punctuation">)</span> <span class="token keyword">and</span> decorator<span class="token punctuation">.</span><span class="token builtin">id</span> <span class="token operator">==</span> <span class="token string">'classmethod'</span> <span class="token keyword">for</span> decorator <span class="token keyword">in</span> class_node<span class="token punctuation">.</span>decorator_list<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
def_type <span class="token operator">=</span> DefType<span class="token punctuation">.</span>CLASS_METHOD
|
|
|
|
|
<span class="token keyword">elif</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>decorator<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Name<span class="token punctuation">)</span> <span class="token keyword">and</span> decorator<span class="token punctuation">.</span><span class="token builtin">id</span> <span class="token operator">==</span> <span class="token string">'property'</span> <span class="token keyword">for</span> decorator <span class="token keyword">in</span> class_node<span class="token punctuation">.</span>decorator_list<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
def_type <span class="token operator">=</span> DefType<span class="token punctuation">.</span>PROPERTY
|
|
|
|
|
class_info<span class="token punctuation">.</span>methods<span class="token punctuation">.</span>append<span class="token punctuation">(</span>FunctionInfo<span class="token punctuation">(</span>name<span class="token operator">=</span>class_node<span class="token punctuation">.</span>name<span class="token punctuation">,</span> args<span class="token operator">=</span><span class="token punctuation">[</span><span class="token punctuation">(</span>arg<span class="token punctuation">.</span>arg<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>arg<span class="token punctuation">.</span>annotation<span class="token punctuation">)</span> <span class="token keyword">if</span> arg<span class="token punctuation">.</span>annotation <span class="token keyword">else</span> NO_TYPE_ANY<span class="token punctuation">)</span> <span class="token keyword">for</span> arg <span class="token keyword">in</span> class_node<span class="token punctuation">.</span>args<span class="token punctuation">.</span>args<span class="token punctuation">]</span><span class="token punctuation">,</span> return_type<span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>class_node<span class="token punctuation">.</span>returns<span class="token punctuation">)</span> <span class="token keyword">if</span> class_node<span class="token punctuation">.</span>returns <span class="token keyword">else</span> <span class="token string">'None'</span><span class="token punctuation">,</span> docstring<span class="token operator">=</span>method_docstring <span class="token keyword">if</span> method_docstring <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token operator">=</span>def_type<span class="token punctuation">,</span> is_async<span class="token operator">=</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>class_node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>AsyncFunctionDef<span class="token punctuation">)</span><span class="token punctuation">,</span> source_code<span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>class_node<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">elif</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>class_node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Assign<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">for</span> target <span class="token keyword">in</span> class_node<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>target<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Name<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
class_info<span class="token punctuation">.</span>attributes<span class="token punctuation">.</span>append<span class="token punctuation">(</span>AttributeInfo<span class="token punctuation">(</span>name<span class="token operator">=</span>target<span class="token punctuation">.</span><span class="token builtin">id</span><span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>class_node<span class="token punctuation">.</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
module_info<span class="token punctuation">.</span>classes<span class="token punctuation">.</span>append<span class="token punctuation">(</span>class_info<span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">elif</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>node<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Assign<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token keyword">not</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token builtin">isinstance</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> <span class="token punctuation">(</span>ast<span class="token punctuation">.</span>ClassDef<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>FunctionDef<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">for</span> parent <span class="token keyword">in</span> ast<span class="token punctuation">.</span>iter_child_nodes<span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">for</span> target <span class="token keyword">in</span> node<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>target<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>Name<span class="token punctuation">)</span> <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token keyword">not</span> ignore_private <span class="token keyword">or</span> <span class="token keyword">not</span> target<span class="token punctuation">.</span><span class="token builtin">id</span><span class="token punctuation">.</span>startswith<span class="token punctuation">(</span><span class="token string">'_'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
attr_type <span class="token operator">=</span> NO_TYPE_HINT
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>node<span class="token punctuation">.</span>value<span class="token punctuation">,</span> ast<span class="token punctuation">.</span>AnnAssign<span class="token punctuation">)</span> <span class="token keyword">and</span> node<span class="token punctuation">.</span>value<span class="token punctuation">.</span>annotation<span class="token punctuation">:</span>
|
|
|
|
|
attr_type <span class="token operator">=</span> ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>node<span class="token punctuation">.</span>value<span class="token punctuation">.</span>annotation<span class="token punctuation">)</span>
|
|
|
|
|
module_info<span class="token punctuation">.</span>attributes<span class="token punctuation">.</span>append<span class="token punctuation">(</span>AttributeInfo<span class="token punctuation">(</span>name<span class="token operator">=</span>target<span class="token punctuation">.</span><span class="token builtin">id</span><span class="token punctuation">,</span> <span class="token builtin">type</span><span class="token operator">=</span>attr_type<span class="token punctuation">,</span> value<span class="token operator">=</span>ast<span class="token punctuation">.</span>unparse<span class="token punctuation">(</span>node<span class="token punctuation">.</span>value<span class="token punctuation">)</span> <span class="token keyword">if</span> node<span class="token punctuation">.</span>value <span class="token keyword">else</span> <span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">return</span> module_info
|
|
|
|
|
</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 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-generate-markdown-module-info-moduleinfo-front-matter-any-str" tabindex="-1"><a class="header-anchor" href="#def-generate-markdown-module-info-moduleinfo-front-matter-any-str"><span><em><strong>def</strong></em> <code>generate_markdown(module_info: ModuleInfo, front_matter: Any) -> str</code></span></a></h3><p>生成模块的Markdown</p><p>你可在此自定义生成的Markdown格式</p><p>Args:</p><pre><code>module_info: 模块信息
|
2024-08-19 23:51:06 +08:00
|
|
|
|
|
|
|
|
|
front_matter: 自定义选项title, index, icon, category
|
|
|
|
|
</code></pre><p>Returns:</p><pre><code>Markdown 字符串
|
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">generate_markdown</span><span class="token punctuation">(</span>module_info<span class="token punctuation">:</span> ModuleInfo<span class="token punctuation">,</span> front_matter<span class="token operator">=</span><span class="token boolean">None</span><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">"""
|
|
|
|
|
生成模块的Markdown
|
|
|
|
|
你可在此自定义生成的Markdown格式
|
|
|
|
|
Args:
|
|
|
|
|
module_info: 模块信息
|
|
|
|
|
front_matter: 自定义选项title, index, icon, category
|
|
|
|
|
Returns:
|
|
|
|
|
Markdown 字符串
|
|
|
|
|
"""</span>
|
|
|
|
|
content <span class="token operator">=</span> <span class="token string">''</span>
|
|
|
|
|
front_matter <span class="token operator">=</span> <span class="token string">'---\n'</span> <span class="token operator">+</span> <span class="token string">'\n'</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span><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>k<span class="token punctuation">}</span></span><span class="token string">: </span><span class="token interpolation"><span class="token punctuation">{</span>v<span class="token punctuation">}</span></span><span class="token string">'</span></span> <span class="token keyword">for</span> <span class="token punctuation">(</span>k<span class="token punctuation">,</span> v<span class="token punctuation">)</span> <span class="token keyword">in</span> front_matter<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'\n---\n\n'</span>
|
|
|
|
|
content <span class="token operator">+=</span> front_matter
|
|
|
|
|
<span class="token keyword">for</span> func <span class="token keyword">in</span> module_info<span class="token punctuation">.</span>functions<span class="token punctuation">:</span>
|
|
|
|
|
args_with_type <span class="token operator">=</span> <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>arg<span class="token punctuation">[</span><span class="token number">0</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>arg<span class="token punctuation">[</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 keyword">if</span> arg<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">else</span> arg<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> arg <span class="token keyword">in</span> func<span class="token punctuation">.</span>args<span class="token punctuation">]</span>
|
|
|
|
|
content <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><span class="token punctuation">(</span><span class="token string">'async '</span> <span class="token keyword">if</span> func<span class="token punctuation">.</span>is_async <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">def*** `</span><span class="token interpolation"><span class="token punctuation">{</span>func<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><span class="token string">', '</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>args_with_type<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>func<span class="token punctuation">.</span>return_type<span class="token punctuation">}</span></span><span class="token string">`\n\n"</span></span>
|
|
|
|
|
func<span class="token punctuation">.</span>docstring <span class="token operator">=</span> func<span class="token punctuation">.</span>docstring<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">,</span> <span class="token string">'\n\n'</span><span class="token punctuation">)</span>
|
|
|
|
|
content <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>func<span class="token punctuation">.</span>docstring<span class="token punctuation">}</span></span><span class="token string">\n\n'</span></span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'<details>\n<summary>源代码</summary>\n\n```python\n</span><span class="token interpolation"><span class="token punctuation">{</span>func<span class="token punctuation">.</span>source_code<span class="token punctuation">}</span></span><span class="token string">\n```\n</details>\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">for</span> cls <span class="token keyword">in</span> module_info<span class="token punctuation">.</span>classes<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> cls<span class="token punctuation">.</span>inherit<span class="token punctuation">:</span>
|
|
|
|
|
inherit <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><span class="token string">', '</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>cls<span class="token punctuation">.</span>inherit<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">)"</span></span> <span class="token keyword">if</span> cls<span class="token punctuation">.</span>inherit <span class="token keyword">else</span> <span class="token string">''</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### ***class*** `</span><span class="token interpolation"><span class="token punctuation">{</span>cls<span class="token punctuation">.</span>name<span class="token punctuation">}</span></span><span class="token interpolation"><span class="token punctuation">{</span>inherit<span class="token punctuation">}</span></span><span class="token string">`\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">else</span><span class="token punctuation">:</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### ***class*** `</span><span class="token interpolation"><span class="token punctuation">{</span>cls<span class="token punctuation">.</span>name<span class="token punctuation">}</span></span><span class="token string">`\n\n'</span></span>
|
|
|
|
|
cls<span class="token punctuation">.</span>docstring <span class="token operator">=</span> cls<span class="token punctuation">.</span>docstring<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">,</span> <span class="token string">'\n\n'</span><span class="token punctuation">)</span>
|
|
|
|
|
content <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>cls<span class="token punctuation">.</span>docstring<span class="token punctuation">}</span></span><span class="token string">\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">for</span> method <span class="token keyword">in</span> cls<span class="token punctuation">.</span>methods<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> method<span class="token punctuation">.</span><span class="token builtin">type</span> <span class="token operator">!=</span> DefType<span class="token punctuation">.</span>METHOD<span class="token punctuation">:</span>
|
|
|
|
|
args_with_type <span class="token operator">=</span> <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>arg<span class="token punctuation">[</span><span class="token number">0</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>arg<span class="token punctuation">[</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 keyword">if</span> arg<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">else</span> arg<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> arg <span class="token keyword">in</span> method<span class="token punctuation">.</span>args<span class="token punctuation">]</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### &emsp; ***@</span><span class="token interpolation"><span class="token punctuation">{</span>method<span class="token punctuation">.</span><span class="token builtin">type</span><span class="token punctuation">.</span>value<span class="token punctuation">}</span></span><span class="token string">***\n'</span></span>
|
|
|
|
|
<span class="token keyword">else</span><span class="token punctuation">:</span>
|
|
|
|
|
args_with_type <span class="token operator">=</span> <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>arg<span class="token punctuation">[</span><span class="token number">0</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>arg<span class="token punctuation">[</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 keyword">if</span> arg<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token keyword">and</span> arg<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">'self'</span> <span class="token keyword">else</span> arg<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> arg <span class="token keyword">in</span> method<span class="token punctuation">.</span>args<span class="token punctuation">]</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f"### &emsp; ***</span><span class="token interpolation"><span class="token punctuation">{</span><span class="token punctuation">(</span><span class="token string">'async '</span> <span class="token keyword">if</span> method<span class="token punctuation">.</span>is_async <span class="token keyword">else</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">def*** `</span><span class="token interpolation"><span class="token punctuation">{</span>method<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><span class="token string">', '</span><span class="token punctuation">.</span>join<span class="token punctuation">(</span>args_with_type<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>method<span class="token punctuation">.</span>return_type<span class="token punctuation">}</span></span><span class="token string">`\n\n"</span></span>
|
|
|
|
|
method<span class="token punctuation">.</span>docstring <span class="token operator">=</span> method<span class="token punctuation">.</span>docstring<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">,</span> <span class="token string">'\n\n'</span><span class="token punctuation">)</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'&emsp;</span><span class="token interpolation"><span class="token punctuation">{</span>method<span class="token punctuation">.</span>docstring<span class="token punctuation">}</span></span><span class="token string">\n\n'</span></span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'<details>\n<summary>源代码</summary>\n\n```python\n</span><span class="token interpolation"><span class="token punctuation">{</span>method<span class="token punctuation">.</span>source_code<span class="token punctuation">}</span></span><span class="token string">\n```\n</details>\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">for</span> attr <span class="token keyword">in</span> cls<span class="token punctuation">.</span>attributes<span class="token punctuation">:</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### &emsp; ***attr*** `</span><span class="token interpolation"><span class="token punctuation">{</span>attr<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>attr<span class="token punctuation">.</span><span class="token builtin">type</span><span class="token punctuation">}</span></span><span class="token string">`\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">for</span> attr <span class="token keyword">in</span> module_info<span class="token punctuation">.</span>attributes<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> attr<span class="token punctuation">.</span><span class="token builtin">type</span> <span class="token operator">==</span> NO_TYPE_HINT<span class="token punctuation">:</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### ***var*** `</span><span class="token interpolation"><span class="token punctuation">{</span>attr<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>attr<span class="token punctuation">.</span>value<span class="token punctuation">}</span></span><span class="token string">`\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">else</span><span class="token punctuation">:</span>
|
|
|
|
|
content <span class="token operator">+=</span> <span class="token string-interpolation"><span class="token string">f'### ***var*** `</span><span class="token interpolation"><span class="token punctuation">{</span>attr<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>attr<span class="token punctuation">.</span><span class="token builtin">type</span><span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>attr<span class="token punctuation">.</span>value<span class="token punctuation">}</span></span><span class="token string">`\n\n'</span></span>
|
|
|
|
|
attr<span class="token punctuation">.</span>docstring <span class="token operator">=</span> attr<span class="token punctuation">.</span>docstring<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\n'</span><span class="token punctuation">,</span> <span class="token string">'\n\n'</span><span class="token punctuation">)</span>
|
|
|
|
|
content <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>attr<span class="token punctuation">.</span>docstring<span class="token punctuation">}</span></span><span class="token string">\n\n'</span></span>
|
|
|
|
|
<span class="token keyword">return</span> content
|
|
|
|
|
</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 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-generate-docs-module-folder-str-output-dir-str-with-top-bool-ignored-paths-any-none" tabindex="-1"><a class="header-anchor" href="#def-generate-docs-module-folder-str-output-dir-str-with-top-bool-ignored-paths-any-none"><span><em><strong>def</strong></em> <code>generate_docs(module_folder: str, output_dir: str, with_top: bool, ignored_paths: Any) -> None</code></span></a></h3><p>生成文档</p><p>Args:</p><pre><code>module_folder: 模块文件夹
|
2024-08-19 23:51:06 +08:00
|
|
|
|
|
|
|
|
|
output_dir: 输出文件夹
|
|
|
|
|
|
|
|
|
|
with_top: 是否包含顶层文件夹 False时例如docs/api/module_a, docs/api/module_b, True时例如docs/api/module/module_a.md, docs/api/module/module_b.md
|
|
|
|
|
|
|
|
|
|
ignored_paths: 忽略的路径
|
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">generate_docs</span><span class="token punctuation">(</span>module_folder<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> output_dir<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> with_top<span class="token punctuation">:</span> <span class="token builtin">bool</span><span class="token operator">=</span><span class="token boolean">False</span><span class="token punctuation">,</span> ignored_paths<span class="token operator">=</span><span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token triple-quoted-string string">"""
|
|
|
|
|
生成文档
|
|
|
|
|
Args:
|
|
|
|
|
module_folder: 模块文件夹
|
|
|
|
|
output_dir: 输出文件夹
|
|
|
|
|
with_top: 是否包含顶层文件夹 False时例如docs/api/module_a, docs/api/module_b, True时例如docs/api/module/module_a.md, docs/api/module/module_b.md
|
|
|
|
|
ignored_paths: 忽略的路径
|
|
|
|
|
"""</span>
|
|
|
|
|
<span class="token keyword">if</span> ignored_paths <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
|
|
|
|
|
ignored_paths <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
|
|
|
|
file_data<span class="token punctuation">:</span> <span class="token builtin">dict</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token builtin">str</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
|
|
|
|
file_list <span class="token operator">=</span> get_file_list<span class="token punctuation">(</span>module_folder<span class="token punctuation">)</span>
|
|
|
|
|
shutil<span class="token punctuation">.</span>rmtree<span class="token punctuation">(</span>output_dir<span class="token punctuation">,</span> ignore_errors<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
|
|
|
|
|
os<span class="token punctuation">.</span>mkdir<span class="token punctuation">(</span>output_dir<span class="token punctuation">)</span>
|
|
|
|
|
replace_data <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'__init__'</span><span class="token punctuation">:</span> <span class="token string">'README'</span><span class="token punctuation">,</span> <span class="token string">'.py'</span><span class="token punctuation">:</span> <span class="token string">'.md'</span><span class="token punctuation">}</span>
|
|
|
|
|
<span class="token keyword">for</span> pyfile_path <span class="token keyword">in</span> file_list<span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token builtin">any</span><span class="token punctuation">(</span><span class="token punctuation">(</span>ignored_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\\'</span><span class="token punctuation">,</span> <span class="token string">'/'</span><span class="token punctuation">)</span> <span class="token keyword">in</span> pyfile_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'\\'</span><span class="token punctuation">,</span> <span class="token string">'/'</span><span class="token punctuation">)</span> <span class="token keyword">for</span> ignored_path <span class="token keyword">in</span> ignored_paths<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
<span class="token keyword">continue</span>
|
|
|
|
|
no_module_name_pyfile_path <span class="token operator">=</span> get_relative_path<span class="token punctuation">(</span>module_folder<span class="token punctuation">,</span> pyfile_path<span class="token punctuation">)</span>
|
|
|
|
|
rel_md_path <span class="token operator">=</span> pyfile_path <span class="token keyword">if</span> with_top <span class="token keyword">else</span> no_module_name_pyfile_path
|
|
|
|
|
<span class="token keyword">for</span> <span class="token punctuation">(</span>rk<span class="token punctuation">,</span> rv<span class="token punctuation">)</span> <span class="token keyword">in</span> replace_data<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
|
|
|
|
|
rel_md_path <span class="token operator">=</span> rel_md_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span>rk<span class="token punctuation">,</span> rv<span class="token punctuation">)</span>
|
|
|
|
|
abs_md_path <span class="token operator">=</span> os<span class="token punctuation">.</span>path<span class="token punctuation">.</span>join<span class="token punctuation">(</span>output_dir<span class="token punctuation">,</span> rel_md_path<span class="token punctuation">)</span>
|
|
|
|
|
module_info <span class="token operator">=</span> get_module_info_normal<span class="token punctuation">(</span>pyfile_path<span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">if</span> <span class="token string">'README'</span> <span class="token keyword">in</span> abs_md_path<span class="token punctuation">:</span>
|
|
|
|
|
front_matter <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'title'</span><span class="token punctuation">:</span> module_info<span class="token punctuation">.</span>module_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.__init__'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'_'</span><span class="token punctuation">,</span> <span class="token string">'\\n'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'index'</span><span class="token punctuation">:</span> <span class="token string">'true'</span><span class="token punctuation">,</span> <span class="token string">'icon'</span><span class="token punctuation">:</span> <span class="token string">'laptop-code'</span><span class="token punctuation">,</span> <span class="token string">'category'</span><span class="token punctuation">:</span> <span class="token string">'API'</span><span class="token punctuation">}</span>
|
|
|
|
|
<span class="token keyword">else</span><span class="token punctuation">:</span>
|
|
|
|
|
front_matter <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">'title'</span><span class="token punctuation">:</span> module_info<span class="token punctuation">.</span>module_path<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'_'</span><span class="token punctuation">,</span> <span class="token string">'\\n'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'order'</span><span class="token punctuation">:</span> <span class="token string">'1'</span><span class="token punctuation">,</span> <span class="token string">'icon'</span><span class="token punctuation">:</span> <span class="token string">'laptop-code'</span><span class="token punctuation">,</span> <span class="token string">'category'</span><span class="token punctuation">:</span> <span class="token string">'API'</span><span class="token punctuation">}</span>
|
|
|
|
|
md_content <span class="token operator">=</span> generate_markdown<span class="token punctuation">(</span>module_info<span class="token punctuation">,</span> front_matter<span class="token punctuation">)</span>
|
|
|
|
|
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f'Generate </span><span class="token interpolation"><span class="token punctuation">{</span>pyfile_path<span class="token punctuation">}</span></span><span class="token string"> -> </span><span class="token interpolation"><span class="token punctuation">{</span>abs_md_path<span class="token punctuation">}</span></span><span class="token string">'</span></span><span class="token punctuation">)</span>
|
|
|
|
|
file_data<span class="token punctuation">[</span>abs_md_path<span class="token punctuation">]</span> <span class="token operator">=</span> md_content
|
|
|
|
|
write_to_files<span class="token punctuation">(</span>file_data<span class="token punctuation">)</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 class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="class-deftype-enum" tabindex="-1"><a class="header-anchor" href="#class-deftype-enum"><span><em><strong>class</strong></em> <code>DefType(Enum)</code></span></a></h3><h3 id="attr-function-function" tabindex="-1"><a class="header-anchor" href="#attr-function-function"><span> <em><strong>attr</strong></em> <code>FUNCTION: 'function'</code></span></a></h3><h3 id="attr-method-method" tabindex="-1"><a class="header-anchor" href="#attr-method-method"><span> <em><strong>attr</strong></em> <code>METHOD: 'method'</code></span></a></h3><h3 id="attr-static-method-staticmethod" tabindex="-1"><a class="header-anchor" href="#attr-static-method-staticmethod"><span> <em><strong>attr</strong></em> <code>STATIC_METHOD: 'staticmethod'</code></span></a></h3><h3 id="attr-class-method-classmethod" tabindex="-1"><a class="header-anchor" href="#attr-class-method-classmethod"><span> <em><strong>attr</strong></em> <code>CLASS_METHOD: 'classmethod'</code></span></a></h3><h3 id="attr-property-property" tabindex="-1"><a class="header-anchor" href="#attr-property-property"><span> <em><strong>attr</strong></em> <code>PROPERTY: 'property'</code></span></a></h3><h3 id="class-functioninfo-basemodel" tabindex="-1"><a class="header-anchor" href="#class-functioninfo-basemodel"><span><em><strong>class</strong></em> <code>FunctionInfo(BaseModel)</code></span></a></h3><h3 id="class-attributeinfo-basemodel" tabindex="-1"><a class="header-anchor" href="#class-attributeinfo-basemodel"><span><em><strong>class</strong></em> <code>AttributeInfo(BaseModel)</code></span></a></h3><h3 id="class-classinfo-basemodel" tabindex="-1"><a class="header-anchor" href="#class-classinfo-basemodel"><span><em><strong>class</strong></em> <code>ClassInfo(BaseModel)</code></span></a></h3><h3 id="class-moduleinfo-basemodel" tabindex="-1"><a class="header-anchor" href="#class-moduleinfo-basemodel"><span><em><strong>class</strong></em> <code>ModuleInfo(BaseModel)</code></span></a></h3><h3 id="var-no-type-any-any" tabindex="-1"><a class="header-anchor" href="#var-no-type-any-any"><span><em><strong>var</strong></em> <code>NO_TYPE_ANY = 'Any'</code></span></a></h3><h3 id="var-no-type-hint-notypehint" tabindex="-1"><a class="header-anchor" href="#var-no-type-hint-notypehint"><span><em><strong>var</strong></em> <code>NO_TYPE_HINT = 'NoTypeHint'</code></span></a></h3><h3 id="var-function-function" tabindex="-1"><a class="header-anchor" href="#var-function-function"><span><em><strong>var</strong></em> <code>FUNCTION = 'function'</code></span></a></h3><h3 id="var-method-method" tabindex="-1"><a class="header-anchor" href="#var-method-method"><span><em><strong>var</strong></em> <code>METHOD = 'method'</code></span></a></h3><h3 id="var-static-method-staticmethod" tabindex="-1"><a class="header-anchor" href="#var-static-method-staticmethod"><span><em><strong>var</strong></em> <code>STATIC_METHOD = 'staticmethod'</co
|
|
|
|
|
<script type="module" src="/assets/app-Dq2hGnN2.js" defer></script>
|
2024-08-19 23:51:06 +08:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|