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 <i...@gno.de> Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com> Gerrit-Reviewer: Merlijn van Deen <valhall...@arctus.nl> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits