Last modified: 2013-11-12 21:23:45 UTC
If you call isCategoryRedirect on a category which is from a wiki which has no category redirect templates defined in the family file an error occurs. user@computer:~$ python Python 2.7.5+ (default, Sep 19 2013, 13:48:49) [GCC 4.8.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pywikibot >>> site = pywikibot.Site('de', 'wikipedia') >>> cat = pywikibot.Category(site, 'Category:Hannover') >>> cat.isCategoryRedirect() de _default Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/pywikibot/page.py", line 471, in isCategoryRedirect catredirs = self.site.category_redirects() File "/usr/lib/python2.7/pywikibot/site.py", line 223, in <lambda> f = lambda *args, **kwargs: method(self.code, *args, **kwargs) File "/usr/lib/python2.7/pywikibot/family.py", line 864, in category_redirects self.get_cr_templates(code, fallback) File "/usr/lib/python2.7/pywikibot/family.py", line 879, in get_cr_templates cr_template = self.category_redirect_templates[fallback][0] IndexError: tuple index out of range >>> This bug is blocking https://bugzilla.wikimedia.org/show_bug.cgi?id=56774
Created attachment 13758 [details] Proposed patch Here is a proposed solution. It also fixes fringe case when the language exists, but is empty.
I experimented with the gerrit patch uploader, but apparently the change cannot be merged automatically. https://gerrit.wikimedia.org/r/#/c/94621/
Change 94621 had a related patch set uploaded by Xqt: Fix access to the fallback category redirect list. https://gerrit.wikimedia.org/r/94621
Change 94621 merged by jenkins-bot: [Bug 56873] Fix access to the fallback category redirect list. https://gerrit.wikimedia.org/r/94621