跳过空模块 - Sphinx Autodoc

问题描述

我正在使用 Sphinx 为包构建文档。在构建文档时,我找不到跳过(删除)空子模块的方法Section 2 中的示例有一个名为 Submodule 的小节,它是空白的我想跳过这些小节。我尝试使用以下代码

def skip_util_classes(app,what,name,obj,skip,options):
    if what == "Submodules":
        skip = True
    return skip


def setup(sphinx):
    sphinx.connect("autodoc-skip-member",skip_util_classes)

以上代码并未消除部分 Submodules

我想知道如何定义需要跳过的部分或子部分?以及如何定义要在 skip_util_classes 中跳过的空节或小节?

解决方法

当您希望 Sphinx 忽略 Python 模块或类的某些成员时,可以使用类似 # prepare dist matrix outside loop m <- t(as.data.frame(dist_list)) row.names(m) <- NULL diag(m) <- NA # create grouping variable: gv <- as.integer(factor(places$month)) # or: # gv <- as.integer(factor(paste(places$month,places$category))) # set distance to NA if not in relevant group: i <- sapply(gv,function(x) gv == x) m[!i] <- NA l <- sapply(as.data.frame(t(m)),function(x) { if (all(is.na(x))) return(list(NA,NA)) mv <- min(x,na.rm = T) i <- which(x == mv) list(mv,i) }) l places <- cbind(places,min_dist = unlist(l[1,]),min_nr = unlist(l[2,])) places$min_name <- places$cities[places$min_nr] # add name places$min_id <- places$id[places$min_nr] # add id places 函数( cities id category month min_dist min_nr min_name min_id V1 washington,dc 156952 home 201811 98.34647 2 wilmington,de 154222 V2 wilmington,de 154222 work 201811 98.47624 1 washington,dc 156952 V3 amarillo,tx 785695 home 201912 356.57353 4 denver,co 154423 V4 denver,co 154423 home 201912 356.57353 3 amarillo,tx 785695 V5 needham,ma 971453 home 202005 243.94704 7 doylestown,pa 1356987 V6 philadelphia,pa 149888 work 202005 24.73821 7 doylestown,pa 1356987 V7 doylestown,pa 1356987 cell 202005 24.73821 6 philadelphia,pa 149888 V8 galveston,tx 178946 home 202106 505.29253 9 tuscaloosa,al 169944 V9 tuscaloosa,al 169944 work 202106 505.29253 8 galveston,tx 178946 V10 hollywood,fl 136421 cell 202106 666.83785 9 tuscaloosa,al 169944 事件的处理程序)。见Connect Sphinx autodoc-skip-member to my function

此技术不能用于跳过或删除生成的 .rst 文件中的部分。以下两条建议可能有助于解决该问题:

  1. 创建自定义 sphinx-apidoc 模板。见Remove the word "module" from Sphinx documentation

  2. 不要一遍又一遍地运行 sphinx-apidoc。运行该工具一次,调整输出并将其添加到源代码管理中。见Keeping the API updated in Sphinx