jenkins-bot submitted this change.

View Change

Approvals: Matěj Suchánek: Looks good to me, approved Xqt: Looks good to me, approved jenkins-bot: Verified
[IMPR] Avoid to many return statements in QueryGenerator.generator property

Change-Id: I2a974eb70127fe2dda930451df0e20a09dd86215
---
M pywikibot/data/api/_generators.py
1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/pywikibot/data/api/_generators.py b/pywikibot/data/api/_generators.py
index 5e6daa2..8164754 100644
--- a/pywikibot/data/api/_generators.py
+++ b/pywikibot/data/api/_generators.py
@@ -605,13 +605,15 @@
while True:
prev_limit, new_limit = self._handle_query_limit(
prev_limit, new_limit, previous_result_had_data)
+
if not hasattr(self, 'data'):
self.data = self.request.submit()
+
if not self.data or not isinstance(self.data, dict):
pywikibot.debug(
'{}: stopped iteration because no dict retrieved from api.'
.format(type(self).__name__))
- return
+ break

if 'query' in self.data and self.resultkey in self.data['query']:
resultdata = self._get_resultdata()
@@ -621,10 +623,12 @@
for item in self.data['query']['normalized']}
else:
self.normalized = {}
+
try:
yield from self._extract_results(resultdata)
except RuntimeError:
- return
+ break
+
# self.resultkey in data in last request.submit()
previous_result_had_data = True
else:
@@ -632,23 +636,27 @@
pywikibot.log("%s: 'query' not found in api response." %
self.__class__.__name__)
pywikibot.log(str(self.data))
+
# if (query-)continue is present, self.resultkey might not have
# been fetched yet
if self.continue_name not in self.data:
- # No results.
- return
+ break # No results.
+
# self.resultkey not in data in last request.submit()
# only "(query-)continue" was retrieved.
previous_result_had_data = False
+
if self.modules[0] == 'random':
# "random" module does not return "(query-)continue"
# now we loop for a new random query
del self.data # a new request is needed
continue
+
if self.continue_name not in self.data:
- return
+ break
+
if self.continue_update():
- return
+ break

del self.data # a new request with (query-)continue is needed


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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I2a974eb70127fe2dda930451df0e20a09dd86215
Gerrit-Change-Number: 845032
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged