From 9f5339f874b62e7eac14f6d128d1517fafb36436 Mon Sep 17 00:00:00 2001 From: Bryan Tong Minh <bryan.tongminh@gmail.com> Date: Fri, 6 May 2011 21:52:09 +0000 Subject: [PATCH] Fix the wicked version parsing --- mwclient/RELEASE-NOTES.txt | 1 + mwclient/client.py | 19 +++++++------------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/mwclient/RELEASE-NOTES.txt b/mwclient/RELEASE-NOTES.txt index 4c7a8ad..34eabb5 100644 --- a/mwclient/RELEASE-NOTES.txt +++ b/mwclient/RELEASE-NOTES.txt @@ -7,6 +7,7 @@ This is mwclient 0.6.5. The following are the release notes for this version. on some versions of Python. * Fix for upload by URL * Handle readapidenied error in site init +* Fix version parsing for almost any sane version string == Changes in version 0.6.4 == * Added support for upload API diff --git a/mwclient/client.py b/mwclient/client.py index b5bc53d..d9bf6f1 100644 --- a/mwclient/client.py +++ b/mwclient/client.py @@ -114,18 +114,13 @@ class Site(object): if s[i] < '0' or s[i] > '9': break i += 1 - return int(s[:i]), s[i:] - # FIXME! Fix those awful two hacks - if len(version) == 2: - # An alpha version - self.version = (int(version[0]), ) + split_num(version[1]) - elif len(version) == 3 and 'rc' in version[2]: - # Release candidate - self.version = (int(version[0]), int(version[1]), version[2]) - elif len(version) == 3: - # Regular y.x.z version - self.version = (int(version[0]), int(version[1]), int(version[2])) - else: + if s[i:]: + return (int(s[:i]), s[i:], ) + else: + return (int(s[:i]), ) + self.version = sum((split_num(s) for s in version), ()) + + if len(self.version) < 2: raise errors.MediaWikiVersionError('Unknown MediaWiki %s' % '.'.join(version)) else: raise errors.MediaWikiVersionError('Unknown generator %s' % self.site['generator']) -- GitLab