Skip to content

Commit

Permalink
pythongh-105376: Restore deprecated logging warn() method (python#122775
Browse files Browse the repository at this point in the history
)

This reverts commit dcc028d and
commit 6c54e5d.

Keep the deprecated logging warn() method in Python 3.13.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
  • Loading branch information
3 people authored Aug 9, 2024
1 parent b4a3160 commit d323997
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 24 deletions.
3 changes: 3 additions & 0 deletions Doc/deprecations/pending-removal-in-future.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ although there is currently no date scheduled for their removal.
* ``EntryPoints`` tuple interface.
* Implicit ``None`` on return values.

* :mod:`logging`: the ``warn()`` method has been deprecated
since Python 3.3, use :meth:`~logging.warning()` instead.

* :mod:`mailbox`: Use of StringIO input and text mode is deprecated, use
BytesIO and binary mode instead.

Expand Down
17 changes: 4 additions & 13 deletions Doc/library/logging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -352,10 +352,6 @@ in a module, ``__name__`` is the module's name in the Python package namespace.
.. versionchanged:: 3.8
The *stacklevel* parameter was added.

.. versionchanged:: 3.13
Remove the undocumented ``warn()`` method which was an alias to the
:meth:`warning` method.


.. method:: Logger.info(msg, *args, **kwargs)

Expand All @@ -368,6 +364,10 @@ in a module, ``__name__`` is the module's name in the Python package namespace.
Logs a message with level :const:`WARNING` on this logger. The arguments are
interpreted as for :meth:`debug`.

.. note:: There is an obsolete method ``warn`` which is functionally
identical to ``warning``. As ``warn`` is deprecated, please do not use
it - use ``warning`` instead.

.. method:: Logger.error(msg, *args, **kwargs)

Logs a message with level :const:`ERROR` on this logger. The arguments are
Expand Down Expand Up @@ -1124,11 +1124,6 @@ information into logging calls. For a usage example, see the section on
Attribute :attr:`!manager` and method :meth:`!_log` were added, which
delegate to the underlying logger and allow adapters to be nested.

.. versionchanged:: 3.13

Remove the undocumented :meth:`!warn`` method which was an alias to the
:meth:`!warning` method.

.. versionchanged:: 3.13

The *merge_extra* argument was added.
Expand Down Expand Up @@ -1224,10 +1219,6 @@ functions.
identical to ``warning``. As ``warn`` is deprecated, please do not use
it - use ``warning`` instead.

.. versionchanged:: 3.13
Remove the undocumented ``warn()`` function which was an alias to the
:func:`warning` function.


.. function:: error(msg, *args, **kwargs)

Expand Down
10 changes: 0 additions & 10 deletions Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1397,16 +1397,6 @@ locale
use ``locale.setlocale(locale.LC_ALL, "")`` instead.
(Contributed by Victor Stinner in :gh:`104783`.)

logging
-------

* :mod:`logging`: Remove undocumented and untested ``Logger.warn()`` and
``LoggerAdapter.warn()`` methods and ``logging.warn()`` function. Deprecated
since Python 3.3, they were aliases to the :meth:`logging.Logger.warning`
method, :meth:`!logging.LoggerAdapter.warning` method and
:func:`logging.warning` function.
(Contributed by Victor Stinner in :gh:`105376`.)

pathlib
-------

Expand Down
17 changes: 16 additions & 1 deletion Lib/logging/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
'captureWarnings', 'critical', 'debug', 'disable', 'error',
'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass',
'info', 'log', 'makeLogRecord', 'setLoggerClass', 'shutdown',
'warning', 'getLogRecordFactory', 'setLogRecordFactory',
'warn', 'warning', 'getLogRecordFactory', 'setLogRecordFactory',
'lastResort', 'raiseExceptions', 'getLevelNamesMapping',
'getHandlerByName', 'getHandlerNames']

Expand Down Expand Up @@ -1530,6 +1530,11 @@ def warning(self, msg, *args, **kwargs):
if self.isEnabledFor(WARNING):
self._log(WARNING, msg, args, **kwargs)

def warn(self, msg, *args, **kwargs):
warnings.warn("The 'warn' method is deprecated, "
"use 'warning' instead", DeprecationWarning, 2)
self.warning(msg, *args, **kwargs)

def error(self, msg, *args, **kwargs):
"""
Log 'msg % args' with severity 'ERROR'.
Expand Down Expand Up @@ -1906,6 +1911,11 @@ def warning(self, msg, *args, **kwargs):
"""
self.log(WARNING, msg, *args, **kwargs)

def warn(self, msg, *args, **kwargs):
warnings.warn("The 'warn' method is deprecated, "
"use 'warning' instead", DeprecationWarning, 2)
self.warning(msg, *args, **kwargs)

def error(self, msg, *args, **kwargs):
"""
Delegate an error call to the underlying logger.
Expand Down Expand Up @@ -2169,6 +2179,11 @@ def warning(msg, *args, **kwargs):
basicConfig()
root.warning(msg, *args, **kwargs)

def warn(msg, *args, **kwargs):
warnings.warn("The 'warn' function is deprecated, "
"use 'warning' instead", DeprecationWarning, 2)
warning(msg, *args, **kwargs)

def info(msg, *args, **kwargs):
"""
Log a message with severity 'INFO' on the root logger. If the logger has
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Restore the deprecated :mod:`logging` ``warn()`` method. It was removed in
Python 3.13 alpha 1. Keep the deprecated ``warn()`` method in Python 3.13.
Patch by Victor Stinner.

0 comments on commit d323997

Please sign in to comment.