Bug Report
When I run stubtest against PyQt5, or a minimal example package Tst, I get an AssertionError. See a full shell transcript from the commands below at the end of this issue report.
git rev-parse HEAD
git status
python3.8 -m venv venv
venv/bin/python --version --version
venv/bin/pip install --upgrade pip setuptools wheel
venv/bin/pip install .
venv/bin/pip freeze
mkdir venv/lib/python3.8/site-packages/Tst
cat > venv/lib/python3.8/site-packages/Tst/__init__.py << EOF
import typing
def go(x: typing.Union[int, str]) -> typing.Union[int, str]:
return x
EOF
mkdir venv/lib/python3.8/site-packages/Tst-stubs
cat > venv/lib/python3.8/site-packages/Tst-stubs/__init__.pyi << EOF
import typing
@typing.overload
def go(x: int) -> int: ...
@typing.overload
def go(x: str) -> str: ...
EOF
venv/bin/stubtest Tst
I expect no assertion errors. I think the example stubs in Tst would actually be valid (maybe...). I actually get an assertion error.
altendky@p1:~/repos/mypy$ venv/bin/stubtest Tst
Traceback (most recent call last):
File "venv/bin/stubtest", line 8, in <module>
sys.exit(main())
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 1165, in main
return test_stubs(parse_options(sys.argv[1:]))
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 1058, in test_stubs
for error in test_module(module):
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 180, in test_module
yield from verify(stub, runtime, [module_name])
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 222, in verify_mypyfile
yield from verify(
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 722, in verify_overloadedfuncdef
stub_sig = Signature.from_overloadedfuncdef(stub)
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 469, in from_overloadedfuncdef
assert func is not None
AssertionError
Your Environment
- Mypy version used: 89695cd (latest
master as of September 29, 2020 etc-details-about-TZ-etc)
- Mypy command-line flags:
stubtest Tst
- Mypy configuration options from
mypy.ini (and other config files): no mypy.ini file present
- Python version used: 3.8.5
- Operating system and version: Ubuntu 20.04.1 LTS
Full shell transcript
altendky@p1:~/repos/mypy$ git rev-parse HEAD
89695cd476a06108051637c85455a57042d0f988
altendky@p1:~/repos/mypy$ git status
On branch master
Your branch is ahead of 'origin/master' by 11 commits.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
altendky@p1:~/repos/mypy$ python3.8 -m venv venv
altendky@p1:~/repos/mypy$ venv/bin/python --version --version
Python 3.8.5 (default, Jul 29 2020, 21:06:26)
[GCC 9.3.0]
altendky@p1:~/repos/mypy$ venv/bin/pip install --upgrade pip setuptools wheel
Collecting pip
Using cached pip-20.2.3-py2.py3-none-any.whl (1.5 MB)
Collecting setuptools
Using cached setuptools-50.3.0-py3-none-any.whl (785 kB)
Collecting wheel
Using cached wheel-0.35.1-py2.py3-none-any.whl (33 kB)
Installing collected packages: pip, setuptools, wheel
Attempting uninstall: pip
Found existing installation: pip 20.1.1
Uninstalling pip-20.1.1:
Successfully uninstalled pip-20.1.1
Attempting uninstall: setuptools
Found existing installation: setuptools 47.1.0
Uninstalling setuptools-47.1.0:
Successfully uninstalled setuptools-47.1.0
Successfully installed pip-20.2.3 setuptools-50.3.0 wheel-0.35.1
altendky@p1:~/repos/mypy$ venv/bin/pip install .
Processing /home/altendky/repos/mypy
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting mypy-extensions<0.5.0,>=0.4.3
Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting typed-ast<1.5.0,>=1.4.0
Using cached typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl (768 kB)
Collecting typing-extensions>=3.7.4
Using cached typing_extensions-3.7.4.3-py3-none-any.whl (22 kB)
Building wheels for collected packages: mypy
Building wheel for mypy (PEP 517) ... done
Created wheel for mypy: filename=mypy-0.790+dev.89695cd476a06108051637c85455a57042d0f988-py3-none-any.whl size=2453379 sha256=a21b960fa716814f2d33678fe9ee390e7a204a191edd56eba1d44e8be1a586b3
Stored in directory: /tmp/pip-ephem-wheel-cache-5zjbvhko/wheels/44/2f/a8/acb7af991bc7b83e033c15f3c1cd55ba26ca406059a08afbae
Successfully built mypy
Installing collected packages: typing-extensions, typed-ast, mypy-extensions, mypy
Successfully installed mypy-0.790+dev.89695cd476a06108051637c85455a57042d0f988 mypy-extensions-0.4.3 typed-ast-1.4.1 typing-extensions-3.7.4.3
altendky@p1:~/repos/mypy$ venv/bin/pip freeze
mypy @ file:///home/altendky/repos/mypy
mypy-extensions==0.4.3
typed-ast==1.4.1
typing-extensions==3.7.4.3
altendky@p1:~/repos/mypy$ mkdir venv/lib/python3.8/site-packages/Tst
altendky@p1:~/repos/mypy$ cat > venv/lib/python3.8/site-packages/Tst/__init__.py << EOF
> import typing
>
>
> def go(x: typing.Union[int, str]) -> typing.Union[int, str]:
> return x
> EOF
altendky@p1:~/repos/mypy$ mkdir venv/lib/python3.8/site-packages/Tst-stubs
altendky@p1:~/repos/mypy$ cat > venv/lib/python3.8/site-packages/Tst-stubs/__init__.pyi << EOF
> import typing
>
>
> @typing.overload
> def go(x: int) -> int: ...
> @typing.overload
> def go(x: str) -> str: ...
> EOF
altendky@p1:~/repos/mypy$ venv/bin/stubtest Tst
Traceback (most recent call last):
File "venv/bin/stubtest", line 8, in <module>
sys.exit(main())
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 1165, in main
return test_stubs(parse_options(sys.argv[1:]))
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 1058, in test_stubs
for error in test_module(module):
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 180, in test_module
yield from verify(stub, runtime, [module_name])
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 222, in verify_mypyfile
yield from verify(
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 722, in verify_overloadedfuncdef
stub_sig = Signature.from_overloadedfuncdef(stub)
File "/home/altendky/repos/mypy/venv/lib/python3.8/site-packages/mypy/stubtest.py", line 469, in from_overloadedfuncdef
assert func is not None
AssertionError
Bug Report
When I run
stubtestagainstPyQt5, or a minimal example packageTst, I get anAssertionError. See a full shell transcript from the commands below at the end of this issue report.I expect no assertion errors. I think the example stubs in
Tstwould actually be valid (maybe...). I actually get an assertion error.Your Environment
masteras of September 29, 2020 etc-details-about-TZ-etc)stubtest Tstmypy.ini(and other config files): nomypy.inifile presentFull shell transcript
altendky@p1:~/repos/mypy$ git rev-parse HEAD 89695cd476a06108051637c85455a57042d0f988altendky@p1:~/repos/mypy$ python3.8 -m venv venvaltendky@p1:~/repos/mypy$ venv/bin/python --version --version Python 3.8.5 (default, Jul 29 2020, 21:06:26) [GCC 9.3.0]altendky@p1:~/repos/mypy$ venv/bin/pip install --upgrade pip setuptools wheel Collecting pip Using cached pip-20.2.3-py2.py3-none-any.whl (1.5 MB) Collecting setuptools Using cached setuptools-50.3.0-py3-none-any.whl (785 kB) Collecting wheel Using cached wheel-0.35.1-py2.py3-none-any.whl (33 kB) Installing collected packages: pip, setuptools, wheel Attempting uninstall: pip Found existing installation: pip 20.1.1 Uninstalling pip-20.1.1: Successfully uninstalled pip-20.1.1 Attempting uninstall: setuptools Found existing installation: setuptools 47.1.0 Uninstalling setuptools-47.1.0: Successfully uninstalled setuptools-47.1.0 Successfully installed pip-20.2.3 setuptools-50.3.0 wheel-0.35.1altendky@p1:~/repos/mypy$ venv/bin/pip freeze mypy @ file:///home/altendky/repos/mypy mypy-extensions==0.4.3 typed-ast==1.4.1 typing-extensions==3.7.4.3altendky@p1:~/repos/mypy$ mkdir venv/lib/python3.8/site-packages/Tstaltendky@p1:~/repos/mypy$ mkdir venv/lib/python3.8/site-packages/Tst-stubs