I honestly wouldn't expect that flag to last forever because it exists purely to help with Python 2 -> 3 transitions. Since it fundamentally changes how things like comparison and `str()` work it isn't something to flip on needlessly and you would be better off using a type checker or linter to look for those sorts of errors.

As such, changing the C API specifically for this flag isn't something I personally would want to see.

On Thu, Jul 16, 2020 at 8:17 AM Shai Berger <shai@platonix.com> wrote:
Hi Pythonistas,

The -b flag, which turns on checks which emit BytesWarnings on
operations mixing bytes and str objects, is very useful.

However, the only way to set this flag is via the Python invocation.
This limits its usability in contexts where the user's control of the
Python invocation is limited, e.g when using Python embedded in another
executable (such as uwsgi). There appears to be no function which can
set the flag, and no environment variable which controls it.

Up to Python 3.7, the extension module provided by the bytes-warning
package[1] works around this (it exposes a function which allows
setting the flag from within Python). But with 3.8 (and I suspect,
because of PEP-587[2] related changes), this fails silently and the sys
flag bytes_warning remains unaffected.

Can we have a non-invocation way to control this flag?


[1] https://pypi.org/project/bytes-warning/
[2] https://www.python.org/dev/peps/pep-0587/
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/FV37A5SIQGY4VJ6ESUNAMVXHUXUHUVGO/
Code of Conduct: http://python.org/psf/codeofconduct/