Dominicbm created this task.
Dominicbm added a project: Pywikibot.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.

TASK DESCRIPTION
  I am using `globalusage()` in my code on File objects, such as `usage = 
len(list(page.globalusage()))`. This fails and generates the following 
`NoUsernameError`. Noting that the error message made mention of en.wikiquote, 
I navigated to enwq in my browser while logged in, to automatically create a 
local account there. Then I reran the code, making no changes, and it ran as 
expected with no error. I suppose this happens because globalusage wants to 
create local page objects for all the results in whichever wiki they occur, so 
you need a local account.
  
  This is overkill for my use case because I just wanted to count them anyway, 
and didn't need Page objects, but I couldn't find a better way to do it. Maybe 
PWB needs to create the local user first when you have an SUL account? (Or 
document that it is necessary and how it is done.) Or provide a method for 
counting the number without creating page objects, though that's perhaps a 
separate issue.
  
    @PAWS:~/pageviews$ python generate.py --cat "Category:Media contributed by 
George W. Bush Presidential Center"
    Starting data fetch for "Category:Media contributed by George W. Bush 
Presidential Center". (2023-08-29 20:22:23)
    WARNING: API error mwoauth-invalid-authorization-invalid-user: The 
authorization headers in your request are for a user that does not exist here
    Traceback (most recent call last):
      File "/home/paws/pageviews/generate.py", line 134, in <module>
        cat(args.cat)
      File "/home/paws/pageviews/generate.py", line 75, in cat
        usage = len(list(page.globalusage()))
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/site/_extensions.py", line 
224, in globalusage
        gu_site = pywikibot.Site(url=entry['url'])
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/__init__.py", line 
206, in Site
        code, fam = _code_fam_from_url(url, fam)
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/__init__.py", line 
117, in _code_fam_from_url
        code = family.from_url(url)
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/family.py", line 
608, in from_url
        site = pywikibot.Site(code, self.name)
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/__init__.py", line 
253, in Site
        _sites[key] = interface(code=code, fam=fam, user=user)
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 127, in __init__
        self.login(cookie_only=True)
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 387, in login
        raise e
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 378, in login
        if self.userinfo['name'] == self.user():
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 536, in userinfo
        uidata = uirequest.submit()
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_requests.py", line 
974, in submit
        self._add_defaults()
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_requests.py", line 
442, in _add_defaults
        and self.site.mw_version >= '1.25wmf5'):
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 1148, in mw_version
        mw_ver = MediaWikiVersion(self.version())
      File "/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py", 
line 1121, in version
        version = self.siteinfo.get('generator', expiry=1).split(' ')[1]
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/site/_siteinfo.py", line 304, 
in get
        preloaded = self._get_general(key, expiry)
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/site/_siteinfo.py", line 242, 
in _get_general
        default_info = self._get_siteinfo(props, expiry)
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/site/_siteinfo.py", line 167, 
in _get_siteinfo
        data = request.submit()
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_requests.py", line 
1282, in submit
        self._data = super().submit()
      File 
"/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_requests.py", line 
1079, in submit
        raise NoUsernameError(f'Failed {msg}')
    pywikibot.exceptions.NoUsernameError: Failed OAuth authentication for 
wikiquote:en: The authorization headers in your request are for a user that 
does not exist here
    CRITICAL: Exiting due to uncaught exception NoUsernameError: Failed OAuth 
authentication for wikiquote:en: The authorization headers in your request are 
for a user that does not exist here

TASK DETAIL
  https://phabricator.wikimedia.org/T345209

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Dominicbm
Cc: Aklapper, pywikibot-bugs-list, Dominicbm, PotsdamLamb, Jyoo1011, 
JohnsonLee01, SHEKH, Dijkstra, Khutuck, Zkhalido, Viztor, Wenyi, Tbscho, MayS, 
Mdupont, JJMC89, Dvorapa, Altostratus, Avicennasis, mys_721tx, Xqt, jayvdb, 
Masti, Alchimista
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to