What about:
query = query.filter(bool(User.died_at) == has_died)
It returns:
False if User.died_at is None and has_died is TrueTrue if User.died_at is None and has_died is FalseTrue if User.died_at not None but has_died is TrueFalse if User.died_at not None but has_died is False
What intentional behavior ...
But then again, I'm not sure if this is easier to understand than your piece of code!
source share