Herzi.Pinki created this task.
Herzi.Pinki added projects: Pywikibot, API Platform.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.
TASK DESCRIPTION
import pywikibot
asite = pywikibot.Site('de')
#asite.login()
page = pywikibot.Page(asite, "Wien")
print (page.title()) # works
print (page.coordinates(primary_only=True)) # fails with
# WARNING: API error mwoauth-invalid-authorization-invalid-user: The
authorization headers in your request are for a user that does not exist here
# NoUsernameError: Failed OAuth authentication for wikipedia:test: The
authorization headers in your request are for a user that does not exist here
why can I access some properties (like title()) and get an error when
accessing coordinates()?
With my config I can access wikipedia, commons, wikidata without problems,
but coordinates() fails.
full stacktrace:
---------------------------------------------------------------------------
NoUsernameError Traceback (most recent call last)
Cell In[60], line 6
4 page = pywikibot.Page(asite, "Wien")
5 print (page.title()) # works
----> 6 print (page.coordinates(primary_only=True)) # fails with
7 # WARNING: API error mwoauth-invalid-authorization-invalid-user:
The authorization headers in your request are for a user that does not exist
here
8 # NoUsernameError: Failed OAuth authentication for wikipedia:test:
The authorization headers in your request are for a user that does not exist
here
9
(...)
13 #api.loadpageinfo(page)
14 #page.loadpageprops()
File
/srv/paws/lib/python3.10/site-packages/pywikibot/page/_basepage.py:1673, in
BasePage.coordinates(self, primary_only)
1671 if not hasattr(self, '_coords'):
1672 self._coords = []
-> 1673 self.site.loadcoordinfo(self)
1674 if primary_only:
1675 for coord in self._coords:
File
/srv/paws/lib/python3.10/site-packages/pywikibot/site/_decorators.py:58, in
need_extension.<locals>.decorator.<locals>.callee(self, *args, **kwargs)
54 if not self.has_extension(extension):
55 raise UnknownExtensionError(
56 'Method "{}" is not implemented without the extension {}'
57 .format(fn.__name__, extension))
---> 58 return fn(self, *args, **kwargs)
File
/srv/paws/lib/python3.10/site-packages/pywikibot/site/_extensions.py:183, in
GeoDataMixin.loadcoordinfo(self, page)
175 title = page.title(with_section=False)
176 query = self._generator(api.PropertyGenerator,
177 type_arg='coordinates',
178 titles=title.encode(self.encoding()),
(...)
181 'globe'],
182 coprimary='all')
--> 183 self._update_page(page, query)
File
/srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:1438, in
APISite._update_page(self, page, query, verify_imageinfo)
1435 if not self.sametitle(pageitem['title'],
1436 page.title(with_section=False)):
1437 raise InconsistentTitleError(page, pageitem['title'])
-> 1438 api.update_page(page, pageitem, query.props)
1440 if verify_imageinfo and 'imageinfo' not in pageitem:
1441 if 'missing' in pageitem:
File
/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_generators.py:1021,
in update_page(page, pagedict, props)
1018 page._langlinks = set()
1020 if 'coordinates' in pagedict:
-> 1021 _update_coordinates(page, pagedict['coordinates'])
1023 if 'pageimage' in pagedict:
1024 page._pageimage = pywikibot.FilePage(page.site,
pagedict['pageimage'])
File
/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_generators.py:950,
in _update_coordinates(page, coordinates)
948 coords = []
949 for co in coordinates:
--> 950 coord = pywikibot.Coordinate(lat=co['lat'],
951 lon=co['lon'],
952 typ=co.get('type', ''),
953 name=co.get('name', ''),
954 dim=int(co.get('dim', 0)) or None,
955 globe=co['globe'], # See
[[gerrit:67886]]
956 primary='primary' in co
957 )
958 coords.append(coord)
959 page._coords = coords
File /srv/paws/lib/python3.10/site-packages/pywikibot/_wbtypes.py:129, in
Coordinate.__init__(self, lat, lon, alt, precision, globe, typ, name, dim,
site, globe_item, primary)
127 self.name = name
128 self._dim = dim
--> 129 self.site = site or pywikibot.Site().data_repository()
130 self.primary = primary
132 if globe:
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:400,
in APISite.login(self, autocreate, user, cookie_only)
398 try:
399 del self.userinfo # force reload
--> 400 if self.userinfo['name'] == self.user():
401 self._loginstatus = login.LoginStatus.AS_USER
402 return
File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:668,
in APISite.userinfo(self)
661 if not hasattr(self, '_userinfo'):
662 uirequest = self.simple_request(
663 action='query',
664 meta='userinfo',
665 uiprop='blockinfo|hasmsg|groups|rights|ratelimits',
666 formatversion=2,
667 )
--> 668 uidata = uirequest.submit()
669 assert 'query' in uidata, \
670 "API userinfo response lacks 'query' key"
671 assert 'userinfo' in uidata['query'], \
672 "API userinfo response lacks 'userinfo' key"
File
/srv/paws/lib/python3.10/site-packages/pywikibot/data/api/_requests.py:1087, in
Request.submit(self)
1085 pywikibot.error(f'Retrying failed {msg}')
1086 continue
-> 1087 raise NoUsernameError(f'Failed {msg}')
1089 if code == 'cirrussearch-too-busy-error': # T170647
1090 self.wait()
NoUsernameError: Failed OAuth authentication for wikipedia:test: The
authorization headers in your request are for a user that does not exist here
TASK DETAIL
https://phabricator.wikimedia.org/T363303
EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/
To: Herzi.Pinki
Cc: Aklapper, pywikibot-bugs-list, Herzi.Pinki, mevo, Atieno, PotsdamLamb,
DAbad, 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]