122982 Apr 2026

Rapidly turning a warning into a hard error can break environments. A longer warning period ensures developers see the notice without their builds immediately failing.

For most developers, this is rarely the intended result. Usually, someone using ~ on a boolean actually wants the logical NOT ( not True ), which correctly returns False . Because of this common point of confusion, the Python steering committee decided to deprecate bitwise inversion on booleans to encourage clearer coding practices. What’s New in Issue #122982? 122982

If your project currently triggers a DeprecationWarning when using ~ on a boolean, the fix is straightforward. Replace the bitwise operator with the logical not keyword: Rapidly turning a warning into a hard error

If you have ever accidentally used the bitwise inversion operator ( ~ ) on a Python boolean, you might have noticed it behaves in a way that is technically correct but logically confusing. As Python continues to refine its syntax for better clarity, Issue #122982 marks a small but important step in how the language handles these edge cases. The Problem: Why ~True Isn't False Usually, someone using ~ on a boolean actually

In Python, booleans are a subclass of integers. When you apply the bitwise NOT operator ( ~ ) to a boolean: ~True (which is ~1 ) evaluates to -2 . ~False (which is ~0 ) evaluates to -1 .

Python’s evolution is often about making the "obvious" way to do things the only way to do things. While Issue #122982 might seem like a minor administrative tweak in the CPython GitHub, it reflects the core philosophy of maintaining a stable, readable, and developer-friendly language.

It allows more time for the community to discuss if there are specific edge cases where bitwise inversion on bool remains necessary. How to Prepare Your Code

Discover more from Burning The Ground: DjPaulT's 80's and 90's Remixes

Subscribe now to keep reading and get access to the full archive.

Continue reading

25
0
Would love your thoughts, please comment.x
()
x