gpt4 book ai didi

Julia 记录器 : missing docstring

转载 作者:行者123 更新时间:2023-12-03 19:34:55 30 4
gpt4 key购买 nike

我有一个带有函数、文档字符串和文档测试的 Julia 模块文件。我加载它并在 Julia 帮助中显示文档字符串,但 Documenter.jl 找不到文档字符串。

一个示例模块文件,src/my_module.jl , 是:

module my_module

"""
add(x, y)

Dummy function

# Examples
```jldoctest
julia> add(1, 2)
3
```
"""
function add(x::Number, y::Number)
return x + y
end

end

制作文件 docs/make.jl是:
using Documenter, my_module

makedocs(
modules = [my_module],
format = :html,
sitename = "my_module.jl",
authors = "unknown",
doctest = true
)
include("src/my_module.jl") 的输出,然后 ? ,然后 my_module.add ,表明 Julia REPL 找到了文档字符串:
help?> my_module.add
add(x, y)

Dummy function

Examples
≡≡≡≡≡≡≡≡≡≡

julia> add(1, 2)
3
include("docs/make.jl") 的输出显示 Documenter没有:
Documenter: setting up build directory.
Documenter: expanding markdown templates.
Documenter: building cross-references.
Documenter: running document checks.
> checking for missing docstrings.
!! 1 docstring potentially missing:

my_module.add :: Tuple{Number,Number}

> running doctests.
> checking footnote links.
Documenter: populating indices.
Documenter: rendering document.

Julia REPL 是如何找到文档字符串而不是 Documenter 的?

笔记:我跑了 Pkg.update()在运行代码之前。 Documenter有版本 0.18.0 , Julia 有版本 0.6.3 .

最佳答案

正如@fredrikekre 的评论中提到的,我错过了@autodocs以及其他一些细节。这是 Julia 中文档测试的完整设置与 Documenter.jl .
my_module的目录结构| (来自命令 tree ,为清楚起见重新排序):

.
|____src
| |____my_module.jl
| |____my_functions.jl
|____docs
| |____make.jl
| |____src
| | |____index.md
|____README.md
|____REQUIRE

文件 src/my_module.jl是:
module my_module

# export functions you want to call without qualifications
export add_exported

using DataFrames # or any other module

# Include functions
include("my_functions.jl")

end

文件 src/my_functions.jl包含导出和非导出函数。注意导出函数的 doc-test 没有限定条件,而非导出函数的 doc-test 有:
"""
add_exported(x, y)

Dummy function, exported

# Examples
```jldoctest
julia> add_exported(1, 2)
3
```
"""
function add_exported(x::Number, y::Number)
return x + y
end

"""
add_not_exported(x, y)

Dummy function, not exported

# Examples
```jldoctest
julia> my_module.add_not_exported(1, 2)
3
```
"""
function add_not_exported(x::Number, y::Number)
return x + y
end

文件 docs/make.jl是:
using Documenter, my_module

makedocs(
modules = [my_module],
format = :html,
sitename = "my_module.jl",
doctest = true
)

文件 docs/src/index.md包含 using my_module ,这将导出的函数带入范围:
# Documentation

```@meta
CurrentModule = my_module
DocTestSetup = quote
using my_module
end
```

```@autodocs
Modules = [my_module]
```

最后两个文件是可选的。文件 REQUIRE仅用于远程安装软件包。它包含:
julia 0.6.3
DataFrames 0.11.6

文件 README.md包含 Markdown 中的描述:
# my_module and its description

最后,将目录更改为包的根目录,启动 Julia session ,然后键入:
julia> include("src/my_module.jl");include("docs/make.jl");
Documenter: setting up build directory.
Documenter: expanding markdown templates.
Documenter: building cross-references.
Documenter: running document checks.
> checking for missing docstrings.
> running doctests.
> checking footnote links.
Documenter: populating indices.
Documenter: rendering document.

如果更改 add 的结果在来自 3 的文档测试中到任何其他号码, Documenter将显示错误并表明它正在工作。

关于 Julia 记录器 : missing docstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50768111/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com