Sphinx-Gallery库中FileNameSortKey()函数的使用方法和注意事项
Sphinx-Gallery(以下简称 SG)是一个用于在Sphinx文档中生成代码示例的工具。其中的FileNameSortKey()函数是用于对代码示例进行排序的辅助函数。在本文中,我将介绍FileNameSortKey()函数的使用方法、注意事项,并提供一个使用例子来说明。
使用方法:
SG中的FileNameSortKey()函数是一个自定义的排序函数,用于对代码示例文件按名称进行排序。此函数接收一个字符串作为参数,并返回一个元组。元组的 个元素是文件名的字符长度,第二个元素是文件名本身。当SG调用排序函数时,它将使用这个函数返回的元组进行排序。
要使用FileNameSortKey()函数,需要首先导入它:
from sphinx_gallery.sorting import FileNameSortKey
然后,可以将FileNameSortKey()函数作为sortkey参数传递给SG的toctree函数。示例代码如下:
from sphinx_gallery.sorting import FileNameSortKey
sphinx_gallery_conf = {
# ...
'gallery_dirs': 'examples',
'line_numbers': True,
'within_subsection_order': FileNameSortKey,
# ...
}
在上面的示例中,'within_subsection_order'参数将FileNameSortKey函数设置为代码示例文件的排序方式。这将影响SG在生成文档中的代码示例列表时的顺序。
注意事项:
- FileNameSortKey()函数只能用于对文件名进行排序,不能用于对其他元数据(如文件大小、创建日期等)进行排序。
- FileNameSortKey()函数对于文件名中的数字和字母进行了区分。例如,'file2.py'将排在'file10.py'之前,因为2在10之前。
- FileNameSortKey()函数默认是按照文件名的字母顺序进行升序排序。如果需要降序排序,可以将reverse=True作为toctree函数的参数传递给FileNameSortKey()函数。
使用例子:
假设我们有以下文件列表:
file1.py file2.py file10.py
如果不使用FileNameSortKey()函数,SG默认会按照字母顺序对文件列表进行排序,生成的代码示例列表将是:
file1.py file10.py file2.py
但是,如果我们使用FileNameSortKey()函数进行排序,代码示例列表将按照文件名的数字顺序进行排序,生成的代码示例列表将是:
file1.py file2.py file10.py
这里的例子展示了FileNameSortKey()函数对代码示例进行排序的效果。
总结:
FileNameSortKey()函数是SG库中一个有用的辅助函数,用于对代码示例进行排序。通过将FileNameSortKey()函数作为sortkey参数传递给toctree函数,我们可以按照自定义方式对代码示例进行排序。在使用FileNameSortKey()函数时,需要注意它只能对文件名进行排序,且对数字和字母进行了区分。希望本文对你理解FileNameSortKey()函数的使用方法和注意事项有所帮助。
