Skip to content

dmypy's --use-fine-grained-cache crashes with KeyError on namespace packages #20519

@bzoracler

Description

@bzoracler

This is possibly related to #10735.

To Reproduce & Traceback

Create a minimal project as follows:

project/
  mypy.ini
      [mypy]
      files = src/
  src/
    pkg/
      __init__.py
      nspkg/
        mod.py
            a: int = ""

Reproduce with these steps:

  1. Navigate to project/
  2. $ mypy --cache-fine-grained
    src/pkg/nspkg/mod.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int")  [assignment]
    
  3. $ dmypy run -- --use-fine-grained-cache
    Daemon started
    Success: no issues found in 2 source files
    
    (I don't think this should say Success given the errors from Step 2., but that's a separate issue.)
  4. Change mod.py, e.g. modify the sole line to a: int = "a"
  5. Run the daemon twice:
    • $ dmypy run -- --use-fine-grained-cache
      src/pkg/nspkg/mod.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int")  [assignment]
      
    • $ dmypy run -- --use-fine-grained-cache
      Daemon crashed!
      Traceback (most recent call last):
        File ".../mypy/dmypy_server.py", line 237, in serve
          ...
        File ".../mypy/dmypy_server.py", line 768, in find_reachable_changed_modules
       worklist.append(BuildSource(graph[dep].path, graph[dep].id, followed=True))
                                   ~~~~~^^^^^
      KeyError: 'pkg.nspkg'
      

Your Environment

  • Mypy version used: 1.19.1
  • Python version used: Python 3.13

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions