Xqt has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/398472 )

Change subject: [IMPR] Simplify isCategoryRedirect method
......................................................................

[IMPR] Simplify isCategoryRedirect method

- test for args length instead of try/except IndexError construct
- assign self._catredirect = False only once
- use Namespace.CATEGORY constants
- improve error messages

Change-Id: I87bc3e29047985a1fb36a49d6f9370c981cba6df
---
M pywikibot/page.py
1 file changed, 12 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/72/398472/1

diff --git a/pywikibot/page.py b/pywikibot/page.py
index d9580b6..e6c157d 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -847,28 +847,26 @@
         if not self.is_categorypage():
             return False
         if not hasattr(self, "_catredirect"):
+            self._catredirect = False
             catredirs = self.site.category_redirects()
             for (template, args) in self.templatesWithParams():
                 if template.title(withNamespace=False) in catredirs:
-                    # Get target (first template argument)
-                    try:
-                        p = pywikibot.Page(self.site, args[0].strip(), ns=14)
-                        if p.namespace() == 14:
+                    if args:
+                        # Get target (first template argument)
+                        p = pywikibot.Page(
+                            self.site, args[0].strip(), Namespace.CATEGORY)
+                        if p.namespace() == Namespace.CATEGORY:
                             self._catredirect = p.title()
                         else:
                             pywikibot.warning(
-                                u"Target %s on %s is not a category"
-                                % (p.title(asLink=True),
-                                   self.title(asLink=True)))
-                            self._catredirect = False
-                    except IndexError:
+                                'Category redirect target {0} on {1} is not a '
+                                'category'.format(p.title(asLink=True),
+                                                  self.title(asLink=True)))
+                    else:
                         pywikibot.warning(
-                            u"No target for category redirect on %s"
-                            % self.title(asLink=True))
-                        self._catredirect = False
+                            'No target found for category redirect on '
+                            + self.title(asLink=True))
                     break
-            else:
-                self._catredirect = False
         return bool(self._catredirect)
 
     def getCategoryRedirectTarget(self):

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I87bc3e29047985a1fb36a49d6f9370c981cba6df
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <i...@gno.de>

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

Reply via email to