Page MenuHomePhabricator

Pywikibot ItemPage: can't get the item of the Main Page
Closed, InvalidPublic

Description

Hello, when I tried to get the item of the Main Page of any wiki, it's throw an exception. Maybe it's not a problem of the Main Page specifically...

import pywikibot
site = pywikibot.Site('en', 'wikisource')
page = pywikibot.Page(site, 'Main Page')
item = pywikibot.ItemPage.fromPage(page)

Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
    start(fakepyfile,mainpyfile)
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
    exec(open(mainpyfile).read(),  __main__.__dict__)
  File "<string>", line 4, in <module>
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 4462, in fromPage
    if not lazy_load and not i.exists():
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 4086, in exists
    self.get(get_redirect=True)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 4514, in get
    data = super().get(force, *args, **kwargs)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 4124, in get
    data = WikibaseEntity.get(self, force=force)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 3895, in get
    value = cls.fromJSON(self._content.get(key, {}), self.repo)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 3546, in fromJSON
    return cls(repo, data)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 3536, in __init__
    self.update(data)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/_collections_abc.py", line 832, in update
    self[key] = other[key]
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 3584, in __setitem__
    val = SiteLink.fromJSON(val, self.repo)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 6152, in fromJSON
    sl = cls(data['title'], data['site'])
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 6097, in __init__
    site, namespace, title = SiteLink._parse_namespace(title, site)  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/page/__init__.py", line 6121, in _parse_namespace
    site = pywikibot.site.APISite.fromDBName(site)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/site/__init__.py", line 156, in fromDBName
    return pywikibot.Site(lang, site['code'])
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/tools/__init__.py", line 1480, in wrapper
    return obj(*__args, **__kw)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/__init__.py", line 1153, in Site
    _sites[key] = interface(code=code, fam=fam, user=user)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/tools/__init__.py", line 1563, in wrapper
    return obj(*new_args, **new_kwargs)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/site/__init__.py", line 108, in __init__
    super().__init__(code, fam, user)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/tools/__init__.py", line 1563, in wrapper
    return obj(*new_args, **new_kwargs)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/pywikibot/site/_basesite.py", line 90, in __init__
    raise UnknownSite("Language '%s' does not exist in family %s"
pywikibot.exceptions.UnknownSite: Language 'mnw' does not exist in family wiktionary
CRITICAL: Exiting due to uncaught exception <class 'pywikibot.exceptions.UnknownSite'>

Event Timeline

JJMC89 subscribed.

You need to update Pywikibot to 6.0.1 or newer. mnw.wiktionary was added in {f18cd0f22be7}.