jenkins-bot has submitted this change and it was merged.
Change subject: use categoryinfo for the number of articles and subcats, pep8 changes
......................................................................
use categoryinfo for the number of articles and subcats, pep8 changes
categoryinfo gives the number of articles and subcategories. We use
this information for the messages and use the generator functions
to process each article or subcat. This speeds up processing time
(f.e. 10% for "tree" with depth:3)
Made some pep8 changes.
Change-Id: I32e23ccfdc4a9e623fde93fcd161dd910879e9af
---
M scripts/category.py
1 file changed, 15 insertions(+), 20 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/category.py b/scripts/category.py
index 8922efe..d032c3a 100755
--- a/scripts/category.py
+++ b/scripts/category.py
@@ -323,7 +323,7 @@
comment = self.editSummary
if not comment:
comment = i18n.twtranslate(page.site, 'category-adding',
- {'newcat': newcatTitle})
+ {'newcat': newcatTitle})
pywikibot.output(u'Comment: %s' % comment)
if not self.dry:
if not self.always:
@@ -449,16 +449,14 @@
self.comment = comment
if not self.comment:
if self.newcat:
- template_vars = { \
- 'oldcat': self.oldcat.title(
- withNamespace=False),
- 'newcat': self.newcat.title(
- withNamespace=False)}
+ template_vars = {
+ 'oldcat': self.oldcat.title(withNamespace=False),
+ 'newcat': self.newcat.title(withNamespace=False)}
self.comment = i18n.twtranslate(self.site,
'category-replacing',
template_vars)
else:
- template_vars = {'oldcat': self.oldcat.title( \
+ template_vars = {'oldcat': self.oldcat.title(
withNamespace=False)}
self.comment = i18n.twtranslate(self.site,
'category-removing',
@@ -475,8 +473,7 @@
self._hist()
self._change(pagegenerators.CategorizedPageGenerator(self.oldcat))
if not self.pagesonly:
- self._change(pagegenerators.SubCategoriesPageGenerator( \
- self.oldcat))
+ self._change(pagegenerators.SubCategoriesPageGenerator(self.oldcat))
if self.oldcat.isEmptyCategory() and self.delete_oldcat and \
((self.newcat and self.move_oldcat) or not self.newcat):
self._delete()
@@ -524,7 +521,8 @@
match = re.compile(REGEX,
re.IGNORECASE | re.MULTILINE | re.DOTALL)
self.newcat.text = match.sub('', self.newcat.text)
- site_templates = pywikibot.translate(self.site, cfd_templates, fallback=False)
+ site_templates = pywikibot.translate(self.site, cfd_templates,
+ fallback=False)
for template_name in site_templates:
match = re.compile(r"{{%s.*?}}" % template_name, re.IGNORECASE)
self.newcat.text = match.sub('', self.newcat.text)
@@ -641,12 +639,11 @@
{'oldcat': self.cat.title()})
def run(self):
- articles = set(self.cat.articles())
- if len(articles) == 0:
+ if self.cat.categoryinfo['pages'] == 0:
pywikibot.output(u'There are no articles in category %s'
% self.cat.title())
else:
- for article in articles:
+ for article in self.cat.articles():
if not self.titleRegex or re.search(self.titleRegex,
article.title()):
article.change_category(self.cat, None,
@@ -656,12 +653,11 @@
return
# Also removes the category tag from subcategories' pages
- subcategories = set(self.cat.subcategories())
- if len(subcategories) == 0:
+ if self.cat.categoryinfo['subcats'] == 0:
pywikibot.output(u'There are no subcategories in category %s'
% self.cat.title())
else:
- for subcategory in subcategories:
+ for subcategory in self.cat.subcategories():
subcategory.change_category(self.cat, None,
comment=self.editSummary,
inPlace=self.inPlace)
@@ -831,12 +827,11 @@
def run(self):
cat = pywikibot.Category(self.site, self.catTitle)
- articles = set(cat.articles())
- if len(articles) == 0:
+ if cat.categoryinfo['pages'] == 0:
pywikibot.output(u'There are no articles in category ' +
self.catTitle)
else:
- preloadingGen = pagegenerators.PreloadingGenerator(iter(articles))
+ preloadingGen = pagegenerators.PreloadingGenerator(cat.articles())
for article in preloadingGen:
pywikibot.output('')
pywikibot.output(u'=' * 67)
@@ -880,7 +875,7 @@
if currentDepth > 0:
result += u' '
result += cat.title(asLink=True, textlink=True, withNamespace=False)
- result += ' (%d)' % len(self.catDB.getArticles(cat))
+ result += ' (%d)' % cat.categoryinfo['pages']
if currentDepth < self.maxDepth / 2:
# noisy dots
pywikibot.output('.', newline=False)
--
To view, visit
https://gerrit.wikimedia.org/r/130301
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I32e23ccfdc4a9e623fde93fcd161dd910879e9af
Gerrit-PatchSet: 2
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: jenkins-bot <>