Python Sphinx Autosummary:成员函数的自动列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python Sphinx Autosummary:成员函数的自动列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2097字,纯文字阅读大概需要3分钟。
内容图文
![Python Sphinx Autosummary:成员函数的自动列表](/upload/InfoBanner/zyjiaocheng/700/268b5d666d294e099e29ac0f02fc5787.jpg)
如何判断自动扩展扩展不仅列出单个类,还列出所有类的成员?
如果我使用:
.. autosummary::
MyClass
在生成的html文件中,只有一个简短的摘要,如:
MyClass(var1,var2,….)我的自定义类来做奇特的事情……
我真正想要的是:
MyClass(var1,var2,….)我的自定义类来做奇特的事情……
MyClass.doA(var1,var2,…)做得很好
MyClass.doB(var1,var2,…)B更好
我如何配置autosummary指令才能得到这个(除了在autosummary指令中自己命名所有函数)?
谢谢!
解决方法:
您可以像下面这样扩展Autosummary指令并像这样调用它:
.. autoclass:: your.fully.qualified.path.to.the.Class
:members:
:undoc-members:
.. rubric:: Methods
.. autoautosummary:: your.fully.qualified.path.to.the.Class
:methods:
.. rubric:: Attributes
.. autoautosummary:: your.fully.qualified.path.to.the.Class
:attributes:
代码(在conf.py中):
from sphinx.ext.autosummary import Autosummary
from sphinx.ext.autosummary import get_documenter
from docutils.parsers.rst import directives
from sphinx.util.inspect import safe_getattr
import re
class AutoAutoSummary(Autosummary):
option_spec = {
'methods': directives.unchanged,
'attributes': directives.unchanged
}
required_arguments = 1
@staticmethod
def get_members(obj, typ, include_public=None):
if not include_public:
include_public = []
items = []
for name in dir(obj):
try:
documenter = get_documenter(safe_getattr(obj, name), obj)
except AttributeError:
continue
if documenter.objtype == typ:
items.append(name)
public = [x for x in items if x in include_public or not x.startswith('_')]
return public, items
def run(self):
clazz = str(self.arguments[0])
try:
(module_name, class_name) = clazz.rsplit('.', 1)
m = __import__(module_name, globals(), locals(), [class_name])
c = getattr(m, class_name)
if 'methods' in self.options:
_, methods = self.get_members(c, 'method', ['__init__'])
self.content = ["~%s.%s" % (clazz, method) for method in methods if not method.startswith('_')]
if 'attributes' in self.options:
_, attribs = self.get_members(c, 'attribute')
self.content = ["~%s.%s" % (clazz, attrib) for attrib in attribs if not attrib.startswith('_')]
finally:
return super(AutoAutoSummary, self).run()
def setup(app):
app.add_directive('autoautosummary', AutoAutoSummary)
内容总结
以上是互联网集市为您收集整理的Python Sphinx Autosummary:成员函数的自动列表全部内容,希望文章能够帮你解决Python Sphinx Autosummary:成员函数的自动列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。