Разбор строк документации Python (и вообще разбор языков в Python) - PullRequest
2 голосов
/ 29 марта 2011

Я хотел бы создать полезную документацию для 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, желательно без использования регулярных выражений.

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

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

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

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

0 голосов
/ 29 марта 2011

http://sphinx.pocoo.org/

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

...