dry-python / dry-python/returns

Mypy 1.6.1 fails with returns 0.21.0 on use of `curry.partial`

Abierto
#1,711 5 comentarios 1 reacción 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
4.4k
Forks
155
Merge medio
2 h 27 min
PR fusionados (30 d)
22

Descripción

# Bug report

I think mypy 1.6 has broken your plugin again. It seems like their API changes quite a lot. :(

## What's wrong

```python
my_partial = returns.curry.partial(foo, bar=baz(1))
reveal_type(my_partial)
```

Running mypy 1.6.1 against this, with the plugin installed and activated, results in:

```
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.6.1
Traceback (most recent call last):
File "mypy/checkexpr.py", line 5374, in accept
File "mypy/nodes.py", line 1907, in accept
File "mypy/checkexpr.py", line 452, in visit_call_expr
File "mypy/checkexpr.py", line 581, in visit_call_expr_inner
File "mypy/checkexpr.py", line 1420, in check_call_expr_with_callee_type
File "mypy/checkexpr.py", line 1514, in check_call
File "mypy/checkexpr.py", line 1734, in check_callable_call
File "mypy/checkexpr.py", line 1194, in apply_function_plugin
File "*/.venv/lib/python3.11/site-packages/returns/contrib/mypy/_features/partial.py", line 67, in analyze
).new_partial()
^^^^^^^^^^^^^
File "*/.venv/lib/python3.11/site-packages/returns/contrib/mypy/_features/partial.py", line 135, in new_partial
partial = self._create_partial_case(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "*/.venv/lib/python3.11/site-packages/returns/contrib/mypy/_features/partial.py", line 167, in _create_partial_case
).from_usage(self._applied_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "*/.venv/lib/python3.11/site-packages/returns/contrib/mypy/_typeops/inference.py", line 61, in from_usage
constraints = self._infer_constraints(applied_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "*/.venv/lib/python3.11/site-packages/returns/contrib/mypy/_typeops/inference.py", line 83, in _infer_constraints
constraints = infer_constraints_for_callable(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: infer_constraints_for_callable() missing required argument 'context' (pos 6)
```

## How is that should be

```
path/to/execution.py:21: note: Revealed type is "def (id: builtins.str, df: Any, *, schema: Union[builtins.str, None] =) -> FooBarBaz"
```

## System information

- `python` version: 3.11.4
- `returns` version: 0.21.0
- `mypy` version: 1.6.1

- `pytest` version (if any): 7.2.1

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.