更新(2020 年 5 月 30 日): Github 用户“mr-ubik”已经整理了一个包来为 Tensorflow 2.0objects.inv
的Python API(不是 JS、C++ 或 Java)自动生成一个包,可以在这里找到。存储库既有objects.inv
文件本身,也有用于创建它的工具,以及用于将其intersphinx_mapping
链接到您的文档的元素。
更新(2021 年 3 月 16 日):根据评论,STJ 在https://github.com/GPflow/tensorflow-intersphinx/的分叉中继续开发用于自动生成objects.inv
for Tensorflow的工具。该清单现在以 TensorFlow v2.4 为目标,包括 TensorFlow Probability v0.12。
mzjn 是对的——如果文档不是 Sphinx 生成的,则不会有objects.inv
文件可供查找。
但是,您可以创建自己的objects.inv
与 Tensorflow 一起使用。我编写了一个 Python 包来让我做这个确切的事情,以及操作说明。简而言之,请注意这里的一些细节可能不完全正确:
导入sphobjinv
并创建一个空的Inventory
:
>>> import sphobjinv as soi
>>> inv = soi.Inventory()
定义 Sphinx 头信息:
>>> inv.project = 'Tensorflow'
>>> inv.version = '2.2'
sphobjinv.DataObjStr
将实例附加到您希望包含的每个对象的objects
成员:Inventory
>>> o = soi.DataObjStr(name='tf.autodiff', domain='py', role='module',
... priority='1', uri='python/tf/autodiff', dispname='-')
>>> inv.objects.append(o)
>>> print(inv)
<Inventory (manual): foobar v1.5, 1 objects>
{name}
通常是完全限定的对象名称。文档的 Python、C++ 和 Javascript 部分可以由默认python
的cpp
、 和js
Sphinx 域处理,但您必须为 Java创建自己的 Sphinx 域。(不幸的是,提供这样一个域的javasphinx
项目{role}
已被弃用。)将是适用于每个记录的对象的任何合适的指令(例如,function
域method
的 、 等py
)。{priority}
也会影响清单中的对象在内部文档搜索中的显示方式,并且几乎应该总是1
处于这样的情况。{relative uri}
相对于您将包含在参数中的基本intersphinx_mapping
URIconf.py
(见下文)。{displayname}
通常也是完全限定的对象名称。
生成并压缩清单内容,并写入磁盘:
>>> text = inv.data_file(contract=True)
>>> ztext = soi.compress(text)
>>> soi.writebytes('objects_tensorflow.inv', ztext)
上传到方便、可访问的位置。
配置 intersphinx:
intersphinx_mapping = {
'tensorflow' = (
'https://www.tensorflow.org/versions/r2.2/api_docs/',
'uri/to/objects_tensorflow.inv',
)
}
那应该这样做。这有点费力,必须手动合成文件,但如果您只是根据需要添加对象,那应该不会太糟糕。或者,您可以抓取文档页面集并自动生成清单(就像 mr-ubik 所做的那样)。