gh-73427: deprecate _enablelegacywindowsfsencoding (#107729)

This commit is contained in:
Inada Naoki 2023-12-28 17:31:19 +09:00 committed by GitHub
parent 7ab9efdd6a
commit bfee2f77e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 0 deletions

View File

@ -1744,9 +1744,17 @@ always available.
.. availability:: Windows. .. availability:: Windows.
.. note::
Changing the filesystem encoding after Python startup is risky because
the old fsencoding or paths encoded by the old fsencoding may be cached
somewhere. Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead.
.. versionadded:: 3.6 .. versionadded:: 3.6
See :pep:`529` for more details. See :pep:`529` for more details.
.. deprecated-removed:: 3.13 3.16
Use :envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead.
.. data:: stdin .. data:: stdin
stdout stdout
stderr stderr

View File

@ -474,6 +474,10 @@ Deprecated
security and functionality bugs. This includes removal of the ``--cgi`` security and functionality bugs. This includes removal of the ``--cgi``
flag to the ``python -m http.server`` command line in 3.15. flag to the ``python -m http.server`` command line in 3.15.
* :mod:`sys`: :func:`sys._enablelegacywindowsfsencoding` function.
Replace it with :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment variable.
(Contributed by Inada Naoki in :gh:`73427`.)
* :mod:`traceback`: * :mod:`traceback`:
* The field *exc_type* of :class:`traceback.TracebackException` is * The field *exc_type* of :class:`traceback.TracebackException` is

View File

@ -0,0 +1,2 @@
Deprecate :func:`sys._enablelegacywindowsfsencoding`. Use
:envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead. Patch by Inada Naoki.

View File

@ -1715,6 +1715,13 @@ static PyObject *
sys__enablelegacywindowsfsencoding_impl(PyObject *module) sys__enablelegacywindowsfsencoding_impl(PyObject *module)
/*[clinic end generated code: output=f5c3855b45e24fe9 input=2bfa931a20704492]*/ /*[clinic end generated code: output=f5c3855b45e24fe9 input=2bfa931a20704492]*/
{ {
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"sys._enablelegacywindowsfsencoding() is deprecated and will be "
"removed in Python 3.16. Use PYTHONLEGACYWINDOWSFSENCODING "
"instead.", 1))
{
return NULL;
}
if (_PyUnicode_EnableLegacyWindowsFSEncoding() < 0) { if (_PyUnicode_EnableLegacyWindowsFSEncoding() < 0) {
return NULL; return NULL;
} }