Stubtest: give more helpful errors if a function is missing from the stub by AlexWaygood · Pull Request #16517 · python/mypy
Currently, if a function exists at runtime but is missing from the stub, stubtest will emit an error message like this:
error: shelve.Shelf.__del__ is not present in stub
Stub: in file stdlib\shelve.pyi
MISSING
Runtime: in file C:\Users\alexw\AppData\Local\Programs\Python\Python312\Lib\shelve.py:157
<function Shelf.__del__ at 0x0000024822FD7060>
error: subprocess.Popen.__del__ is not present in stub
Stub: in file stdlib\subprocess.pyi
MISSING
Runtime: in file C:\Users\alexw\AppData\Local\Programs\Python\Python312\Lib\subprocess.py:1120
<function Popen.__del__ at 0x00000248215D3D80>
This isn't particularly helpful: it doesn't tell you anything about the function at runtime, just that there is one. With this PR, stubtest's error messages change to this, which is much more helpful:
error: shelve.Shelf.__del__ is not present in stub
Stub: in file stdlib\shelve.pyi
MISSING
Runtime: in file C:\Users\alexw\AppData\Local\Programs\Python\Python312\Lib\shelve.py:157
def (self)
error: subprocess.Popen.__del__ is not present in stub
Stub: in file stdlib\subprocess.pyi
MISSING
Runtime: in file C:\Users\alexw\AppData\Local\Programs\Python\Python312\Lib\subprocess.py:1120
def (self, _maxsize=9223372036854775807, _warn=<built-in function warn>)