jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/375064 )

Change subject: Move functions related to building extension lists into mw.py
......................................................................


Move functions related to building extension lists into mw.py

Also explicitly mention the dependency upon requests in
requirements.txt.

Change-Id: I11e7ce414d2a76e5e59d3f5b45ae0bab2940f5ca
---
A mw.py
M requirements.txt
M run.py
3 files changed, 60 insertions(+), 35 deletions(-)

Approvals:
  Legoktm: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/mw.py b/mw.py
new file mode 100644
index 0000000..1497e98
--- /dev/null
+++ b/mw.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+"""
+Common functions for MediaWiki stuff things.
+Copyright (C) 2017 Kunal Mehta <lego...@member.fsf.org>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+"""
+
+import prefetch_generator
+import requests
+
+
+s = requests.session()
+
+
+@prefetch_generator.background()
+def get_extension_list(library):
+    r = 
s.get('https://www.mediawiki.org/w/api.php?action=query&list=extdistrepos&formatversion=2&format=json')
+    for ext in r.json()['query']['extdistrepos']['extensions']:
+        version = repo_info('mediawiki/extensions/' + ext, library)
+        if version:
+            yield {'ext': ext, 'version': version}
+
+
+def repo_info(repo: str, library: str):
+    phab = get_phab_file(repo, 'composer.json')
+    if phab:
+        version = phab.get('require-dev', {}).get(library)
+        if version:
+            return version
+    return None
+
+
+def get_phab_file(gerrit_name, path):
+    url = 
'https://phabricator.wikimedia.org/r/p/{};browse/master/{}?view=raw'.format(gerrit_name,
 path)
+    # url = 
'https://raw.githubusercontent.com/wikimedia/{}/master/{}'.format(gerrit_name.replace('/',
 '-'), path)
+    print('Fetching ' + url)
+    r = s.get(url)
+    try:
+        return r.json()
+    except:
+        return None
diff --git a/requirements.txt b/requirements.txt
index 1952b2e..8cf18f0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,2 @@
 prefetch_generator
+requests
diff --git a/run.py b/run.py
index 4a2666d..5569fce 100755
--- a/run.py
+++ b/run.py
@@ -20,13 +20,13 @@
 from collections import defaultdict
 import json
 import os
-import prefetch_generator
-import requests
 import sys
 
 import app
 import docker
+import mw
 
+CODESNIFFER = 'mediawiki/mediawiki-codesniffer'
 CONCURRENT = 10
 DOCKER_IMAGE = 'libraryupgrader'
 VERSIONS = ['same', 'dev-master']
@@ -36,37 +36,6 @@
         CONFIG = json.load(f)
 else:
     CONFIG = {}
-
-s = requests.session()
-
-
-@prefetch_generator.background()
-def get_extension_list(library):
-    r = 
s.get('https://www.mediawiki.org/w/api.php?action=query&list=extdistrepos&formatversion=2&format=json')
-    for ext in r.json()['query']['extdistrepos']['extensions']:
-        phab = get_phab_file('mediawiki/extensions/' + ext, 'composer.json')
-        if phab:
-            version = phab.get('require-dev', {}).get(library)
-            if version:
-                yield {'ext': ext, 'version': version}
-
-
-def get_phab_file(gerrit_name, path):
-    url = 
'https://phabricator.wikimedia.org/r/p/{};browse/master/{}?view=raw'.format(gerrit_name,
 path)
-    # url = 
'https://raw.githubusercontent.com/wikimedia/{}/master/{}'.format(gerrit_name.replace('/',
 '-'), path)
-    print('Fetching ' + url)
-    r = s.get(url)
-    try:
-        return r.json()
-    except:
-        return None
-
-
-def has_codesniffer(ext_name):
-    d = get_phab_file('mediawiki/extensions/' + ext_name, 'composer.json')
-    if d:
-        return d.get('require-dev', {}).get('mediawiki/mediawiki-codesniffer', 
False)
-    return False
 
 
 def run(ext_name, version, mode):
@@ -101,7 +70,7 @@
     data = defaultdict(dict)
     for version in VERSIONS:
         cleanup = set()
-        for info in get_extension_list('mediawiki/mediawiki-codesniffer'):
+        for info in mw.get_extension_list(CODESNIFFER):
             # Save PHPCS version
             data[info['ext']]['PHPCS'] = info['version']
             run(info['ext'], version=version, mode='test')
@@ -140,7 +109,9 @@
             version = sys.argv[2]
         except IndexError:
             version = 'dev-master'
-        if not has_codesniffer(sys.argv[1]):
+
+        info = mw.repo_info('mediawiki/extensions/' + sys.argv[1], CODESNIFFER)
+        if not info:
             print('Doesnt have codesniffer.')
             sys.exit(1)
         run(sys.argv[1], version=version, mode=mode)

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I11e7ce414d2a76e5e59d3f5b45ae0bab2940f5ca
Gerrit-PatchSet: 1
Gerrit-Project: labs/libraryupgrader
Gerrit-Branch: master
Gerrit-Owner: Legoktm <lego...@member.fsf.org>
Gerrit-Reviewer: Legoktm <lego...@member.fsf.org>
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