On Tue, 20 Jan 2026 14:47:33 +0200 Gal Pressman wrote:
> The __exit__ method receives ex_type as the exception class when an
> exception occurs. The previous code used implicit boolean evaluation:
> 
>     terminate = self.terminate or (self._exit_wait and ex_type)
>                                                    ^^^^^^^^^^^
> 
> In Python, the and operator can be used with non-boolean values, but it
> does not always return a boolean result.
> 
> This is probably not what we want, because 'self._exit_wait and ex_type'
> could return the actual ex_type value (the exception class) rather than
> a boolean True when an exception occurs.
> 
> Use explicit `ex_type is not None` check to properly evaluate whether
> an exception occurred, returning a boolean result.

Sure, the checkers complain about this, but I don't see an actual bug
here. bool(terminate) must evaluate correctly, we don't compare it
to True or False explicitly.

To be clear - the patch LGTM, I'm just not connecting the dots on why
its a fix at this stage.
-- 
pw-bot: cr

Reply via email to