XZise has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/182756

Change subject: [IMPROV] Maintenance/wikimedia_sites rewrite
......................................................................

[IMPROV] Maintenance/wikimedia_sites rewrite

Uses the http library of pywikibot, handle_args instead of handleArgs
and doesn't use carriage returns.

Change-Id: I4e2f2990d27e59519523ee358948b1f5e3e94c05
---
M scripts/maintenance/wikimedia_sites.py
1 file changed, 18 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/56/182756/1

diff --git a/scripts/maintenance/wikimedia_sites.py 
b/scripts/maintenance/wikimedia_sites.py
index 83f2080..576bf02 100644
--- a/scripts/maintenance/wikimedia_sites.py
+++ b/scripts/maintenance/wikimedia_sites.py
@@ -12,15 +12,10 @@
 import re
 import codecs
 from xml.etree import cElementTree
-import sys
 
 import pywikibot
 from pywikibot.family import Family
-
-if sys.version_info[0] > 2:
-    from urllib.request import urlopen
-else:
-    from urllib import urlopen
+from pywikibot.comms.http import fetch
 
 URL = 'https://wikistats.wmflabs.org/api.php?action=dump&table=%s&format=xml'
 
@@ -46,8 +41,8 @@
         original = Family.load(family).languages_by_size
         obsolete = Family.load(family).obsolete
 
-        feed = urlopen(URL % familiesDict[family])
-        tree = cElementTree.parse(feed)
+        feed = fetch(URL % familiesDict[family]).content
+        tree = cElementTree.fromstring(feed)
 
         new = []
         for field in tree.findall('row/field'):
@@ -58,7 +53,7 @@
                 continue
 
         # put the missing languages to the right place
-        missing = original != new and set(original) - set(new)
+        missing = set(original) - set(new)
         if missing:
             pywikibot.output(u"WARNING: ['%s'] not listed at wikistats."
                              % "', '".join(missing))
@@ -74,32 +69,27 @@
             pywikibot.output(u'The lists match!')
         else:
             pywikibot.output(u"The lists don't match, the new list is:")
-            text = u'        self.languages_by_size = [\r\n'
-            line = ' ' * 11
+            text = u'        self.languages_by_size = [\n'
+            line = u''
             for code in new:
-                if len(line) + len(code) <= 76:
-                    line += u" '%s'," % code
-                else:
-                    text += u'%s\r\n' % line
-                    line = ' ' * 11
-                    line += u" '%s'," % code
-            text += u'%s\r\n' % line
+                if len(line) + len(code) > 80 - 11 - 4:
+                    text += u' ' * 11 + u'%s\n' % line
+                    line = u''
+                line += u" '%s'," % code
+            text += u' ' * 11
+            text += u'%s\n' % line
             text += u'        ]'
             pywikibot.output(text)
             family_file_name = 'pywikibot/families/%s_family.py' % family
-            family_file = codecs.open(family_file_name, 'r', 'utf8')
-            family_text = family_file.read()
+            with codecs.open(family_file_name, 'r', 'utf8') as family_file:
+                family_text = family_file.read()
             old = re.findall(r'(?msu)^ {8}self.languages_by_size.+?\]',
                              family_text)[0]
             family_text = family_text.replace(old, text)
-            family_file = codecs.open(family_file_name, 'w', 'utf8')
-            family_file.write(family_text)
-            family_file.close()
+            with codecs.open(family_file_name, 'w', 'utf8') as family_file:
+                family_file.write(family_text)
 
 
 if __name__ == '__main__':
-    fam = []
-    for arg in pywikibot.handleArgs():
-        if arg in familiesDict.keys() and arg not in fam:
-            fam.append(arg)
-    update_family(fam)
+    fams = set(arg for arg in pywikibot.handle_args() if arg in familiesDict)
+    update_family(fams)

-- 
To view, visit https://gerrit.wikimedia.org/r/182756
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e2f2990d27e59519523ee358948b1f5e3e94c05
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <commodorefabia...@gmx.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to