mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
bpo-39366: Remove xpath() and xgtitle() methods of NNTP (GH-18035)
This commit is contained in:
parent
b477d19a6b
commit
1f0f102dec
4 changed files with 9 additions and 66 deletions
|
@ -542,33 +542,6 @@ them have been superseded by newer commands in :rfc:`3977`.
|
||||||
if available.
|
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
|
Utility functions
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
|
@ -363,6 +363,13 @@ Deprecated
|
||||||
Removed
|
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
|
* :class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been
|
||||||
removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated
|
removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated
|
||||||
since Python 3.2.
|
since Python 3.2.
|
||||||
|
|
|
@ -67,7 +67,6 @@ import re
|
||||||
import socket
|
import socket
|
||||||
import collections
|
import collections
|
||||||
import datetime
|
import datetime
|
||||||
import warnings
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -834,44 +833,6 @@ class _NNTPBase:
|
||||||
fmt = self._getoverviewfmt()
|
fmt = self._getoverviewfmt()
|
||||||
return resp, _parse_overview(lines, fmt)
|
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):
|
def date(self):
|
||||||
"""Process the DATE command.
|
"""Process the DATE command.
|
||||||
Returns:
|
Returns:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
|
||||||
|
:class:`nntplib.NNTP` have been removed.
|
Loading…
Add table
Add a link
Reference in a new issue