diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2021-06-24 19:57:55 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-24 19:57:55 (GMT) |
commit | a80a38ee9a7b2e26dba848793cc298d8435fddd5 (patch) | |
tree | 23543b6fdfb11076b6db2393cb27701d1bec3dcc /Lib | |
parent | 11f1a30cdb59f9da0209798d2057f7afacbd9547 (diff) | |
download | cpython-a80a38ee9a7b2e26dba848793cc298d8435fddd5.zip cpython-a80a38ee9a7b2e26dba848793cc298d8435fddd5.tar.gz cpython-a80a38ee9a7b2e26dba848793cc298d8435fddd5.tar.bz2 |
[3.10] bpo-44498: Issue a deprecation warning on asynchat, asyncore and smtpd import (GH-26882) (GH-26904)
* Issue a deprecation warning on smtpd import
* Also issue DeprecationWarnings for asynchat and asyncore
* Fix some tests
* test___all__ requires the word 'module' or 'package' in the deprecation
warning text, so add those to smtpd, asynchat, and asyncore.
* In test_support, use pprint now instead of asyncore as the landmark.
* Add What's New
* Use ..deprecated::
* Use ..deprecated::
* Update Lib/smtpd.py
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
* Update Doc/library/smtpd.rst
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
* Import async{hat,ore} after the DeprecationWarning for this module
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
(cherry picked from commit 8488b85c6397fe58f17fc00e047044c959ac0b04)
Co-authored-by: Barry Warsaw <barry@python.org>
Automerge-Triggered-By: GH:warsaw
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/asynchat.py | 8 | ||||
-rw-r--r-- | Lib/asyncore.py | 7 | ||||
-rwxr-xr-x | Lib/smtpd.py | 15 | ||||
-rw-r--r-- | Lib/test/test_support.py | 4 |
4 files changed, 30 insertions, 4 deletions
diff --git a/Lib/asynchat.py b/Lib/asynchat.py index f4ba361..de26ffa 100644 --- a/Lib/asynchat.py +++ b/Lib/asynchat.py @@ -48,6 +48,14 @@ you - by calling your self.found_terminator() method. import asyncore from collections import deque +from warnings import warn +warn( + 'The asynchat module is deprecated. ' + 'The recommended replacement is asyncio', + DeprecationWarning, + stacklevel=2) + + class async_chat(asyncore.dispatcher): """This is an abstract class. You must derive from this class, and add diff --git a/Lib/asyncore.py b/Lib/asyncore.py index eeea488..b1eea4b 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -57,6 +57,13 @@ from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, EINVAL, \ ENOTCONN, ESHUTDOWN, EISCONN, EBADF, ECONNABORTED, EPIPE, EAGAIN, \ errorcode +warnings.warn( + 'The asyncore module is deprecated. ' + 'The recommended replacement is asyncio', + DeprecationWarning, + stacklevel=2) + + _DISCONNECTED = frozenset({ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED, EPIPE, EBADF}) diff --git a/Lib/smtpd.py b/Lib/smtpd.py index 1e2adc8..bc43331 100755 --- a/Lib/smtpd.py +++ b/Lib/smtpd.py @@ -83,8 +83,6 @@ import errno import getopt import time import socket -import asyncore -import asynchat import collections from warnings import warn from email._header_value_parser import get_addr_spec, get_angle_addr @@ -94,6 +92,19 @@ __all__ = [ "MailmanProxy", ] +warn( + 'The smtpd module is deprecated and unmaintained. Please see aiosmtpd ' + '(https://aiosmtpd.readthedocs.io/) for the recommended replacement.', + DeprecationWarning, + stacklevel=2) + + +# These are imported after the above warning so that users get the correct +# deprecation warning. +import asyncore +import asynchat + + program = sys.argv[0] __version__ = 'Python SMTP proxy version 0.3' diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 55d78b7..b1d3411 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -292,8 +292,8 @@ class TestSupport(unittest.TestCase): def test_CleanImport(self): import importlib - with import_helper.CleanImport("asyncore"): - importlib.import_module("asyncore") + with import_helper.CleanImport("pprint"): + importlib.import_module("pprint") def test_DirsOnSysPath(self): with import_helper.DirsOnSysPath('foo', 'bar'): |