returns icon indicating copy to clipboard operation
returns copied to clipboard

Crash with mypy plugin on mypy 0.961

Open emosenkis opened this issue 3 years ago • 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 https://github.com/python/mypy/pull/12631)

System information

  • python version: 3.9

  • returns version: 0.19

  • mypy version: 0.961

  • hypothesis version (if any):

  • pytest version (if any):

emosenkis avatar Jun 29 '22 14:06 emosenkis

Yes, this is a known issue. Please, use supported mypy version for now. https://github.com/dry-python/returns/blob/master/pyproject.toml#L75

sobolevn avatar Jun 29 '22 18:06 sobolevn

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.)

carlwr avatar Nov 05 '22 17:11 carlwr

I will refactor our plugin to work with [email protected]

Plugin API is changing too fast :(

sobolevn avatar Nov 05 '22 18:11 sobolevn