parso - A Python Parser¶
Release v0.8.4. (Installation)
Parso is a Python parser that supports error recovery and round-trip parsingfor different Python versions (in multiple Python versions). Parso is also ableto list multiple syntax errors in your python file.
Parso has been battle-tested byjedi. It was pulled out of jedi to be usefulfor other projects as well.
Parso consists of a small API to parse Python and analyse the syntax tree.
A simple example:
>>>importparso>>>module=parso.parse('hello + 1',version="3.9")>>>expr=module.children[0]>>>exprPythonNode(arith_expr, [<Name: hello@1,0>, <Operator: +>, <Number: 1>])>>>print(expr.get_code())hello + 1>>>name=expr.children[0]>>>name<Name: hello@1,0>>>>name.end_pos(1, 5)>>>expr.end_pos(1, 9)
To list multiple issues:
>>>grammar=parso.load_grammar()>>>module=grammar.parse('foo +\nbar\ncontinue')>>>error1,error2=grammar.iter_errors(module)>>>error1.message'SyntaxError: invalid syntax'>>>error2.message"SyntaxError: 'continue' not properly in loop"
