Issue 27134: allow str(bytes) raises an exception to be controlled programmatically (original) (raw)
When I discovered str(b'bytes') in my Python 3 program was causing errors to be serialized to disk, I was unhappy. It turns out there is a command line option to turn it off, but the vulnerable serialization code is not going to be able to set that argument; or the one-argument-per-shebang limit we have in Linux was already used for something else.
Instead, provide a threadlocal variable that causes str(bytes) to raise. A context manager makes it simple to use for just a portion of your code:
with string.StrBytesRaises(): no_str_bytes_here()
If not set or False then Python behaves as before.