我在我的 python 代码中的类上使用装饰器。我需要生成一些 xml,其中包含哪些类具有哪些装饰器,它们在哪个模块中,以及这些模块中的全局变量是什么。我已经尝试了所有主要的文档生成器,但甚至无法弄清楚哪个能够做到这一点。
- Doxygen (1.8.13-10):生成的文档没有引用任何装饰器
- Sphinx:我什至无法让 sphinx 在我的模块上生成任何文档。我已经尝试了几个howtos,但自动模块似乎不起作用。
- pydoctor:我在带有自定义生成器类的 python2 项目中使用它,但不适用于 python3
- pdoc 有效,但没有装饰器,我看不到任何生成 xml 的方法
- pydoc3 只是说没有找到文档(因为没有评论,它是干净的代码)
一个最小的示例将包含以下树:
src/categorizerai
src/categorizerai/__init__.py
src/categorizerai/ExampleService.py
where__init__.py
为空,ExampleService.py
代码如下:
from winterboot.Autowired import Autowired
underlyingService = Autowired('underlyingService')
@Service
ExampleService(object):
def serviceCall(foo: int = 0) -> int:
return foo+1;
最后我会创建一个这样的xml(任何包含必要信息的东西都可以,我可以xslt):
<project>
<package name="categorizerai">
<class type="Service" name="ExampleService"><!-- the type comes from the decorator -->
<dependency name="underlyingService"/><!-- name of the global in the same module-->
<method name="serviceCall" returns="int">
<parameter name="foo" type="int" default="0"/>
</method>
</class>
</package>
</project>