diff --git a/mwclient/client.py b/mwclient/client.py
index 151913051b51c668faa40bea42e172138edd20ef..697907475b68d75d926f136b10bb829bc5b31823 100644
--- a/mwclient/client.py
+++ b/mwclient/client.py
@@ -122,7 +122,7 @@ class Site(object):
                     raise errors.OAuthAuthorizationError(e.code, e.info)
 
                 # Private wiki, do init after login
-                if e.args[0] not in (u'unknown_action', u'readapidenied'):
+                if e.args[0] not in {u'unknown_action', u'readapidenied'}:
                     raise
 
     def site_init(self):
@@ -165,9 +165,11 @@ class Site(object):
             self.version = sum((split_num(s) for s in version), ())
 
             if len(self.version) < 2:
-                raise errors.MediaWikiVersionError('Unknown MediaWiki %s' % '.'.join(version))
+                raise errors.MediaWikiVersionError('Unknown MediaWiki {}'
+                                                   .format('.'.join(version)))
         else:
-            raise errors.MediaWikiVersionError('Unknown generator %s' % self.site['generator'])
+            raise errors.MediaWikiVersionError('Unknown generator {}'
+                                               .format(self.site['generator']))
 
         # Require MediaWiki version >= 1.16
         self.require(1, 16)
@@ -248,7 +250,8 @@ class Site(object):
         self.hasmsg = 'messages' in userinfo
         self.logged_in = 'anon' not in userinfo
         if 'error' in info:
-            if info['error']['code'] in (u'internal_api_error_DBConnectionError', u'internal_api_error_DBQueryError'):
+            if info['error']['code'] in {u'internal_api_error_DBConnectionError',
+                                         u'internal_api_error_DBQueryError'}:
                 sleeper.sleep()
                 return False
             if '*' in info['error']:
@@ -261,8 +264,8 @@ class Site(object):
     @staticmethod
     def _query_string(*args, **kwargs):
         kwargs.update(args)
-        qs1 = [(k, v) for k, v in six.iteritems(kwargs) if k not in ('wpEditToken', 'token')]
-        qs2 = [(k, v) for k, v in six.iteritems(kwargs) if k in ('wpEditToken', 'token')]
+        qs1 = [(k, v) for k, v in six.iteritems(kwargs) if k not in {'wpEditToken', 'token'}]
+        qs2 = [(k, v) for k, v in six.iteritems(kwargs) if k in {'wpEditToken', 'token'}]
         return OrderedDict(qs1 + qs2)
 
     def raw_call(self, script, data, files=None, retry_on_error=True):
@@ -300,10 +303,12 @@ class Site(object):
             fullurl = '{scheme}://{host}{url}'.format(scheme=scheme, host=host, url=url)
 
             try:
-                stream = self.connection.post(fullurl, data=data, files=files, headers=headers, **self.requests)
+                stream = self.connection.post(fullurl, data=data, files=files,
+                                              headers=headers, **self.requests)
                 if stream.headers.get('x-database-lag'):
                     wait_time = int(stream.headers.get('retry-after'))
-                    log.warning('Database lag exceeds max lag. Waiting for %d seconds', wait_time)
+                    log.warning('Database lag exceeds max lag. '
+                                'Waiting for {} seconds'.format(wait_time))
                     sleeper.sleep(wait_time)
                 elif stream.status_code == 200:
                     return stream.text
@@ -312,7 +317,10 @@ class Site(object):
                 else:
                     if not retry_on_error:
                         stream.raise_for_status()
-                    log.warning('Received %s response: %s. Retrying in a moment.', stream.status_code, stream.text)
+                    log.warning('Received {status} response: {text}. '
+                                'Retrying in a moment.'
+                                .format(status=stream.status_code,
+                                        text=stream.text))
                     sleeper.sleep()
 
             except requests.exceptions.ConnectionError:
@@ -435,7 +443,7 @@ class Site(object):
         if self.version[:2] >= (1, 24):
             # The 'csrf' (cross-site request forgery) token introduced in 1.24 replaces
             # the majority of older tokens, like edittoken and movetoken.
-            if type not in ['watch', 'patrol', 'rollback', 'userrights']:
+            if type not in {'watch', 'patrol', 'rollback', 'userrights'}:
                 type = 'csrf'
 
         if type not in self.tokens: