Python文档字符串解析(以及在Python中解析语言)

2 投票
2 回答
2173 浏览
提问于 2025-04-16 14:39

我想为用Python写的REST API生成一些有用的文档。

我想象中的文档应该像这样:

'''
/kittens/
This method creates kittens in the browser

HTTP Params:
    format(default=json): The format in which kittens will be generated.
    count(default=10): The number of kittens to generate.

Returns:
    A list of kittens.
'''

我的语法显然是:

program = dict
dict = repeated(name:string | name:dict)

我希望能解析这个格式,得到(比如说)一个Python字典,最好是不要用正则表达式。

有没有现成的解析器可以处理这种语法呢?
如果没有,那么在Python中定义和解析DSL(领域特定语言)的最简单方法是什么?

请注意,我更倾向于使用reStructuredText或任何与我描述的格式不同的东西。

2 个回答

0

http://sphinx.pocoo.org/

这是一个在线文档工具。它非常棒,可以完全满足你的需求。

0

我不太确定你想要的具体是什么,但reStructuredText可以用来记录你例子中的信息:

.. method:: kittens(format="json", count=10)

   Creates kittens in the browser.

   :param format: The format in which kittens will be generated.
   :param count: The number of kittens to generate.
   :return: A list of kittens

Sphinx可以理解这种语法,它是基本的reST标记的一种扩展,这种基本标记是由Docutils定义的。

撰写回答