jenkins-bot merged this change.

View Change

Approvals: Framawiki: Looks good to me, approved jenkins-bot: Verified
[IMPR] Validate total parameter by api.py

Change-Id: I2620ecda1512ec222051296593c8dfbf054098a4
---
M pywikibot/data/api.py
M pywikibot/site.py
2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index 01137a8..1f8ca1f 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -2438,16 +2438,19 @@
more data to be retrieved from the API.

@param value: The value of maximum number of items to be retrieved
- in total to set.
- @type value: int
+ in total to set. Ignores None value.
+ @type value: int or str or None
"""
- self.limit = int(value)
- if self.query_increment and self.limit < self.query_increment:
- self.request[self.limit_name] = self.limit
- pywikibot.debug(u"%s: Set request item limit to %i"
- % (self.__class__.__name__, self.limit), _logger)
- pywikibot.debug(u"%s: Set limit (maximum_items) to %i."
- % (self.__class__.__name__, self.limit), _logger)
+ if value is not None and int(value) > 0:
+ self.limit = int(value)
+ if self.query_increment and self.limit < self.query_increment:
+ self.request[self.limit_name] = self.limit
+ pywikibot.debug('{0}: Set request item limit to {1}'
+ .format(self.__class__.__name__, self.limit),
+ _logger)
+ pywikibot.debug('{0}: Set limit (maximum_items) to {1}.'
+ .format(self.__class__.__name__, self.limit),
+ _logger)

def __iter__(self):
"""
@@ -2640,8 +2643,12 @@
prop=revisions), this is necessary to signal that only current
revision is to be returned.

+ @param value: The value of maximum number of items to be retrieved
+ in total to set. Ignores None value.
+ @type value: int or str or None
"""
- self.limit = int(value)
+ if value is not None:
+ self.limit = int(value)

def _update_limit(self):
"""Set query limit for self.module based on api response."""
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 0185915..ad28b7a 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1936,8 +1936,7 @@
gen = gen_class(**req_args)
if namespaces is not None:
gen.set_namespace(namespaces)
- if total is not None and int(total) > 0:
- gen.set_maximum_items(int(total))
+ gen.set_maximum_items(total)
return gen

def _request_class(self, kwargs):
@@ -8125,6 +8124,5 @@
parameters = dict(search=search, language=language, **kwargs)
gen = api.APIGenerator('wbsearchentities', data_name='search',
site=self, parameters=parameters)
- if total is not None:
- gen.set_maximum_items(total)
+ gen.set_maximum_items(total)
return gen

To view, visit change 416343. To unsubscribe, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I2620ecda1512ec222051296593c8dfbf054098a4
Gerrit-Change-Number: 416343
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Framawiki <framawiki@tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jayvdb@gmail.com>
Gerrit-Reviewer: Zoranzoki21 <zorandori4444@gmail.com>
Gerrit-Reviewer: jenkins-bot <>