2011-03-29 7 views
2

파이썬으로 작성된 REST API에 대한 유용한 문서를 생성하고 싶습니다. 바람직하게는,파이썬 docstring 구문 분석 (일반적으로 파이썬에서 언어 구문 분석)

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

내가 파이썬 딕셔너리를이 형식을 구문 분석하고 (예를 들어) 좀하고 싶습니다 :

''' 
/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. 
''' 

내 구문은 분명히 :

는 나는 이런 식으로 뭔가해야 상상 정규식을 사용하지 않고.

이미 사용할 수있는 구문 분석기가 있습니까?
그렇지 않다면 파이썬에서 DSL을 정의하고 파싱하는 가장 간단한 방법은 무엇입니까?

reSTructuredText 또는 설명 된 것과 다른 형식을 사용하려면 이 아닌을 사용하는 것이 좋습니다.

+0

왜 reStructuredText 또는 다른 기존 형식을 사용하지 않으시겠습니까? – mzjn

+0

내가 특별히 설명한 형식을 사용하고 싶기 때문에. reStructuredText가 지원하는 경우 기꺼이 사용합니다. – x10

답변

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이 구문을 이해하고, 기본적인 나머지 마크 업의 확장 Docutils으로 정의됩니다.

+0

바로이 부분은 제가 사용하고 싶지 않은 부분입니다. 그것은 다른 구문입니다. 그리고 그것은 인간이 읽을 수없는 것이 가장 확실합니다. 사람들이 먼저 컴파일하지 않고도 문서를 읽을 수 있기를 바랍니다. – x10

+0

@ x10 : 그렇다면 대답은 다음과 같아야합니다. 이미 사용 가능한 구문에 대한 파서가있을 가능성은 거의 없습니다. 자신 만의 롤을 만들어야합니다. 아마도 [pyparsing] (http://pyparsing.wikispaces.com/) 또는 [PLY] (http://www.dabeaz.com/ply)를 사용할 수 있습니다. – mzjn

+0

Pyparsing, 응? 충분히 단순 해 보입니다. 어디 보자 ... – x10

0

http://sphinx.pocoo.org/

온라인 문서 도구입니다. 그 멋진 그리고 그것은 당신이 원하는 정확하게 할 것입니다.