Originally, the plan was to move toward a full error or a more aggressive deprecation schedule. However, Issue #122982 proposes . This extension serves a few key purposes:
is_active = True status = ~is_active # Returns -2, triggers warning Use code with caution. Copied to clipboard is_active = True status = not is_active # Returns False Use code with caution. Copied to clipboard Conclusion
This blog post addresses in the CPython repository, which focuses on extending the deprecation warning period for bitwise inversion on boolean types in Python. 122982
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 Development Update: Extending the Deprecation Warning for ~bool (Issue #122982) Originally, the plan was to move toward a
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.
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: Copied to clipboard is_active = True status =
Keep an eye on your console for those DeprecationWarnings —they are there to help you stay ahead of the curve!