When None
is not valid default value you can always use undefined
.
from undefined import Undefined, undefined, resolve
def foo(bar: Undefined[int] = undefined) -> int:
return resolve(undefined, 10)
foo(1) # ok
foo(1.0) # error
a: Undefined[int] = 1 # ok
b: Undefined[int] = 0.5 # error
You should add undefined_mypy
to list of mypy plugins:
[mypy]
plugins = undefined.mypy