jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/906006 )
Change subject: [IMPR] use f-format in api._requests.py ...................................................................... [IMPR] use f-format in api._requests.py Change-Id: I3a0e9cefbc70f0aa1606758beeced1b2997d754b --- M pywikibot/data/api/_requests.py 1 file changed, 46 insertions(+), 49 deletions(-) Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified diff --git a/pywikibot/data/api/_requests.py b/pywikibot/data/api/_requests.py index ebdbe9e..bbd5744 100644 --- a/pywikibot/data/api/_requests.py +++ b/pywikibot/data/api/_requests.py @@ -183,8 +183,8 @@ """ if site is None: self.site = pywikibot.Site() - warn('Request() invoked without a site; setting to {}' - .format(self.site), RuntimeWarning, 2) + warn(f'Request() invoked without a site; setting to {self.site}', + RuntimeWarning, 2) else: self.site = site @@ -239,13 +239,12 @@ raise Error('API write action attempted without user name') if 'anon' in self.site.userinfo: - raise Error("API write action attempted as IP '{}'" - .format(username)) + raise Error(f'API write action attempted as IP {username!r}') if not self.site.user() or self.site.username() != username: pywikibot.warning( - 'API write action by unexpected username {} commenced.\n' - 'userinfo: {!r}'.format(username, self.site.userinfo)) + f'API write action by unexpected username {username} ' + f'commenced.\nuserinfo: {self.site.userinfo!r}') # Make sure user is logged in if self.write: @@ -301,8 +300,8 @@ break args |= set(inspect.getfullargspec(super_cls.__init__).args) else: - raise ValueError('Request was not a super class of ' - '{!r}'.format(cls)) + raise ValueError(f'Request was not a super class of {cls!r}') + args -= {'self'} old_kwargs = set(kwargs) # all kwargs defined above but not in args indicate 'kwargs' mode @@ -343,9 +342,8 @@ return value.strftime(pywikibot.Timestamp.ISO8601Format) if isinstance(value, pywikibot.page.BasePage): if value.site != self.site: - raise RuntimeError( - 'value.site {!r} is different from Request.site {!r}' - .format(value.site, self.site)) + raise RuntimeError(f'value.site {value.site!r} is different ' + f'from Request.site {self.site!r}') return value.title(with_section=False) return str(value) @@ -452,7 +450,7 @@ self._params.setdefault('format', ['json']) if self['format'] != ['json']: raise TypeError( - "Query format '{}' cannot be parsed.".format(self['format'])) + f'Query format {self["format"]!r} cannot be parsed.') self.__defaulted = True # skipcq: PTC-W0037 @@ -496,8 +494,8 @@ value = value.encode(self.site.encoding()) except Exception: pywikibot.error( - "_encoded_items: '{}' could not be encoded as '{}':" - ' {!r}'.format(key, self.site.encoding(), value)) + f'_encoded_items: {key!r} could not be encoded as ' + f'{self.site.encoding()!r}: {value!r}') assert key.encode('ascii') assert isinstance(key, str) params[key] = value @@ -523,9 +521,8 @@ def __repr__(self) -> str: """Return internal representation.""" - return '{}.{}<{}->{!r}>'.format(self.__class__.__module__, - self.__class__.__name__, - self.site, str(self)) + cls = type(self) + return f"{cls.__module__}.{cls.__name__}<{self.site}->'{self}'>" def _simulate(self, action): """Simulate action.""" @@ -669,9 +666,8 @@ else: body = paramstring - pywikibot.debug('API request to {} (uses get: {}):\n' - 'Headers: {!r}\nURI: {!r}\nBody: {!r}' - .format(self.site, use_get, headers, uri, body)) + pywikibot.debug(f'API request to {self.site} (uses get: {use_get}):\n' + f'Headers: {headers!r}\nURI: {uri!r}\nBody: {body!r}') return use_get, uri, body, headers def _http_request(self, use_get: bool, uri: str, data, headers, @@ -741,8 +737,8 @@ # Note: family.AutoFamily is a function to create that class if self.site.family.__class__.__name__ == 'AutoFamily': pywikibot.debug(msg) - raise SiteDefinitionError('Invalid AutoFamily({!r})' - .format(self.site.family.domain)) + raise SiteDefinitionError( + f'Invalid AutoFamily({self.site.family.domain!r})') if not self.json_warning: # warn only once pywikibot.warning(msg) @@ -763,8 +759,8 @@ def _relogin(self, message: str = '') -> None: """Force re-login and inform user.""" - pywikibot.error('{}{}Forcing re-login.'.format(message, - ' ' if message else '')) + message += ' Forcing re-login.' + pywikibot.error(f'{message.strip()}') self.site._relogin() def _userinfo_query(self, result) -> bool: @@ -776,9 +772,8 @@ username = result['query']['userinfo']['name'] if (self.site.user() is not None and self.site.user() != username and self.site._loginstatus != LoginStatus.IN_PROGRESS): - message = ("Logged in as '{actual}' instead of '{expected}'." - .format(actual=username, expected=self.site.user())) - self._relogin(message) + self._relogin(f'Logged in as {username!r} instead of ' + f'{self.site.user()!r}.') return True return False @@ -801,8 +796,8 @@ # bug T51978 text = warning['html']['*'] else: - pywikibot.warning('API warning ({}) of unknown format: {}' - .format(mod, warning)) + pywikibot.warning( + f'API warning ({mod}) of unknown format: {warning}') continue # multiple warnings are in text separated by a newline @@ -812,8 +807,8 @@ handled = self._default_warning_handler(mod, single_warning) if handled is None: - pywikibot.warning('API warning ({}): {}' - .format(mod, single_warning)) + pywikibot.warning( + f'API warning ({mod}): {single_warning}') else: retry = retry or handled return retry @@ -895,12 +890,9 @@ pywikibot.error('Detected MediaWiki API exception {}{}' .format(e, '; retrying' if retry else '; raising')) param_repr = str(self._params) - pywikibot.log('MediaWiki exception {} details:\n' - ' query=\n{}\n' - ' response=\n{}' - .format(class_name, - pprint.pformat(param_repr), - result)) + pywikibot.log(f'MediaWiki exception {class_name} details:\n' + f' query=\n{pprint.pformat(param_repr)}\n' + f' response=\n{result}') if not retry: raise e @@ -935,8 +927,7 @@ return False if self.site._loginstatus == LoginStatus.IN_PROGRESS: - pywikibot.log('Login status: {}' - .format(self.site._loginstatus.name)) + pywikibot.log(f'Login status: {self.site._loginstatus.name}') return False # invalidate superior wiki cookies (T224712) @@ -1053,13 +1044,11 @@ continue if 'mwoauth-invalid-authorization' in code: + msg = f'OAuth authentication for {self.site}: {info}' if 'Nonce already used' in info: - pywikibot.error( - 'Retrying failed OAuth authentication for {}: {}' - .format(self.site, info)) + pywikibot.error(f'Retrying failed {msg}') continue - raise NoUsernameError('Failed OAuth authentication for {}: {}' - .format(self.site, info)) + raise NoUsernameError(f'Failed {msg}') if code == 'cirrussearch-too-busy-error': # T170647 self.wait() continue @@ -1087,8 +1076,8 @@ # raise error try: param_repr = str(self._params) - pywikibot.log('API Error: query=\n{}' - .format(pprint.pformat(param_repr))) + pywikibot.log( + f'API Error: query=\n{pprint.pformat(param_repr)}') pywikibot.log(f' response=\n{result}') raise pywikibot.exceptions.APIError(**error) @@ -1113,8 +1102,7 @@ delay *= 2 ** (self.current_retries - 1) delay = min(delay, config.retry_max) - pywikibot.warning('Waiting {:.1f} seconds before retrying.' - .format(delay)) + pywikibot.warning(f'Waiting {delay:.1f} seconds before retrying.') pywikibot.sleep(delay) @@ -1191,7 +1179,7 @@ # The returned value can't be encoded to anything other than # ascii otherwise it creates an exception when _create_file_name() # tries to encode it as utf-8. - user_key = 'User(User:{})'.format(self.site.userinfo['name']) + user_key = f'User(User:{self.site.userinfo["name"]})' else: user_key = repr(LoginStatus(LoginStatus.NOT_LOGGED_IN)) -- To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/906006 To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Change-Id: I3a0e9cefbc70f0aa1606758beeced1b2997d754b Gerrit-Change-Number: 906006 Gerrit-PatchSet: 4 Gerrit-Owner: Xqt <i...@gno.de> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot Gerrit-MessageType: merged
_______________________________________________ Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org