diff --git a/examples/pki/gen_cmsz.py b/examples/pki/gen_cmsz.py
index bd0d886ba..35a6a8f8c 100644
--- a/examples/pki/gen_cmsz.py
+++ b/examples/pki/gen_cmsz.py
@@ -84,6 +84,7 @@ def generate_der_form(name):
                                     SIGNING_KEY_FILE_NAME, cms.PKIZ_CMS_FORM)
         f.write(derform)
 
+
 for name in EXAMPLE_TOKENS:
     json_file = make_filename('cms', name + '.json')
     pkiz_file = make_filename('cms', name + '.pkiz')
diff --git a/keystoneclient/auth/__init__.py b/keystoneclient/auth/__init__.py
index eeae768fa..c9acef819 100644
--- a/keystoneclient/auth/__init__.py
+++ b/keystoneclient/auth/__init__.py
@@ -10,6 +10,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+# flake8: noqa: F405
 
 from keystoneclient.auth.base import *  # noqa
 from keystoneclient.auth.cli import *  # noqa
diff --git a/keystoneclient/auth/identity/v3/__init__.py b/keystoneclient/auth/identity/v3/__init__.py
index f25bf5e22..abbaa658d 100644
--- a/keystoneclient/auth/identity/v3/__init__.py
+++ b/keystoneclient/auth/identity/v3/__init__.py
@@ -10,6 +10,8 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+# flake8: noqa: F405
+
 from keystoneclient.auth.identity.v3.base import *  # noqa
 from keystoneclient.auth.identity.v3.federated import *  # noqa
 from keystoneclient.auth.identity.v3.password import *  # noqa
diff --git a/keystoneclient/contrib/ec2/utils.py b/keystoneclient/contrib/ec2/utils.py
index 1ef5df4da..4e14e78d4 100644
--- a/keystoneclient/contrib/ec2/utils.py
+++ b/keystoneclient/contrib/ec2/utils.py
@@ -225,7 +225,7 @@ class Ec2Signer(object):
             # port if we detect an old boto version.  FIXME: remove when all
             # distros package boto >= 2.9.3, this is a transitional workaround
             user_agent = headers_lower.get('user-agent', '')
-            strip_port = re.match('Boto/2\.[0-9]\.[0-2]', user_agent)
+            strip_port = re.match(r'Boto/2\.[0-9]\.[0-2]', user_agent)
 
             header_list = []
             sh_str = auth_param('SignedHeaders')
diff --git a/keystoneclient/exceptions.py b/keystoneclient/exceptions.py
index 5b06be9bb..034e5c977 100644
--- a/keystoneclient/exceptions.py
+++ b/keystoneclient/exceptions.py
@@ -376,6 +376,7 @@ class CMSError(Exception):
         msg = _('Unable to sign or verify data.')
         super(CMSError, self).__init__(msg)
 
+
 EmptyCatalog = _exc.EmptyCatalog
 """The service catalog is empty.
 
@@ -398,6 +399,7 @@ An alias of :py:exc:`keystoneauth1.exceptions.discovery.VersionNotAvailable`
 class MethodNotImplemented(ClientException):
     """Method not implemented by the keystoneclient API."""
 
+
 MissingAuthPlugin = _exc.MissingAuthPlugin
 """An authenticated request is required but no plugin available.
 
diff --git a/keystoneclient/fixture/__init__.py b/keystoneclient/fixture/__init__.py
index 768f96912..92034a0da 100644
--- a/keystoneclient/fixture/__init__.py
+++ b/keystoneclient/fixture/__init__.py
@@ -28,6 +28,8 @@ testing.
 
 """
 
+# flake8: noqa: F405
+
 import warnings
 
 from keystoneclient.fixture.discovery import *  # noqa
diff --git a/test-requirements.txt b/test-requirements.txt
index 4683c46a7..d27f88c49 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,7 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-hacking>=1.1.0,<1.2.0 # Apache-2.0
+hacking>=3.0,<3.1.0 # Apache-2.0
 flake8-docstrings==0.2.1.post1 # MIT
 
 coverage!=4.4,>=4.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 4509f072a..a135278e0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -58,7 +58,9 @@ passenv = OS_*
 # D103: Missing docstring in public function
 # D104: Missing docstring in public package
 # D203: 1 blank line required before class docstring (deprecated in pep257)
-ignore = D100,D101,D102,D103,D104,D203
+# W504 line break after binary operator
+# F601 dictionary key repeated with different value
+ignore = D100,D101,D102,D103,D104,D203,W504,F601
 show-source = True
 exclude = .venv,.tox,dist,doc,*egg,build