Closed
Description
Bug Report
mypy --no-implicit-reexport
doesn't catch reexports written in the form of from module import submodule
.
To Reproduce
# pkg/lib.py
# implicit re-exports
import requests
import requests as demands
import requests.status_codes as requests_status_codes
from requests import Request
# implicit submodule re-export, but mypy doesn't care
from requests import status_codes
# pkg/shell.py
from pkg.lib import requests, demands, requests_status_codes, Request, status_codes
Expected Behavior
I would expect each of those reexports to trigger an error.
Actual Behavior
from requests import status_codes
is ignored.
❯ mypy --no-implicit-reexport pkg
pkg/shell.py:1: error: Module "pkg.lib" does not explicitly export attribute "requests"; implicit reexport disabled
pkg/shell.py:1: error: Module "pkg.lib" does not explicitly export attribute "demands"; implicit reexport disabled
pkg/shell.py:1: error: Module "pkg.lib" does not explicitly export attribute "requests_status_codes"; implicit reexport disabled
pkg/shell.py:1: error: Module "pkg.lib" does not explicitly export attribute "Request"; implicit reexport disabled
Found 4 errors in 1 file (checked 3 source files)
Your Environment
- Mypy version used: 0.942
- Mypy command-line flags:
--no-implicit-reexports
- Mypy configuration options from
mypy.ini
(and other config files): None - Python version used: 3.9.10
- Operating system and version: Arch Linux latest