31 lines
913 B
Python
31 lines
913 B
Python
from __future__ import annotations
|
|
|
|
from mypy.errors import Errors
|
|
from mypy.nodes import MypyFile
|
|
from mypy.options import Options
|
|
|
|
|
|
def parse(
|
|
source: str | bytes,
|
|
fnam: str,
|
|
module: str | None,
|
|
errors: Errors,
|
|
options: Options,
|
|
raise_on_error: bool = False,
|
|
) -> MypyFile:
|
|
"""Parse a source file, without doing any semantic analysis.
|
|
|
|
Return the parse tree. If errors is not provided, raise ParseError
|
|
on failure. Otherwise, use the errors object to report parse errors.
|
|
|
|
The python_version (major, minor) option determines the Python syntax variant.
|
|
"""
|
|
if options.transform_source is not None:
|
|
source = options.transform_source(source)
|
|
import mypy.fastparse
|
|
|
|
tree = mypy.fastparse.parse(source, fnam=fnam, module=module, errors=errors, options=options)
|
|
if raise_on_error and errors.is_errors():
|
|
errors.raise_error()
|
|
return tree
|