paws
paws copied to clipboard
add species to fam list
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.