paws icon indicating copy to clipboard operation
paws copied to clipboard

add species to fam list

Open IDON-TEXIST opened this issue 1 year ago • 0 comments

Pywikibot on a Juypter Notebook cannot work on wikispecies, because it is missing in the family list in paws/images/singleuser/user-config.py. Example of the bug:

import pywikibot
site1 = pywikibot.Site('en', 'wikipedia')
site2 = pywikibot.Site('commons')
site3 = pywikibot.Site('wikidata')
site4 = pywikibot.Site('species')
---------------------------------------------------------------------------
NoUsernameError                           Traceback (most recent call last)
Cell In[3], line 5
      3 site2 = pywikibot.Site('commons')
      4 site3 = pywikibot.Site('wikidata')
----> 5 site4 = pywikibot.Site('species')

File /srv/paws/lib/python3.10/site-packages/pywikibot/__init__.py:243, in Site(code, fam, user, interface, url)
    241 key = f'{interface.__name__}:{fam}:{code}:{user}'
    242 if key not in _sites or not isinstance(_sites[key], interface):
--> 243     _sites[key] = interface(code=code, fam=fam, user=user)
    244     debug(f"Instantiated {interface.__name__} object '{_sites[key]}'")
    246     if _sites[key].code != code:

File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:140, in APISite.__init__(self, code, fam, user)
    138 self._loginstatus = login.LoginStatus.NOT_ATTEMPTED
    139 with suppress(SiteDefinitionError):
--> 140     self.login(cookie_only=True)

File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:429, in APISite.login(self, autocreate, user, cookie_only)
    422     else:
    423         error_msg = ('Logged in on {site} via OAuth as {wrong}, but '
    424                      'expect as {right}'
    425                      .format(site=self,
    426                              wrong=self.userinfo['name'],
    427                              right=self.username()))
--> 429     raise NoUsernameError(error_msg)
    431 if not cookie_only:
    432     login_manager = login.ClientLoginManager(site=self,
    433                                              user=self.username())

NoUsernameError: No username has been defined in your user config file: you have to add in this file the following line:
usernames['species']['en']= 'Snowmanonahoe'

The change is untested.

IDON-TEXIST avatar Apr 11 '24 22:04 IDON-TEXIST