Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove file_exists parameter from mypy.parse.parse() calls
  • Loading branch information
bzoracler committed Apr 17, 2026
commit eca912fbeba03008ae283ac5dcee22f519109330
2 changes: 1 addition & 1 deletion misc/dump-ast.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def dump(fname: str, python_version: tuple[int, int], quiet: bool = False) -> No
options.python_version = python_version
with open(fname, "rb") as f:
s = f.read()
tree = parse(s, fname, None, errors=Errors(options), options=options, file_exists=True)
tree = parse(s, fname, None, errors=Errors(options), options=options)
if not quiet:
print(tree)

Expand Down
5 changes: 1 addition & 4 deletions mypy/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -1214,9 +1214,7 @@ def parse_file(
Raise CompileError if there is a parse error.
"""
imports_only = False
file_exists = self.fscache.exists(path)
if self.workers and file_exists:
# Currently, we can use the native parser only for actual files.
if self.workers:
imports_only = True
t0 = time.time()
parse_errors: list[ParseError] = []
Expand All @@ -1230,7 +1228,6 @@ def parse_file(
id,
self.errors,
options=options,
file_exists=file_exists,
imports_only=imports_only,
)
tree._fullname = id
Expand Down
1 change: 0 additions & 1 deletion mypy/checkstrformat.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,6 @@ def apply_field_accessors(
module=None,
options=self.chk.options,
errors=temp_errors,
file_exists=False,
)
if temp_errors.is_errors():
self.msg.fail(
Expand Down
41 changes: 19 additions & 22 deletions mypy/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ def parse(
module: str | None,
errors: Errors,
options: Options,
file_exists: bool,
imports_only: bool = False,
) -> tuple[MypyFile, list[ParseError]]:
"""Parse a source file, without doing any semantic analysis.
Expand All @@ -28,27 +27,25 @@ def parse(
The python_version (major, minor) option determines the Python syntax variant.
"""
if options.native_parser:
# Native parser only works with actual files on disk
# Fall back to fastparse for in-memory source or non-existent files
if file_exists:
import mypy.nativeparse

ignore_errors = options.ignore_errors or fnam in errors.ignored_files
# If errors are ignored, we can drop many function bodies to speed up type checking.
strip_function_bodies = ignore_errors and not options.preserve_asts
tree, parse_errors, type_ignores = mypy.nativeparse.native_parse(
fnam,
options,
skip_function_bodies=strip_function_bodies,
imports_only=imports_only,
)
# Convert type ignores list to dict
tree.ignored_lines = dict(type_ignores)
# Set is_stub based on file extension
tree.is_stub = fnam.endswith(".pyi")
# Note: tree.imports is populated directly by native_parse with deserialized
# import metadata, so we don't need to collect imports via AST traversal
return tree, parse_errors
import mypy.nativeparse

ignore_errors = options.ignore_errors or fnam in errors.ignored_files
# If errors are ignored, we can drop many function bodies to speed up type checking.
strip_function_bodies = ignore_errors and not options.preserve_asts
tree, parse_errors, type_ignores = mypy.nativeparse.native_parse(
fnam,
options,
source,
skip_function_bodies=strip_function_bodies,
imports_only=imports_only,
)
# Convert type ignores list to dict
tree.ignored_lines = dict(type_ignores)
# Set is_stub based on file extension
tree.is_stub = fnam.endswith(".pyi")
# Note: tree.imports is populated directly by native_parse with deserialized
# import metadata, so we don't need to collect imports via AST traversal
return tree, parse_errors
# Fall through to fastparse for non-existent files

assert not imports_only
Expand Down
1 change: 0 additions & 1 deletion mypy/stubgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -1750,7 +1750,6 @@ def parse_source_file(mod: StubSource, mypy_options: MypyOptions) -> None:
module=mod.module,
errors=errors,
options=mypy_options,
file_exists=True,
)
mod.ast._fullname = mod.module
for err in errs:
Expand Down
2 changes: 0 additions & 2 deletions mypy/test/testparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ def test_parser(testcase: DataDrivenTestCase) -> None:
module="__main__",
errors=errors,
options=options,
file_exists=False,
)
if errors.is_errors():
errors.raise_error()
Expand Down Expand Up @@ -107,7 +106,6 @@ def test_parse_error(testcase: DataDrivenTestCase) -> None:
"__main__",
errors=errors,
options=options,
file_exists=False,
)
if errors.is_errors():
errors.raise_error()
Expand Down
Loading