We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Given this code:
from typing import Tuple from math import hypot from functools import partial def dist(p: Tuple[float, float], q: Tuple[float, float]) -> float: px, py = p qx, qy = q return hypot(px - qx, py - qy) base = (1.9, 7.5) targets = [(3,7), (2,6), (1,8), (0,7)] def make_fixed_dist(q): def fixed_dist(p): return dist(p, q) return fixed_dist print( min(targets, key=make_fixed_dist(base)) ) print( min(targets, key=partial(dist, base)) )
mypy cheerfully accepts the closure but chokes on the equivalent partial:
$ mypy tmp.py tmp.py:19: error: No overload variant of "min" matches argument types [builtins.list[Tuple[builtins.int, builtins.int]], functools.partial[builtins.float*]]
The text was updated successfully, but these errors were encountered:
Mypy doesn't fully support partial (#1484), and because of the way the stub for partial is written, you also get bitten by #797.
partial
Sorry, something went wrong.
def test(x: str, y: int): pass z1 = partial(test, 42) z2 = partial(test, 42, 6.7)
It also does not generate any warnings.
The original snippet provided by @rhettinger no longer causes mypy to emit an error. There are still issues with mypy's support for functools.partial, but #1484 is the better place to discuss those.
functools.partial
No branches or pull requests
Given this code:
mypy cheerfully accepts the closure but chokes on the equivalent partial:
The text was updated successfully, but these errors were encountered: