jenkins-bot submitted this change.

View Change


Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[cleanup] remove keys() and items() methods of api.Request

- remove keys() and items() methods of api.Request because they are
already inherited from MutableMapping (but as view instead a list).
- deprecate iteritems() method; items should be used instead.

Bug: T310953
Change-Id: I800d6b3686d7d5fff579b0d49ff9b1a64ebc88ef
---
M ROADMAP.rst
M pywikibot/data/api/_requests.py
2 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/ROADMAP.rst b/ROADMAP.rst
index 5286bd6..7535ee9 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -32,6 +32,7 @@
Deprecations
------------

+* 9.0.0: ``iteritems`` method of :class:`data.api.Request` will be removed in favour of ``items``
* 9.0.0: ``SequenceOutputter.output()`` is deprecated in favour of :attr:`tools.formatter.SequenceOutputter.out` property
* 9.0.0: *nullcontext* context manager and *SimpleQueue* queue of :mod:`backports` are derecated
* 8.4.0: *modules_only_mode* parameter of :class:`data.api.ParamInfo`, its *paraminfo_keys* class attribute
diff --git a/pywikibot/data/api/_requests.py b/pywikibot/data/api/_requests.py
index 61dad40..9cb8a99 100644
--- a/pywikibot/data/api/_requests.py
+++ b/pywikibot/data/api/_requests.py
@@ -38,7 +38,7 @@
)
from pywikibot.login import LoginStatus
from pywikibot.textlib import removeDisabledParts, removeHTMLParts
-from pywikibot.tools import PYTHON_VERSION
+from pywikibot.tools import PYTHON_VERSION, deprecated


__all__ = ('CachedRequest', 'Request', 'encode_url')
@@ -130,7 +130,10 @@
['namespaces', 'userinfo']

.. versionchanged:: 8.4
- inherited from WaitingMixin.
+ inherited from :class:`WaitingMixin`.
+
+ .. versionchanged:: 9.0
+ *keys* and *items* methods return a view object instead a list
"""

# To make sure the default value of 'parameters' can be identified.
@@ -382,10 +385,6 @@
"""Implement dict interface."""
del self._params[key]

- def keys(self):
- """Implement dict interface."""
- return list(self._params)
-
def __iter__(self):
"""Implement dict interface."""
return iter(self._params)
@@ -394,13 +393,14 @@
"""Implement dict interface."""
return len(self._params)

+ @deprecated('items()', since='9.0.0')
def iteritems(self):
- """Implement dict interface."""
- return iter(self._params.items())
+ """Implement dict interface.

- def items(self):
- """Return a list of tuples containing the parameters in any order."""
- return list(self._params.items())
+ .. deprecated:: 9.0
+ Use ``items()`` instead.
+ """
+ return iter(self.items())

def _add_defaults(self):
"""

To view, visit change 981476. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I800d6b3686d7d5fff579b0d49ff9b1a64ebc88ef
Gerrit-Change-Number: 981476
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged