代码拉取完成,页面将自动刷新
import os
import re
def modify_doc_title_dir(abspath_rstfiles_dir):
"""
rst文件中:有‘========’和‘----------’行的表示其行上一行的文字是标题,
‘=’和‘-’要大于等于标题的长度。
使用sphinx-apidoc -o ./source/rst_files /home/myubuntu/pro/mypro命令将
生成rst文件放在./source/rst_files目录下, 执行sphinx-quickstart命令生成的
index.rst不用放到这个目录中。 或在source目录下新建
rst_files目录然后将rst文件剪切到这个目录下,修改后再剪切出来
生成rst文件后将rst_files/modules.rst文件中的标题去掉,并修改maxdepth字段。
删除和修改使用sphinx-apidoc -o 命令的生成的rst文件中的标题
:param abspath_rstfiles_dir: rst文件所在的文件夹的绝对路径
:return:
"""
rst_files = os.listdir(abspath_rstfiles_dir)
# 要删除的节点(标题目录的节点)
del_nodes = ["Submodules", "Module contents", "Subpackages"]
# 要删除的标题中的字符串
del_str = [" module", " package"]
# datasets需要的部分
dataset_list = ["datasets", "dataset"]
# 需要call方法
add_call_files = [
"data.collate",
"data.iterator",
"data.sampler",
"data.tokenizer",
"data.vocab",
"tokenizer\_utils",
]
# 删除inheritance
del_inheritance = [
"crf",
"tcn",
"distributed",
"dataset",
"paraller",
"decoder",
"rdrop",
"decoding",
"fast\_transformer",
"Adamoptimizer",
"attention\_utils",
"model\_utils",
"batch\_sampler",
"model",
]
# 文档中空白的part,不显示
del_rst = ["iterator", "constant"]
for rst_file in rst_files:
f = open(os.path.join(abspath_rstfiles_dir, rst_file), "r")
file_lines = f.readlines()
f.close()
write_con = []
flag = 0
first_line = file_lines[0]
# 去除不需要的datasets
if "datasets" in first_line:
name = first_line.split()[0]
length = len(name.split("."))
# paddlenlp.datasets 需要留下
if length > 2:
if "datasets.dataset" not in first_line:
path = os.path.join(abspath_rstfiles_dir, rst_file)
print(path)
os.remove(path)
print(path)
continue
# 去除文档中空白页面,目前是data.iterator, embeddings.constant部分
del_rst_flag = 0
for pattern in del_rst:
if pattern in first_line:
path = os.path.join(abspath_rstfiles_dir, rst_file)
os.remove(path)
del_rst_flag = 1
break
if del_rst_flag == 1:
continue
# 是否加入call
add_call_files_flag = 0
for i in add_call_files:
if i in first_line:
add_call_files_flag = 1
# 是否删除inheritance
del_inheritance_flag = 0
for j in del_inheritance:
if j in first_line:
del_inheritance_flag = 1
if "modeling" in first_line:
del_inheritance_flag = 0
for file_line in file_lines:
if file_line.strip() in del_nodes:
flag = 1
continue
if flag:
flag = 0
continue
if re.search(del_str[0], file_line):
length = len(file_line.split("."))
if length > 2:
modify_line = file_line.split(".")[-1].replace(del_str[0], "")
else:
modify_line = file_line.replace(del_str[0], "")
write_con.append(modify_line)
continue
if re.search(del_str[1], file_line):
length = len(file_line.split("."))
if length > 2:
modify_line = file_line.split(".")[-1].replace(del_str[1], "")
else:
modify_line = file_line.replace(del_str[1], "")
write_con.append(modify_line)
continue
if "undoc-members" in file_line:
if "no-undoc-members" not in file_line:
file_line = file_line.replace("undoc-members", "no-undoc-members")
# 去除datasets中多余内容
if "paddlenlp.datasets" in file_line:
last_name = file_line.split(".")[-1]
if last_name.strip() not in dataset_list:
continue
if "show-inheritance" in file_line:
if del_inheritance_flag == 0:
write_con.append(file_line)
else:
write_con.append(file_line)
if add_call_files_flag == 1:
write_con.append(" :special-members: __call__\n")
f = open(os.path.join(abspath_rstfiles_dir, rst_file), "w")
f.writelines(write_con)
f.close()
if __name__ == "__main__":
modify_doc_title_dir("./source")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。