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"

Docs

Resources