Repository navigation
Open
Labels
Description
Bug Report
mypy crashes on the example below instead of showing an error or not showing anything.
Encountered today while refactoring a pretty big codebase. Made an accidental mistake, hence the @dataclass(frozen=True)(kw_only=True), but the way Mypy fails won't allow me to find the culprit. I couldn't find a way to debug what was causing an error (--pdb option didn't work for me).
To Reproduce
from dataclasses import dataclass
@dataclass(frozen=True)(kw_only=True)
class Foo:
bar: strGist URL: https://gist.github.com/mypy-play/5b29c7aec29cbab55262d61d8c440ef3
Playground URL: https://mypy-play.net/?mypy=latest&python=3.11&gist=5b29c7aec29cbab55262d61d8c440ef3
Expected Behavior
Correctly identified error in the code, or at least no crash
Actual Behavior
mypy mypy_bug.py
Traceback (most recent call last):
File "/Users/misha/Dev/python-playground/.venv/bin/mypy", line 8, in <module>
sys.exit(console_entry())
^^^^^^^^^^^^^^^
File "/Users/misha/Dev/python-playground/.venv/lib/python3.11/site-packages/mypy/__main__.py", line 15, in console_entry
main()
File "mypy/main.py", line 94, in main
File "mypy/main.py", line 173, in run_build
File "mypy/build.py", line 195, in build
File "mypy/build.py", line 268, in _build
File "mypy/build.py", line 2927, in dispatch
File "mypy/build.py", line 3325, in process_graph
File "mypy/build.py", line 3420, in process_stale_scc
File "mypy/semanal_main.py", line 99, in semantic_analysis_for_scc
File "mypy/semanal_main.py", line 439, in apply_class_plugin_hooks
File "mypy/semanal_main.py", line 475, in apply_hooks_to_class
File "mypy/plugins/dataclasses.py", line 930, in dataclass_class_maker_callback
# contains additional info beyond (and possibly including) the
File "mypy/plugins/dataclasses.py", line 948, in _get_transform_spec
_is_kw_only))):
AssertionError: trying to find dataclass transform spec, but reason is neither dataclasses.dataclass nor decorated with typing.dataclass_transformYour Environment
- Mypy version used: 1.5.1 (also tried most recent from git, same)
- Mypy command-line flags: None
- Mypy configuration options from
mypy.ini(and other config files): None - Python version used: 3.11.5
Reacted by Ilya Priven and Sara Sinback
Activity
sinback commentedon Feb 27, 2025
I see this problem too. I have a python3.10 project which uses a library called marshmallow-dataclass so I bet it's the same root cause as OP. I tried several older mypy releases and found the same problem in every 1.X.0 mypy version after 1.0.0 (so, it was fine in 1.0.0, but not fine from 1.1.1, which pip tells me is the first release after 1.0.0, and onwards)