From d69ddeda1d5ad190e9b9e8c171241bf22df1b595 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Wed, 1 Oct 2025 19:31:18 -0700 Subject: [PATCH 1/3] add failing test, testReportIsADirectoryErrorCrashOnNamespacePackages A regression test for the internal crash https://github.com/python/mypy/issues/18128. --- test-data/unit/reports.test | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test-data/unit/reports.test b/test-data/unit/reports.test index 82c3869bb855..871ebc4c6184 100644 --- a/test-data/unit/reports.test +++ b/test-data/unit/reports.test @@ -547,3 +547,11 @@ namespace_packages = True + +[case testReportIsADirectoryErrorCrashOnNamespacePackages] +# cmd: mypy --linecoverage-report report -p folder +--Regression test for https://github.com/python/mypy/issues/18128 +-- "IsADirectoryError for namespace packages when using --linecoverage-report" +[file folder/subfolder/something.py] +class Something: + pass From 6d916744df5015e325648128054bbc1bbf065bb6 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Thu, 23 Oct 2025 18:05:53 -0700 Subject: [PATCH 2/3] fix that prevents crash --- mypy/report.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mypy/report.py b/mypy/report.py index 39cd80ed38bf..09a59f8a6f2c 100644 --- a/mypy/report.py +++ b/mypy/report.py @@ -424,6 +424,9 @@ def on_file( type_map: dict[Expression, Type], options: Options, ) -> None: + if os.path.isdir(tree.path): # can happen with namespace packages + return + with open(tree.path) as f: tree_source = f.readlines() From ff48189028949ffee70919079ac93f1233e099ca Mon Sep 17 00:00:00 2001 From: Ivan Levkivskyi Date: Mon, 27 Oct 2025 16:45:14 +0000 Subject: [PATCH 3/3] Fix comment formatting in a test --- test-data/unit/reports.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-data/unit/reports.test b/test-data/unit/reports.test index 871ebc4c6184..dab9c2a379c1 100644 --- a/test-data/unit/reports.test +++ b/test-data/unit/reports.test @@ -550,7 +550,7 @@ namespace_packages = True [case testReportIsADirectoryErrorCrashOnNamespacePackages] # cmd: mypy --linecoverage-report report -p folder ---Regression test for https://github.com/python/mypy/issues/18128 +-- Regression test for https://github.com/python/mypy/issues/18128 -- "IsADirectoryError for namespace packages when using --linecoverage-report" [file folder/subfolder/something.py] class Something: