https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin/pull/18

--- a/gcs_oauth2_boto_plugin/oauth2_client.py
+++ b/gcs_oauth2_boto_plugin/oauth2_client.py
@@ -122,7 +122,7 @@ except ImportError:
           retval.token_expiry = datetime.datetime.strptime(
               data['token_expiry'], EXPIRY_FORMAT)
         return retval
-      except KeyError, e:
+      except KeyError as e:
         raise Exception('Your JSON credentials are invalid; '
                         'missing required entry %s.' % e[0])
   # pylint: enable=protected-access
@@ -274,7 +274,7 @@ class FileSystemTokenCache(TokenCache):
       flags |= os.O_BINARY
 
     try:
-      fd = os.open(cache_file, flags, 0600)
+      fd = os.open(cache_file, flags, 0o0600)
     except (OSError, IOError) as e:
       LOG.warning('FileSystemTokenCache.PutToken: '
                   'Failed to create cache file %s: %s', cache_file, e)
@@ -633,7 +633,7 @@ class OAuth2UserAccountClient(OAuth2Client):
       return AccessToken(
           credentials.access_token, credentials.token_expiry,
           datetime_strategy=self.datetime_strategy)
-    except AccessTokenRefreshError, e:
+    except AccessTokenRefreshError as e:
       if 'Invalid response 403' in e.message:
         # This is the most we can do at the moment to accurately detect rate
         # limiting errors since they come back as 403s with no further
@@ -669,7 +669,7 @@ class OAuth2GCEClient(OAuth2Client):
       http = httplib2.Http()
       response, content = http.request(META_TOKEN_URI, method='GET',
                                        body=None, headers=META_HEADERS)
-    except Exception, e:
+    except Exception as e:
       raise GsAccessTokenRefreshError(e)
 
     if response.status == 200:
@@ -695,7 +695,7 @@ def _IsGCE():
     # this approach, we'll avoid having to enumerate all possible non-transient
     # socket errors.
     return False
-  except Exception, e:  # pylint: disable=broad-except
+  except Exception as e:  # pylint: disable=broad-except
     LOG.warning("Failed to determine whether we're running on GCE, so we'll"
                 "assume that we aren't: %s", e)
     return False
--- a/gcs_oauth2_boto_plugin/test_oauth2_client.py
+++ b/gcs_oauth2_boto_plugin/test_oauth2_client.py
@@ -248,7 +248,7 @@ class FileSystemTokenCacheTest(unittest.TestCase):
     # Assert that the cache file exists and has correct permissions.
     if not IS_WINDOWS:
       self.assertEquals(
-          0600,
+          0o0600,
           stat.S_IMODE(os.stat(self.cache.CacheFileName(self.key)).st_mode))
 
   def testPutGet(self):
