diff --git a/Doc/library/mailcap.rst b/Doc/library/mailcap.rst index 7749b7dd45ef..416b181f45a7 100644 --- a/Doc/library/mailcap.rst +++ b/Doc/library/mailcap.rst @@ -3,9 +3,14 @@ .. module:: mailcap :synopsis: Mailcap file handling. + :deprecated: **Source code:** :source:`Lib/mailcap.py` +.. deprecated:: 3.11 + The :mod:`mailcap` module is deprecated. See :pep:`594` for the rationale + and the :mod:`mimetypes` module for an alternative. + -------------- Mailcap files are used to configure how MIME-aware applications such as mail diff --git a/Doc/library/netdata.rst b/Doc/library/netdata.rst index 8955e859ab63..1541e2a54445 100644 --- a/Doc/library/netdata.rst +++ b/Doc/library/netdata.rst @@ -13,7 +13,6 @@ on the internet. email.rst json.rst - mailcap.rst mailbox.rst mimetypes.rst base64.rst diff --git a/Doc/library/superseded.rst b/Doc/library/superseded.rst index e3f9b0d37fe1..b38f16691f6e 100644 --- a/Doc/library/superseded.rst +++ b/Doc/library/superseded.rst @@ -20,9 +20,10 @@ backwards compatibility. They have been superseded by other modules. crypt.rst imghdr.rst imp.rst + mailcap.rst msilib.rst - nntplib.rst nis.rst + nntplib.rst optparse.rst ossaudiodev.rst pipes.rst diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index b812658d5e91..aa0a51b4375f 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -1061,6 +1061,7 @@ Deprecated * :mod:`chunk` * :mod:`crypt` * :mod:`imghdr` + * :mod:`mailcap` * :mod:`msilib` * :mod:`nis` * :mod:`nntplib` @@ -1071,7 +1072,8 @@ Deprecated * :mod:`sunau` * :mod:`telnetlib` - (Contributed by Brett Cannon in :issue:`47061`.) + (Contributed by Brett Cannon in :issue:`47061` and Victor Stinner in + :gh:`68966`.) Removed diff --git a/Lib/mailcap.py b/Lib/mailcap.py index ae416a8e9fb2..856b6a55475f 100644 --- a/Lib/mailcap.py +++ b/Lib/mailcap.py @@ -6,6 +6,12 @@ __all__ = ["getcaps","findmatch"] +_DEPRECATION_MSG = ('The {name} module is deprecated and will be removed in ' + 'Python {remove}. See the mimetypes module for an ' + 'alternative.') +warnings._deprecated(__name__, _DEPRECATION_MSG, remove=(3, 13)) + + def lineno_sort_key(entry): # Sort in ascending order, with unspecified entries at the end if 'lineno' in entry: diff --git a/Lib/test/test_mailcap.py b/Lib/test/test_mailcap.py index ef9cad498a75..97a8fac6e074 100644 --- a/Lib/test/test_mailcap.py +++ b/Lib/test/test_mailcap.py @@ -1,10 +1,15 @@ -import mailcap -import os import copy -import test.support -from test.support import os_helper -import unittest +import os import sys +import test.support +import unittest +import warnings +from test.support import os_helper +from test.support import warnings_helper + + +mailcap = warnings_helper.import_deprecated('mailcap') + # Location of mailcap file MAILCAPFILE = test.support.findfile("mailcap.txt") diff --git a/Misc/NEWS.d/next/Library/2022-04-26-09-09-07.gh-issue-68966.roapI2.rst b/Misc/NEWS.d/next/Library/2022-04-26-09-09-07.gh-issue-68966.roapI2.rst new file mode 100644 index 000000000000..5c9ffbf09f00 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-04-26-09-09-07.gh-issue-68966.roapI2.rst @@ -0,0 +1,3 @@ +The :mod:`mailcap` module is now deprecated and will be removed in Python 3.13. +See :pep:`594` for the rationale and the :mod:`mimetypes` module for an +alternative. Patch by Victor Stinner.