Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A Python Parser

License

NotificationsYou must be signed in to change notification settings

davidhalter/parso

Repository files navigation

GitHub Actions build statusCoverage StatusPyPI Downloads

https://raw.githubusercontent.com/davidhalter/parso/master/docs/_static/logo_characters.png

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"

Resources

Installation

pip install parso

Future

  • There will be better support for refactoring and comments. Stay tuned.
  • There's a WIP PEP8 validator. It's however not in a good shape, yet.

Known Issues

  • async/await are already used as keywords in Python3.6.
  • from __future__ import print_function is not ignored.

Acknowledgements

  • Guido van Rossum (@gvanrossum) for creating the parser generator pgen2(originally used in lib2to3).
  • Salome Schneider for the extremely awesome parso logo.

[8]ページ先頭

©2009-2025 Movatter.jp