Crash with mypy plugin on mypy 0.961
emosenkis opened this issue · 3 comments
Bug report
What's wrong
Traceback (most recent call last):
File "mypy/checkexpr.py", line 3991, in accept
File "mypy/nodes.py", line 1760, in accept
File "mypy/checkexpr.py", line 305, in visit_call_expr
File "mypy/checkexpr.py", line 383, in visit_call_expr_inner
File "mypy/checkexpr.py", line 892, in check_call_expr_with_callee_type
File "mypy/checkexpr.py", line 957, in check_call
File "mypy/checkexpr.py", line 1085, in check_callable_call
File "mypy/checkexpr.py", line 763, in apply_function_plugin
File ".pyenv/versions/3.9.7/envs/venv/lib/python3.9/site-packages/returns/contrib/mypy/_features/partial.py", line 62, in analyze
return _PartialFunctionReducer(
File ".pyenv/versions/3.9.7/envs/venv/lib/python3.9/site-packages/returns/contrib/mypy/_features/partial.py", line 131, in new_partial
fallback, intermediate = self._create_intermediate(case_function)
File ".pyenv/versions/3.9.7/envs/venv/lib/python3.9/site-packages/returns/contrib/mypy/_features/partial.py", line 150, in _create_intermediate
return intermediate, analyze_call(
File ".pyenv/versions/3.9.7/envs/venv/lib/python3.9/site-packages/returns/contrib/mypy/_typeops/analtype.py", line 55, in analyze_call
messages = checker.msg if show_errors else checker.msg.clean_copy()
AttributeError: 'MessageBuilder' object has no attribute 'clean_copy'
How is that should be
Don't use MessageBuilder.clean_copy (removed in python/mypy#12631)
System information
-
pythonversion: 3.9 -
returnsversion: 0.19 -
mypyversion: 0.961 -
hypothesisversion (if any): -
pytestversion (if any):
Yes, this is a known issue. Please, use supported mypy version for now.
https://github.com/dry-python/returns/blob/master/pyproject.toml#L75
Is there a workaround, other than disabling the plugin?
Or is a fix allowing a later mypy version on the way?
(For me, not using latest mypy crashes mypy due to other bugs, so currently I'm unable to use the returns plugin. As a consequence I'm currently lacking much of the typing support that is critical to me.)
I will refactor our plugin to work with mypy@0.99
Plugin API is changing too fast :(