Open
Description
What is wrong?
Lots of places in the codebase do assertions like isinstance(v, int)
to check that something is an integer. Since python considers True
and False
to be integer types these checks won't disallow passing in a bool
value.
How can it be fixed
Probably need to add a single utility and make use of it everywhere that we do these checks.
def assert_strictly_integer(v):
assert isinstance(v, int) and not isinstance(v, bool)