-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
crashtopic-descriptorsProperties, class vs. instance attributesProperties, class vs. instance attributes
Description
Crash Report
Running latest mypy master on typeshed's openpyxl stubs with property aliases can crash
Traceback
stubs\openpyxl\openpyxl\worksheet\_write_only.pyi:13: error: INTERNAL ERROR -- Please try using mypy
master on GitHub:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 1.18.0+dev.e8147f2bdcd8899109fe1a9cffc770c436de95dc
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Scripts\mypy.exe\__main__.py", line 10, in <module>
sys.exit(console_entry())
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\__main__.py", line 15, in console_entry
main()
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\main.py", line 127, in main
res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\main.py", line 211, in run_build
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 191, in build
result = _build(
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 267, in _build
graph = dispatch(sources, manager, stdout)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 2939, in
dispatch
process_graph(graph, manager)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 3337, in
process_graph
process_stale_scc(graph, scc, manager)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 3438, in
process_stale_scc
graph[id].type_check_first_pass()
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\build.py", line 2311, in
type_check_first_pass
self.type_checker().check_first_pass()
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 483, in check_first_pass
self.accept(d)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 594, in accept
stmt.accept(self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\nodes.py", line 1251, in
accept
return visitor.visit_class_def(self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 2598, in visit_class_def
self.accept(defn.defs)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 594, in accept
stmt.accept(self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\nodes.py", line 1332, in
accept
return visitor.visit_block(self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 3059, in visit_block
self.accept(s)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 594, in accept
stmt.accept(self)
~~~~~~~~~~~^^^^^^
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\nodes.py", line 1419, in
accept
return visitor.visit_assignment_stmt(self)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 3110, in visit_assignment_stmt
self.check_assignment(s.lvalues[-1], s.rvalue, s.type is None, s.new_syntax)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 3337, in check_assignment
self.check_compatibility_all_supers(lvalue, rvalue)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 3471, in check_compatibility_all_supers
lvalue_type, _ = self.node_type_from_base(lvalue_node.name, lvalue_node.info, lvalue)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checker.py", line 3617, in node_type_from_base
base_type = analyze_instance_member_access(name, instance, mx, base)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checkmember.py", line 386, in analyze_instance_member_access
return analyze_member_var_access(name, typ, info, mx)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checkmember.py", line 568, in analyze_member_var_access
return analyze_var(name, v, itype, mx, implicit=implicit, is_trivial_self=is_trivial_self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checkmember.py", line 912, in analyze_var
item = expand_and_bind_callable(p_ct, var, itype, name, mx, is_trivial_self)
File "E:\Users\Avasam\Documents\Git\typeshed\.venv\Lib\site-packages\mypy\checkmember.py", line 968, in expand_and_bind_callable
assert isinstance(expanded, CallableType)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError:
To Reproduce
- Fork https://github.com/Avasam/typeshed/tree/stubtest-property-alias
- This is the exact commit I was on: Avasam/typeshed@58fd978
- Install mypy from master
uv venv
uv pip install -r .\requirements-tests.txt
uv pip install git+https://github.com/python/mypy
- Run mypy:
uv run mypy ./stubs/openpyxl --show-traceback
For reference, this is the failing stub. Note that the error is on the first property alias that has a setter.
from openpyxl import _Decodable
from openpyxl.workbook.child import _WorkbookChild
from openpyxl.workbook.workbook import Workbook
from openpyxl.worksheet.worksheet import Worksheet
class WriteOnlyWorksheet(_WorkbookChild):
mime_type = Worksheet.mime_type
add_chart = Worksheet.add_chart
add_image = Worksheet.add_image
add_table = Worksheet.add_table
tables = Worksheet.tables
print_titles = Worksheet.print_titles
print_title_cols = Worksheet.print_title_cols # error: INTERNAL ERROR
print_title_rows = Worksheet.print_title_rows
freeze_panes = Worksheet.freeze_panes
print_area = Worksheet.print_area
sheet_view = Worksheet.sheet_view
def __init__(self, parent: Workbook | None, title: str | _Decodable | None) -> None: ...
@property
def closed(self) -> bool: ...
def close(self) -> None: ...
def append(self, row) -> None: ...
Your Environment
- Mypy version used: mypy 1.18.0+dev.e8147f2bdcd8899109fe1a9cffc770c436de95dc (compiled: no)
- Mypy command-line flags: None
- Mypy configuration options from
mypy.ini
(and other config files): None - Python version used: Python 3.13.1
- Operating system and version: Windows 10 Version 10.0.19045 Build 19045
Metadata
Metadata
Assignees
Labels
crashtopic-descriptorsProperties, class vs. instance attributesProperties, class vs. instance attributes