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