-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Stubtest does not check that the elements in a stub file's __all__ match the elements in the runtime's __all__. It's also not obvious (to me, at least) how stubtest could be patched so that it would check that the elements match.
If __all__ is a tuple, stubtest will raise an error if the stub's __all__ is a different length to the runtime's __all__, but it will not raise an equivalent error if __all__ is a list.
flake8 will raise an error if a name in __all__ is not defined in the file. flake8-pyi on master (not yet released) will also raise an error if __all__ is merely annotated as list[str] without being defined. But flake8 will not raise an error if a name is missing from __all__.
All this means that the __all__ definitions in typeshed are liable to become outdated very easily if new elements are added to __all__ in future Python versions. I'm not sure exactly what the solution is.