Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
mypy / parse.py
Size: Mime:
from typing import Union, Optional

from mypy.errors import Errors
from mypy.options import Options
from mypy.nodes import MypyFile


def parse(source: Union[str, bytes],
          fnam: str,
          module: Optional[str],
          errors: Optional[Errors],
          options: Options) -> 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.
    """
    is_stub_file = fnam.endswith('.pyi')
    if options.python_version[0] >= 3 or is_stub_file:
        import mypy.fastparse
        return mypy.fastparse.parse(source,
                                    fnam=fnam,
                                    module=module,
                                    errors=errors,
                                    options=options)
    else:
        import mypy.fastparse2
        return mypy.fastparse2.parse(source,
                                     fnam=fnam,
                                     module=module,
                                     errors=errors,
                                     options=options)