1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
Source: parso
Section: python
Priority: optional
Maintainer: Piotr Ożarowski <piotr@debian.org>
Build-Depends: debhelper-compat (= 13),
dh-python,
dh-sequence-python3,
dh-sequence-sphinxdoc,
python3-all,
python3-setuptools,
python3-sphinx,
python3-pytest,
Standards-Version: 4.6.1
Rules-Requires-Root: no
Homepage: https://github.com/davidhalter/parso
Testsuite: autopkgtest-pkg-pybuild
Package: python3-parso
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends},
Description: Python parser that supports error recovery - Python 3.X
Parso is a Python parser that supports error recovery and round-trip parsing
for different Python versions (in multiple Python versions). Parso is also able
to list multiple syntax errors in your Python file.
.
Parso has been battle-tested by jedi. It was pulled out of jedi to be useful
for other projects as well.
.
Parso consists of a small API to parse Python and analyse the syntax tree.
.
A simple example:
.
>>> import parso
>>> module = parso.parse('hello + 1', version="3.6")
>>> expr = module.children[0]
>>> expr
PythonNode(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"
Package: python-parso-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}, ${sphinxdoc:Depends}
Description: documentation for the parso Python library
This package provides documentation for parso
|