jenkins-bot has submitted this change and it was merged.
Change subject: (bug 65156) use LooseVersion to compare mw versions
......................................................................
(bug 65156) use LooseVersion to compare mw versions
LooseVersion from distutils.version enables a more sensible way to
compare mw version directly e.g.
>>> from distutils.version import LooseVersion as LV
>>> LV("1.23wmf1") < LV("1.23wmf2") < LV("1.24") < LV("1.24wmf1") <
>>> LV("1.24wmf10") < LV("2.1")
True
Change-Id: I98c280bc1d89789475a30df31d0644807e6acdd6
---
M pywikibot/site.py
1 file changed, 10 insertions(+), 9 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 5e54f9f..d16c3c5 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -21,6 +21,7 @@
import os
import re
import sys
+from distutils.version import LooseVersion as LV
import threading
import time
import urllib
@@ -574,7 +575,7 @@
return decorator
-def need_version(number):
+def need_version(version):
""" Decorator to require a certain mediawiki version number.
@param number: the mw version number required
@@ -583,11 +584,11 @@
"""
def decorator(fn):
def callee(self, *args, **kwargs):
- if self.versionnumber() < number:
+ if LV(self.version()) < LV(version):
raise NotImplementedError(
u'Method or function "%s"\n'
- u"isn't implemented in mediawiki version < %d"
- % (fn.__name__, number))
+ u"isn't implemented in mediawiki version < %s"
+ % (fn.__name__, version))
return fn(self, *args, **kwargs)
callee.__name__ = fn.__name__
callee.__doc__ = fn.__doc__
@@ -649,7 +650,7 @@
14: [u"Category"],
15: [u"Category talk"],
}
- if self.family.versionnumber(self.code) >= 14:
+ if LV(self.family.version(self.code)) >= LV("1.14"):
self._namespaces[6] = [u"File"]
self._namespaces[7] = [u"File talk"]
self._msgcache = {}
@@ -2329,7 +2330,7 @@
if reverse:
rcgen.request["rcdir"] = "newer"
if pagelist:
- if self.versionnumber() > 14:
+ if LV(self.version()) > LV("1.14"):
pywikibot.warning(
u"recentchanges: pagelist option is disabled; ignoring.")
else:
@@ -3482,7 +3483,7 @@
step=step, total=total)
return wigen
- @need_version(18)
+ @need_version("1.18")
def broken_redirects(self, step=None, total=None):
"""Yield Pages without language links from Special:BrokenRedirects."""
brgen = self._generator(api.PageGenerator,
@@ -3491,7 +3492,7 @@
step=step, total=total)
return brgen
- @need_version(18)
+ @need_version("1.18")
def double_redirects(self, step=None, total=None):
"""Yield Pages without language links from Special:BrokenRedirects."""
drgen = self._generator(api.PageGenerator,
@@ -3500,7 +3501,7 @@
step=step, total=total)
return drgen
- @need_version(18)
+ @need_version("1.18")
def redirectpages(self, step=None, total=None):
"""Yield redirect pages from Special:ListRedirects."""
lrgen = self._generator(api.PageGenerator,
--
To view, visit https://gerrit.wikimedia.org/r/132741
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I98c280bc1d89789475a30df31d0644807e6acdd6
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits