Разбор строк документации Python (и вообще разбор языков в Python)

Я хотел бы создать полезную документацию для API REST, написанного на Python.

Я думаю, что это должно быть что-то вроде этого:

'''
/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 dict, желательно без использования регулярных выражений.

Есть ли парсер для такого синтаксиса уже доступен?
Если нет, то каков самый простой способ определения и анализа DSL в Python?

Обратите внимание, что я предпочел бы не использовать reStructuredText или любой другой формат, отличный от того, что я описал.

2 ответа

Решение

Я не уверен, что понимаю, что именно вы хотите, но 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.

http://sphinx.pocoo.org/

Это онлайн документация. Это здорово, и он будет делать именно то, что вы хотите.

Другие вопросы по тегам