0

我在我的 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>
4

0 回答 0