diff --git a/kwant/builder.py b/kwant/builder.py
index cd83747df7112a8fb35169dd644db138050f5d89..42ef1b11ff0fbc80f23fbdbb8749580f452193b8 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -173,7 +173,7 @@ class SimpleSiteFamily(SiteFamily):
 
     def __init__(self, name=None):
         canonical_repr = '{0}({1})'.format(self.__class__, repr(name))
-        super(SimpleSiteFamily, self).__init__(canonical_repr, name)
+        super().__init__(canonical_repr, name)
 
     def normalize_tag(self, tag):
         tag = tuple(tag)
diff --git a/kwant/lattice.py b/kwant/lattice.py
index e93228980cc7392bcd5f9842f15bae745eb584eb..f00647d1d529dc1834e9590ea5c71b392d6a603a 100644
--- a/kwant/lattice.py
+++ b/kwant/lattice.py
@@ -427,7 +427,7 @@ class Monatomic(builder.SiteFamily, Polyatomic):
         cl = self.__module__ + '.' + self.__class__.__name__
         canonical_repr = msg.format(cl, short_array_repr(prim_vecs),
                                     short_array_repr(offset), repr(name))
-        super(Monatomic, self).__init__(canonical_repr, name)
+        super().__init__(canonical_repr, name)
 
         self.sublattices = [self]
         self._prim_vecs = prim_vecs
diff --git a/kwant/plotter.py b/kwant/plotter.py
index 22bd311c1b4db700653ba67c02f6f278b4834871..3564eca591c27e7f1078f9dc69c7968c283e5b5f 100644
--- a/kwant/plotter.py
+++ b/kwant/plotter.py
@@ -82,7 +82,7 @@ def nparray_if_array(var):
 if mpl_enabled:
     class LineCollection(collections.LineCollection):
         def __init__(self, segments, reflen=None, **kwargs):
-            super(LineCollection, self).__init__(segments, **kwargs)
+            super().__init__(segments, **kwargs)
             self.reflen = reflen
 
         def set_linewidths(self, linewidths):
@@ -97,14 +97,14 @@ if mpl_enabled:
             else:
                 factor = 1
 
-            super(LineCollection, self).set_linewidths(self.linewidths_orig *
+            super().set_linewidths(self.linewidths_orig *
                                                        factor)
-            return super(LineCollection, self).draw(renderer)
+            return super().draw(renderer)
 
 
     class PathCollection(collections.PathCollection):
         def __init__(self, paths, sizes=None, reflen=None, **kwargs):
-            super(PathCollection, self).__init__(paths, sizes=sizes, **kwargs)
+            super().__init__(paths, sizes=sizes, **kwargs)
 
             self.reflen = reflen
             self.linewidths_orig = nparray_if_array(self.get_linewidths())
@@ -177,7 +177,7 @@ if mpl_enabled:
 
         class Line3DCollection(mplot3d.art3d.Line3DCollection):
             def __init__(self, segments, reflen=None, zorder=0, **kwargs):
-                super(Line3DCollection, self).__init__(segments, **kwargs)
+                super().__init__(segments, **kwargs)
                 self.reflen = reflen
                 self.zorder3d = zorder
 
@@ -185,7 +185,7 @@ if mpl_enabled:
                 self.linewidths_orig = nparray_if_array(linewidths)
 
             def do_3d_projection(self, renderer):
-                super(Line3DCollection, self).do_3d_projection(renderer)
+                super().do_3d_projection(renderer)
                 # The whole 3D ordering is flawed in mplot3d when several
                 # collections are added. We just use normal zorder. Note the
                 # "-" due to the different logic in the 3d plotting, we still
@@ -207,9 +207,9 @@ if mpl_enabled:
                 else:
                     factor = 1
 
-                super(Line3DCollection, self).set_linewidths(
+                super().set_linewidths(
                                                 self.linewidths_orig * factor)
-                super(Line3DCollection, self).draw(renderer)
+                super().draw(renderer)
 
 
         class Path3DCollection(mplot3d.art3d.Patch3DCollection):
@@ -220,7 +220,7 @@ if mpl_enabled:
                 if offsets is not None:
                     kwargs['offsets'] = offsets[:, :2]
 
-                super(Path3DCollection, self).__init__(paths, **kwargs)
+                super().__init__(paths, **kwargs)
 
                 if offsets is not None:
                     self.set_3d_properties(zs=offsets[:, 2], zdir="z")
@@ -246,17 +246,17 @@ if mpl_enabled:
 
             def set_array(self, array):
                 self.array_orig = nparray_if_array(array)
-                super(Path3DCollection, self).set_array(array)
+                super().set_array(array)
 
             def set_color(self, colors):
                 self.facecolors_orig = nparray_if_array(colors)
                 self.edgecolors_orig = self.facecolors_orig
-                super(Path3DCollection, self).set_color(colors)
+                super().set_color(colors)
 
             def set_edgecolors(self, colors):
                 colors = matplotlib.colors.colorConverter.to_rgba_array(colors)
                 self.edgecolors_orig = nparray_if_array(colors)
-                super(Path3DCollection, self).set_edgecolors(colors)
+                super().set_edgecolors(colors)
 
             def get_transforms(self):
                 # this is exact only for an isometric projection, for the
@@ -316,14 +316,14 @@ if mpl_enabled:
                         self.facecolors_orig.shape[0] > 1):
                         shape = list(self.facecolors_orig.shape)
                         shape[0] = vs.shape[1]
-                        super(Path3DCollection, self).set_facecolors(
+                        super().set_facecolors(
                             np.resize(self.facecolors_orig, shape)[indx])
 
                     if (self.edgecolors_orig is not None and
                         self.edgecolors_orig.shape[0] > 1):
                         shape = list(self.edgecolors_orig.shape)
                         shape[0] = vs.shape[1]
-                        super(Path3DCollection, self).set_edgecolors(
+                        super().set_edgecolors(
                                                 np.resize(self.edgecolors_orig,
                                                           shape)[indx])
                 else:
@@ -354,7 +354,7 @@ if mpl_enabled:
 
                     self.set_linewidths(self.linewidths_orig2 * factor)
 
-                super(Path3DCollection, self).draw(renderer)
+                super().draw(renderer)
 
 
 # matplotlib helper functions.
diff --git a/kwant/solvers/common.py b/kwant/solvers/common.py
index 0d59ce553d97f0620b9e2425565e7e91c7acf1b1..6d6a683c8fce686af12693e18384f8b39d6c3311 100644
--- a/kwant/solvers/common.py
+++ b/kwant/solvers/common.py
@@ -714,7 +714,7 @@ class SMatrix(BlockResult):
     def __init__(self, data, lead_info, out_leads, in_leads,
                  current_conserving=False):
         sizes = [len(i.momenta) // 2 for i in lead_info]
-        super(SMatrix, self).__init__(data, lead_info, out_leads, in_leads,
+        super().__init__(data, lead_info, out_leads, in_leads,
                                       sizes, current_conserving)
 
     def num_propagating(self, lead):
@@ -761,7 +761,7 @@ class GreensFunction(BlockResult):
     def __init__(self, data, lead_info, out_leads, in_leads,
                  current_conserving=False):
         sizes = [i.shape[0] for i in lead_info]
-        super(GreensFunction, self).__init__(
+        super().__init__(
             data, lead_info, out_leads, in_leads, sizes, current_conserving)
 
     def num_propagating(self, lead):