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

Reply via email to