diff --git a/mypy/report.py b/mypy/report.py index 90a62c8a4c7c..398127a33026 100644 --- a/mypy/report.py +++ b/mypy/report.py @@ -421,6 +421,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() diff --git a/test-data/unit/reports.test b/test-data/unit/reports.test index 714610314c88..396414575948 100644 --- a/test-data/unit/reports.test +++ b/test-data/unit/reports.test @@ -548,6 +548,14 @@ 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 + [case testReportCoberturaCrashOnNamespacePackages] # cmd: mypy --cobertura-xml-report report -p folder -- Regression test for https://github.com/python/mypy/issues/19843