jenkins-bot has submitted this change and it was merged.
Change subject: (bugfix) follow-up for
https://gerrit.wikimedia.org/r/#/c/112195/
......................................................................
(bugfix) follow-up for
https://gerrit.wikimedia.org/r/#/c/112195/
Since the last committ we use Site.fromDBName() to get the the site
code instead extracting them directly. Site.fromDBName() creates a
site object and this may fail with NoSuchSite exception if the
dbname returned by wikidata is a obsolete site. Unfortunately
that may occur.
In this case we can no longer test against that exception outside
generator because the site object is already been created but we
must check it inside the generator. This is impossible for
generator expressions. We need a generator method instead.
Change-Id: I990b0d65909fe9f2adfec96a270b88bb62336360
---
M scripts/featured.py
1 file changed, 20 insertions(+), 15 deletions(-)
Approvals:
Pyfisch: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/featured.py b/scripts/featured.py
index 9db0162..5277e53 100644
--- a/scripts/featured.py
+++ b/scripts/featured.py
@@ -242,19 +242,27 @@
def itercode(self, task):
""" generator for site codes to be processed """
- if task == 'good':
- item_no = good_name['wikidata'][1]
- elif task == 'featured':
- item_no = featured_name['wikidata'][1]
- elif task == 'former':
- item_no = former_name['wikidata'][1]
- dp = pywikibot.ItemPage(self.site.data_repository(), item_no)
- dp.get()
- generator = (site.code for site in
- sorted([self.site.fromDBName(key)
- for key in dp.sitelinks.keys()])
- if site.family == self.site.family) # wikipedia sites only
+ def _generator():
+ if task == 'good':
+ item_no = good_name['wikidata'][1]
+ elif task == 'featured':
+ item_no = featured_name['wikidata'][1]
+ elif task == 'former':
+ item_no = former_name['wikidata'][1]
+ dp = pywikibot.ItemPage(self.site.data_repository(), item_no)
+ dp.get()
+ for key in dp.sitelinks.keys():
+ try:
+ site = self.site.fromDBName(key)
+ except pywikibot.NoSuchSite:
+ pywikibot.output('"%s" is not a valid site.
Skipping...'
+ % key)
+ else:
+ if site.family == self.site.family:
+ yield site.code
+
+ generator = _generator()
if self.getOption('fromall'):
return generator
@@ -327,9 +335,6 @@
except KeyboardInterrupt:
pywikibot.output('\nQuitting %s treat...' % task)
break
- except pywikibot.NoSuchSite:
- pywikibot.output('"%s" is not a valid site.
Skipping...' % code)
- continue
self.writecache()
def treat(self, code, process):
--
To view, visit
https://gerrit.wikimedia.org/r/112322
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I990b0d65909fe9f2adfec96a270b88bb62336360
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Pyfisch <pyfisch(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>