{
"name": "python_docstring",
"rules": {
"docstring": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\"\"\""
},
{
"type": "SYMBOL",
"name": "top_summary"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "summary"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "return_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "raises_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "examples_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "notes_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes_section"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "\"\"\"\n"
}
]
},
"top_summary": {
"type": "PATTERN",
"value": "[^\\n]+\\."
},
"summary": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "summary_line"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "summary_line"
}
}
]
},
"summary_line": {
"type": "PATTERN",
"value": "[^\\n]+"
},
"args_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Args:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "arg"
}
}
]
},
"arg": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arg_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "element_description"
}
]
},
"arg_name": {
"type": "PATTERN",
"value": "\\s{4}(\\*{0,2}[a-zA-Z_][a-zA-Z_0-9]*)"
},
"type_annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": " ("
},
{
"type": "SYMBOL",
"name": "type_name"
},
{
"type": "STRING",
"value": ")"
}
]
},
"type_name": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z_0-9\\.]*"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ", optional"
},
{
"type": "BLANK"
}
]
}
]
},
"element_description": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{8}[^\\n]+\\n"
}
]
}
},
{
"type": "BLANK"
}
]
}
]
},
"element_description_start": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"element_description_continuation": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{8}"
},
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"return_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Returns:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "return_line"
}
}
]
},
"return_line": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\s{4}[^\\n]+\\n"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"raises_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Raises:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "raise_info"
}
}
]
},
"raise_info": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_name"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "SYMBOL",
"name": "raise_description"
}
]
},
"raise_description": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{8}"
},
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
}
},
{
"type": "BLANK"
}
]
}
]
},
"examples_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Examples:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "example_line"
}
}
]
},
"example_line": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{4,}"
},
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"notes_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Notes:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "note_line"
}
}
]
},
"note_line": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{4,}"
},
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
},
"attributes_section": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Attributes:\n"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute_line"
}
}
]
},
"attribute_line": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\s{4,}"
},
{
"type": "PATTERN",
"value": "[^\\n]+"
},
{
"type": "STRING",
"value": "\n"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}