[issue43526] Programmatic management of BytesWarning doesn't work for native triggers.

Xavier Morel report at bugs.python.org
Sat Aug 7 15:33:07 EDT 2021


Xavier Morel <xavier.morel at masklinn.net> added the comment:

> If working Python 3 program suddenly became emitting BytesWarning it will confuse users.

Oh yeah no I meant making it a normal warning, without needing the `-b` flag, not enabling it by default.

Because controlling / configuring warnings can be done programmatically and dynamically from inside the program, but in my understanding -b is either set or unset when calling it, if you're not setting it you're SOL. Or so I understand, I didn't find any switch accessible from inside the Python program.

> I think it would work. But it is significant amount of work (add corresponding C API, parsing and copying code, documentation, tests)

Wouldn't it just be removing the check on `-b` in the tp_str slot of bytes and bytearray?

> and for small benefit. Would not be better to filter out warnings by message?

Well yes and no, my issue remains the one from the beginning: it's quite easy to unexpectedly stringify bytes, which usually isn't what's desired. Ensuring that doesn't happen requires making sure every developer and environment (non-production at least) does run python with -b to enable the warning, which is not as easy as the software being able to set that internally (which is doable for various deprecation warnings and friends).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue43526>
_______________________________________


More information about the Python-bugs-list mailing list