]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39366: Remove xpath() and xgtitle() methods of NNTP (GH-18035)
authorDong-hee Na <donghee.na92@gmail.com>
Wed, 22 Jan 2020 21:59:43 +0000 (06:59 +0900)
committerBerker Peksag <berker.peksag@gmail.com>
Wed, 22 Jan 2020 21:59:43 +0000 (00:59 +0300)
Doc/library/nntplib.rst
Doc/whatsnew/3.9.rst
Lib/nntplib.py
Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst [new file with mode: 0644]

index 76973651526a8ed36d21ea011051950f41cfb7a4..e7ec9047e015e6cd66f07ad09160cdb72bad8b4e 100644 (file)
@@ -542,33 +542,6 @@ them have been superseded by newer commands in :rfc:`3977`.
    if available.
 
 
-.. method:: NNTP.xpath(id)
-
-   Return a pair ``(resp, path)``, where *path* is the directory path to the
-   article with message ID *id*.  Most of the time, this extension is not
-   enabled by NNTP server administrators.
-
-   .. deprecated:: 3.3
-      The XPATH extension is not actively used.
-
-
-.. XXX deprecated:
-
-   .. method:: NNTP.xgtitle(name, *, file=None)
-
-      Process an ``XGTITLE`` command, returning a pair ``(response, list)``, where
-      *list* is a list of tuples containing ``(name, title)``. If the *file* parameter
-      is supplied, then the output of the  ``XGTITLE`` command is stored in a file.
-      If *file* is a string,  then the method will open a file with that name, write
-      to it  then close it.  If *file* is a :term:`file object`, then it will start
-      calling :meth:`write` on it to store the lines of the command output. If *file*
-      is supplied, then the returned *list* is an empty list. This is an optional NNTP
-      extension, and may not be supported by all servers.
-
-      :rfc:`2980` says "It is suggested that this extension be deprecated".  Use
-      :meth:`descriptions` or :meth:`description` instead.
-
-
 Utility functions
 -----------------
 
index f5835d68515ac23bfad20a7ae2102509de061c6e..d9c545adc43d69ca8da9bccbf26a638f3a490c2d 100644 (file)
@@ -363,6 +363,13 @@ Deprecated
 Removed
 =======
 
+* :class:`nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been removed.
+  These methods are deprecated since Python 3.3. Generally, these extensions
+  are not supported or not enabled by NNTP server administrators.
+  For ``xgtitle()``, please use :meth:`nntplib.NNTP.descriptions` or
+  :meth:`nntplib.NNTP.description` instead.
+  (Contributed by Dong-hee Na in :issue:`39366`.)
+
 * :class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been
   removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated
   since Python 3.2.
index 8951203f325c85fec5456ab7747e732db0461de8..aa9b46a8aaa3922690f1ce10f785a9287b23eb01 100644 (file)
@@ -67,7 +67,6 @@ import re
 import socket
 import collections
 import datetime
-import warnings
 import sys
 
 try:
@@ -834,44 +833,6 @@ class _NNTPBase:
         fmt = self._getoverviewfmt()
         return resp, _parse_overview(lines, fmt)
 
-    def xgtitle(self, group, *, file=None):
-        """Process an XGTITLE command (optional server extension) Arguments:
-        - group: group name wildcard (i.e. news.*)
-        Returns:
-        - resp: server response if successful
-        - list: list of (name,title) strings"""
-        warnings.warn("The XGTITLE extension is not actively used, "
-                      "use descriptions() instead",
-                      DeprecationWarning, 2)
-        line_pat = re.compile('^([^ \t]+)[ \t]+(.*)$')
-        resp, raw_lines = self._longcmdstring('XGTITLE ' + group, file)
-        lines = []
-        for raw_line in raw_lines:
-            match = line_pat.search(raw_line.strip())
-            if match:
-                lines.append(match.group(1, 2))
-        return resp, lines
-
-    def xpath(self, id):
-        """Process an XPATH command (optional server extension) Arguments:
-        - id: Message id of article
-        Returns:
-        resp: server response if successful
-        path: directory path to article
-        """
-        warnings.warn("The XPATH extension is not actively used",
-                      DeprecationWarning, 2)
-
-        resp = self._shortcmd('XPATH {0}'.format(id))
-        if not resp.startswith('223'):
-            raise NNTPReplyError(resp)
-        try:
-            [resp_num, path] = resp.split()
-        except ValueError:
-            raise NNTPReplyError(resp) from None
-        else:
-            return resp, path
-
     def date(self):
         """Process the DATE command.
         Returns:
diff --git a/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst b/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
new file mode 100644 (file)
index 0000000..00d98a7
--- /dev/null
@@ -0,0 +1,2 @@
+The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
+:class:`nntplib.NNTP` have been removed.