diff --git a/diskimage_builder/block_device/plugin.py b/diskimage_builder/block_device/plugin.py
index 64fc199ed..e1f630c86 100644
--- a/diskimage_builder/block_device/plugin.py
+++ b/diskimage_builder/block_device/plugin.py
@@ -12,7 +12,6 @@
 
 import abc
 import logging
-import six
 
 #
 # Plugins convert configuration entries into graph nodes ready for
@@ -22,8 +21,7 @@ import six
 logger = logging.getLogger(__name__)
 
 
-@six.add_metaclass(abc.ABCMeta)
-class NodeBase(object):
+class NodeBase(object, metaclass=abc.ABCMeta):
     """A configuration node entry
 
     This is the main driver class for dib-block-device operation.
@@ -155,8 +153,7 @@ class NodeBase(object):
         return
 
 
-@six.add_metaclass(abc.ABCMeta)
-class PluginBase(object):
+class PluginBase(object, metaclass=abc.ABCMeta):
     """The base plugin object
 
     This is the base plugin object.  Plugins are an instantiation of
diff --git a/lower-constraints.txt b/lower-constraints.txt
index 18d44b5f7..679be78c7 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -36,7 +36,6 @@ PyYAML==3.12
 reno==2.5.0
 requests==2.14.2
 requestsexceptions==1.2.0
-six==1.10.0
 snowballstemmer==1.2.1
 Sphinx==1.6.2
 sphinxcontrib-websupport==1.0.1
diff --git a/requirements.txt b/requirements.txt
index b009ed84c..53a60601d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,6 @@
 networkx>=1.10 # BSD
 pbr!=2.1.0,>=2.0.0 # Apache-2.0
 PyYAML>=3.12 # MIT
-six>=1.10.0 # MIT
 stevedore>=1.20.0 # Apache-2.0
 # NOTE(ianw) in here because dib-lint uses flake8
 flake8<4.0.0,>=3.6.0 # MIT