Since {891a720}, initializing APISite will attempt to login using cookies; therefore, any Site() can cause API requests for info.
Example situation:
- Do not configure pywikibot, and ensure the cache is clear.
- This will default to test:wikipedia.
- Run t.py
- It will unnecessarily request info from test.wikipedia due to an unconditional Site().
- https://test.wikipedia.org/w/api.php?action=query&meta=siteinfo%7Cuserinfo&siprop=namespaces%7Cnamespacealiases%7Cgeneral&continue=&uiprop=blockinfo%7Chasmsg&maxlag=5&format=json
- https://test.wikipedia.org/w/api.php?action=query&meta=userinfo&uiprop=blockinfo%7Cgroups%7Chasmsg%7Cratelimits%7Crights&formatversion=2&rawcontinue=&maxlag=5&format=json
- It will unnecessarily request info from test.wikipedia due to an unconditional Site().
import pywikibot from pywikibot.comms.eventstreams import EventStreams site = pywikibot.Site("en", "wikipedia") # site other than the default stream = EventStreams("revision-create", site=site) # unnecessarily requests data from the default site
pywikibot/comms/eventstreams.py:146: in __init__
self._site = kwargs.pop('site', Site())
pywikibot/__init__.py:1339: in Site
_sites[key] = interface(code=code, fam=fam, user=user)
pywikibot/site/_apisite.py:127: in __init__
self.login(cookie_only=True)
pywikibot/site/_apisite.py:384: in login
if self.userinfo['name'] == self.user():
pywikibot/site/_apisite.py:543: in userinfo
uidata = uirequest.submit()