diff --git a/src/Checker/Checker.py b/src/Checker/Checker.py
index 762db1c629aadbd75fbae6b72ec719d2749fd680..e97e0b0414cfdbd749eae8fe2433cb9dfe06f992 100644
--- a/src/Checker/Checker.py
+++ b/src/Checker/Checker.py
@@ -20,12 +20,14 @@ from enum import Enum
 
 from Model.Except import NotImplementedMethodeError
 
+
 class STATUS(Enum):
     UNKNOWN = -1
     OK = 0
     WARNING = 1
     ERROR = 2
 
+
 class AbstractModelChecker(object):
     def __init__(self):
         self._name = ""
diff --git a/src/Checker/Mage.py b/src/Checker/Mage.py
index edb0c349a685408d8243309a8a06ad3549206550..d5b527fa053bb6aa2d59d3ed1ec6bba84845689d 100644
--- a/src/Checker/Mage.py
+++ b/src/Checker/Mage.py
@@ -27,8 +27,9 @@ from Checker.Checker import AbstractModelChecker, STATUS
 
 _translate = QCoreApplication.translate
 
+
 class MageNetworkGraphChecker(AbstractModelChecker):
-    def __init__(self, connectivity = True):
+    def __init__(self, connectivity=True):
         super(MageNetworkGraphChecker, self).__init__()
 
         self._mode_conn = connectivity
@@ -38,8 +39,10 @@ class MageNetworkGraphChecker(AbstractModelChecker):
         else:
             mode = "cycle"
 
-        self._name = _translate("Checker", f"Mage network graph {mode} checker")
-        self._description = _translate("Checker", "Check if the network graph is valid")
+        self._name = _translate(
+            "Checker", f"Mage network graph {mode} checker")
+        self._description = _translate(
+            "Checker", "Check if the network graph is valid")
 
     @timer
     def _connectivity(self, summary, status, graph):
diff --git a/src/Checker/Study.py b/src/Checker/Study.py
index 868ac1041bb8ebc2bf2d07b7f012d585b1b9effd..b5287e6f6877114982b18d7c5f3152b4bd9c6b46 100644
--- a/src/Checker/Study.py
+++ b/src/Checker/Study.py
@@ -30,7 +30,8 @@ class StudyNetworkReachChecker(AbstractModelChecker):
         super(StudyNetworkReachChecker, self).__init__()
 
         self._name = _translate("Checker", "Study network reach checker")
-        self._description = _translate("Checker", "Check if exists at least one reach for study")
+        self._description = _translate(
+            "Checker", "Check if exists at least one reach for study")
 
     def run(self, study):
         if study is None:
@@ -54,12 +55,14 @@ class StudyNetworkReachChecker(AbstractModelChecker):
         self._status = STATUS.OK
         return True
 
+
 class StudyGeometryChecker(AbstractModelChecker):
     def __init__(self):
         super(StudyGeometryChecker, self).__init__()
 
         self._name = _translate("Checker", "Study geometry checker")
-        self._description = _translate("Checker", "Check if exists geometry for each reach of study")
+        self._description = _translate(
+            "Checker", "Check if exists geometry for each reach of study")
         self._reachs = []
 
     def run(self, study):
@@ -128,6 +131,7 @@ class DummyWARNING(AbstractModelChecker):
 
         return True
 
+
 class DummyERROR(AbstractModelChecker):
     def __init__(self):
         super(DummyERROR, self).__init__()
diff --git a/src/Model/BoundaryCondition/BoundaryCondition.py b/src/Model/BoundaryCondition/BoundaryCondition.py
index d90c64780d1651ac48ba21076dbdfc40ac1d786f..f7e09f3d61e9d18f92cc951a1860416b0a005a7a 100644
--- a/src/Model/BoundaryCondition/BoundaryCondition.py
+++ b/src/Model/BoundaryCondition/BoundaryCondition.py
@@ -25,12 +25,13 @@ from Model.Except import NotImplementedMethodeError
 
 logger = logging.getLogger()
 
+
 class BoundaryCondition(SQLSubModel):
     _sub_classes = []
     _id_cnt = 0
 
-    def __init__(self, id:int = -1, name:str = "",
-                 status = None):
+    def __init__(self, id: int = -1, name: str = "",
+                 status=None):
         super(BoundaryCondition, self).__init__()
 
         self._status = status
@@ -101,7 +102,7 @@ class BoundaryCondition(SQLSubModel):
         return res
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = []
         tab = data["tab"]
 
@@ -115,9 +116,9 @@ class BoundaryCondition(SQLSubModel):
             t = row[2]
             ctor = cls._get_ctor_from_type(t)
             bc = ctor(
-                id = row[0],
-                name = row[1],
-                status = data['status']
+                id=row[0],
+                name=row[1],
+                status=data['status']
             )
 
             bc.node = None
@@ -143,7 +144,7 @@ class BoundaryCondition(SQLSubModel):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         tab = data["tab"]
 
         execute(f"DELETE FROM boundary_condition WHERE id = {self.id}")
@@ -155,7 +156,7 @@ class BoundaryCondition(SQLSubModel):
 
         sql = (
             "INSERT INTO " +
-            "boundary_condition(id, name, type, tab, node) "+
+            "boundary_condition(id, name, type, tab, node) " +
             "VALUES (" +
             f"{self.id}, '{self._sql_format(self._name)}', " +
             f"'{self._sql_format(self._type)}', '{tab}', {node}" +
@@ -170,7 +171,7 @@ class BoundaryCondition(SQLSubModel):
 
             sql = (
                 "INSERT INTO " +
-                "boundary_condition_data(ind, data0, data1, bc) "+
+                "boundary_condition_data(ind, data0, data1, bc) " +
                 f"VALUES ({ind}, '{data0}', {data1}, {self.id})"
             )
             execute(sql)
@@ -246,7 +247,7 @@ class BoundaryCondition(SQLSubModel):
         new_1 = self._default_1
 
         if len(header) != 0:
-            for i in [0,1]:
+            for i in [0, 1]:
                 for j in range(len(header)):
                     if self._header[i] == header[j]:
                         if i == 0:
@@ -259,13 +260,13 @@ class BoundaryCondition(SQLSubModel):
 
         return (new_0, new_1)
 
-    def add(self, index:int):
+    def add(self, index: int):
         value = (self._default_0, self._default_1)
         self._data.insert(index, value)
         self._status.modified()
         return value
 
-    def insert(self, index:int, value):
+    def insert(self, index: int, value):
         self._data.insert(index, value)
         self._status.modified()
 
@@ -306,29 +307,28 @@ class BoundaryCondition(SQLSubModel):
             l.append(r)
         return l
 
-
     def _set_i_c_v(self, index, column, value):
         v = list(self._data[index])
         v[column] = self._types[column](value)
         self._data[index] = tuple(v)
         self._status.modified()
 
-    def set_i_0(self, index:int, value):
+    def set_i_0(self, index: int, value):
         self._set_i_c_v(index, 0, value)
 
-    def set_i_1(self, index:int, value):
+    def set_i_1(self, index: int, value):
         self._set_i_c_v(index, 1, value)
 
     @timer
     def convert(self, cls):
-        new = cls(name = self.name, status = self._status)
+        new = cls(name=self.name, status=self._status)
         new.node = self.node
 
         for i, _ in enumerate(self.data):
             new.add(i)
 
-        for i in [0,1]:
-            for j in [0,1]:
+        for i in [0, 1]:
+            for j in [0, 1]:
                 if self._header[i] == new.header[j]:
                     for ind, v in self.data:
                         try:
diff --git a/src/Model/BoundaryCondition/BoundaryConditionList.py b/src/Model/BoundaryCondition/BoundaryConditionList.py
index eb612d9fa64b4e799883f11d8d7d3a5eca734d6b..44499316a4fe5ab2ab71c9781914289093b499f7 100644
--- a/src/Model/BoundaryCondition/BoundaryConditionList.py
+++ b/src/Model/BoundaryCondition/BoundaryConditionList.py
@@ -30,6 +30,7 @@ from Model.BoundaryCondition.BoundaryConditionTypes import (
     Solid,
 )
 
+
 class BoundaryConditionList(PamhyrModelListWithTab):
     _tabs_list = ["liquid", "solid", "suspenssion"]
     _sub_classes = [
@@ -37,8 +38,8 @@ class BoundaryConditionList(PamhyrModelListWithTab):
     ]
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data['status'])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data['status'])
 
         if data is None:
             data = {}
@@ -51,7 +52,7 @@ class BoundaryConditionList(PamhyrModelListWithTab):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         execute("DELETE FROM boundary_condition")
 
         if data is None:
@@ -60,7 +61,7 @@ class BoundaryConditionList(PamhyrModelListWithTab):
         for tab in self._tabs:
             data["tab"] = tab
             for bc in self._tabs[tab]:
-                bc._sql_save(execute, data = data)
+                bc._sql_save(execute, data=data)
 
         return True
 
diff --git a/src/Model/BoundaryCondition/BoundaryConditionTypes.py b/src/Model/BoundaryCondition/BoundaryConditionTypes.py
index af3c91fdd5228bed070fab8633d5c34b71b0c316..176bb78882ee308472721d51292cf9f9b0592ff4 100644
--- a/src/Model/BoundaryCondition/BoundaryConditionTypes.py
+++ b/src/Model/BoundaryCondition/BoundaryConditionTypes.py
@@ -22,7 +22,7 @@ from Model.BoundaryCondition.BoundaryCondition import BoundaryCondition
 
 
 class NotDefined(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(NotDefined, self).__init__(id=id, name=name, status=status)
 
         self._type = "ND"
@@ -32,9 +32,11 @@ class NotDefined(BoundaryCondition):
     def _default_0(self):
         return 0.0
 
+
 class PonctualContribution(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
-        super(PonctualContribution, self).__init__(id=id, name=name, status=status)
+    def __init__(self, id: int = -1, name: str = "", status=None):
+        super(PonctualContribution, self).__init__(
+            id=id, name=name, status=status)
 
         self._type = "PC"
         self._header = ["time", "discharge"]
@@ -44,8 +46,9 @@ class PonctualContribution(BoundaryCondition):
     def compatibility(cls):
         return ["liquid"]
 
+
 class TimeOverZ(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(TimeOverZ, self).__init__(id=id, name=name, status=status)
 
         self._type = "TZ"
@@ -56,9 +59,11 @@ class TimeOverZ(BoundaryCondition):
     def compatibility(cls):
         return ["liquid"]
 
+
 class TimeOverDischarge(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
-        super(TimeOverDischarge, self).__init__(id=id, name=name, status=status)
+    def __init__(self, id: int = -1, name: str = "", status=None):
+        super(TimeOverDischarge, self).__init__(
+            id=id, name=name, status=status)
 
         self._type = "TD"
         self._header = ["time", "discharge"]
@@ -68,8 +73,9 @@ class TimeOverDischarge(BoundaryCondition):
     def compatibility(cls):
         return ["liquid"]
 
+
 class ZOverDischarge(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(ZOverDischarge, self).__init__(id=id, name=name, status=status)
 
         self._type = "ZD"
@@ -86,7 +92,7 @@ class ZOverDischarge(BoundaryCondition):
 
 
 class Solid(BoundaryCondition):
-    def __init__(self, id:int = -1, name:str = "", status = None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(Solid, self).__init__(id=id, name=name, status=status)
 
         self.d50 = 0.002
diff --git a/src/Model/Except.py b/src/Model/Except.py
index 7d5e3959c933d2856c00340b0be2c3b9e1d9f9ad..ce667e38e1e411434194fd867bb318b64f196cfc 100644
--- a/src/Model/Except.py
+++ b/src/Model/Except.py
@@ -45,8 +45,9 @@ def exception_message_box(exception):
 # Custom error #
 ################
 
+
 class ExeceptionWithMessageBox(Exception):
-    def __init__(self, title = "Exeception"):
+    def __init__(self, title="Exeception"):
         self.title = title
 
     def header(self):
@@ -72,7 +73,7 @@ class ExeceptionWithMessageBox(Exception):
 class NotImplementedMethodeError(ExeceptionWithMessageBox):
     def __init__(self, obj, func):
         super(NotImplementedMethodeError, self).__init__(
-            title = _translate("Exception", "Method not implemented")
+            title=_translate("Exception", "Method not implemented")
         )
 
         self.obj = obj
@@ -104,10 +105,11 @@ class NotImplementedMethodeError(ExeceptionWithMessageBox):
             f" '{self.obj.__class__}'"
         )
 
+
 class FileFormatError(ExeceptionWithMessageBox):
     def __init__(self, filename, reason):
         super(FileFormatError, self).__init__(
-            title = _translate("Exception", "FileFormatError")
+            title=_translate("Exception", "FileFormatError")
         )
 
         self.reason = reason
@@ -137,7 +139,7 @@ class FileFormatError(ExeceptionWithMessageBox):
 class ClipboardFormatError(ExeceptionWithMessageBox):
     def __init__(self, mime=None, header=None, data=None):
         super(ClipboardFormatError, self).__init__(
-            title = _translate("Exception", "Clipboard format error")
+            title=_translate("Exception", "Clipboard format error")
         )
 
         self._mime = mime
diff --git a/src/Model/Friction/Friction.py b/src/Model/Friction/Friction.py
index 7e29e93141f67a007308e886bcc206f66d95887d..baea73978f0d72a84d67f26e6971306deb94fdf5 100644
--- a/src/Model/Friction/Friction.py
+++ b/src/Model/Friction/Friction.py
@@ -20,8 +20,9 @@ from tools import trace, timer
 
 from Model.Tools.PamhyrDB import SQLSubModel
 
+
 class Friction(SQLSubModel):
-    def __init__(self, name:str = "", status = None):
+    def __init__(self, name: str = "", status=None):
         super(Friction, self).__init__()
 
         self._status = status
@@ -57,7 +58,7 @@ class Friction(SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = []
         reach = data["parent"]  # Reach object
         status = data["status"]
@@ -78,7 +79,7 @@ class Friction(SQLSubModel):
             es = next(filter(lambda s: s.id == row[4], stricklers))
 
             # Create friction
-            sec = cls(status = status)
+            sec = cls(status=status)
             sec.edge = reach
             sec.begin_kp = row[1]
             sec.end_kp = row[2]
@@ -87,7 +88,7 @@ class Friction(SQLSubModel):
 
             yield ind, sec
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ind = data["ind"]
         execute(
             "INSERT INTO " +
@@ -119,7 +120,7 @@ class Friction(SQLSubModel):
         self._edge = edge
         if (edge is not None and
             self._begin_kp == 0.0 and
-            self._end_kp == 0.0):
+                self._end_kp == 0.0):
             self._begin_kp = self._edge.reach.get_kp_min()
             self._end_kp = self._edge.reach.get_kp_max()
         self._status.modified()
diff --git a/src/Model/Friction/FrictionList.py b/src/Model/Friction/FrictionList.py
index 777729c76fbcbe4178c3df0be586c5ad31dc2b82..9531affa14900b8de69764be3121b138f2945b8a 100644
--- a/src/Model/Friction/FrictionList.py
+++ b/src/Model/Friction/FrictionList.py
@@ -28,6 +28,7 @@ from Model.Friction.Friction import Friction
 
 logger = logging.getLogger()
 
+
 class FrictionList(PamhyrModelList):
     _sub_classes = [
         Friction
@@ -46,8 +47,8 @@ class FrictionList(PamhyrModelList):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data['status'])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data['status'])
 
         new._lst = Friction._sql_load(
             execute, data
@@ -55,7 +56,7 @@ class FrictionList(PamhyrModelList):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         reach = data["reach"]
         execute(f"DELETE FROM friction WHERE reach = {reach.id}")
 
@@ -63,7 +64,7 @@ class FrictionList(PamhyrModelList):
         ind = 0
         for friction in self._lst:
             data["ind"] = ind
-            ok &= friction._sql_save(execute, data = data)
+            ok &= friction._sql_save(execute, data=data)
             ind += 1
 
         return ok
@@ -76,7 +77,7 @@ class FrictionList(PamhyrModelList):
                 lambda p: p[1],
                 sorted(
                     self._lst,
-                    key = lambda p: p[0]
+                    key=lambda p: p[0]
                 )
             )
         )
@@ -93,7 +94,7 @@ class FrictionList(PamhyrModelList):
         return self.lst
 
     def new(self, index):
-        n = Friction(status = self._status)
+        n = Friction(status=self._status)
         self._lst.insert(index, n)
         self._status.modified()
         return n
diff --git a/src/Model/Geometry/Point.py b/src/Model/Geometry/Point.py
index cfea71a47f6384502e7c3edb07a12a17f31410b9..d6deead848d12cc28d48140be752f9172454d60f 100644
--- a/src/Model/Geometry/Point.py
+++ b/src/Model/Geometry/Point.py
@@ -18,8 +18,9 @@
 
 from Model.Except import NotImplementedMethodeError
 
+
 class Point(object):
-    def __init__(self, name:str = "", profile=None, status = None):
+    def __init__(self, name: str = "", profile=None, status=None):
         super(Point, self).__init__()
 
         self._status = status
@@ -28,7 +29,6 @@ class Point(object):
         self._profile = profile
         self._sl = None
 
-
     @property
     def sl(self):
         if self._sl is None:
diff --git a/src/Model/Geometry/PointXY.py b/src/Model/Geometry/PointXY.py
index 7448d0459ef8912bbd29deb26b8d9c316693f9ea..3c958721a36957af477bb534d4a278cdcef3f5d8 100644
--- a/src/Model/Geometry/PointXY.py
+++ b/src/Model/Geometry/PointXY.py
@@ -20,10 +20,11 @@ from math import dist
 
 from Model.Geometry.Point import Point
 
+
 class PointAC(Point):
-    def __init__(self, a:float = 0.0, c:float = 0.0,
-                 name: str = "", status = None):
-        super(PointXY, self).__init__(name = name, status = status)
+    def __init__(self, a: float = 0.0, c: float = 0.0,
+                 name: str = "", status=None):
+        super(PointXY, self).__init__(name=name, status=status)
 
         self._a = float(a)
         self._c = float(c)
diff --git a/src/Model/Geometry/PointXYZ.py b/src/Model/Geometry/PointXYZ.py
index 6f1b57849d69873698de9afaf738a50661892088..9a1082a5abf941622ca59035ad9c1a35e96849c6 100644
--- a/src/Model/Geometry/PointXYZ.py
+++ b/src/Model/Geometry/PointXYZ.py
@@ -22,12 +22,14 @@ import numpy as np
 from Model.Tools.PamhyrDB import SQLSubModel
 from Model.Geometry.Point import Point
 
+
 class PointXYZ(Point, SQLSubModel):
     _sub_classes = []
 
-    def __init__(self, x:float = 0.0, y:float = 0.0, z:float = 0.0,
-                 name:str = "", profile = None, status = None):
-        super(PointXYZ, self).__init__(name=name, profile=profile, status=status)
+    def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0,
+                 name: str = "", profile=None, status=None):
+        super(PointXYZ, self).__init__(
+            name=name, profile=profile, status=status)
 
         self._x = float(x)
         self._y = float(y)
@@ -69,7 +71,7 @@ class PointXYZ(Point, SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         status = data["status"]
         profile = data["profile"]
 
@@ -89,10 +91,10 @@ class PointXYZ(Point, SQLSubModel):
             sl = row[5]
 
             new = cls(
-                name = name,
-                x = x, y = y, z = z,
-                profile = profile,
-                status = status
+                name=name,
+                x=x, y=y, z=z,
+                profile=profile,
+                status=status
             )
 
             if sl == -1 or sl == None:
@@ -107,7 +109,7 @@ class PointXYZ(Point, SQLSubModel):
 
             yield ind, new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         profile = data["profile"]
         ind = data["ind"]
 
@@ -115,7 +117,7 @@ class PointXYZ(Point, SQLSubModel):
 
         sql = (
             "INSERT OR REPLACE INTO " +
-            "geometry_pointXYZ(ind, name, x, y, z, profile, sl) "+
+            "geometry_pointXYZ(ind, name, x, y, z, profile, sl) " +
             "VALUES (" +
             f"{ind}, '{self._sql_format(self._name)}', " +
             f"{self.x}, {self.y}, {self.z}, " +
@@ -126,7 +128,6 @@ class PointXYZ(Point, SQLSubModel):
 
         return True
 
-
     @classmethod
     def from_data(cls, header, data):
         point = None
@@ -149,7 +150,6 @@ class PointXYZ(Point, SQLSubModel):
 
         return point
 
-
     def __repr__(self):
         return f"({self._x}, {self._y}, {self._z}, {self._name})"
 
diff --git a/src/Model/Geometry/Profile.py b/src/Model/Geometry/Profile.py
index 6290498cb32ce4106bdd623d58387299f2fe3e5c..d28da7d652040ac802f4848b3459071947b0e484 100644
--- a/src/Model/Geometry/Profile.py
+++ b/src/Model/Geometry/Profile.py
@@ -25,14 +25,15 @@ from Model.Except import NotImplementedMethodeError
 
 logger = logging.getLogger()
 
+
 class Profile(object):
     _id_cnt = 0
 
-    def __init__(self, id:int = -1, num:int = 0,
-                 kp:float = 0.0, name:str = "",
-                 code1:int = 0, code2:int = 0,
-                 _type:str = "", reach = None,
-                 status = None):
+    def __init__(self, id: int = -1, num: int = 0,
+                 kp: float = 0.0, name: str = "",
+                 code1: int = 0, code2: int = 0,
+                 _type: str = "", reach=None,
+                 status=None):
         super(Profile, self).__init__()
 
         self._status = status
@@ -71,7 +72,7 @@ class Profile(object):
                 lambda p: p[1],
                 sorted(
                     self._points,
-                    key = lambda p: p[0]
+                    key=lambda p: p[0]
                 )
             )
         )
@@ -185,7 +186,7 @@ class Profile(object):
         self._profile_type = value
         self._status.modified()
 
-    def point(self, i:int):
+    def point(self, i: int):
         if i < len(self.points):
             return self.points[i]
 
@@ -200,8 +201,7 @@ class Profile(object):
         return [point for point in self.points
                 if point.point_is_named()]
 
-
-    def insert_point(self, index: int, point:Point):
+    def insert_point(self, index: int, point: Point):
         """Insert point at index.
 
         Args:
@@ -214,7 +214,6 @@ class Profile(object):
         self.points.insert(index, point)
         self._status.modified()
 
-
     def delete(self, indexes: int):
         """Delete points at index
 
@@ -281,11 +280,11 @@ class Profile(object):
 
     @timer
     def sort(self, column, is_reversed: bool = False):
-        predicate = lambda p: p.x
+        def predicate(p): return p.x
         if column == 'y':
-            predicate = lambda p: p.y
+            def predicate(p): return p.y
         elif column == 'z':
-            predicate = lambda p: p.z
+            def predicate(p): return p.z
 
         self.points = sorted(
             self.points,
diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py
index 929928b46e976a3267fb5fa755f2c5d010338c7a..de0fcd8cecc9e40c0e1bb565eabd3078f38d6f96 100644
--- a/src/Model/Geometry/ProfileXYZ.py
+++ b/src/Model/Geometry/ProfileXYZ.py
@@ -30,6 +30,7 @@ from Model.Geometry.Vector_1d import Vector1d
 
 logger = logging.getLogger()
 
+
 class ProfileXYZ(Profile, SQLSubModel):
     _sub_classes = [
         PointXYZ,
@@ -39,11 +40,11 @@ class ProfileXYZ(Profile, SQLSubModel):
                  id: int = -1,
                  name: str = "",
                  kp: float = 0.,
-                 reach = None,
-                 num = 0,
+                 reach=None,
+                 num=0,
                  nb_point: int = 0,
                  code1: int = 0, code2: int = 0,
-                 status = None):
+                 status=None):
         """ProfileXYZ constructor
 
         Args:
@@ -57,14 +58,14 @@ class ProfileXYZ(Profile, SQLSubModel):
             Nothing.
         """
         super(ProfileXYZ, self).__init__(
-            id = id,
-            num = num,
-            name = name,
-            kp = kp,
-            code1 = code1, code2 = code2,
-            _type = "XYZ",
-            reach = reach,
-            status = status,
+            id=id,
+            num=num,
+            name=name,
+            kp=kp,
+            code1=code1, code2=code2,
+            _type="XYZ",
+            reach=reach,
+            status=status,
         )
 
     @classmethod
@@ -103,7 +104,7 @@ class ProfileXYZ(Profile, SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         profiles = []
         status = data["status"]
         reach = data["reach"]
@@ -128,11 +129,11 @@ class ProfileXYZ(Profile, SQLSubModel):
             sl = row[7]
 
             new = cls(
-                id=id, num = num,
-                name = name, kp = kp,
-                code1 = code1, code2 = code2,
-                reach = data["parent"],
-                status = status
+                id=id, num=num,
+                name=name, kp=kp,
+                code1=code1, code2=code2,
+                reach=data["parent"],
+                status=status
             )
 
             if sl == -1 or sl == None:
@@ -154,7 +155,7 @@ class ProfileXYZ(Profile, SQLSubModel):
 
         # return profiles
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ok = True
         ind = data["ind"]
 
@@ -162,7 +163,7 @@ class ProfileXYZ(Profile, SQLSubModel):
 
         sql = (
             "INSERT OR REPLACE INTO " +
-            "geometry_profileXYZ(id, ind, name, reach, kp, num, code1, code2, sl) "+
+            "geometry_profileXYZ(id, ind, name, reach, kp, num, code1, code2, sl) " +
             "VALUES (" +
             f"{self.id}, {ind}, '{self._sql_format(self._name)}', " +
             f"{self.reach.id}, {self.kp}, {self.num}, " +
@@ -225,7 +226,6 @@ class ProfileXYZ(Profile, SQLSubModel):
 
         return point
 
-
     def x(self):
         return [point.x for point in self.points]
 
@@ -374,9 +374,9 @@ class ProfileXYZ(Profile, SQLSubModel):
             constant = 0.0
 
             if (first_named_point is not None and
-                last_named_point is not None):
+                    last_named_point is not None):
                 if (first_named_point != last_named_point and
-                    first_named_point.x != last_named_point.x):
+                        first_named_point.x != last_named_point.x):
                     vector = Vector1d(first_named_point, last_named_point)
                     normalized_direction_vec = vector.normalized_direction_vector()
                 else:
diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py
index a6ed514cb5d49d4cd956e66e873f092747fe6a72..c2df3a7576298134595da853c458dce3d619e292 100644
--- a/src/Model/Geometry/Reach.py
+++ b/src/Model/Geometry/Reach.py
@@ -36,6 +36,7 @@ from Model.Except import FileFormatError, exception_message_box
 
 logger = logging.getLogger()
 
+
 class Reach(SQLSubModel):
     _sub_classes = [
         ProfileXYZ,
@@ -59,17 +60,17 @@ class Reach(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data["status"], parent = data["parent"])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data["status"], parent=data["parent"])
 
         new._profiles = ProfileXYZ._sql_load(
             execute,
-            data = data
+            data=data
         )
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         # Delete old data
         execute(f"DELETE FROM geometry_profileXYZ WHERE reach = {self.id}")
         # execute(f"DELETE FROM geometry_pointXYZ")
@@ -115,7 +116,7 @@ class Reach(SQLSubModel):
                 lambda p: p[1],
                 sorted(
                     self._profiles,
-                    key = lambda p: p[0]
+                    key=lambda p: p[0]
                 )
             )
         )
@@ -195,7 +196,6 @@ class Reach(SQLSubModel):
         self._update_profile_numbers()
         self._status.modified()
 
-
     def delete(self, indexes):
         """Delete some elements in profile list
 
@@ -242,7 +242,6 @@ class Reach(SQLSubModel):
         self._update_profile_numbers()
         self._status.modified()
 
-
     def move_up_profile(self, index: int):
         if index < len(self.profiles):
             next = index - 1
@@ -298,7 +297,6 @@ class Reach(SQLSubModel):
     def get_kp_max(self):
         return max(self.get_kp())
 
-
     # Sediment Layers
 
     def get_sl(self):
@@ -437,7 +435,6 @@ class Reach(SQLSubModel):
     def get_guidelines_z(self):
         return self._map_guidelines_points(lambda p: p.z)
 
-
     # Sort
 
     @timer
@@ -482,7 +479,8 @@ class Reach(SQLSubModel):
 
         try:
             list_profile, list_header = self.read_file_st(str(file_path_name))
-            profile_header = ["num", "code1", "code2", "nb_point", "kp", "name"]
+            profile_header = ["num", "code1",
+                              "code2", "nb_point", "kp", "name"]
 
             if list_profile and list_header:
                 for ind, profile in enumerate(list_profile):
diff --git a/src/Model/Geometry/Vector_1d.py b/src/Model/Geometry/Vector_1d.py
index a3da9358a4a4946b5b6510d0a6fabf5476c9b086..e136f121fcf51dd8dd3b338244728b7d93bec8d2 100644
--- a/src/Model/Geometry/Vector_1d.py
+++ b/src/Model/Geometry/Vector_1d.py
@@ -19,6 +19,7 @@
 import numpy as np
 from Model.Geometry.PointXYZ import PointXYZ
 
+
 class Vector1d:
     def __init__(self, a: PointXYZ, b: PointXYZ):
         self.A = a
diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py
index a40e026176f052d9f0d5e1a1c365f455cddd86b7..20bbb3d0956f62a7c39d6ed2e8774bae92551d28 100644
--- a/src/Model/InitialConditions/InitialConditions.py
+++ b/src/Model/InitialConditions/InitialConditions.py
@@ -22,12 +22,13 @@ from functools import reduce
 
 from Model.Tools.PamhyrDB import SQLSubModel
 
+
 class Data(SQLSubModel):
-    def __init__(self, name:str = "",
-                 comment:str = "", reach = None,
-                 kp:float = 0.0, discharge:float = 0.0,
-                 height:float = 0.0,
-                 status = None):
+    def __init__(self, name: str = "",
+                 comment: str = "", reach=None,
+                 kp: float = 0.0, discharge: float = 0.0,
+                 height: float = 0.0,
+                 status=None):
         super(Data, self).__init__()
 
         self._status = status
@@ -73,7 +74,7 @@ class Data(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         id = data["reach"].id
         table = execute(
             "SELECT ind, name, comment, kp, discharge, height " +
@@ -95,20 +96,20 @@ class Data(SQLSubModel):
             height = row[5]
 
             d = cls(
-                reach = data["reach"],
-                status = data["status"],
-                name = name,
-                comment = comment,
-                kp = kp,
-                discharge = discharge,
-                height = height,
+                reach=data["reach"],
+                status=data["status"],
+                name=name,
+                comment=comment,
+                kp=kp,
+                discharge=discharge,
+                height=height,
             )
 
             new[ind] = d
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ind = data["ind"]
 
         execute(
@@ -124,16 +125,15 @@ class Data(SQLSubModel):
 
         return True
 
-
     def copy(self):
         new = Data(
-            name = self.name,
-            comment = self._comment,
-            kp = self._kp,
-            discharge = self._discharge,
-            height = self._height,
-            reach = self._reach,
-            status = self._status,
+            name=self.name,
+            comment=self._comment,
+            kp=self._kp,
+            discharge=self._discharge,
+            height=self._height,
+            reach=self._reach,
+            status=self._status,
         )
 
         return new
@@ -216,7 +216,7 @@ class InitialConditions(SQLSubModel):
         Data
     ]
 
-    def __init__(self, reach = None, status = None):
+    def __init__(self, reach=None, status=None):
         super(InitialConditions, self).__init__()
 
         self._status = status
@@ -233,21 +233,21 @@ class InitialConditions(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = cls(
-            reach = data["reach"],
-            status = data["status"]
+            reach=data["reach"],
+            status=data["status"]
         )
 
         new._data = Data._sql_load(
             execute,
-            data = data
+            data=data
         )
 
         if new._data is not None:
             yield new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ok = True
 
         ind = 0
@@ -286,7 +286,7 @@ class InitialConditions(SQLSubModel):
         self._status.modified()
 
     def new(self, index):
-        n = Data(reach = self._reach, status = self._status)
+        n = Data(reach=self._reach, status=self._status)
         self._data.insert(index, n)
         self._status.modified()
 
@@ -319,7 +319,6 @@ class InitialConditions(SQLSubModel):
         self._data.sort(reverse=reverse, key=key)
         self._status.modified()
 
-
     def _data_get(self, key):
         return list(
             map(
@@ -339,8 +338,8 @@ class InitialConditions(SQLSubModel):
 
     def _sort_by_z_and_kp(self, profiles):
         profiles.sort(
-            reverse = False,
-            key = lambda p: p.kp
+            reverse=False,
+            key=lambda p: p.kp
         )
 
         first_z = profiles[0].z()
@@ -348,11 +347,11 @@ class InitialConditions(SQLSubModel):
 
         if first_z > last_z:
             profiles.sort(
-                reverse = True,
-                key = lambda p: p.kp
+                reverse=True,
+                key=lambda p: p.kp
             )
 
-    def generate_growing_constante_height(self, height:float):
+    def generate_growing_constante_height(self, height: float):
         self._data = []
 
         profiles = self._reach.reach.profiles
@@ -360,7 +359,7 @@ class InitialConditions(SQLSubModel):
 
         prev = None
         for profile in profiles:
-            new = Data(reach = self._reach, status = self._status)
+            new = Data(reach=self._reach, status=self._status)
             new["kp"] = profile.kp
 
             if prev is None:
@@ -379,11 +378,11 @@ class InitialConditions(SQLSubModel):
             is_reverse = True
 
         self._data.sort(
-            reverse = not is_reverse,
-            key = lambda d: d['kp']
+            reverse=not is_reverse,
+            key=lambda d: d['kp']
         )
 
-    def generate_discharge(self, discharge:float):
+    def generate_discharge(self, discharge: float):
         self._new = []
 
         for d in self._data:
diff --git a/src/Model/InitialConditions/InitialConditionsDict.py b/src/Model/InitialConditions/InitialConditionsDict.py
index f2bd038f213ca1fdb3fb963719dabf40206f6276..5fc8b650963eb7e9942251ac7723ce608c9d4d4c 100644
--- a/src/Model/InitialConditions/InitialConditionsDict.py
+++ b/src/Model/InitialConditions/InitialConditionsDict.py
@@ -23,21 +23,22 @@ from tools import trace, timer
 from Model.Tools.PamhyrDict import PamhyrModelDict
 from Model.InitialConditions.InitialConditions import InitialConditions
 
+
 class InitialConditionsDict(PamhyrModelDict):
     _sub_classes = [
         InitialConditions,
     ]
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data["status"])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data["status"])
 
         for reach in data["edges"]:
             data["reach"] = reach
 
             ic = InitialConditions._sql_load(
                 execute,
-                data = data
+                data=data
             )
 
             if ic is not None:
@@ -45,7 +46,7 @@ class InitialConditionsDict(PamhyrModelDict):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ok = True
         if data is None:
             data = {}
@@ -58,7 +59,6 @@ class InitialConditionsDict(PamhyrModelDict):
 
         return ok
 
-
     def get(self, key):
         if key in self._dict:
             v = self._dict[key]
@@ -72,6 +72,6 @@ class InitialConditionsDict(PamhyrModelDict):
         return new
 
     def new(self, reach):
-        new = InitialConditions(reach = reach, status = self._status)
+        new = InitialConditions(reach=reach, status=self._status)
         self.set(reach, new)
         return new
diff --git a/src/Model/LateralContribution/LateralContribution.py b/src/Model/LateralContribution/LateralContribution.py
index 727cf21bfdd8a619b5113aa7de89e8c05dc0816e..de117744a8a5117555c91109ca683ef6c0eff217 100644
--- a/src/Model/LateralContribution/LateralContribution.py
+++ b/src/Model/LateralContribution/LateralContribution.py
@@ -25,11 +25,12 @@ from Model.Except import NotImplementedMethodeError
 
 logger = logging.getLogger()
 
+
 class LateralContribution(SQLSubModel):
     _sub_classes = []
     _id_cnt = 0
 
-    def __init__(self, id:int = -1, name:str = "", status = None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(LateralContribution, self).__init__()
 
         self._status = status
@@ -39,7 +40,6 @@ class LateralContribution(SQLSubModel):
         else:
             self.id = id
 
-
         self._name = name
         self._type = ""
         self._edge = None
@@ -49,7 +49,8 @@ class LateralContribution(SQLSubModel):
         self._header = []
         self._types = [float, float]
 
-        LateralContribution._id_cnt = max(LateralContribution._id_cnt + 1, self.id)
+        LateralContribution._id_cnt = max(
+            LateralContribution._id_cnt + 1, self.id)
 
     @classmethod
     def _sql_create(cls, execute):
@@ -99,7 +100,7 @@ class LateralContribution(SQLSubModel):
         return res
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = []
         tab = data["tab"]
 
@@ -112,9 +113,9 @@ class LateralContribution(SQLSubModel):
             t = row[2]
             ctor = cls._get_ctor_from_type(t)
             lc = ctor(
-                id = row[0],
-                name = row[1],
-                status = data['status']
+                id=row[0],
+                name=row[1],
+                status=data['status']
             )
             lc.edge = None
             if row[3] != -1:
@@ -141,7 +142,7 @@ class LateralContribution(SQLSubModel):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         tab = data["tab"]
 
         execute(f"DELETE FROM lateral_contribution WHERE id = {self.id}")
@@ -153,7 +154,7 @@ class LateralContribution(SQLSubModel):
 
         sql = (
             "INSERT INTO " +
-            "lateral_contribution(id, name, type, tab, edge, begin_kp, end_kp) "+
+            "lateral_contribution(id, name, type, tab, edge, begin_kp, end_kp) " +
             "VALUES (" +
             f"{self.id}, '{self._sql_format(self._name)}', " +
             f"'{self._sql_format(self._type)}', '{tab}', {edge}, " +
@@ -169,7 +170,7 @@ class LateralContribution(SQLSubModel):
 
             sql = (
                 "INSERT INTO " +
-                "lateral_contribution_data(ind, data0, data1, lc) "+
+                "lateral_contribution_data(ind, data0, data1, lc) " +
                 f"VALUES ({ind}, '{data0}', {data1}, {self.id})"
             )
             execute(sql)
@@ -282,7 +283,7 @@ class LateralContribution(SQLSubModel):
         new_1 = self._default_1
 
         if len(header) != 0:
-            for i in [0,1]:
+            for i in [0, 1]:
                 for j in range(len(header)):
                     if self._header[i] == header[j]:
                         if i == 0:
@@ -295,13 +296,13 @@ class LateralContribution(SQLSubModel):
 
         return (new_0, new_1)
 
-    def add(self, index:int):
+    def add(self, index: int):
         value = (self._default_0, self._default_1)
         self._data.insert(index, value)
         self._status.modified()
         return value
 
-    def insert(self, index:int, value):
+    def insert(self, index: int, value):
         self._data.insert(index, value)
         self._status.modified()
 
@@ -342,22 +343,21 @@ class LateralContribution(SQLSubModel):
             l.append(r)
         return l
 
-
     def _set_i_c_v(self, index, column, value):
         v = list(self._data[index])
         v[column] = self._types[column](value)
         self._data[index] = tuple(v)
         self._status.modified()
 
-    def set_i_0(self, index:int, value):
+    def set_i_0(self, index: int, value):
         self._set_i_c_v(index, 0, value)
 
-    def set_i_1(self, index:int, value):
+    def set_i_1(self, index: int, value):
         self._set_i_c_v(index, 1, value)
 
     @timer
     def convert(self, cls):
-        new = cls(name = self.name, status = self._status)
+        new = cls(name=self.name, status=self._status)
         new.edge = self.edge
         new.begin_kp = self.begin_kp
         new.end_kp = self.end_kp
@@ -365,8 +365,8 @@ class LateralContribution(SQLSubModel):
         for i, _ in enumerate(self.data):
             new.add(i)
 
-        for i in [0,1]:
-            for j in [0,1]:
+        for i in [0, 1]:
+            for j in [0, 1]:
                 if self._header[i] == new.header[j]:
                     for ind, v in self.data:
                         try:
diff --git a/src/Model/LateralContribution/LateralContributionList.py b/src/Model/LateralContribution/LateralContributionList.py
index 8d0ba37dbd07ca60b037da4d2bbf2aa3cb2a59ff..a69330aede288386b4ea496e4fbc1815c7090c3e 100644
--- a/src/Model/LateralContribution/LateralContributionList.py
+++ b/src/Model/LateralContribution/LateralContributionList.py
@@ -27,6 +27,7 @@ from Model.LateralContribution.LateralContributionTypes import (
     NotDefined, LateralContrib, Rain, Evaporation,
 )
 
+
 class LateralContributionList(PamhyrModelListWithTab):
     _tabs_list = ["liquid", "solid", "suspenssion"]
     _sub_classes = [
@@ -34,8 +35,8 @@ class LateralContributionList(PamhyrModelListWithTab):
     ]
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data['status'])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data['status'])
 
         if data is None:
             data = {}
@@ -48,7 +49,7 @@ class LateralContributionList(PamhyrModelListWithTab):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         execute("DELETE FROM lateral_contribution")
 
         if data is None:
@@ -57,7 +58,7 @@ class LateralContributionList(PamhyrModelListWithTab):
         for tab in self._tabs:
             data["tab"] = tab
             for lc in self._tabs[tab]:
-                lc._sql_save(execute, data = data)
+                lc._sql_save(execute, data=data)
 
         return True
 
diff --git a/src/Model/LateralContribution/LateralContributionTypes.py b/src/Model/LateralContribution/LateralContributionTypes.py
index d669266a4d3e6ea36952fe8d149f998458e5ceaf..4f0a843c66ad8d6117733bba25cd413e78e60496 100644
--- a/src/Model/LateralContribution/LateralContributionTypes.py
+++ b/src/Model/LateralContribution/LateralContributionTypes.py
@@ -22,7 +22,7 @@ from Model.LateralContribution.LateralContribution import LateralContribution
 
 
 class NotDefined(LateralContribution):
-    def __init__(self, id:int = -1, name:str = "", status=None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(NotDefined, self).__init__(id=id, name=name, status=status)
 
         self._type = "ND"
@@ -32,8 +32,9 @@ class NotDefined(LateralContribution):
     def _default_0(self):
         return 0.0
 
+
 class LateralContrib(LateralContribution):
-    def __init__(self, id:int = -1, name:str = "", status=None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(LateralContrib, self).__init__(id=id, name=name, status=status)
 
         self._type = "LC"
@@ -44,8 +45,9 @@ class LateralContrib(LateralContribution):
     def compatibility(cls):
         return ["liquid"]
 
+
 class Rain(LateralContribution):
-    def __init__(self, id:int = -1, name:str = "", status=None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(Rain, self).__init__(id=id, name=name, status=status)
 
         self._type = "RA"
@@ -56,8 +58,9 @@ class Rain(LateralContribution):
     def compatibility(cls):
         return ["liquid"]
 
+
 class Evaporation(LateralContribution):
-    def __init__(self, id:int = -1, name:str = "", status=None):
+    def __init__(self, id: int = -1, name: str = "", status=None):
         super(Evaporation, self).__init__(id=id, name=name, status=status)
 
         self._type = "EV"
diff --git a/src/Model/Network/Edge.py b/src/Model/Network/Edge.py
index 122499434559a5165e2479686433fa8216d604ec..dddd8418aec95af410e68f0df1e7f929e01fd45f 100644
--- a/src/Model/Network/Edge.py
+++ b/src/Model/Network/Edge.py
@@ -18,13 +18,14 @@
 
 from Model.Network.Node import Node
 
+
 class Edge(object):
     _id_cnt = 0
 
-    def __init__(self, id:int, name:str,
-                 node1:Node = None,
-                 node2:Node = None,
-                 status = None):
+    def __init__(self, id: int, name: str,
+                 node1: Node = None,
+                 node2: Node = None,
+                 status=None):
         super(Edge, self).__init__()
 
         self._status = status
diff --git a/src/Model/Network/Graph.py b/src/Model/Network/Graph.py
index 62948a2b8a6b50b79ee845d44b443f00be800bcb..d617ba77039b09e21d65925dca13fac464856dfe 100644
--- a/src/Model/Network/Graph.py
+++ b/src/Model/Network/Graph.py
@@ -21,8 +21,9 @@ from functools import reduce
 from Model.Network.Node import Node
 from Model.Network.Edge import Edge
 
+
 class Graph(object):
-    def __init__(self, status = None):
+    def __init__(self, status=None):
         super(Graph, self).__init__()
 
         self._status = status
@@ -83,7 +84,7 @@ class Graph(object):
             False
         )
 
-    def node(self, node_name:str):
+    def node(self, node_name: str):
         node = list(
             filter(
                 lambda n: n.name == node_name,
@@ -96,7 +97,7 @@ class Graph(object):
 
         return node[0]
 
-    def edge(self, edge_name:str):
+    def edge(self, edge_name: str):
         edge = list(
             filter(
                 lambda e: e.name == edge_name,
@@ -109,12 +110,12 @@ class Graph(object):
 
         return edge[0]
 
-    def _create_node(self, x:float, y:float):
+    def _create_node(self, x: float, y: float):
         node = self._node_ctor(
             -1,
             "",
-            x = x, y = y,
-            status = self._status
+            x=x, y=y,
+            status=self._status
         )
         return node
 
@@ -123,14 +124,14 @@ class Graph(object):
         self._status.modified()
         return node
 
-    def add_node(self, x:float = 0.0, y:float = 0.0):
+    def add_node(self, x: float = 0.0, y: float = 0.0):
         node = self._create_node(x, y)
         return self._add_node(node)
 
     def insert_node(self, node):
         return self._add_node(node)
 
-    def remove_node(self, node_name:str):
+    def remove_node(self, node_name: str):
         self._nodes = list(
             filter(
                 lambda n: n.name != node_name,
@@ -139,19 +140,18 @@ class Graph(object):
         )
         self._status.modified()
 
-    def create_node(self, x:float = 0.0, y:float = 0.0):
+    def create_node(self, x: float = 0.0, y: float = 0.0):
         node = self._create_node(x, y)
         return node
 
-    def _create_edge(self, n1:Node, n2:Node):
+    def _create_edge(self, n1: Node, n2: Node):
         edge = self._edge_ctor(
             -1,
             "", n1, n2,
-            status = self._status
+            status=self._status
         )
         return edge
 
-
     def _add_edge(self, edge):
         # This edge already exists ?
         if any(filter(lambda e: (e.node1 == edge.node1 and
@@ -164,17 +164,17 @@ class Graph(object):
         self._status.modified()
         return edge
 
-    def add_edge(self, n1:Node, n2:Node):
+    def add_edge(self, n1: Node, n2: Node):
         edge = self._create_edge(n1, n2)
         return self._add_edge(edge)
 
     def insert_edge(self, edge):
         return self._add_edge(edge)
 
-    def create_edge(self, n1:Node, n2:Node):
+    def create_edge(self, n1: Node, n2: Node):
         return self._create_edge(n1, n2)
 
-    def remove_edge(self, edge_name:str):
+    def remove_edge(self, edge_name: str):
         self._edges = list(
             filter(
                 lambda e: e.name != edge_name,
diff --git a/src/Model/Network/Node.py b/src/Model/Network/Node.py
index 7b8f52bab01b5c23623d5f630b091c39f49a06a5..d79b71cfeded878490751fbf19332ee8632e405f 100644
--- a/src/Model/Network/Node.py
+++ b/src/Model/Network/Node.py
@@ -18,12 +18,13 @@
 
 from Model.Network.Point import Point
 
+
 class Node(object):
     _id_cnt = 0
 
-    def __init__(self, id:int, name:str,
-                 x:float = 0.0, y:float = 0.0,
-                 status = None):
+    def __init__(self, id: int, name: str,
+                 x: float = 0.0, y: float = 0.0,
+                 status=None):
         super(Node, self).__init__()
 
         self._status = status
@@ -73,7 +74,6 @@ class Node(object):
     def y(self):
         return self.pos.y
 
-
     def setPos(self, x, y):
         self.pos.x = x
         self.pos.y = y
diff --git a/src/Model/Network/Point.py b/src/Model/Network/Point.py
index 0bb1260994f1ab8dfb58ab1975961e543ab72833..38f0c83fbbc50ea495826313f30728f2df648bc8 100644
--- a/src/Model/Network/Point.py
+++ b/src/Model/Network/Point.py
@@ -17,7 +17,7 @@
 # -*- coding: utf-8 -*-
 
 class Point(object):
-    def __init__(self, x:float, y:float):
+    def __init__(self, x: float, y: float):
         super(Point, self).__init__()
 
         self.x = x
diff --git a/src/Model/Results/Results.py b/src/Model/Results/Results.py
index 3258b0e170e94418fb32706368c9a1d361f13bf2..7c9ed54c9a1028d61a1ab0c22012cd69b26e3114 100644
--- a/src/Model/Results/Results.py
+++ b/src/Model/Results/Results.py
@@ -24,8 +24,9 @@ from Model.Results.River.River import River
 
 logger = logging.getLogger()
 
+
 class Results(object):
-    def __init__(self, study = None):
+    def __init__(self, study=None):
         self._study = study
         self._river = River(self._study)
 
diff --git a/src/Model/Results/River/River.py b/src/Model/Results/River/River.py
index 80cd8450505421b6436a46b0d8fc610c33acd53f..7597d7512b9fdef526d208c2c629fec9346e8951 100644
--- a/src/Model/Results/River/River.py
+++ b/src/Model/Results/River/River.py
@@ -20,11 +20,12 @@ from datetime import datetime
 
 logger = logging.getLogger()
 
+
 class Profile(object):
     def __init__(self, profile, study):
         self._study = study
-        self._profile = profile # Source profile in the study
-        self._data = {} # Dict of dict {<ts>: {<key>: <value>, ...}, ...}
+        self._profile = profile  # Source profile in the study
+        self._data = {}  # Dict of dict {<ts>: {<key>: <value>, ...}, ...}
 
     def __len__(self):
         return len(self._data)
@@ -58,10 +59,11 @@ class Profile(object):
     def get_ts_key(self, timestamp, key):
         return self._data[timestamp][key]
 
+
 class Reach(object):
     def __init__(self, reach, study):
         self._study = study
-        self._reach = reach # Source reach in the study
+        self._reach = reach  # Source reach in the study
         self._profiles = list(
             map(
                 lambda p: Profile(p, self._study),
@@ -90,6 +92,7 @@ class Reach(object):
     def set(self, profile_id, timestamp, key, data):
         self._profiles[profile_id].set(timestamp, key, data)
 
+
 class River(object):
     def __init__(self, study):
         self._study = study
diff --git a/src/Model/River.py b/src/Model/River.py
index d5dccb9ec7e965cf25e7ecedc3aef1980a22ed0b..798a24e1dc45227797c1fb1c229b42c2f2fc4f7f 100644
--- a/src/Model/River.py
+++ b/src/Model/River.py
@@ -37,16 +37,17 @@ from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
 
 from Solver.Solvers import solver_type_list
 
+
 class RiverNode(Node, SQLSubModel):
     _sub_classes = []
 
-    def __init__(self, id:str, name:str,
-                 x:float, y:float,
-                 status = None):
+    def __init__(self, id: str, name: str,
+                 x: float, y: float,
+                 status=None):
         super(RiverNode, self).__init__(
             id, name,
             x, y,
-            status = status
+            status=status
         )
 
         self._locker = None
@@ -70,7 +71,7 @@ class RiverNode(Node, SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         nodes = []
 
         table = execute("SELECT id, name, x, y FROM river_node")
@@ -82,11 +83,11 @@ class RiverNode(Node, SQLSubModel):
 
         return nodes
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         sql = (
             "INSERT OR REPLACE INTO river_node(id, name, x, y) VALUES (" +
             f"{self.id}, '{self._sql_format(self.name)}', " +
-            f"{self.x}, {self.y}"+
+            f"{self.x}, {self.y}" +
             ")"
         )
         execute(sql)
@@ -108,18 +109,18 @@ class RiverReach(Edge, SQLSubModel):
         FrictionList,
     ]
 
-    def __init__(self, id:str, name:str,
-                 node1:RiverNode = None,
-                 node2:RiverNode = None,
-                 status = None):
+    def __init__(self, id: str, name: str,
+                 node1: RiverNode = None,
+                 node2: RiverNode = None,
+                 status=None):
         super(RiverReach, self).__init__(
             id, name,
             node1, node2,
-            status = status
+            status=status
         )
 
         self._reach = Reach(status=self._status, parent=self)
-        self._frictions = FrictionList(status = self._status)
+        self._frictions = FrictionList(status=self._status)
 
     @classmethod
     def _sql_create(cls, execute):
@@ -143,13 +144,14 @@ class RiverReach(Edge, SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         reachs = []
 
         if data is None:
             data = {}
 
-        table = execute("SELECT id, name, enable, node1, node2 FROM river_reach")
+        table = execute(
+            "SELECT id, name, enable, node1, node2 FROM river_reach")
         for row in table:
             # Update id counter
             cls._id_cnt = max(cls._id_cnt, row[0])
@@ -161,8 +163,8 @@ class RiverReach(Edge, SQLSubModel):
             node1 = next(filter(lambda n: n.id == row[3], data["nodes"]))
             node2 = next(filter(lambda n: n.id == row[4], data["nodes"]))
 
-            new = cls(id, name, node1, node2, status = data["status"])
-            new.enable(enable = enable)
+            new = cls(id, name, node1, node2, status=data["status"])
+            new.enable(enable=enable)
 
             data["reach"] = id
             data["parent"] = new
@@ -174,14 +176,14 @@ class RiverReach(Edge, SQLSubModel):
 
         return reachs
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         sql = (
             "INSERT OR REPLACE INTO " +
-            "river_reach(id, name, enable, node1, node2) "+
+            "river_reach(id, name, enable, node1, node2) " +
             "VALUES (" +
             f"{self.id}, '{self._sql_format(self._name)}', " +
             f"{self._sql_format(self.is_enable())},"
-            f"{self.node1.id}, {self.node2.id}"+
+            f"{self.node1.id}, {self.node2.id}" +
             ")"
         )
         execute(sql)
@@ -202,6 +204,7 @@ class RiverReach(Edge, SQLSubModel):
     def frictions(self):
         return self._frictions
 
+
 class River(Graph, SQLSubModel):
     _sub_classes = [
         RiverNode,
@@ -223,7 +226,8 @@ class River(Graph, SQLSubModel):
 
         self._current_reach = None
         self._boundary_condition = BoundaryConditionList(status=self._status)
-        self._lateral_contribution = LateralContributionList(status=self._status)
+        self._lateral_contribution = LateralContributionList(
+            status=self._status)
         self._initial_conditions = InitialConditionsDict(status=self._status)
         self._stricklers = StricklersList(status=self._status)
         self._parameters = {}
@@ -240,7 +244,7 @@ class River(Graph, SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = cls(data["status"])
 
         # Stricklers (Stricklers is load in first because it's needed
@@ -251,7 +255,6 @@ class River(Graph, SQLSubModel):
         )
         data["stricklers"] = new._stricklers
 
-
         # Initial conditions
         new._sediment_layers = SedimentLayerList._sql_load(
             execute,
@@ -297,7 +300,7 @@ class River(Graph, SQLSubModel):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         objs = (self._nodes + self._edges)
         objs.append(self._boundary_condition)
         objs.append(self._initial_conditions)
@@ -344,7 +347,6 @@ class River(Graph, SQLSubModel):
 
         return ret[0]
 
-
     @property
     def parameters(self):
         return self._parameters
@@ -354,8 +356,8 @@ class River(Graph, SQLSubModel):
             return self._parameters[solver]
 
         new = SolverParametersList(
-            solver_type = solver_type_list[solver],
-            status = self._status
+            solver_type=solver_type_list[solver],
+            status=self._status
         )
         self._parameters[solver] = new
         self._status.modified()
diff --git a/src/Model/Saved.py b/src/Model/Saved.py
index 60013cded8abc606f0f62b8d810bbb17c77cef62..52bd07809ba6d31f1ea24a53049284bc89c11f65 100644
--- a/src/Model/Saved.py
+++ b/src/Model/Saved.py
@@ -20,6 +20,7 @@ import logging
 
 logger = logging.getLogger()
 
+
 class SavedStatus(object):
     def __init__(self):
         super(SavedStatus, self).__init__()
diff --git a/src/Model/SedimentLayer/SedimentLayer.py b/src/Model/SedimentLayer/SedimentLayer.py
index 1438dfa7474bac469109553e57830d8c1821b957..69e140bf5c37246ec34068720e729c0ef6d96568 100644
--- a/src/Model/SedimentLayer/SedimentLayer.py
+++ b/src/Model/SedimentLayer/SedimentLayer.py
@@ -5,16 +5,17 @@ from tools import trace, timer
 from Model.Tools.PamhyrDB import SQLSubModel
 from Model.Except import NotImplementedMethodeError
 
+
 class Layer(SQLSubModel):
     _sub_classes = []
     _id_cnt = 0
 
     def __init__(self,
-                 id:int = -1, name:str = "",
-                 type = "",
-                 height = 0.0, d50 = 0.0, sigma = 0.0,
-                 critical_constraint = 0.0,
-                 sl = None, status = None):
+                 id: int = -1, name: str = "",
+                 type="",
+                 height=0.0, d50=0.0, sigma=0.0,
+                 critical_constraint=0.0,
+                 sl=None, status=None):
         super(Layer, self).__init__()
 
         self._status = status
@@ -111,7 +112,7 @@ class Layer(SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = []
         sl = data["sl"]
 
@@ -128,24 +129,24 @@ class Layer(SQLSubModel):
             ind = row[1]
 
             layer = cls(
-                id = row[0], name = row[2],
-                type = row[3], height = row[4],
-                d50 = row[5], sigma = row[6],
-                critical_constraint = row[7],
-                sl = sl, status = data['status']
+                id=row[0], name=row[2],
+                type=row[3], height=row[4],
+                d50=row[5], sigma=row[6],
+                critical_constraint=row[7],
+                sl=sl, status=data['status']
             )
 
             new[ind] = layer
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ind = data["ind"]
         sl = data["sl"]
 
         sql = (
             "INSERT INTO " +
-            "sedimentary_layer_layer(id, ind, name, type, height, d50, sigma, critical_constraint, sl) "+
+            "sedimentary_layer_layer(id, ind, name, type, height, d50, sigma, critical_constraint, sl) " +
             "VALUES (" +
             f"{self.id}, {ind}, '{self._sql_format(self._name)}', " +
             f"'{self._sql_format(self._type)}', {self._height}, " +
@@ -162,9 +163,9 @@ class SedimentLayer(SQLSubModel):
     _sub_classes = [Layer]
     _id_cnt = 0
 
-    def __init__(self, id:int = -1,
-                 name:str = "", comment:str = "",
-                 status = None):
+    def __init__(self, id: int = -1,
+                 name: str = "", comment: str = "",
+                 status=None):
         super(SedimentLayer, self).__init__()
 
         self._status = status
@@ -242,7 +243,7 @@ class SedimentLayer(SQLSubModel):
         return True
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         new = []
 
         table = execute(
@@ -252,10 +253,10 @@ class SedimentLayer(SQLSubModel):
 
         for row in table:
             sl = cls(
-                id = row[0],
-                name = row[1],
-                comment = row[2],
-                status = data['status']
+                id=row[0],
+                name=row[1],
+                comment=row[2],
+                status=data['status']
             )
 
             data["sl"] = sl.id
@@ -265,7 +266,7 @@ class SedimentLayer(SQLSubModel):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         if data is None:
             data = {}
 
@@ -298,7 +299,7 @@ class SedimentLayer(SQLSubModel):
         self._status.modified()
 
     def new(self, index):
-        n = Layer(sl=self, status = self._status)
+        n = Layer(sl=self, status=self._status)
         self.insert(index, n)
         self._status.modified()
         return n
diff --git a/src/Model/SedimentLayer/SedimentLayerList.py b/src/Model/SedimentLayer/SedimentLayerList.py
index 53a1a8fdf47618b02a4ae5bfda2021063caad910..d7be0a1ede82160b165da8d73fcb097a8e812c9e 100644
--- a/src/Model/SedimentLayer/SedimentLayerList.py
+++ b/src/Model/SedimentLayer/SedimentLayerList.py
@@ -6,18 +6,19 @@ from Model.Except import NotImplementedMethodeError
 from Model.Tools.PamhyrList import PamhyrModelList
 from Model.SedimentLayer.SedimentLayer import SedimentLayer
 
+
 class SedimentLayerList(PamhyrModelList):
     _sub_classes = [SedimentLayer]
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data["status"])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data["status"])
 
         new._lst = SedimentLayer._sql_load(execute, data)
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         ok = True
 
         # Delete previous data
@@ -34,7 +35,7 @@ class SedimentLayerList(PamhyrModelList):
         return self.lst
 
     def new(self, index):
-        n = SedimentLayer(status = self._status)
+        n = SedimentLayer(status=self._status)
         self.insert(index, n)
         self._status.modified()
         return n
diff --git a/src/Model/Serializable.py b/src/Model/Serializable.py
index 0c0834483cb32fd6566dd870b6bfcfa5a4756e8c..fb4ea11de90f5155d20a4f9e1515073354c67703 100644
--- a/src/Model/Serializable.py
+++ b/src/Model/Serializable.py
@@ -18,6 +18,7 @@
 
 import pickle
 
+
 class Serializable():
     def __init__(self):
         return
diff --git a/src/Model/SolverParameters/SolverParametersList.py b/src/Model/SolverParameters/SolverParametersList.py
index ce7ade982ebb48d5e5d091ec989a377ee5f7ef81..41906ef031b83e09046210b0bb56eeb0e8ec384f 100644
--- a/src/Model/SolverParameters/SolverParametersList.py
+++ b/src/Model/SolverParameters/SolverParametersList.py
@@ -22,10 +22,11 @@ from Solver.Solvers import solver_type_list
 
 from Model.Tools.PamhyrList import PamhyrModelList
 
+
 class Parameter():
     def __init__(self,
-                 name = "", value = "",
-                 status = None):
+                 name="", value="",
+                 status=None):
         self._status = status
 
         self._name = name
@@ -57,14 +58,15 @@ class Parameter():
 
     @classmethod
     def from_tuple(cls, data, status):
-        new = cls(status = status)
+        new = cls(status=status)
         new["name"] = data[0]
         new["value"] = data[1]
 
         return new
 
+
 class SolverParametersList(PamhyrModelList):
-    def __init__(self, solver_type = None, status = None):
+    def __init__(self, solver_type=None, status=None):
         super(SolverParametersList, self).__init__()
 
         self._status = status
@@ -76,7 +78,6 @@ class SolverParametersList(PamhyrModelList):
             )
         )
 
-
     @classmethod
     def _sql_create(cls, execute):
         execute("""
@@ -97,35 +98,38 @@ class SolverParametersList(PamhyrModelList):
 
         if major == minor == "0":
             if int(release) < 3:
-                execute(f"UPDATE solver_parameter SET name='mage_implicitation' WHERE name='mage_implication'")
-                execute(f"UPDATE solver_parameter SET name='mage_iteration_type' WHERE name='mage_iter_type'")
+                execute(
+                    f"UPDATE solver_parameter SET name='mage_implicitation' WHERE name='mage_implication'")
+                execute(
+                    f"UPDATE solver_parameter SET name='mage_iteration_type' WHERE name='mage_iter_type'")
 
             if int(release) < 4:
-                solvers = execute("SELECT DISTINCT solver FROM solver_parameter")
+                solvers = execute(
+                    "SELECT DISTINCT solver FROM solver_parameter")
 
                 for solver in solvers:
                     if solver != "mage8":
                         continue
 
                     data = execute("SELECT ind, name, value " +
-                                  "FROM solver_parameter "+
-                                  f"WHERE solver = '{solver}' " +
-                                  "ORDER BY ind ACS")
+                                   "FROM solver_parameter " +
+                                   f"WHERE solver = '{solver}' " +
+                                   "ORDER BY ind ACS")
 
                     execute(
                         "DELETE FROM solver_parameter " +
                         f"WHERE solver = '{solver}'"
                     )
 
-                    insert = lambda name, value, ind: execute(
-                            "INSERT INTO " +
-                            "solver_parameter(ind, name, value, solver) "+
-                            "VALUES (" +
-                            f"{ind}, " +
-                            f"'{cls._sql_format(name)}', " +
-                            f"'{cls._sql_format(value)}', " +
-                            f"'{cls._sql_format(solver)}'" +
-                            ")"
+                    def insert(name, value, ind): return execute(
+                        "INSERT INTO " +
+                        "solver_parameter(ind, name, value, solver) " +
+                        "VALUES (" +
+                        f"{ind}, " +
+                        f"'{cls._sql_format(name)}', " +
+                        f"'{cls._sql_format(value)}', " +
+                        f"'{cls._sql_format(solver)}'" +
+                        ")"
                     )
 
                     ind = 0
@@ -156,7 +160,7 @@ class SolverParametersList(PamhyrModelList):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         status = data["status"]
         solvers = execute("SELECT DISTINCT solver FROM solver_parameter")
         new = {}
@@ -167,7 +171,7 @@ class SolverParametersList(PamhyrModelList):
                 continue
 
             st = solver_type_list[solver]
-            n = cls(solver_type = st, status = status)
+            n = cls(solver_type=st, status=status)
 
             table = execute(
                 "SELECT ind, name, value " +
@@ -186,7 +190,7 @@ class SolverParametersList(PamhyrModelList):
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         t = self._solver._type
         execute(
             "DELETE FROM solver_parameter " +
@@ -197,7 +201,7 @@ class SolverParametersList(PamhyrModelList):
         for param in self._lst:
             sql = (
                 "INSERT INTO " +
-                "solver_parameter(ind, name, value, solver) "+
+                "solver_parameter(ind, name, value, solver) " +
                 "VALUES (" +
                 f"{ind}, " +
                 f"'{self._sql_format(param.name)}', " +
@@ -241,15 +245,15 @@ class SolverParametersList(PamhyrModelList):
 
         self._lst.append(
             Parameter(
-                name = key,
-                value = value,
-                status = self._status
+                name=key,
+                value=value,
+                status=self._status
             )
         )
         self._status.modified()
 
     def new(self, index):
-        n = Parameter(status = self._status)
+        n = Parameter(status=self._status)
         self._lst.insert(index, n)
         self._status.modified()
         return n
diff --git a/src/Model/Stricklers/Stricklers.py b/src/Model/Stricklers/Stricklers.py
index e18fd01d35cf2ffba5eaf41bc83e503c18dcb6ad..f1c35119d9d5d420e8c52c53b96fb333d60db425 100644
--- a/src/Model/Stricklers/Stricklers.py
+++ b/src/Model/Stricklers/Stricklers.py
@@ -20,16 +20,17 @@ from tools import trace, timer
 
 from Model.Tools.PamhyrDB import SQLSubModel
 
+
 class Stricklers(SQLSubModel):
     _id_cnt = 0
     _sub_classes = []
 
-    def __init__(self, id:int = -1,
-                 name:str = "",
-                 comment:str = "",
-                 minor:float = 35.0,
-                 medium:float = 15.0,
-                 status = None):
+    def __init__(self, id: int = -1,
+                 name: str = "",
+                 comment: str = "",
+                 minor: float = 35.0,
+                 medium: float = 15.0,
+                 status=None):
         super(Stricklers, self).__init__()
         self._status = status
 
@@ -46,7 +47,6 @@ class Stricklers(SQLSubModel):
         self._minor = minor
         self._medium = medium
 
-
     @classmethod
     def _sql_create(cls, execute):
         execute("""
@@ -66,7 +66,7 @@ class Stricklers(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         stricklers = []
         status = data["status"]
 
@@ -86,21 +86,21 @@ class Stricklers(SQLSubModel):
             medium = row[4]
 
             new = cls(
-                id = id,
-                name = name,
-                comment = comment,
-                minor = minor, medium = medium,
-                status = status
+                id=id,
+                name=name,
+                comment=comment,
+                minor=minor, medium=medium,
+                status=status
             )
 
             stricklers.append(new)
 
         return stricklers
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         sql = (
             "INSERT INTO " +
-            "stricklers(id, name, comment, minor, medium) "+
+            "stricklers(id, name, comment, minor, medium) " +
             "VALUES (" +
             f"{self.id}, " +
             f"'{self._sql_format(self.name)}', " +
diff --git a/src/Model/Stricklers/StricklersList.py b/src/Model/Stricklers/StricklersList.py
index f1d36fa7fe1e7fc906ef2e61e5a9cf6b6a15df02..c8c2a925b3525474f6f1b7b5b57b7405a65d23d3 100644
--- a/src/Model/Stricklers/StricklersList.py
+++ b/src/Model/Stricklers/StricklersList.py
@@ -22,6 +22,7 @@ from Model.Saved import SavedStatus
 from Model.Tools.PamhyrList import PamhyrModelList
 from Model.Stricklers.Stricklers import Stricklers
 
+
 class StricklersList(PamhyrModelList):
     _sub_classes = [
         Stricklers,
@@ -36,17 +37,17 @@ class StricklersList(PamhyrModelList):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
-        new = cls(status = data["status"])
+    def _sql_load(cls, execute, data=None):
+        new = cls(status=data["status"])
 
         new._lst = Stricklers._sql_load(
             execute,
-            data = data
+            data=data
         )
 
         return new
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         execute("DELETE FROM stricklers")
 
         objs = self._lst
@@ -57,20 +58,20 @@ class StricklersList(PamhyrModelList):
         return self.lst
 
     def new(self, index):
-        s = Stricklers(status = self._status)
+        s = Stricklers(status=self._status)
         self.insert(index, s)
         return s
 
     @timer
-    def sort(self, reverse:bool = False, key=None):
-        f = lambda st: st.name
+    def sort(self, reverse: bool = False, key=None):
+        def f(st): return st.name
         if key is not None:
             f = key
 
         self._lst = sorted(
             self._lst,
-            key = f,
-            reverse = reverse,
+            key=f,
+            reverse=reverse,
         )
 
         if self._status is not None:
diff --git a/src/Model/Study.py b/src/Model/Study.py
index f022a195c495cc4a8b39ce2cc07c576499e010bc..597b68e2d389f83f543bff18f2cbcc8a857da500 100644
--- a/src/Model/Study.py
+++ b/src/Model/Study.py
@@ -33,12 +33,13 @@ from Checker.Study import *
 
 logger = logging.getLogger()
 
+
 class Study(SQLModel):
     _sub_classes = [
         River,
     ]
 
-    def __init__(self, filename = None, init_new = True):
+    def __init__(self, filename=None, init_new=True):
         # Metadata
         self._version = "0.0.4"
         self.creation_date = datetime.now()
@@ -46,7 +47,7 @@ class Study(SQLModel):
         self.last_save_date = datetime.now()
 
         self._filename = filename
-        super(Study, self).__init__(filename = filename)
+        super(Study, self).__init__(filename=filename)
 
         self.status = SavedStatus()
 
@@ -59,9 +60,9 @@ class Study(SQLModel):
 
         if init_new:
             # Study data
-            self._river = River(status = self.status)
+            self._river = River(status=self.status)
         else:
-            self._init_db_file(filename, is_new = False)
+            self._init_db_file(filename, is_new=False)
 
         self._old_save_id = 0
 
@@ -128,7 +129,7 @@ class Study(SQLModel):
     @filename.setter
     def filename(self, filename):
         self._filename = str(filename)
-        self._init_db_file(filename, is_new = True)
+        self._init_db_file(filename, is_new=True)
         self.status.modified()
 
     @property
@@ -139,7 +140,7 @@ class Study(SQLModel):
         self._time_system = "time"
         self.status.modified()
 
-    def use_date(self, date:datetime):
+    def use_date(self, date: datetime):
         self._time_system = "date"
         self._date = date
         self.status.modified()
@@ -158,7 +159,7 @@ class Study(SQLModel):
     #     return cls()
 
     @classmethod
-    def new(cls, name, description, date = None):
+    def new(cls, name, description, date=None):
         me = cls()
         me.name = name
         me.description = description
@@ -178,14 +179,16 @@ class Study(SQLModel):
 
     def _create(self):
         # Info (metadata)
-        self.execute("CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
+        self.execute(
+            "CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
         self.execute(
             f"INSERT INTO info VALUES ('version', '{self._sql_format(self._version)}')",
-            commit = True
+            commit=True
         )
         self.execute("INSERT INTO info VALUES ('name', '')")
         self.execute("INSERT INTO info VALUES ('description', '')")
-        self.execute(f"INSERT INTO info VALUES ('time_system', '{self._time_system}')")
+        self.execute(
+            f"INSERT INTO info VALUES ('time_system', '{self._time_system}')")
         self.execute(
             f"INSERT INTO info VALUES ('date', " +
             "'{self._date.timestamp()}')"
@@ -213,7 +216,8 @@ class Study(SQLModel):
         logger.info("Update database")
 
         if self._update_submodel(version[0]):
-            self.execute(f"UPDATE info SET value='{self._version}' WHERE key='version'")
+            self.execute(
+                f"UPDATE info SET value='{self._version}' WHERE key='version'")
             return True
 
         logger.info("TODO: update failed")
@@ -221,42 +225,52 @@ class Study(SQLModel):
 
     @classmethod
     def _load(cls, filename):
-        new = cls(init_new = False, filename = filename)
+        new = cls(init_new=False, filename=filename)
 
         # TODO: Load metadata
         new.name = new.execute("SELECT value FROM info WHERE key='name'")[0]
-        new.description = new.execute("SELECT value FROM info WHERE key='description'")[0]
-        new._time_system = new.execute("SELECT value FROM info WHERE key='time_system'")[0]
+        new.description = new.execute(
+            "SELECT value FROM info WHERE key='description'")[0]
+        new._time_system = new.execute(
+            "SELECT value FROM info WHERE key='time_system'")[0]
         new._date = datetime.fromtimestamp(
             float(new.execute("SELECT value FROM info WHERE key='date'")[0])
         )
 
         new.creation_date = datetime.fromtimestamp(
-            float(new.execute("SELECT value FROM info WHERE key='creation_date'")[0])
+            float(new.execute(
+                "SELECT value FROM info WHERE key='creation_date'")[0])
         )
         new.last_save_date = datetime.fromtimestamp(
-            float(new.execute("SELECT value FROM info WHERE key='last_save_date'")[0])
+            float(new.execute(
+                "SELECT value FROM info WHERE key='last_save_date'")[0])
         )
 
         # Load river data
         new._river = River._sql_load(
             lambda sql: new.execute(
                 sql,
-                fetch_one = False,
-                commit = True
+                fetch_one=False,
+                commit=True
             ),
-            data = {"status": new.status}
+            data={"status": new.status}
         )
 
         return new
 
     def _save(self):
-        self.execute(f"UPDATE info SET value='{self._sql_format(self.name)}' WHERE key='name'")
-        self.execute(f"UPDATE info SET value='{self._sql_format(self.description)}' WHERE key='description'")
-        self.execute(f"UPDATE info SET value='{self._time_system}' WHERE key='time_system'")
-        self.execute(f"UPDATE info SET value='{timestamp(self._date)}' WHERE key='date'")
-        self.execute(f"UPDATE info SET value='{timestamp(self.creation_date)}' WHERE key='creation_date'")
-        self.execute(f"UPDATE info SET value='{timestamp(self.last_save_date)}' WHERE key='last_save_date'")
+        self.execute(
+            f"UPDATE info SET value='{self._sql_format(self.name)}' WHERE key='name'")
+        self.execute(
+            f"UPDATE info SET value='{self._sql_format(self.description)}' WHERE key='description'")
+        self.execute(
+            f"UPDATE info SET value='{self._time_system}' WHERE key='time_system'")
+        self.execute(
+            f"UPDATE info SET value='{timestamp(self._date)}' WHERE key='date'")
+        self.execute(
+            f"UPDATE info SET value='{timestamp(self.creation_date)}' WHERE key='creation_date'")
+        self.execute(
+            f"UPDATE info SET value='{timestamp(self.last_save_date)}' WHERE key='last_save_date'")
 
         self._save_submodel([self._river])
         self.commit()
diff --git a/src/Model/Tools/PamhyrDB.py b/src/Model/Tools/PamhyrDB.py
index 73174f9483d2cbed1583ebde553457aa032c3979..803cd05ca98da17d78ada1d587bb6735389a75d7 100644
--- a/src/Model/Tools/PamhyrDB.py
+++ b/src/Model/Tools/PamhyrDB.py
@@ -28,10 +28,12 @@ from Model.Except import NotImplementedMethodeError
 logger = logging.getLogger()
 
 # Top level model class
+
+
 class SQLModel(SQL):
     _sub_classes = []
 
-    def _init_db_file(self, db, is_new = True):
+    def _init_db_file(self, db, is_new=True):
         exists = Path(db).exists()
 
         if exists and is_new:
@@ -48,15 +50,14 @@ class SQLModel(SQL):
             self._update()      # Update db scheme if necessary
             # self._load()        # Load data
 
-
-    def __init__(self, filename = None):
+    def __init__(self, filename=None):
         self._db = None
 
     def _create_submodel(self):
-        fn = lambda sql: self.execute(
+        def fn(sql): return self.execute(
             sql,
-            fetch_one = False,
-            commit = False
+            fetch_one=False,
+            commit=False
         )
 
         for cls in self._sub_classes:
@@ -69,10 +70,10 @@ class SQLModel(SQL):
         raise NotImplementedMethodeError(self, self._create)
 
     def _update_submodel(self, version):
-        fn = lambda sql: self.execute(
+        def fn(sql): return self.execute(
             sql,
-            fetch_one = False,
-            commit = False
+            fetch_one=False,
+            commit=False
         )
 
         ok = True
@@ -85,11 +86,11 @@ class SQLModel(SQL):
     def _update(self):
         raise NotImplementedMethodeError(self, self._update)
 
-    def _save_submodel(self, objs, data = None):
-        fn = lambda sql: self.execute(
+    def _save_submodel(self, objs, data=None):
+        def fn(sql): return self.execute(
             sql,
-            fetch_one = False,
-            commit = False
+            fetch_one=False,
+            commit=False
         )
 
         ok = True
@@ -103,10 +104,12 @@ class SQLModel(SQL):
         raise NotImplementedMethodeError(self, self._save)
 
     @classmethod
-    def _load(cls, filename = None):
+    def _load(cls, filename=None):
         raise NotImplementedMethodeError(cls, cls._load)
 
 # Sub model class
+
+
 class SQLSubModel(object):
     _sub_classes = []
 
@@ -154,7 +157,7 @@ class SQLSubModel(object):
         raise NotImplementedMethodeError(cls, cls._sql_update)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         """Load instance of this class from SQL data base
 
         Args:
@@ -166,11 +169,11 @@ class SQLSubModel(object):
         """
         raise NotImplementedMethodeError(cls, cls._sql_load)
 
-    def _save_submodel(self, execute, objs, data = None):
+    def _save_submodel(self, execute, objs, data=None):
         for o in objs:
-            o._sql_save(execute, data = data)
+            o._sql_save(execute, data=data)
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         """Save class data to data base
 
         Args:
diff --git a/src/Model/Tools/PamhyrDict.py b/src/Model/Tools/PamhyrDict.py
index f16525168f4d6455fb6ab1ef58d016c77c064086..5d7dc537928762780b1d5309e059409ad6f26e79 100644
--- a/src/Model/Tools/PamhyrDict.py
+++ b/src/Model/Tools/PamhyrDict.py
@@ -30,7 +30,7 @@ logger = logging.getLogger()
 class PamhyrModelDict(SQLSubModel):
     _sub_classes = []
 
-    def __init__(self, status = None):
+    def __init__(self, status=None):
         super(PamhyrModelDict, self).__init__()
 
         self._status = status
@@ -46,10 +46,10 @@ class PamhyrModelDict(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         raise NotImplementedMethodeError(cls, cls._sql_load)
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         raise NotImplementedMethodeError(self, self._sql_save)
 
     def __len__(self):
diff --git a/src/Model/Tools/PamhyrList.py b/src/Model/Tools/PamhyrList.py
index 9a83bdb07e87566ea9c1042e2aea9d2d2648c82f..57160e774fda4999314d4e2055949d60584a10d9 100644
--- a/src/Model/Tools/PamhyrList.py
+++ b/src/Model/Tools/PamhyrList.py
@@ -26,11 +26,12 @@ from Model.Except import NotImplementedMethodeError
 
 logger = logging.getLogger()
 
+
 class PamhyrModelList(SQLSubModel):
     _sub_classes = [
     ]
 
-    def __init__(self, status = None):
+    def __init__(self, status=None):
         super(PamhyrModelList, self).__init__()
 
         self._status = status
@@ -49,10 +50,10 @@ class PamhyrModelList(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         raise NotImplementedMethodeError(cls, cls._sql_load)
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         raise NotImplementedMethodeError(self, self._sql_save)
 
     ################
@@ -142,7 +143,7 @@ class PamhyrModelListWithTab(SQLSubModel):
     _sub_classes = [
     ]
 
-    def __init__(self, status = None):
+    def __init__(self, status=None):
         super(PamhyrModelListWithTab, self).__init__()
 
         self._status = status
@@ -163,10 +164,10 @@ class PamhyrModelListWithTab(SQLSubModel):
         return cls._update_submodel(execute, version)
 
     @classmethod
-    def _sql_load(cls, execute, data = None):
+    def _sql_load(cls, execute, data=None):
         raise NotImplementedMethodeError(cls, cls._sql_load)
 
-    def _sql_save(self, execute, data = None):
+    def _sql_save(self, execute, data=None):
         raise NotImplementedMethodeError(self, self._sql_save)
 
     ################
diff --git a/src/Scripts/AScript.py b/src/Scripts/AScript.py
index 032f9560b7663c4761a5c53698a51cfec9545bea..66037418e57c3fa18794965d443c559b7d17ae3c 100644
--- a/src/Scripts/AScript.py
+++ b/src/Scripts/AScript.py
@@ -18,6 +18,7 @@
 
 from Model.Except import NotImplementedMethodeError
 
+
 class AScript(object):
     name = ""
     description = ""
diff --git a/src/Scripts/P3DST.py b/src/Scripts/P3DST.py
index 55a9992876927ea46647144612ddb393c770ed08..62d0f88f1b15a4afab8a27fcbd3cca1d26bb5ca2 100644
--- a/src/Scripts/P3DST.py
+++ b/src/Scripts/P3DST.py
@@ -29,6 +29,7 @@ from Model.Geometry.Reach import Reach
 
 logger = logging.getLogger()
 
+
 class Script3DST(AScript):
     name = "3DST"
     description = "Display a 3D plot of a river reach from ST file"
@@ -82,7 +83,7 @@ class Script3DST(AScript):
         try:
             status = SavedStatus()
 
-            my_reach = Reach(status = status)
+            my_reach = Reach(status=status)
             my_reach.import_geometry(st_file)
             my_reach.compute_guidelines()
 
diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py
index d71f0472e29ca64437b738b6577a822249005d84..1b070f39eb5bd126c7a159cacb1cda72b97a6f8a 100644
--- a/src/Solver/ASolver.py
+++ b/src/Solver/ASolver.py
@@ -37,12 +37,14 @@ from Model.Results.River.River import River, Reach, Profile
 
 logger = logging.getLogger()
 
+
 class STATUS(Enum):
     NOT_LAUNCHED = -1
     STOPED = 0
     RUNNING = 1
     PAUSED = 5
 
+
 class AbstractSolver(object):
     _type = ""
 
@@ -155,7 +157,7 @@ class AbstractSolver(object):
     # Export #
     ##########
 
-    def export(self, study, repertory, qlog = None):
+    def export(self, study, repertory, qlog=None):
         raise NotImplementedMethodeError(self, self.export)
 
     def cmd_args(self, study):
@@ -190,8 +192,8 @@ class AbstractSolver(object):
     ###########
 
     @timer
-    def results(self, study, repertory, qlog = None):
-        results = Results(study = study)
+    def results(self, study, repertory, qlog=None):
+        results = Results(study=study)
         return results
 
     #######
@@ -206,7 +208,7 @@ class AbstractSolver(object):
             )
         )
 
-    def _format_command(self, study, cmd, path = ""):
+    def _format_command(self, study, cmd, path=""):
         """Format command line
 
         Args:
@@ -328,14 +330,15 @@ class AbstractSolver(object):
 
         self._run_next(study)
 
-    def run(self, study, process = None, output_queue = None):
+    def run(self, study, process=None, output_queue=None):
         if process is not None:
             self._process = process
         if output_queue is not None:
             self._output = output_queue
 
         self._process.readyRead.connect(self._data_ready)
-        self._process.finished.connect(lambda c, s: self._finished(study, c, s))
+        self._process.finished.connect(
+            lambda c, s: self._finished(study, c, s))
 
         self._runs = [
             self.run_input_data_fomater,
@@ -356,7 +359,7 @@ class AbstractSolver(object):
         self._status = STATUS.STOPED
         return True
 
-    def start(self, study, process = None):
+    def start(self, study, process=None):
         if _signal:
             # Solver is PAUSED, so continue execution
             if self._status == STATUS.PAUSED:
diff --git a/src/Solver/GenericSolver.py b/src/Solver/GenericSolver.py
index 9e588baed0c84620af4d8dde35f56a4716e6eace..bc5a9f6b5dc428ccdd0438a4c6ae174919c93e9d 100644
--- a/src/Solver/GenericSolver.py
+++ b/src/Solver/GenericSolver.py
@@ -20,6 +20,7 @@ from Solver.ASolver import (
     AbstractSolver, STATUS
 )
 
+
 class GenericSolver(AbstractSolver):
     _type = "generic"
 
diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index 1cad3f684e0b5fac5dcb527240fb19dcbc355796..15d3979b8bd52a9127d7389720a8775a6da3e0ac 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -30,6 +30,7 @@ from Model.Results.River.River import River, Reach, Profile
 
 logger = logging.getLogger()
 
+
 def mage_file_open(filepath, mode):
     f = open(filepath, mode)
 
@@ -39,6 +40,7 @@ def mage_file_open(filepath, mode):
 
     return f
 
+
 class Mage(AbstractSolver):
     _type = "mage"
 
@@ -51,7 +53,6 @@ class Mage(AbstractSolver):
         self._cmd_solver = "@path @input -o @output"
         self._cmd_output = ""
 
-
     @classmethod
     def default_parameters(cls):
         lst = super(Mage, cls).default_parameters()
@@ -87,8 +88,8 @@ class Mage(AbstractSolver):
     @classmethod
     def checkers(cls):
         lst = [
-            MageNetworkGraphChecker(connectivity = True),
-            MageNetworkGraphChecker(connectivity = False)
+            MageNetworkGraphChecker(connectivity=True),
+            MageNetworkGraphChecker(connectivity=False)
         ]
 
         return lst
@@ -210,7 +211,7 @@ class Mage(AbstractSolver):
                     v1 = d[1]
 
                     if t in ["HYD", "QSO", "LIM"]:
-                        v0 /= 60 # Convert first column to minute
+                        v0 /= 60  # Convert first column to minute
 
                     f.write(f"{v0:10}{v1:10}\n")
 
@@ -391,13 +392,12 @@ class Mage(AbstractSolver):
                 if EXT in ["GRA"]:
                     f.write(f"{EXT} {file}\n")
 
-
     @timer
-    def export(self, study, repertory, qlog = None):
+    def export(self, study, repertory, qlog=None):
         self._study = study
         name = study.name.replace(" ", "_")
 
-        self._export_ST(study, repertory, qlog, name = name)
+        self._export_ST(study, repertory, qlog, name=name)
 
         return True
 
@@ -405,12 +405,12 @@ class Mage(AbstractSolver):
     # RESULTS #
     ###########
 
-    def read_bin(self, study, repertory, results, qlog = None, name="0"):
+    def read_bin(self, study, repertory, results, qlog=None, name="0"):
         return
 
     @timer
-    def results(self, study, repertory, qlog = None, name="0"):
-        results = Results(study = study)
+    def results(self, study, repertory, qlog=None, name="0"):
+        results = Results(study=study)
 
         self.read_bin(study, repertory, results, qlog, name=name)
 
@@ -420,6 +420,7 @@ class Mage(AbstractSolver):
 # MAGE 7 #
 ##########
 
+
 class Mage7(Mage):
     _type = "mage7"
 
@@ -438,6 +439,7 @@ class Mage7(Mage):
 # MAGE 8 #
 ##########
 
+
 class Mage8(Mage):
     _type = "mage8"
 
@@ -484,7 +486,7 @@ class Mage8(Mage):
         return l
 
     @timer
-    def _export_PAR(self, study, repertory, qlog = None, name = "0"):
+    def _export_PAR(self, study, repertory, qlog=None, name="0"):
         files = []
 
         if qlog is not None:
@@ -511,7 +513,7 @@ class Mage8(Mage):
         return files
 
     @timer
-    def _export_NET(self, study, repertory, qlog = None, name="0"):
+    def _export_NET(self, study, repertory, qlog=None, name="0"):
         files = []
 
         if qlog is not None:
@@ -579,9 +581,8 @@ class Mage8(Mage):
 
         return files
 
-
     @timer
-    def export(self, study, repertory, qlog = None, name="0"):
+    def export(self, study, repertory, qlog=None, name="0"):
         self._study = study
         name = study.name.replace(" ", "_")
 
@@ -590,7 +591,8 @@ class Mage8(Mage):
         files = self._export_ST(study, repertory, qlog, name=name)
         files = files + self._export_PAR(study, repertory, qlog, name=name)
         files = files + self._export_NET(study, repertory, qlog, name=name)
-        files = files + self._export_bound_cond(study, repertory, qlog, name=name)
+        files = files + \
+            self._export_bound_cond(study, repertory, qlog, name=name)
         files = files + self._export_RUG(study, repertory, qlog, name=name)
         files = files + self._export_INI(study, repertory, qlog, name=name)
         self._export_REP(study, repertory, files, qlog, name=name)
@@ -602,17 +604,22 @@ class Mage8(Mage):
     ###########
 
     @timer
-    def read_bin(self, study, repertory, results, qlog = None, name="0"):
+    def read_bin(self, study, repertory, results, qlog=None, name="0"):
         fname = os.path.join(repertory, f"{name}.BIN")
         logger.info(f"read_bin: Start reading '{fname}' ...")
 
         with mage_file_open(fname, "r") as f:
-            newline = lambda: np.fromfile(f, dtype=np.int32, count=1)
-            endline = lambda: np.fromfile(f, dtype=np.int32, count=1)
+            def newline(): return np.fromfile(f, dtype=np.int32, count=1)
+            def endline(): return np.fromfile(f, dtype=np.int32, count=1)
+
+            def read_int(size): return np.fromfile(
+                f, dtype=np.int32, count=size)
+
+            def read_float(size): return np.fromfile(
+                f, dtype=np.float32, count=size)
 
-            read_int = lambda size: np.fromfile(f, dtype=np.int32, count=size)
-            read_float = lambda size: np.fromfile(f, dtype=np.float32, count=size)
-            read_float64 = lambda size: np.fromfile(f, dtype=np.float64, count=size)
+            def read_float64(size): return np.fromfile(
+                f, dtype=np.float64, count=size)
 
             # Meta data (1st line)
             newline()
@@ -686,7 +693,7 @@ class Mage8(Mage):
             # Data
             newline()
 
-            ip_to_r = lambda i: iprofiles[
+            def ip_to_r(i): return iprofiles[
                 next(
                     filter(
                         lambda k: k[0] <= i <= k[1],
@@ -694,14 +701,15 @@ class Mage8(Mage):
                     )
                 )
             ]
-            ip_to_ri = lambda r, i: i - reach_offset[r]
+            def ip_to_ri(r, i): return i - reach_offset[r]
 
             ts = set()
             end = False
             while not end:
                 n = read_int(1)[0]
                 timestamp = read_float64(1)[0]
-                key = bytearray(np.fromfile(f, dtype=np.byte, count=1)).decode()
+                key = bytearray(np.fromfile(
+                    f, dtype=np.byte, count=1)).decode()
                 data = read_float(n)
 
                 logger.debug(f"read_bin: timestamp = {timestamp} sec")
@@ -725,7 +733,7 @@ class Mage8(Mage):
             logger.info(f"read_bin: ... end with {len(ts)} timestamp read")
 
     @timer
-    def read_gra(self, study, repertory, results, qlog = None, name="0"):
+    def read_gra(self, study, repertory, results, qlog=None, name="0"):
         if not study.river.has_sediment():
             return
 
@@ -733,12 +741,17 @@ class Mage8(Mage):
         logger.info(f"read_gra: Start reading '{fname}' ...")
 
         with mage_file_open(fname, "r") as f:
-            newline = lambda: np.fromfile(f, dtype=np.int32, count=1)
-            endline = lambda: np.fromfile(f, dtype=np.int32, count=1)
+            def newline(): return np.fromfile(f, dtype=np.int32, count=1)
+            def endline(): return np.fromfile(f, dtype=np.int32, count=1)
+
+            def read_int(size): return np.fromfile(
+                f, dtype=np.int32, count=size)
+
+            def read_float(size): return np.fromfile(
+                f, dtype=np.float32, count=size)
 
-            read_int = lambda size: np.fromfile(f, dtype=np.int32, count=size)
-            read_float = lambda size: np.fromfile(f, dtype=np.float32, count=size)
-            read_float64 = lambda size: np.fromfile(f, dtype=np.float64, count=size)
+            def read_float64(size): return np.fromfile(
+                f, dtype=np.float64, count=size)
 
             # Meta data (1st line)
             newline()
@@ -810,7 +823,7 @@ class Mage8(Mage):
             endline()
 
             # Data
-            ip_to_r = lambda i: iprofiles[
+            def ip_to_r(i): return iprofiles[
                 next(
                     filter(
                         lambda k: k[0] <= i <= k[1],
@@ -818,7 +831,7 @@ class Mage8(Mage):
                     )
                 )
             ]
-            ip_to_ri = lambda r, i: i - reach_offset[r]
+            def ip_to_ri(r, i): return i - reach_offset[r]
 
             ts = set()
             ind = 0
@@ -878,11 +891,11 @@ class Mage8(Mage):
             logger.info(f"read_gra: ... end with {len(ts)} timestamp read")
 
     @timer
-    def results(self, study, repertory, qlog = None):
+    def results(self, study, repertory, qlog=None):
         self._study = study
         name = study.name.replace(" ", "_")
 
-        results = super(Mage8, self).results(study, repertory, qlog, name = name)
-        self.read_gra(study, repertory, results, qlog, name = name)
+        results = super(Mage8, self).results(study, repertory, qlog, name=name)
+        self.read_gra(study, repertory, results, qlog, name=name)
 
         return results
diff --git a/src/View/About/Window.py b/src/View/About/Window.py
index 218869b5fc7d87595dcadc8b018660f6edfcb8e3..7798729e3c0406e4483450f22d3e34434460e80d 100644
--- a/src/View/About/Window.py
+++ b/src/View/About/Window.py
@@ -26,6 +26,7 @@ from PyQt5.QtCore import QCoreApplication
 _translate = QCoreApplication.translate
 logger = logging.getLogger()
 
+
 class AboutWindow(PamhyrDialog):
     _pamhyr_ui = "about"
     _pamhyr_name = "About"
@@ -38,13 +39,13 @@ class AboutWindow(PamhyrDialog):
             )
         )
 
-    def __init__(self, study = None, config = None, parent=None):
+    def __init__(self, study=None, config=None, parent=None):
         super(AboutWindow, self).__init__(
-            title = _translate("About", "About"),
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=_translate("About", "About"),
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         # Version
diff --git a/src/View/BoundaryCondition/Edit/Plot.py b/src/View/BoundaryCondition/Edit/Plot.py
index e5e80c1e329322ca059d505beec1f47bda383275..3c1b880837ac41d5d7a51a4464fbdf7236521467 100644
--- a/src/View/BoundaryCondition/Edit/Plot.py
+++ b/src/View/BoundaryCondition/Edit/Plot.py
@@ -33,16 +33,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class Plot(PamhyrPlot):
-    def __init__(self, mode = "time", data=None,
+    def __init__(self, mode="time", data=None,
                  trad=None, canvas=None, toolbar=None,
                  parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._table_headers = self._trad.get_dict("table_headers")
@@ -72,8 +73,8 @@ class Plot(PamhyrPlot):
                 map(
                     lambda v: str(
                         datetime.fromtimestamp(v[0]) - t0
-                    ).split(",")[0]\
-                    .replace("days", _translate("BoundaryCondition", "days"))\
+                    ).split(",")[0]
+                    .replace("days", _translate("BoundaryCondition", "days"))
                     .replace("day", _translate("BoundaryCondition", "day")),
                     fx
                 )
@@ -88,7 +89,6 @@ class Plot(PamhyrPlot):
 
         self.canvas.axes.set_xticks(ticks=xx, labels=xt, rotation=45)
 
-
     @timer
     def draw(self):
         self.canvas.axes.cla()
@@ -122,7 +122,7 @@ class Plot(PamhyrPlot):
         self.canvas.axes.autoscale_view(True, True, True)
         self.canvas.figure.tight_layout()
         self.canvas.figure.canvas.draw_idle()
-        #self.toolbar.update()
+        # self.toolbar.update()
 
         self._init = True
 
diff --git a/src/View/BoundaryCondition/Edit/Table.py b/src/View/BoundaryCondition/Edit/Table.py
index 7f86fc8aefeff783aeceef2c11e0b0817624d38a..75e6813136b350c138b41b9cd4530800ce6c7aaf 100644
--- a/src/View/BoundaryCondition/Edit/Table.py
+++ b/src/View/BoundaryCondition/Edit/Table.py
@@ -51,6 +51,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class TableModel(PamhyrTableModel):
     def data(self, index, role):
         if role == Qt.TextAlignmentRole:
diff --git a/src/View/BoundaryCondition/Edit/UndoCommand.py b/src/View/BoundaryCondition/Edit/UndoCommand.py
index b30331a167039f8a201f017460b4984e1ddd42f2..14c2b98265e74f444d1d9dd3a468ab3cbcb9602d 100644
--- a/src/View/BoundaryCondition/Edit/UndoCommand.py
+++ b/src/View/BoundaryCondition/Edit/UndoCommand.py
@@ -29,6 +29,7 @@ from Model.BoundaryCondition.BoundaryCondition import BoundaryCondition
 
 logger = logging.getLogger()
 
+
 class SetDataCommand(QUndoCommand):
     def __init__(self, data, index, column, new_value):
         QUndoCommand.__init__(self)
@@ -46,6 +47,7 @@ class SetDataCommand(QUndoCommand):
     def redo(self):
         self._data._set_i_c_v(self._index, self._column, self._new)
 
+
 class SetMetaDataCommand(QUndoCommand):
     def __init__(self, data, column, new_value):
         QUndoCommand.__init__(self)
@@ -89,6 +91,7 @@ class AddCommand(QUndoCommand):
         else:
             self._data.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, data, rows):
         QUndoCommand.__init__(self)
@@ -108,6 +111,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._data.delete_i(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, data, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index 5661d6bc63c7226c02287273bb263a98dfb7228a..162459ed5769efe7bbe4d9b609193172f6d37369 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -53,6 +53,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class WD50Sigma(PamhyrWidget):
     _pamhyr_ui = "d50sigma"
 
@@ -94,6 +95,7 @@ class WD50Sigma(PamhyrWidget):
     def valueChangedSigma(self, value):
         self.sigmaChanged.emit(value)
 
+
 class EditBoundaryConditionWindow(PamhyrWindow):
     _pamhyr_ui = "EditBoundaryConditions"
     _pamhyr_name = "Edit Boundary Conditions"
@@ -115,11 +117,11 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             )
 
         super(EditBoundaryConditionWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = trad,
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=trad,
+            parent=parent
         )
 
         self.setup_table()
@@ -132,7 +134,7 @@ class EditBoundaryConditionWindow(PamhyrWindow):
 
         if self._is_solid:
             layout = self.find(QVBoxLayout, "verticalLayout_table")
-            self._d50sigma = WD50Sigma(parent = self)
+            self._d50sigma = WD50Sigma(parent=self)
             layout.addWidget(self._d50sigma)
 
             self._d50sigma.set_d50(self._data.d50)
@@ -145,22 +147,22 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             headers[h] = table_headers[h]
 
         self._delegate_time = PamhyrExTimeDelegate(
-            data = self._data,
-            mode = self._study.time_system,
-            parent = self
+            data=self._data,
+            mode=self._study.time_system,
+            parent=self
         )
 
         table = self.find(QTableView, "tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = headers,
-            editable_headers = self._data.header,
-            delegates = {
+            table_view=table,
+            table_headers=headers,
+            editable_headers=self._data.header,
+            delegates={
                 "time": self._delegate_time,
             },
-            data = self._data,
-            undo = self._undo_stack,
-            opt_data = self._study.time_system
+            data=self._data,
+            undo=self._undo_stack,
+            opt_data=self._study.time_system
         )
 
         table.setModel(self._table)
@@ -178,11 +180,11 @@ class EditBoundaryConditionWindow(PamhyrWindow):
         self.verticalLayout.addWidget(self.canvas)
 
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._data,
-            mode = self._study.time_system,
-            trad = self._trad,
-            toolbar = self.toolbar,
+            canvas=self.canvas,
+            data=self._data,
+            mode=self._study.time_system,
+            trad=self._trad,
+            toolbar=self.toolbar,
         )
         self.plot.draw()
 
@@ -270,7 +272,6 @@ class EditBoundaryConditionWindow(PamhyrWindow):
         self._table.move_down(row)
         self.plot.update()
 
-
     def _copy(self):
         rows = self.index_selected_rows()
 
diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py
index d97ac6dee075c1002737b24a8be39f9feff2fa6f..9f54ce2a0dd97caa14e625d5a4b281a6fc141045 100644
--- a/src/View/BoundaryCondition/Edit/translate.py
+++ b/src/View/BoundaryCondition/Edit/translate.py
@@ -24,6 +24,7 @@ from View.BoundaryCondition.translate import BCTranslate
 
 _translate = QCoreApplication.translate
 
+
 class BCETranslate(BCTranslate):
     def __init__(self):
         super(BCETranslate, self).__init__()
diff --git a/src/View/BoundaryCondition/Table.py b/src/View/BoundaryCondition/Table.py
index 77141dff82ad74f5236b0f1e6a5a905aabde3beb..3a5afd8fbe9be31e5a299bc04536c5f2d6e6fb4b 100644
--- a/src/View/BoundaryCondition/Table.py
+++ b/src/View/BoundaryCondition/Table.py
@@ -52,6 +52,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, data=None, mode="type", tab="", trad=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
@@ -157,20 +158,21 @@ class TableModel(PamhyrTableModel):
             if self._headers[column] == "name":
                 self._undo.push(
                     SetNameCommand(
-                        self._lst, self._tab,row, value
+                        self._lst, self._tab, row, value
                     )
                 )
             elif self._headers[column] == "type":
-                key = next(k for k, v in self._long_types.items() if v == value)
+                key = next(k for k, v in self._long_types.items()
+                           if v == value)
                 self._undo.push(
                     SetTypeCommand(
-                        self._lst, self._tab,row, BC_types[key]
+                        self._lst, self._tab, row, BC_types[key]
                     )
                 )
             elif self._headers[column] == "node":
                 self._undo.push(
                     SetNodeCommand(
-                        self._lst, self._tab,row, self._data.node(value)
+                        self._lst, self._tab, row, self._data.node(value)
                     )
                 )
         except Exception as e:
@@ -185,7 +187,7 @@ class TableModel(PamhyrTableModel):
 
         self._undo.push(
             AddCommand(
-                self._lst, self._tab,row
+                self._lst, self._tab, row
             )
         )
 
diff --git a/src/View/BoundaryCondition/UndoCommand.py b/src/View/BoundaryCondition/UndoCommand.py
index bbf8cb2c64ca351622b272af5ad94f8a10aa693f..356d854b064be4159ce394e37b55f553667fca2e 100644
--- a/src/View/BoundaryCondition/UndoCommand.py
+++ b/src/View/BoundaryCondition/UndoCommand.py
@@ -26,6 +26,7 @@ from PyQt5.QtWidgets import (
 from Model.BoundaryCondition.BoundaryCondition import BoundaryCondition
 from Model.BoundaryCondition.BoundaryConditionList import BoundaryConditionList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, bcs, tab, index, new_value):
         QUndoCommand.__init__(self)
@@ -42,6 +43,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._bcs.get(self._tab, self._index).name = self._new
 
+
 class SetNodeCommand(QUndoCommand):
     def __init__(self, bcs, tab, index, node):
         QUndoCommand.__init__(self)
@@ -58,6 +60,7 @@ class SetNodeCommand(QUndoCommand):
     def redo(self):
         self._bcs.get(self._tab, self._index).node = self._new
 
+
 class SetTypeCommand(QUndoCommand):
     def __init__(self, bcs, tab, index, _type):
         QUndoCommand.__init__(self)
@@ -76,6 +79,7 @@ class SetTypeCommand(QUndoCommand):
     def redo(self):
         self._bcs.set(self._tab, self._index, self._new)
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, bcs, tab, index):
         QUndoCommand.__init__(self)
@@ -94,6 +98,7 @@ class AddCommand(QUndoCommand):
         else:
             self._bcs.insert(self._tab, self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, bcs, tab, rows):
         QUndoCommand.__init__(self)
@@ -114,6 +119,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._bcs.delete_i(self._tab, self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, bcs, tab, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/BoundaryCondition/Window.py b/src/View/BoundaryCondition/Window.py
index 99758c5ac9de410f5186f63f703050e600c0e72b..9d30532e8edc04dd0e86e4ded3c9bb6397c3bdd4 100644
--- a/src/View/BoundaryCondition/Window.py
+++ b/src/View/BoundaryCondition/Window.py
@@ -62,6 +62,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class BoundaryConditionWindow(PamhyrWindow):
     _pamhyr_ui = "BoundaryConditions"
     _pamhyr_name = "Boundary conditions"
@@ -70,10 +71,10 @@ class BoundaryConditionWindow(PamhyrWindow):
         name = self._pamhyr_name + " - " + study.name
 
         super(BoundaryConditionWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = BCTranslate(),
+            title=name,
+            study=study,
+            config=config,
+            trad=BCTranslate(),
             parent=parent
         )
 
@@ -90,33 +91,33 @@ class BoundaryConditionWindow(PamhyrWindow):
 
         for t in ["liquid", "solid", "suspenssion"]:
             self._delegate_type = ComboBoxDelegate(
-                trad = self._trad,
-                data = self._study.river,
-                mode = "type",
-                tab = t,
+                trad=self._trad,
+                data=self._study.river,
+                mode="type",
+                tab=t,
                 parent=self
             )
             self._delegate_node = ComboBoxDelegate(
-                trad = self._trad,
-                data = self._study.river,
-                mode = "node",
-                tab = t,
+                trad=self._trad,
+                data=self._study.river,
+                mode="node",
+                tab=t,
                 parent=self
             )
 
             table = self.find(QTableView, f"tableView_{t}")
             self._table[t] = TableModel(
-                table_view = table,
-                table_headers = self._trad.get_dict("table_headers"),
-                editable_headers = ["name", "type", "node"],
-                delegates = {
+                table_view=table,
+                table_headers=self._trad.get_dict("table_headers"),
+                editable_headers=["name", "type", "node"],
+                delegates={
                     "type": self._delegate_type,
                     "node": self._delegate_node,
                 },
-                trad = self._trad,
-                data = self._study.river,
-                undo = self._undo_stack,
-                opt_data = t,
+                trad=self._trad,
+                data=self._study.river,
+                undo=self._undo_stack,
+                opt_data=t,
             )
             table.setModel(self._table[t])
             table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -126,7 +127,7 @@ class BoundaryConditionWindow(PamhyrWindow):
     def setup_graph(self):
         self.graph_widget = GraphWidget(
             self._study.river,
-            min_size=None, size=(200,200),
+            min_size=None, size=(200, 200),
             only_display=True,
             parent=self
         )
@@ -215,7 +216,7 @@ class BoundaryConditionWindow(PamhyrWindow):
         for row in rows:
             win = self.sub_win_filter_first(
                 "Edit boundary condition",
-                contain = [f"({self._bcs.get(tab, row).id})"]
+                contain=[f"({self._bcs.get(tab, row).id})"]
             )
 
             if win is None:
diff --git a/src/View/BoundaryCondition/translate.py b/src/View/BoundaryCondition/translate.py
index 00077f5fa50dbee4797bae49cb4266507f0264c0..d16c644ef4f089790ccb4530efca8bd11ae92426 100644
--- a/src/View/BoundaryCondition/translate.py
+++ b/src/View/BoundaryCondition/translate.py
@@ -37,6 +37,7 @@ BC_types = {
     "SL": Solid,
 }
 
+
 class BCTranslate(PamhyrTranslate):
     def __init__(self):
         super(BCTranslate, self).__init__()
diff --git a/src/View/CheckList/Translate.py b/src/View/CheckList/Translate.py
index b3ce856d4c1caee1c559f25d4376d9d859191deb..d046365dfaf296e55f14a759ca89ea50c014e9ce 100644
--- a/src/View/CheckList/Translate.py
+++ b/src/View/CheckList/Translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class CheckListTranslate(PamhyrTranslate):
     def __init__(self):
         super(CheckListTranslate, self).__init__()
diff --git a/src/View/CheckList/Window.py b/src/View/CheckList/Window.py
index baf99983604b277cf024c9a469df04244a4c7bb7..1e8fb5d445cda7fa80c008df0093eefaaa8c6bf3 100644
--- a/src/View/CheckList/Window.py
+++ b/src/View/CheckList/Window.py
@@ -44,13 +44,14 @@ from View.CheckList.Translate import CheckListTranslate
 
 _translate = QCoreApplication.translate
 
+
 class CheckListWindow(PamhyrWindow):
     _pamhyr_ui = "CheckList"
     _pamhyr_name = "Check list"
 
     signalStatus = pyqtSignal(str)
 
-    def __init__(self, autorun:bool=True,
+    def __init__(self, autorun: bool = True,
                  study=None, config=None,
                  solver=None, parent=None):
         self._autorun = autorun
@@ -59,12 +60,12 @@ class CheckListWindow(PamhyrWindow):
         name = self._pamhyr_name + " - " + study.name
 
         super(CheckListWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = CheckListTranslate(),
-            options = [],
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=CheckListTranslate(),
+            options=[],
+            parent=parent
         )
 
         self._checker_list = (
@@ -81,9 +82,9 @@ class CheckListWindow(PamhyrWindow):
     def setup_table(self):
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = self._trad.get_dict("table_headers"),
-            data = self._checker_list,
+            table_view=table,
+            table_headers=self._trad.get_dict("table_headers"),
+            data=self._checker_list,
         )
 
     def setup_progress_bar(self):
@@ -120,7 +121,8 @@ class CheckListWindow(PamhyrWindow):
 
     def _compute_status(self):
         ok = len(list(filter(lambda c: c.is_ok(), self._checker_list)))
-        warning = len(list(filter(lambda c: c.is_warning(), self._checker_list)))
+        warning = len(
+            list(filter(lambda c: c.is_warning(), self._checker_list)))
         error = len(list(filter(lambda c: c.is_error(), self._checker_list)))
 
         return ok, warning, error
@@ -164,7 +166,7 @@ class CheckListWindow(PamhyrWindow):
 
         self.update_statusbar()
 
-    def update(self, key:str):
+    def update(self, key: str):
         if key == "start":
             self.start_compute()
             self.info_compute("Starting ...")
@@ -187,4 +189,4 @@ class CheckListWindow(PamhyrWindow):
 
     def accept(self):
         self._parent.solver_log(self._solver)
-        #self.end()
+        # self.end()
diff --git a/src/View/CheckList/Worker.py b/src/View/CheckList/Worker.py
index aacd9393380cff9c28cc6f2f5555142628bb5191..834d8975377fec865e18275e3abda28bff3a4392 100644
--- a/src/View/CheckList/Worker.py
+++ b/src/View/CheckList/Worker.py
@@ -22,6 +22,7 @@ from PyQt5.QtCore import (
     Qt, QObject, pyqtSlot, pyqtSignal
 )
 
+
 class Worker(QObject):
     signalStatus = pyqtSignal(str)
 
diff --git a/src/View/Configure/Solver/Window.py b/src/View/Configure/Solver/Window.py
index 369ff40ad28272803d4f280344a951ff47990b2c..893def20f0b4e070cf4970505245e304400312c4 100644
--- a/src/View/Configure/Solver/Window.py
+++ b/src/View/Configure/Solver/Window.py
@@ -24,6 +24,7 @@ from PyQt5.QtWidgets import (
     QPushButton,
 )
 
+
 class ConfigureSolverWindow(PamhyrDialog):
     _pamhyr_ui = "ConfigureAddSolverDialog"
     _pamhyr_name = "Add/Edit Solver"
@@ -35,9 +36,9 @@ class ConfigureSolverWindow(PamhyrDialog):
             name = "Add a new Solver"
 
         super(ConfigureSolverWindow, self).__init__(
-            title = name,
-            config = config,
-            options = [],
+            title=name,
+            config=config,
+            options=[],
             parent=parent
         )
 
@@ -67,16 +68,19 @@ class ConfigureSolverWindow(PamhyrDialog):
         # File button
         buttons = {
             "pushButton_input": (lambda: self.file_dialog(
-                select_file = True,
-                callback = lambda f: self.set_line_edit_text("lineEdit_input", f[0])
+                select_file=True,
+                callback=lambda f: self.set_line_edit_text(
+                    "lineEdit_input", f[0])
             )),
             "pushButton_solver": (lambda: self.file_dialog(
-                select_file = True,
-                callback = lambda f: self.set_line_edit_text("lineEdit_solver", f[0])
+                select_file=True,
+                callback=lambda f: self.set_line_edit_text(
+                    "lineEdit_solver", f[0])
             )),
             "pushButton_output": (lambda: self.file_dialog(
-                select_file = True,
-                callback = lambda f: self.set_line_edit_text("lineEdit_output", f[0])
+                select_file=True,
+                callback=lambda f: self.set_line_edit_text(
+                    "lineEdit_output", f[0])
             )),
         }
 
@@ -92,9 +96,11 @@ class ConfigureSolverWindow(PamhyrDialog):
         else:
             # Build new solver from selected type
             stype = self.get_combobox_text("comboBox_solver")
-            self.data = solver_type_list[stype](self.get_line_edit_text("lineEdit_name"))
+            self.data = solver_type_list[stype](
+                self.get_line_edit_text("lineEdit_name"))
 
-            self.data.description = self.get_line_edit_text("lineEdit_description")
+            self.data.description = self.get_line_edit_text(
+                "lineEdit_description")
             self.data.set_input(
                 self.get_line_edit_text("lineEdit_input"),
                 self.get_line_edit_text("lineEdit_input_cmd")
diff --git a/src/View/Configure/Translate.py b/src/View/Configure/Translate.py
index bed6a713efa9891698874cf902a6f2c0f882faf2..5355d8a590b29d9301cd98cd57a6ce3735871301 100644
--- a/src/View/Configure/Translate.py
+++ b/src/View/Configure/Translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class ConfigureTranslate(PamhyrTranslate):
     def __init__(self):
         super(ConfigureTranslate, self).__init__()
diff --git a/src/View/Configure/Window.py b/src/View/Configure/Window.py
index b07304fa151648760f87d65869695ee76897b60d..f380e86800d6566c0cafc91cecbe7d5e9b5ab73b 100644
--- a/src/View/Configure/Window.py
+++ b/src/View/Configure/Window.py
@@ -49,6 +49,7 @@ from Solver.Solvers import solver_long_name
 
 logger = logging.getLogger()
 
+
 class SolverTableModel(PamhyrTableModel):
     def data(self, index, role):
         if role != Qt.ItemDataRole.DisplayRole:
@@ -83,10 +84,10 @@ class ConfigureWindow(PamhyrDialog):
             config = Config()
 
         super(ConfigureWindow, self).__init__(
-            title = self._pamhyr_name,
-            config = config,
-            trad = ConfigureTranslate(),
-            options = [],
+            title=self._pamhyr_name,
+            config=config,
+            trad=ConfigureTranslate(),
+            options=[],
             parent=parent
         )
 
@@ -101,38 +102,43 @@ class ConfigureWindow(PamhyrDialog):
     def setup_solver(self):
         table = self.find(QTableView, "tableView_solver")
         self.solver_table_model = SolverTableModel(
-            table_view = table,
-            table_headers = self._trad.get_dict("table_headers"),
-            data = self._config.solvers
+            table_view=table,
+            table_headers=self._trad.get_dict("table_headers"),
+            data=self._config.solvers
         )
 
     def setup_stricklers(self):
         table = self.find(QTableView, f"tableView_stricklers")
         self._stricklers = deepcopy(self._config.stricklers)
         self._stricklers_table = TableModel(
-            table_view = table,
-            table_headers = self._trad_stricklers.get_dict("table_headers"),
-            editable_headers = ["name", "comment", "minor", "medium"],
-            data = self._stricklers,
-            undo = self._undo_stack,
+            table_view=table,
+            table_headers=self._trad_stricklers.get_dict("table_headers"),
+            editable_headers=["name", "comment", "minor", "medium"],
+            data=self._stricklers,
+            undo=self._undo_stack,
         )
 
     def setup_data(self):
         # Meshing_Tool
-        self.set_line_edit_text("lineEdit_meshing_tool", self._config.meshing_tool)
+        self.set_line_edit_text("lineEdit_meshing_tool",
+                                self._config.meshing_tool)
 
         # Const
         self.set_line_edit_text("lineEdit_segment", str(self._config.segment))
-        self.set_line_edit_text("lineEdit_max_listing", str(self._config.max_listing))
+        self.set_line_edit_text("lineEdit_max_listing",
+                                str(self._config.max_listing))
 
         # Backup
         self.set_check_box("checkBox_backup", self._config.backup_enable)
-        self.set_line_edit_text("lineEdit_backup_path", self._config.backup_path)
-        self.set_time_edit("timeEdit_backup_frequence", self._config.backup_frequence)
+        self.set_line_edit_text("lineEdit_backup_path",
+                                self._config.backup_path)
+        self.set_time_edit("timeEdit_backup_frequence",
+                           self._config.backup_frequence)
         self.set_spin_box("spinBox_backup_max", self._config.backup_max)
 
         # Editor
-        self.set_line_edit_text("lineEdit_editor_cmd", str(self._config.editor))
+        self.set_line_edit_text("lineEdit_editor_cmd",
+                                str(self._config.editor))
 
         # Language
         languages = Config.languages()
@@ -157,14 +163,14 @@ class ConfigureWindow(PamhyrDialog):
             "pushButton_stricklers_sort": self.sort_stricklers,
             # Others
             "pushButton_backup_path": lambda: self.file_dialog(
-                select_file = False,
-                callback = lambda f: self.set_line_edit_text(
+                select_file=False,
+                callback=lambda f: self.set_line_edit_text(
                     "lineEdit_backup_path", f[0]
                 )
             ),
-            "pushButton_meshing_tool" : lambda: self.file_dialog(
-                select_file = True,
-                callback = lambda f: self.set_line_edit_text(
+            "pushButton_meshing_tool": lambda: self.file_dialog(
+                select_file=True,
+                callback=lambda f: self.set_line_edit_text(
                     "lineEdit_meshing_tool", f[0]
                 )
             ),
@@ -178,16 +184,20 @@ class ConfigureWindow(PamhyrDialog):
         self._config.solvers = self.solver_table_model._data.copy()
 
         # Meshing_Tool
-        self._config.meshing_tool = self.get_line_edit_text("lineEdit_meshing_tool")
+        self._config.meshing_tool = self.get_line_edit_text(
+            "lineEdit_meshing_tool")
 
         # Const
         self._config.segment = self.get_line_edit_text("lineEdit_segment")
-        self._config.max_listing = self.get_line_edit_text("lineEdit_max_listing")
+        self._config.max_listing = self.get_line_edit_text(
+            "lineEdit_max_listing")
 
         # Backup
         self._config.backup_enable = self.get_check_box("checkBox_backup")
-        self._config.backup_path = self.get_line_edit_text("lineEdit_backup_path")
-        self._config.backup_frequence = self.get_time_edit("timeEdit_backup_frequence")
+        self._config.backup_path = self.get_line_edit_text(
+            "lineEdit_backup_path")
+        self._config.backup_frequence = self.get_time_edit(
+            "timeEdit_backup_frequence")
         self._config.backup_max = self.get_spin_box("spinBox_backup_max")
 
         # Stricklers
@@ -197,7 +207,8 @@ class ConfigureWindow(PamhyrDialog):
         self._config.editor = self.get_line_edit_text("lineEdit_editor_cmd")
 
         # Language
-        self._config.lang = Config.languages()[self.get_combobox_text("comboBox_language")]
+        self._config.lang = Config.languages(
+        )[self.get_combobox_text("comboBox_language")]
 
         self.end()
 
@@ -219,7 +230,8 @@ class ConfigureWindow(PamhyrDialog):
     # Solvers
 
     def edit_solver(self):
-        indexes = self.find(QTableView, "tableView_solver").selectionModel().selectedRows()
+        indexes = self.find(
+            QTableView, "tableView_solver").selectionModel().selectedRows()
         for index in indexes:
             self.edit_solver = ConfigureSolverWindow(
                 data=self.solver_table_model._data[index.row()],
@@ -227,7 +239,8 @@ class ConfigureWindow(PamhyrDialog):
                 parent=self
             )
             if self.edit_solver.exec_():
-                self.solver_table_model.change_solver(self.edit_solver.data, index)
+                self.solver_table_model.change_solver(
+                    self.edit_solver.data, index)
 
     def add_solver(self):
         dialog_solver = ConfigureSolverWindow(parent=self)
@@ -235,7 +248,8 @@ class ConfigureWindow(PamhyrDialog):
             self.solver_table_model.add_solver(dialog_solver.data)
 
     def remove_solver(self):
-        indices = self.find(QTableView, "tableView_solver").selectionModel().selectedRows()
+        indices = self.find(
+            QTableView, "tableView_solver").selectionModel().selectedRows()
         for index in sorted(indices):
             self.solver_table_model.removeRow(index)
 
diff --git a/src/View/Debug/Window.py b/src/View/Debug/Window.py
index 2e99dadb6e57a44491ac8249bfc825c53756b5b7..4d60a396e3eca310909b06aec84533503339d7b4 100644
--- a/src/View/Debug/Window.py
+++ b/src/View/Debug/Window.py
@@ -44,6 +44,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class ReplWindow(PamhyrWindow):
     _pamhyr_ui = "DebugRepl"
     _pamhyr_name = "Debug REPL"
@@ -51,11 +52,11 @@ class ReplWindow(PamhyrWindow):
     def __init__(self, study=None, config=None,
                  solver=None, parent=None):
         super(ReplWindow, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         self.__debug_exec_result__ = None
@@ -75,12 +76,14 @@ class ReplWindow(PamhyrWindow):
     def history_up(self):
         if self._history_ind < len(self._history):
             self._history_ind += 1
-            self.set_plaintext_edit_text("plainTextEdit", self._history[-self._history_ind])
+            self.set_plaintext_edit_text(
+                "plainTextEdit", self._history[-self._history_ind])
 
     def history_down(self):
         if self._history_ind > 0:
             self._history_ind -= 1
-            self.set_plaintext_edit_text("plainTextEdit", self._history[-self._history_ind])
+            self.set_plaintext_edit_text(
+                "plainTextEdit", self._history[-self._history_ind])
         else:
             self.set_plaintext_edit_text("plainTextEdit", "")
 
diff --git a/src/View/Doc/Window.py b/src/View/Doc/Window.py
index e197e5669280ba570bc938314aeeb3b84bc16b75..9f64da52ee1818a0187226040f17f4f9c62c6ed9 100644
--- a/src/View/Doc/Window.py
+++ b/src/View/Doc/Window.py
@@ -16,7 +16,8 @@
 
 # -*- coding: utf-8 -*-
 
-import os, sys
+import os
+import sys
 import logging
 import subprocess
 
@@ -55,11 +56,11 @@ class DocWindow(PamhyrWindow):
                  study=None, config=None,
                  parent=None):
         super(DocWindow, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         self._path = self._path_file(filename)
@@ -70,11 +71,11 @@ class DocWindow(PamhyrWindow):
 
     def setup_connection(self):
         self.findChild(QAction, "action_back").triggered.connect(self.back)
-        self.findChild(QAction, "action_forward").triggered.connect(self.forward)
+        self.findChild(QAction, "action_forward").triggered.connect(
+            self.forward)
 
         self.findChild(QAction, "action_open").triggered.connect(self.open)
 
-
     def setup_web_engine(self):
         vl = self.find(QVBoxLayout, "verticalLayout")
         self._web_view = QWebEngineView()
@@ -97,5 +98,5 @@ class DocWindow(PamhyrWindow):
         self._web_view.forward()
 
     def open(self):
-         url = QUrl(f"file://{self._path}")
-         QDesktopServices.openUrl(url)
+        url = QUrl(f"file://{self._path}")
+        QDesktopServices.openUrl(url)
diff --git a/src/View/DummyWindow.py b/src/View/DummyWindow.py
index 768d6fbc7ce67427df18ed3671c13009f6d3132a..aaab178c4969d103299b49e82509f3c88024d72f 100644
--- a/src/View/DummyWindow.py
+++ b/src/View/DummyWindow.py
@@ -18,12 +18,13 @@
 
 from View.Tools.PamhyrWindow import PamhyrWindow
 
+
 class DummyWindow(PamhyrWindow):
     __ui = "Dummy"
     __name = "Pamhyr Dummy Window"
 
     def __init__(self, parent=None):
         super(DummyWindow, self).__init__(
-            title = self.__name,
-            parent = parent,
+            title=self.__name,
+            parent=parent,
         )
diff --git a/src/View/Frictions/PlotStricklers.py b/src/View/Frictions/PlotStricklers.py
index c6b58dcd40a2287fe9a5cc84e803a992c800ea96..89fe50f876f5ba6e9c8badb93bde836882c856f9 100644
--- a/src/View/Frictions/PlotStricklers.py
+++ b/src/View/Frictions/PlotStricklers.py
@@ -25,10 +25,11 @@ from PyQt5.QtCore import (
 
 _translate = QCoreApplication.translate
 
+
 class PlotStricklers(PamhyrPlot):
     def draw_frictions(self, frictions, color="r"):
         lst = frictions
-        lst.sort(key = lambda s: s.begin_kp)
+        lst.sort(key=lambda s: s.begin_kp)
 
         coef = flatten(
             map(
@@ -57,7 +58,6 @@ class PlotStricklers(PamhyrPlot):
             color=color, lw=1.
         )
 
-
     @timer
     def draw(self, highlight=None):
         self.canvas.axes.cla()
@@ -77,7 +77,7 @@ class PlotStricklers(PamhyrPlot):
 
         kp = self.data.reach.get_kp()
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         frictions = self.data.frictions
diff --git a/src/View/Frictions/Table.py b/src/View/Frictions/Table.py
index f4ad4f8ee638b0f97234dd1694d232bb8f76d8c0..1cf3dcc16b6444f64bb10bb568d8f8de1b134d64 100644
--- a/src/View/Frictions/Table.py
+++ b/src/View/Frictions/Table.py
@@ -49,6 +49,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, data=None, study=None, mode="stricklers", parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
diff --git a/src/View/Frictions/UndoCommand.py b/src/View/Frictions/UndoCommand.py
index ef902f07d55453daf9ae9e6e0830fb6b1915c23c..5aba2a7cf1a1d14476de365fca7c04f626796464 100644
--- a/src/View/Frictions/UndoCommand.py
+++ b/src/View/Frictions/UndoCommand.py
@@ -26,6 +26,7 @@ from PyQt5.QtWidgets import (
 from Model.Friction.Friction import Friction
 from Model.Friction.FrictionList import FrictionList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, frictions, index, new_value):
         QUndoCommand.__init__(self)
@@ -41,6 +42,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._frictions.get(self._index).name = self._new
 
+
 class SetBeginCommand(QUndoCommand):
     def __init__(self, frictions, index, new_value):
         QUndoCommand.__init__(self)
@@ -56,6 +58,7 @@ class SetBeginCommand(QUndoCommand):
     def redo(self):
         self._frictions.get(self._index).begin_kp = float(self._new)
 
+
 class SetEndCommand(QUndoCommand):
     def __init__(self, frictions, index, new_value):
         QUndoCommand.__init__(self)
@@ -87,6 +90,7 @@ class SetBeginStricklerCommand(QUndoCommand):
     def redo(self):
         self._frictions.get(self._index).begin_strickler = self._new
 
+
 class SetEndStricklerCommand(QUndoCommand):
     def __init__(self, frictions, index, new_value):
         QUndoCommand.__init__(self)
@@ -118,6 +122,7 @@ class SetEdgeCommand(QUndoCommand):
     def redo(self):
         self._frictions.get(self._index).edge = self._new
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, frictions, index, reach):
         QUndoCommand.__init__(self)
@@ -137,6 +142,7 @@ class AddCommand(QUndoCommand):
         else:
             self._frictions.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, frictions, rows):
         QUndoCommand.__init__(self)
@@ -156,6 +162,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._frictions.delete_i(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, frictions, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/Frictions/Window.py b/src/View/Frictions/Window.py
index 74d96b63de240ba78669362023bd5754a193d9a0..2558ab432eafc47a64c1f214afc32ac42fc9482b 100644
--- a/src/View/Frictions/Window.py
+++ b/src/View/Frictions/Window.py
@@ -56,6 +56,7 @@ from View.Stricklers.Window import StricklersWindow
 
 logger = logging.getLogger()
 
+
 class FrictionsWindow(PamhyrWindow):
     _pamhyr_ui = "Frictions"
     _pamhyr_name = "Edit frictions"
@@ -75,43 +76,42 @@ class FrictionsWindow(PamhyrWindow):
         )
 
         super(FrictionsWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = FrictionsTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=FrictionsTranslate(),
+            parent=parent
         )
 
         self.setup_table()
         self.setup_graph()
         self.setup_connections()
 
-
     def setup_table(self):
         self._table = {}
 
         self._delegate_stricklers = ComboBoxDelegate(
-            data = self._reach,
-            study = self._study,
-            mode = "stricklers",
+            data=self._reach,
+            study=self._study,
+            mode="stricklers",
             parent=self
         )
 
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = self._trad.get_dict("table_headers"),
-            editable_headers = [
+            table_view=table,
+            table_headers=self._trad.get_dict("table_headers"),
+            editable_headers=[
                 "name", "begin_kp", "end_kp",
                 "begin_strickler", "end_strickler"
             ],
-            delegates = {
+            delegates={
                 "begin_strickler": self._delegate_stricklers,
                 "end_strickler": self._delegate_stricklers,
             },
-            data = self._reach,
-            undo = self._undo_stack,
-            opt_data = self._study
+            data=self._reach,
+            undo=self._undo_stack,
+            opt_data=self._study
         )
         table.setModel(self._table)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -125,10 +125,10 @@ class FrictionsWindow(PamhyrWindow):
         self.plot_layout.addWidget(self.canvas)
 
         self.plot = PlotKPZ(
-            canvas = self.canvas,
-            data = self._reach.reach,
-            toolbar = None,
-            display_current = False
+            canvas=self.canvas,
+            data=self._reach.reach,
+            toolbar=None,
+            display_current=False
         )
         self.plot.draw()
 
@@ -138,18 +138,18 @@ class FrictionsWindow(PamhyrWindow):
         self.plot_layout_2.addWidget(self.canvas_2)
 
         self.plot_2 = PlotStricklers(
-            canvas = self.canvas_2,
-            data = self._reach,
-            toolbar = None
+            canvas=self.canvas_2,
+            data=self._reach,
+            toolbar=None
         )
         self.plot_2.draw()
 
-
     def setup_connections(self):
         self.find(QAction, "action_add").triggered.connect(self.add)
         self.find(QAction, "action_del").triggered.connect(self.delete)
         self.find(QAction, "action_sort").triggered.connect(self.sort)
-        self.find(QAction, "action_edit_stricklers").triggered.connect(self.edit_stricklers)
+        self.find(QAction, "action_edit_stricklers").triggered.connect(
+            self.edit_stricklers)
 
         table = self.find(QTableView, f"tableView")
         table.selectionModel()\
@@ -185,17 +185,17 @@ class FrictionsWindow(PamhyrWindow):
             highlight = (sec.begin_kp, sec.end_kp)
 
         self.plot = PlotKPZ(
-            canvas = self.canvas,
-            data = reach,
-            toolbar = None,
-            display_current = False
+            canvas=self.canvas,
+            data=reach,
+            toolbar=None,
+            display_current=False
         )
         self.plot.draw(highlight=highlight)
 
         self.plot = PlotStricklers(
-            canvas = self.canvas_2,
-            data = data,
-            toolbar = None
+            canvas=self.canvas_2,
+            data=data,
+            toolbar=None
         )
         self.plot.draw(highlight=highlight)
 
@@ -239,14 +239,14 @@ class FrictionsWindow(PamhyrWindow):
     def edit_stricklers(self):
         strick = self.sub_win_filter_first(
             "Stricklers",
-            contain = []
+            contain=[]
         )
 
         if strick is None:
             strick = StricklersWindow(
-                study = self._study,
-                config = self.parent.conf,
-                parent = self
+                study=self._study,
+                config=self.parent.conf,
+                parent=self
             )
             strick.show()
         else:
diff --git a/src/View/Frictions/translate.py b/src/View/Frictions/translate.py
index 1014d8c1ef4b6c6e8b3fbe364b7b67d95a109742..b341455195ee506ea207465f26bc5ededd0ad544 100644
--- a/src/View/Frictions/translate.py
+++ b/src/View/Frictions/translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class FrictionsTranslate(PamhyrTranslate):
     def __init__(self):
         super(FrictionsTranslate, self).__init__()
diff --git a/src/View/Geometry/PlotAC.py b/src/View/Geometry/PlotAC.py
index 974706aa20419210ddf59089ad71b39343ba3ec6..b67394c297a075643d94b66500f018f005684da7 100644
--- a/src/View/Geometry/PlotAC.py
+++ b/src/View/Geometry/PlotAC.py
@@ -29,15 +29,16 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotAC(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, data=None, toolbar=None,
                  plot_xy=None, parent=None):
         super(PlotAC, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self.plot_xy = plot_xy
@@ -79,9 +80,11 @@ class PlotAC(PamhyrPlot):
         )
         self.canvas.figure.tight_layout()
 
-        label_before_plot_selected = _translate("MainWindow_reach", "Previous cross-section")
+        label_before_plot_selected = _translate(
+            "MainWindow_reach", "Previous cross-section")
         label_plot_selected = _translate("MainWindow_reach", "Cross-section")
-        label_after_plot_selected = _translate("MainWindow_reach", "Next cross-section")
+        label_after_plot_selected = _translate(
+            "MainWindow_reach", "Next cross-section")
         color_before_plot_selected = "k"  # 'grey'
         color_plot_selected = 'b'
         color_after_plot_selected = 'm'
@@ -133,10 +136,12 @@ class PlotAC(PamhyrPlot):
 
                 x_gl_complete.append(station[i])
                 y_gl_complete.append(elevation[i])
-                color_scat_complete_gl.append(self.color_complete_gl[lcomplete.index(txt)])
+                color_scat_complete_gl.append(
+                    self.color_complete_gl[lcomplete.index(txt)])
             elif txt.strip() in self.incomplete_gl:
                 annotate = self.canvas.axes.annotate(
-                    txt, (station[i], elevation[i]), horizontalalignment='left',
+                    txt, (station[i], elevation[i]
+                          ), horizontalalignment='left',
                     verticalalignment='top', annotation_clip=True, fontsize=11,
                     color=self.color_incomplete_gl[
                         lincomplete.index(txt)
@@ -179,9 +184,12 @@ class PlotAC(PamhyrPlot):
         )
         self.canvas.figure.tight_layout()
 
-        label_before_plot_selected = _translate("MainWindow_reach", "Profil précédent")
-        label_plot_selected = _translate("MainWindow_reach", "Profil sélectionné")
-        label_after_plot_selected = _translate("MainWindow_reach", "Profil suivant")
+        label_before_plot_selected = _translate(
+            "MainWindow_reach", "Profil précédent")
+        label_plot_selected = _translate(
+            "MainWindow_reach", "Profil sélectionné")
+        label_after_plot_selected = _translate(
+            "MainWindow_reach", "Profil suivant")
         color_before_plot_selected = "k"  # 'grey'
         color_plot_selected = 'b'
         color_after_plot_selected = 'm'
@@ -233,10 +241,12 @@ class PlotAC(PamhyrPlot):
 
                 x_gl_complete.append(station[i])
                 y_gl_complete.append(elevation[i])
-                color_scat_complete_gl.append(self.color_complete_gl[lcomplete.index(txt)])
+                color_scat_complete_gl.append(
+                    self.color_complete_gl[lcomplete.index(txt)])
             elif txt.strip() in self.incomplete_gl:
                 annotate = self.canvas.axes.annotate(
-                    txt, (station[i], elevation[i]), horizontalalignment='left',
+                    txt, (station[i], elevation[i]
+                          ), horizontalalignment='left',
                     verticalalignment='top', annotation_clip=True, fontsize=11,
                     color=self.color_incomplete_gl[
                         lincomplete.index(txt)
@@ -311,7 +321,6 @@ class PlotAC(PamhyrPlot):
 
         self.canvas.figure.canvas.draw_idle()
 
-
     @timer
     def update(self, ind=None):
         if self._init == False:
diff --git a/src/View/Geometry/PlotKPZ.py b/src/View/Geometry/PlotKPZ.py
index f216443c411dcbb8196d169b7776b0b3db07251a..983cc79807ce89caf649ac5d446a0bf2a6114226 100644
--- a/src/View/Geometry/PlotKPZ.py
+++ b/src/View/Geometry/PlotKPZ.py
@@ -29,15 +29,16 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotKPZ(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, data=None, toolbar=None,
                  display_current=True, parent=None):
         super(PlotKPZ, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self.display_current = display_current
@@ -75,7 +76,7 @@ class PlotKPZ(PamhyrPlot):
         z_max = self.data.get_z_max()
 
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         self.line_kp_zmin_zmax = self.canvas.axes.vlines(
@@ -98,7 +99,7 @@ class PlotKPZ(PamhyrPlot):
                 )
             )
 
-            indexes_filter = lambda data: list(
+            def indexes_filter(data): return list(
                 map(
                     lambda x: x[1],
                     filter(
diff --git a/src/View/Geometry/PlotXY.py b/src/View/Geometry/PlotXY.py
index ce93fa24ba52f68ede41a70fc61c9dd367a5e29d..8c0edcbedbd2e7f3bed9d792364152451aaf4494 100644
--- a/src/View/Geometry/PlotXY.py
+++ b/src/View/Geometry/PlotXY.py
@@ -25,15 +25,16 @@ from PyQt5.QtCore import (
 
 _translate = QCoreApplication.translate
 
+
 class PlotXY(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, data=None, toolbar=None,
                  display_current=True, parent=None):
         super(PlotXY, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self.display_current = display_current
@@ -74,7 +75,7 @@ class PlotXY(PamhyrPlot):
 
         kp = self.data.get_kp()
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         # Draw line for each profile
@@ -85,8 +86,8 @@ class PlotXY(PamhyrPlot):
                 markersize=3, marker='+'
             )
             for x, y, kp in zip(
-                    self.data.get_x(), self.data.get_y(),
-                    kp
+                self.data.get_x(), self.data.get_y(),
+                kp
             )
         ]
 
diff --git a/src/View/Geometry/Profile/Plot.py b/src/View/Geometry/Profile/Plot.py
index 12bb9aee1642622ef34788301c2c257a451a7058..1e997685ec53620717289a7dc7572920ed83902f 100644
--- a/src/View/Geometry/Profile/Plot.py
+++ b/src/View/Geometry/Profile/Plot.py
@@ -30,15 +30,16 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class Plot(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, data=None, toolbar=None,
                  table=None, parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._table = table
@@ -63,7 +64,7 @@ class Plot(PamhyrPlot):
         y_carto = self.data.y()
 
         if (len(x_carto) < 3 or len(y_carto) < 3 or
-            len(x) < 3):
+                len(x) < 3):
             # Noting to do in this case
             return
 
diff --git a/src/View/Geometry/Profile/Translate.py b/src/View/Geometry/Profile/Translate.py
index 148426aa453ccd9191b0ed85bbb654b04d0ff998..27a98c1ed059f5737a40d3639f6fc410083f179b 100644
--- a/src/View/Geometry/Profile/Translate.py
+++ b/src/View/Geometry/Profile/Translate.py
@@ -23,6 +23,7 @@ from View.Geometry.Translate import GeometryTranslate
 
 _translate = QCoreApplication.translate
 
+
 class GeometryProfileTranslate(GeometryTranslate):
     def __init__(self):
         super(GeometryProfileTranslate, self).__init__()
diff --git a/src/View/Geometry/Profile/UndoCommand.py b/src/View/Geometry/Profile/UndoCommand.py
index 7f0cd1388973ca9461cb1d1b355fdc21193d69f2..c1122a688b7889f563b504a69b0c3e005f9a9ca6 100644
--- a/src/View/Geometry/Profile/UndoCommand.py
+++ b/src/View/Geometry/Profile/UndoCommand.py
@@ -34,6 +34,7 @@ class SetDataCommand(QUndoCommand):
         self._old = old_value
         self._new = self.type(new_value)
 
+
 class SetXCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = float
@@ -45,6 +46,7 @@ class SetXCommand(SetDataCommand):
     def redo(self):
         self._profile.point(self._index).x = self._new
 
+
 class SetYCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = float
@@ -56,6 +58,7 @@ class SetYCommand(SetDataCommand):
     def redo(self):
         self._profile.point(self._index).y = self._new
 
+
 class SetZCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = float
@@ -67,10 +70,12 @@ class SetZCommand(SetDataCommand):
     def redo(self):
         self._profile.point(self._index).z = self._new
 
+
 class SetNameCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = str
-        super(SetNameCommand, self).__init__(reach, index, old_value, new_value)
+        super(SetNameCommand, self).__init__(
+            reach, index, old_value, new_value)
 
     def undo(self):
         self._profile.point(self._index).name = self._old
@@ -96,6 +101,7 @@ class AddCommand(QUndoCommand):
         else:
             self._profile.insert_point(self._index, self._point)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, profile, rows):
         QUndoCommand.__init__(self)
@@ -115,6 +121,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._profile.delete(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, profile, column, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/Geometry/Profile/Window.py b/src/View/Geometry/Profile/Window.py
index e4112f409f74684f428d62d58bb141c9d841c777..dfce6d9d76836e39c7835a38fea8d6b5728f98ad 100644
--- a/src/View/Geometry/Profile/Window.py
+++ b/src/View/Geometry/Profile/Window.py
@@ -58,11 +58,11 @@ class ProfileWindow(PamhyrWindow):
 
         name = f"{self._pamhyr_name} - {self._profile.name} {self._profile.kp}"
         super(ProfileWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = GeometryProfileTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=GeometryProfileTranslate(),
+            parent=parent
         )
 
         self.setup_table()
@@ -74,11 +74,11 @@ class ProfileWindow(PamhyrWindow):
 
         table = self.find(QTableView, "tableView")
         self._tablemodel = GeometryProfileTableModel(
-            table_view = table,
-            table_headers = table_headers,
-            editable_headers = ["name", "x", "y", "z"],
-            data = self._profile,
-            undo = self._undo_stack
+            table_view=table,
+            table_headers=table_headers,
+            editable_headers=["name", "x", "y", "z"],
+            data=self._profile,
+            undo=self._undo_stack
         )
         table.setModel(self._tablemodel)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -92,17 +92,17 @@ class ProfileWindow(PamhyrWindow):
         self._canvas.setObjectName("canvas")
         self._toolbar = PamhyrPlotToolbar(
             self._canvas, self,
-            items = ["home", "zoom", "save", "iso", "back/forward", "move"]
+            items=["home", "zoom", "save", "iso", "back/forward", "move"]
         )
         self._plot_layout = self.find(QVBoxLayout, "verticalLayout")
         self._plot_layout.addWidget(self._toolbar)
         self._plot_layout.addWidget(self._canvas)
 
         self._plot = Plot(
-            canvas = self._canvas,
-            data = self._profile,
-            toolbar = self._toolbar,
-            table = self.find(QTableView, "tableView")
+            canvas=self._canvas,
+            data=self._profile,
+            toolbar=self._toolbar,
+            table=self.find(QTableView, "tableView")
         )
         self._plot.draw()
 
@@ -134,15 +134,15 @@ class ProfileWindow(PamhyrWindow):
 
     def index_selected_row(self):
         rows = self._tablemodel\
-                      .selectionModel()\
-                      .selectedRows()
+            .selectionModel()\
+            .selectedRows()
         if len(rows) == 0:
             return 0
 
         return self._tablemodel\
-                      .selectionModel()\
-                      .selectedRows()[0]\
-                      .row()
+            .selectionModel()\
+            .selectedRows()[0]\
+            .row()
 
     def add(self):
         table = self.find(QTableView, "tableView")
@@ -213,8 +213,8 @@ class ProfileWindow(PamhyrWindow):
 
     def copy(self):
         rows = self._tablemodel\
-                      .selectionModel()\
-                      .selectedRows()
+            .selectionModel()\
+            .selectedRows()
         table = []
         table.append(["x", "y", "z", "name"])
 
diff --git a/src/View/Geometry/Table.py b/src/View/Geometry/Table.py
index e9f6eac65de51837016cb56137d65de43de5d7f7..2abb2e7157daa7349c4eac16b31b00e39e3c84f1 100644
--- a/src/View/Geometry/Table.py
+++ b/src/View/Geometry/Table.py
@@ -66,10 +66,10 @@ class GeometryReachTableModel(PamhyrTableModel):
 
         if role == Qt.ForegroundRole and index.column() == 0:
             name = self._data.profile(index.row()).name\
-                                                   .strip()\
-                                                   .lower()
+                .strip()\
+                .lower()
             if (name == "upstream" or name == "up" or
-                name == _translate("Geometry", "upstream")):
+                    name == _translate("Geometry", "upstream")):
                 return QColor("Green")
             elif (name == "downstream" or name == "down" or
                   name == _translate("Geometry", "downstream")):
@@ -97,7 +97,7 @@ class GeometryReachTableModel(PamhyrTableModel):
                         SetKPCommand(
                             self._data, index.row(),
                             self._data.profile(index.row()).kp,
-                        value
+                            value
                         )
                     )
             except Exception as e:
@@ -151,7 +151,6 @@ class GeometryReachTableModel(PamhyrTableModel):
         self.layoutAboutToBeChanged.emit()
         self.layoutChanged.emit()
 
-
     def move_up(self, row, parent=QModelIndex()):
         if row <= 0:
             return
@@ -199,7 +198,6 @@ class GeometryReachTableModel(PamhyrTableModel):
         self.layoutAboutToBeChanged.emit()
         self.layoutChanged.emit()
 
-
     def paste(self, row, header, data):
         if row > self._data.number_profiles:
             return
diff --git a/src/View/Geometry/Translate.py b/src/View/Geometry/Translate.py
index c583732db9d1b8b0ac4ccc408215a8e64eac567d..8ad7e2de84264e0dc61d09631d65bd11cc96ab15 100644
--- a/src/View/Geometry/Translate.py
+++ b/src/View/Geometry/Translate.py
@@ -22,13 +22,16 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class GeometryTranslate(PamhyrTranslate):
     def __init__(self):
         super(GeometryTranslate, self).__init__()
 
         self._dict["open_file"] = _translate("Geometry", "Open a file")
-        self._dict["file_st"] = _translate("Geometry", "File mage geometry (*.ST)")
-        self._dict["file_m"] = _translate("Geometry", "File mage meshed geometry (*.M)")
+        self._dict["file_st"] = _translate(
+            "Geometry", "File mage geometry (*.ST)")
+        self._dict["file_m"] = _translate(
+            "Geometry", "File mage meshed geometry (*.M)")
         self._dict["file_all"] = _translate("Geometry", "All file (*)")
 
         self._dict["reach"] = _translate("Geometry", "reach")
diff --git a/src/View/Geometry/UndoCommand.py b/src/View/Geometry/UndoCommand.py
index 1df9c58c87cd68a22ae8c90b8691196945b702f6..147ce23104b3564f1e05c1e81f8e5fca52788ec8 100644
--- a/src/View/Geometry/UndoCommand.py
+++ b/src/View/Geometry/UndoCommand.py
@@ -35,10 +35,12 @@ class SetDataCommand(QUndoCommand):
         self._old = old_value
         self._new = self.type(new_value)
 
+
 class SetNameCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = str
-        super(SetNameCommand, self).__init__(reach, index, old_value, new_value)
+        super(SetNameCommand, self).__init__(
+            reach, index, old_value, new_value)
 
     def undo(self):
         self._reach.profile(self._index).name = self._old
@@ -46,6 +48,7 @@ class SetNameCommand(SetDataCommand):
     def redo(self):
         self._reach.profile(self._index).name = self._new
 
+
 class SetKPCommand(SetDataCommand):
     def __init__(self, reach, index, old_value, new_value):
         self.type = float
@@ -75,6 +78,7 @@ class AddCommand(QUndoCommand):
         else:
             self._reach.insert_profile(self._index, self._profile)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, reach, rows):
         QUndoCommand.__init__(self)
@@ -94,6 +98,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._reach.delete(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, reach, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py
index 516bf66f296380a4c283baf827bb0c90263b8fe4..201d6d3eb5823d0a7ded9dd2254ca4e06f892958 100644
--- a/src/View/Geometry/Window.py
+++ b/src/View/Geometry/Window.py
@@ -66,11 +66,11 @@ class GeometryWindow(PamhyrWindow):
         name = f"{self._pamhyr_name} - {self._reach.name}"
 
         super(GeometryWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = GeometryTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=GeometryTranslate(),
+            parent=parent
         )
 
         self._tablemodel = None
@@ -87,11 +87,11 @@ class GeometryWindow(PamhyrWindow):
 
         table = self.find(QTableView, "tableView")
         self._tablemodel = GeometryReachTableModel(
-            table_view = table,
-            table_headers = table_headers,
-            editable_headers = ["name", "kp"],
-            data = self._reach,
-            undo = self._undo_stack
+            table_view=table,
+            table_headers=table_headers,
+            editable_headers=["name", "kp"],
+            data=self._reach,
+            undo=self._undo_stack
         )
         table.setModel(self._tablemodel)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -103,7 +103,7 @@ class GeometryWindow(PamhyrWindow):
         self._canvas_xy.setObjectName("canvas_xy")
         self._toolbar_xy = PamhyrPlotToolbar(
             self._canvas_xy, self,
-            items = ["home", "zoom", "save", "iso", "back/forward", "move"]
+            items=["home", "zoom", "save", "iso", "back/forward", "move"]
         )
         self._plot_layout_xy = self.find(QVBoxLayout, "verticalLayout")
         self._plot_layout_xy.addWidget(self._toolbar_xy)
@@ -114,7 +114,7 @@ class GeometryWindow(PamhyrWindow):
         self._canvas_kpc.setObjectName("canvas_kpc")
         self._toolbar_kpc = PamhyrPlotToolbar(
             self._canvas_kpc, self,
-            items = ["home", "zoom", "save", "iso", "back/forward", "move"]
+            items=["home", "zoom", "save", "iso", "back/forward", "move"]
         )
         self._plot_layout_kpc = self.find(QVBoxLayout, "verticalLayout_2")
         self._plot_layout_kpc.addWidget(self._toolbar_kpc)
@@ -125,7 +125,7 @@ class GeometryWindow(PamhyrWindow):
         self._canvas_ac.setObjectName("canvas_ac")
         self._toolbar_ac = PamhyrPlotToolbar(
             self._canvas_ac, self,
-            items = ["home", "zoom", "save", "iso", "back/forward", "move"]
+            items=["home", "zoom", "save", "iso", "back/forward", "move"]
         )
         self._plot_layout_ac = self.find(QVBoxLayout, "verticalLayout_3")
         self._plot_layout_ac.addWidget(self._toolbar_ac)
@@ -169,19 +169,22 @@ class GeometryWindow(PamhyrWindow):
             self.find(QAction, action)\
                 .triggered.connect(actions[action])
 
-        self.find(QSlider, "verticalSlider").valueChanged.connect(self.changed_slider_value)
-        self.find(QPushButton, "pushButton_up").clicked.connect(self.decrement_value_slider)
-        self.find(QPushButton, "pushButton_down").clicked.connect(self.increment_value_slider)
+        self.find(QSlider, "verticalSlider").valueChanged.connect(
+            self.changed_slider_value)
+        self.find(QPushButton, "pushButton_up").clicked.connect(
+            self.decrement_value_slider)
+        self.find(QPushButton, "pushButton_down").clicked.connect(
+            self.increment_value_slider)
 
         # Profile selection when line change in table
         self.find(QTableView, "tableView").selectionModel()\
                                           .selectionChanged\
                                           .connect(self.select_current_profile)
 
-
     def import_from_file(self):
         options = QFileDialog.Options()
-        settings = QSettings(QSettings.IniFormat, QSettings.UserScope, 'MyOrg', )
+        settings = QSettings(QSettings.IniFormat,
+                             QSettings.UserScope, 'MyOrg', )
         options |= QFileDialog.DontUseNativeDialog
 
         file_types = [
@@ -222,13 +225,13 @@ class GeometryWindow(PamhyrWindow):
 
             win = self.sub_win_filter_first(
                 "Profile",
-                contain = [self._reach.name, str(profile.kp)]
+                contain=[self._reach.name, str(profile.kp)]
             )
 
             if win is None:
                 win = ProfileWindow(
-                    profile = profile,
-                    parent = self,
+                    profile=profile,
+                    parent=self,
                 )
                 self._profile_window.append(win)
                 win.show()
@@ -250,9 +253,9 @@ class GeometryWindow(PamhyrWindow):
         self.tableView.model().blockSignals(True)
 
         self._plot_xy = PlotXY(
-            canvas = self._canvas_xy,
-            data = self._reach,
-            toolbar = self._toolbar_xy
+            canvas=self._canvas_xy,
+            data=self._reach,
+            toolbar=self._toolbar_xy
         )
         self._plot_xy.draw()
 
@@ -267,9 +270,9 @@ class GeometryWindow(PamhyrWindow):
         self.tableView.model().blockSignals(True)
 
         self._plot_kpc = PlotKPZ(
-            canvas = self._canvas_kpc,
-            data = self._reach,
-            toolbar = self._toolbar_kpc
+            canvas=self._canvas_kpc,
+            data=self._reach,
+            toolbar=self._toolbar_kpc
         )
         self._plot_kpc.draw()
 
@@ -284,10 +287,10 @@ class GeometryWindow(PamhyrWindow):
         self.tableView.model().blockSignals(True)
 
         self._plot_ac = PlotAC(
-            canvas = self._canvas_ac,
-            data = self._reach,
-            toolbar = self._toolbar_ac,
-            plot_xy = self._plot_xy
+            canvas=self._canvas_ac,
+            data=self._reach,
+            toolbar=self._toolbar_ac,
+            plot_xy=self._plot_xy
         )
         self._plot_ac.draw()
 
@@ -489,14 +492,16 @@ class GeometryWindow(PamhyrWindow):
     def export_to_file(self):
         options = QFileDialog.Options()
         DEFAULT_DIRECTORY = '/home/'
-        settings = QSettings(QSettings.IniFormat, QSettings.UserScope, 'MyOrg', )
-        current_dir = settings.value('current_directory', DEFAULT_DIRECTORY, type=str)
+        settings = QSettings(QSettings.IniFormat,
+                             QSettings.UserScope, 'MyOrg', )
+        current_dir = settings.value(
+            'current_directory', DEFAULT_DIRECTORY, type=str)
         options |= QFileDialog.DontUseNativeDialog
 
         filename, filters = QFileDialog.getSaveFileName(
             self,
-            filter = self._trad["file_st"] + ";; " + self._trad["file_all"],
-            options = options
+            filter=self._trad["file_st"] + ";; " + self._trad["file_all"],
+            options=options
         )
 
         current_dir = os.path.split(filename)[0] or DEFAULT_DIRECTORY
diff --git a/src/View/InitialConditions/DialogDischarge.py b/src/View/InitialConditions/DialogDischarge.py
index 7be75bafe17e745fe6db0339499dd835fed3ee6a..df0461bdb8cef7356ce39be7d3e4744829863ed8 100644
--- a/src/View/InitialConditions/DialogDischarge.py
+++ b/src/View/InitialConditions/DialogDischarge.py
@@ -31,15 +31,16 @@ from PyQt5.QtWidgets import (
     QDoubleSpinBox,
 )
 
+
 class DischargeDialog(PamhyrDialog):
     _pamhyr_ui = "InitialConditions_Dialog_Generator_Discharge"
     _pamhyr_name = "Discharge"
 
     def __init__(self, title="Discharge", parent=None):
         super(DischargeDialog, self).__init__(
-            title = self._pamhyr_name,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            options=[],
+            parent=parent
         )
 
         self.value = None
diff --git a/src/View/InitialConditions/DialogHeight.py b/src/View/InitialConditions/DialogHeight.py
index 8a2a3c122667779e78054cd22fed7b32e3accc30..0cd62c88ca6d49026c1dcf908751c53408e08ffd 100644
--- a/src/View/InitialConditions/DialogHeight.py
+++ b/src/View/InitialConditions/DialogHeight.py
@@ -31,15 +31,16 @@ from PyQt5.QtWidgets import (
     QDoubleSpinBox,
 )
 
+
 class HeightDialog(PamhyrDialog):
     _pamhyr_ui = "InitialConditions_Dialog_Generator_Height"
     _pamhyr_name = "Height"
 
     def __init__(self, parent=None):
         super(HeightDialog, self).__init__(
-            title = self._pamhyr_name,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            options=[],
+            parent=parent
         )
 
         self.value = None
diff --git a/src/View/InitialConditions/PlotDKP.py b/src/View/InitialConditions/PlotDKP.py
index d604179a0082760d8ae98f0b33b19478b66b5330..ccb774da4f3b5dca225f2fa77ca0001c9697837f 100644
--- a/src/View/InitialConditions/PlotDKP.py
+++ b/src/View/InitialConditions/PlotDKP.py
@@ -25,6 +25,7 @@ from PyQt5.QtCore import (
 
 _translate = QCoreApplication.translate
 
+
 class PlotDKP(PamhyrPlot):
     @timer
     def draw(self, highlight=None):
@@ -47,7 +48,7 @@ class PlotDKP(PamhyrPlot):
         z_min = self.data.reach.reach.get_z_min()
 
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         self.line_kp_zmin = self.canvas.axes.plot(
diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py
index 1ad2a266eb0c9e2a59acb06e07dbc16566596ffb..d2635a6ae80b59aa72f91ceeb246097332ef9f86 100644
--- a/src/View/InitialConditions/PlotDischarge.py
+++ b/src/View/InitialConditions/PlotDischarge.py
@@ -19,6 +19,7 @@
 from tools import timer
 from View.Tools.PamhyrPlot import PamhyrPlot
 
+
 class PlotDischarge(PamhyrPlot):
     @timer
     def draw(self, highlight=None):
@@ -40,7 +41,7 @@ class PlotDischarge(PamhyrPlot):
         kp = self.data.reach.reach.get_kp()
 
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         if len(self.data) != 0:
diff --git a/src/View/InitialConditions/Table.py b/src/View/InitialConditions/Table.py
index f7ad1020cb4827d407180e3bcb4000227101d0e1..d9546a4974f814ffe5e690a2900cde141d6e0bfa 100644
--- a/src/View/InitialConditions/Table.py
+++ b/src/View/InitialConditions/Table.py
@@ -45,6 +45,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, reach=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
diff --git a/src/View/InitialConditions/UndoCommand.py b/src/View/InitialConditions/UndoCommand.py
index c96f90fa2f759800cf40fb713dc593c4db503610..7205400926af6f71c918c96c35943741a1392430 100644
--- a/src/View/InitialConditions/UndoCommand.py
+++ b/src/View/InitialConditions/UndoCommand.py
@@ -26,6 +26,7 @@ from PyQt5.QtWidgets import (
 from Model.InitialConditions.InitialConditions import InitialConditions
 from Model.InitialConditions.InitialConditionsDict import InitialConditionsDict
 
+
 class SetCommand(QUndoCommand):
     def __init__(self, ics, row, column, new_value):
         QUndoCommand.__init__(self)
@@ -47,6 +48,7 @@ class SetCommand(QUndoCommand):
     def redo(self):
         self._ics.get(self._row)[self._column] = self._new
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, ics, index):
         QUndoCommand.__init__(self)
@@ -64,6 +66,7 @@ class AddCommand(QUndoCommand):
         else:
             self._ics.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, ics, rows):
         QUndoCommand.__init__(self)
@@ -83,6 +86,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._ics.delete_i(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, ics, _reverse):
         QUndoCommand.__init__(self)
@@ -168,6 +172,7 @@ class DuplicateCommand(QUndoCommand):
         for ic in self._ics:
             self._ics.insert(self._rows[0], ic)
 
+
 class GenerateCommand(QUndoCommand):
     def __init__(self, ics, generator, param):
         QUndoCommand.__init__(self)
diff --git a/src/View/InitialConditions/Window.py b/src/View/InitialConditions/Window.py
index 90cf8e0889f88ee0b87997b22f8350e041628099..5f270599e93e7758ac0bca0a70ee717f9cb1dda0 100644
--- a/src/View/InitialConditions/Window.py
+++ b/src/View/InitialConditions/Window.py
@@ -60,6 +60,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class InitialConditionsWindow(PamhyrWindow):
     _pamhyr_ui = "InitialConditions"
     _pamhyr_name = "Initial condition"
@@ -77,11 +78,11 @@ class InitialConditionsWindow(PamhyrWindow):
         )
 
         super(InitialConditionsWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = ICTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=ICTranslate(),
+            parent=parent
         )
 
         self._ics = study.river.initial_conditions.get(self._reach)
@@ -95,19 +96,19 @@ class InitialConditionsWindow(PamhyrWindow):
     def setup_table(self):
         table = self.find(QTableView, f"tableView")
         self._delegate_kp = ComboBoxDelegate(
-            reach = self._reach,
-            parent = self
+            reach=self._reach,
+            parent=self
         )
 
         self._table = InitialConditionTableModel(
-            reach = self._reach,
-            table_view = table,
-            table_headers = self._trad.get_dict("table_headers"),
-            editable_headers = ["kp", "discharge", "elevation", "height"],
-            delegates = {"kp": self._delegate_kp},
-            data = self._study,
-            undo = self._undo_stack,
-            trad = self._trad
+            reach=self._reach,
+            table_view=table,
+            table_headers=self._trad.get_dict("table_headers"),
+            editable_headers=["kp", "discharge", "elevation", "height"],
+            delegates={"kp": self._delegate_kp},
+            data=self._study,
+            undo=self._undo_stack,
+            trad=self._trad
         )
 
         table.setModel(self._table)
@@ -126,11 +127,11 @@ class InitialConditionsWindow(PamhyrWindow):
         self.plot_layout_1.addWidget(self.canvas_1)
 
         self.plot_1 = PlotDKP(
-            canvas = self.canvas_1,
-            data = self._ics,
-            trad = self._trad,
-            toolbar = self.toolbar_1,
-            parent = self
+            canvas=self.canvas_1,
+            data=self._ics,
+            trad=self._trad,
+            toolbar=self.toolbar_1,
+            parent=self
         )
         self.plot_1.draw()
 
@@ -144,11 +145,11 @@ class InitialConditionsWindow(PamhyrWindow):
         self.plot_layout_2.addWidget(self.canvas_2)
 
         self.plot_2 = PlotDischarge(
-            canvas = self.canvas_2,
-            data = self._ics,
-            trad = self._trad,
-            toolbar = self.toolbar_2,
-            parent = self
+            canvas=self.canvas_2,
+            data=self._ics,
+            trad=self._trad,
+            toolbar=self.toolbar_2,
+            parent=self
         )
         self.plot_2.draw()
 
diff --git a/src/View/InitialConditions/translate.py b/src/View/InitialConditions/translate.py
index f65306cb4752d969b3bcf8473b1fe1cdc1e0fb32..00cdf362058060f6f3f865e37a87224c2eab28fc 100644
--- a/src/View/InitialConditions/translate.py
+++ b/src/View/InitialConditions/translate.py
@@ -22,12 +22,15 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class ICTranslate(PamhyrTranslate):
     def __init__(self):
         super(ICTranslate, self).__init__()
 
-        self._dict["elevation"] = _translate("InitialCondition", "Elevation (m)")
-        self._dict["discharge"] = _translate("InitialCondition", "Discharge (m³/s)")
+        self._dict["elevation"] = _translate(
+            "InitialCondition", "Elevation (m)")
+        self._dict["discharge"] = _translate(
+            "InitialCondition", "Discharge (m³/s)")
         self._dict["kp"] = _translate("InitialCondition", "KP (m)")
 
         self._sub_dict["table_headers"] = {
diff --git a/src/View/LateralContribution/Edit/Plot.py b/src/View/LateralContribution/Edit/Plot.py
index ea1c04547d5ea66d2637a222974d9577be6a586f..336b154b9e940a602e43aa0cdc15a6bf70d6c5b9 100644
--- a/src/View/LateralContribution/Edit/Plot.py
+++ b/src/View/LateralContribution/Edit/Plot.py
@@ -29,16 +29,17 @@ from View.LateralContribution.Edit.translate import *
 
 _translate = QCoreApplication.translate
 
+
 class Plot(PamhyrPlot):
-    def __init__(self, mode = "time", data=None,
+    def __init__(self, mode="time", data=None,
                  canvas=None, trad=None, toolbar=None,
                  parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._table_headers = self._trad.get_dict("table_headers")
@@ -68,8 +69,8 @@ class Plot(PamhyrPlot):
                 map(
                     lambda v: str(
                         datetime.fromtimestamp(v[0]) - t0
-                    ).split(",")[0]\
-                    .replace("days", _translate("LateralContribution", "days"))\
+                    ).split(",")[0]
+                    .replace("days", _translate("LateralContribution", "days"))
                     .replace("day", _translate("LateralContribution", "day")),
                     fx
                 )
@@ -84,7 +85,6 @@ class Plot(PamhyrPlot):
 
         self.canvas.axes.set_xticks(ticks=xx, labels=xt, rotation=45)
 
-
     @timer
     def draw(self):
         self.canvas.axes.cla()
@@ -118,7 +118,7 @@ class Plot(PamhyrPlot):
         self.canvas.axes.autoscale_view(True, True, True)
         self.canvas.figure.tight_layout()
         self.canvas.figure.canvas.draw_idle()
-        #self.toolbar.update()
+        # self.toolbar.update()
 
         self._init = True
 
diff --git a/src/View/LateralContribution/Edit/UndoCommand.py b/src/View/LateralContribution/Edit/UndoCommand.py
index 715683c944864f05411cc6c23825c15f8cdc6fa0..780ea8acef83126918b1221e3a3b117c7e6c4719 100644
--- a/src/View/LateralContribution/Edit/UndoCommand.py
+++ b/src/View/LateralContribution/Edit/UndoCommand.py
@@ -25,6 +25,7 @@ from PyQt5.QtWidgets import (
 
 from Model.LateralContribution.LateralContribution import LateralContribution
 
+
 class SetDataCommand(QUndoCommand):
     def __init__(self, data, index, column, new_value):
         QUndoCommand.__init__(self)
@@ -42,6 +43,7 @@ class SetDataCommand(QUndoCommand):
     def redo(self):
         self._data._set_i_c_v(self._index, self._column, self._new)
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, data, index):
         QUndoCommand.__init__(self)
@@ -59,6 +61,7 @@ class AddCommand(QUndoCommand):
         else:
             self._data.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, data, rows):
         QUndoCommand.__init__(self)
@@ -78,6 +81,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._data.delete_i(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, data, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/LateralContribution/Edit/Window.py b/src/View/LateralContribution/Edit/Window.py
index 55f1307fd89976c069a66500ce7fb0831d7a6069..c5d12a380e1598283137d69e3faa46d58ea6ff6f 100644
--- a/src/View/LateralContribution/Edit/Window.py
+++ b/src/View/LateralContribution/Edit/Window.py
@@ -45,6 +45,7 @@ from View.LateralContribution.Edit.Plot import Plot
 
 _translate = QCoreApplication.translate
 
+
 class EditLateralContributionWindow(PamhyrWindow):
     _pamhyr_ui = "EditLateralContribution"
     _pamhyr_name = "Edit lateral contribution"
@@ -67,11 +68,11 @@ class EditLateralContributionWindow(PamhyrWindow):
             )
 
         super(EditLateralContributionWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = trad,
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=trad,
+            parent=parent
         )
 
         self.setup_table()
@@ -80,9 +81,9 @@ class EditLateralContributionWindow(PamhyrWindow):
 
     def setup_table(self):
         self._delegate_time = PamhyrExTimeDelegate(
-            data = self._data,
-            mode = self._study.time_system,
-            parent = self
+            data=self._data,
+            mode=self._study.time_system,
+            parent=self
         )
 
         headers = {}
@@ -92,16 +93,16 @@ class EditLateralContributionWindow(PamhyrWindow):
 
         table = self.find(QTableView, "tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = headers,
-            editable_headers = self._data.header,
-            delegates = {
+            table_view=table,
+            table_headers=headers,
+            editable_headers=self._data.header,
+            delegates={
                 "time": self._delegate_time,
             },
-            data = self._data,
-            undo = self._undo_stack,
-            trad = self._trad,
-            opt_data = self._study.time_system
+            data=self._data,
+            undo=self._undo_stack,
+            trad=self._trad,
+            opt_data=self._study.time_system
         )
 
         table.setModel(self._table)
@@ -119,12 +120,12 @@ class EditLateralContributionWindow(PamhyrWindow):
         self.verticalLayout.addWidget(self.canvas)
 
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._data,
-            mode = self._study.time_system,
-            toolbar = self.toolbar,
-            trad = self._trad,
-            parent = self
+            canvas=self.canvas,
+            data=self._data,
+            mode=self._study.time_system,
+            toolbar=self.toolbar,
+            trad=self._trad,
+            parent=self
         )
         self.plot.draw()
 
@@ -156,7 +157,6 @@ class EditLateralContributionWindow(PamhyrWindow):
             )
         )
 
-
     def add(self):
         rows = self.index_selected_rows()
         if len(self._data) == 0 or len(rows) == 0:
diff --git a/src/View/LateralContribution/Edit/translate.py b/src/View/LateralContribution/Edit/translate.py
index 247cdc4e08fe67626a8baca04c7dadf32dde194f..9fc86e4df95e6f8f3dd26d574471f2c9e4b6ab15 100644
--- a/src/View/LateralContribution/Edit/translate.py
+++ b/src/View/LateralContribution/Edit/translate.py
@@ -23,6 +23,7 @@ from View.LateralContribution.translate import LCTranslate
 
 _translate = QCoreApplication.translate
 
+
 class LCETranslate(LCTranslate):
     def __init__(self):
         super(LCETranslate, self).__init__()
diff --git a/src/View/LateralContribution/Table.py b/src/View/LateralContribution/Table.py
index 3c5f5cb79ae314c9bb9b37ddd530f661e2f63584..95d09c9c1093b5c1992bae167528ddda94409ed7 100644
--- a/src/View/LateralContribution/Table.py
+++ b/src/View/LateralContribution/Table.py
@@ -52,8 +52,9 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class ComboBoxDelegate(QItemDelegate):
-    def __init__(self, data=None, mode="type", tab="", trad = None, parent=None):
+    def __init__(self, data=None, mode="type", tab="", trad=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
 
         self._data = data
@@ -154,7 +155,8 @@ class TableModel(PamhyrTableModel):
                     )
                 )
             elif self._headers[column] == "type":
-                key = next(k for k, v in self._long_types.items() if v == value)
+                key = next(k for k, v in self._long_types.items()
+                           if v == value)
                 self._undo.push(
                     SetTypeCommand(
                         self._lst, self._tab, row, LC_types[key]
diff --git a/src/View/LateralContribution/UndoCommand.py b/src/View/LateralContribution/UndoCommand.py
index 3d8584368704fe6a23cb4fbaddc58cda6ea0a500..198fd9593ec8d07f0e003edf79d0f42b9dc7aa2a 100644
--- a/src/View/LateralContribution/UndoCommand.py
+++ b/src/View/LateralContribution/UndoCommand.py
@@ -26,6 +26,7 @@ from PyQt5.QtWidgets import (
 from Model.LateralContribution.LateralContribution import LateralContribution
 from Model.LateralContribution.LateralContributionList import LateralContributionList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, lcs, tab, index, new_value):
         QUndoCommand.__init__(self)
@@ -42,6 +43,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._lcs.get(self._tab, self._index).name = self._new
 
+
 class SetBeginCommand(QUndoCommand):
     def __init__(self, lcs, tab, index, new_value):
         QUndoCommand.__init__(self)
@@ -58,6 +60,7 @@ class SetBeginCommand(QUndoCommand):
     def redo(self):
         self._lcs.get(self._tab, self._index).begin_kp = float(self._new)
 
+
 class SetEndCommand(QUndoCommand):
     def __init__(self, lcs, tab, index, new_value):
         QUndoCommand.__init__(self)
@@ -91,6 +94,7 @@ class SetEdgeCommand(QUndoCommand):
     def redo(self):
         self._lcs.get(self._tab, self._index).edge = self._new
 
+
 class SetTypeCommand(QUndoCommand):
     def __init__(self, lcs, tab, index, _type):
         QUndoCommand.__init__(self)
@@ -109,6 +113,7 @@ class SetTypeCommand(QUndoCommand):
     def redo(self):
         self._lcs.set(self._tab, self._index, self._new)
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, lcs, tab, index):
         QUndoCommand.__init__(self)
@@ -127,6 +132,7 @@ class AddCommand(QUndoCommand):
         else:
             self._lcs.insert(self._tab, self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, lcs, tab, rows):
         QUndoCommand.__init__(self)
@@ -147,6 +153,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._lcs.delete_i(self._tab, self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, lcs, tab, _reverse):
         QUndoCommand.__init__(self)
diff --git a/src/View/LateralContribution/Window.py b/src/View/LateralContribution/Window.py
index 467f2a4b40a6f45f826939c91e952555f2563a2a..72ca343de73dab35035590a14c142f4bf78d94ab 100644
--- a/src/View/LateralContribution/Window.py
+++ b/src/View/LateralContribution/Window.py
@@ -62,6 +62,7 @@ from View.LateralContribution.Edit.Window import EditLateralContributionWindow
 
 logger = logging.getLogger()
 
+
 class LateralContributionWindow(PamhyrWindow):
     _pamhyr_ui = "LateralContributions"
     _pamhyr_name = "Lateral contribution"
@@ -70,10 +71,10 @@ class LateralContributionWindow(PamhyrWindow):
         name = self._pamhyr_name + " - " + study.name
 
         super(LateralContributionWindow, self).__init__(
-            title = name,
-            study = study,
-            trad = LCTranslate(),
-            config = config,
+            title=name,
+            study=study,
+            trad=LCTranslate(),
+            config=config,
             parent=parent
         )
 
@@ -88,33 +89,33 @@ class LateralContributionWindow(PamhyrWindow):
 
         for t in ["liquid", "solid", "suspenssion"]:
             self._delegate_type = ComboBoxDelegate(
-                data = self._study.river,
-                mode = "type",
-                tab = t,
-                trad = self._trad,
+                data=self._study.river,
+                mode="type",
+                tab=t,
+                trad=self._trad,
                 parent=self
             )
             self._delegate_edge = ComboBoxDelegate(
-                data = self._study.river,
-                mode = "edge",
-                tab = t,
-                trad = self._trad,
+                data=self._study.river,
+                mode="edge",
+                tab=t,
+                trad=self._trad,
                 parent=self
             )
 
             table = self.find(QTableView, f"tableView_{t}")
             self._table[t] = TableModel(
-                table_view = table,
-                table_headers = self._trad.get_dict("table_headers"),
-                editable_headers = True,
-                delegates = {
+                table_view=table,
+                table_headers=self._trad.get_dict("table_headers"),
+                editable_headers=True,
+                delegates={
                     "type": self._delegate_type,
                     "edge": self._delegate_edge,
                 },
-                data = self._study.river,
-                undo = self._undo_stack,
-                trad = self._trad,
-                opt_data = t,
+                data=self._study.river,
+                undo=self._undo_stack,
+                trad=self._trad,
+                opt_data=t,
             )
             table.setModel(self._table[t])
             table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -128,9 +129,9 @@ class LateralContributionWindow(PamhyrWindow):
         self.plot_layout.addWidget(self.canvas)
 
         self.plot = PlotXY(
-            canvas = self.canvas,
-            data = None,
-            toolbar = None,
+            canvas=self.canvas,
+            data=None,
+            toolbar=None,
         )
 
     def setup_connections(self):
@@ -193,9 +194,9 @@ class LateralContributionWindow(PamhyrWindow):
                 highlight = (lc.begin_kp, lc.end_kp)
 
         self.plot = PlotXY(
-            canvas = self.canvas,
-            data = data,
-            toolbar = None,
+            canvas=self.canvas,
+            data=data,
+            toolbar=None,
         )
         self.plot.draw(highlight=highlight)
 
@@ -259,7 +260,7 @@ class LateralContributionWindow(PamhyrWindow):
         for row in rows:
             win = self.sub_win_filter_first(
                 "Edit lateral contribution",
-                contain = [f"({self._lcs.get(tab, row).id})"]
+                contain=[f"({self._lcs.get(tab, row).id})"]
             )
 
             if win is None:
diff --git a/src/View/LateralContribution/translate.py b/src/View/LateralContribution/translate.py
index aaf44798ce9c7ba2f04f4949c8f6e9c6c816b26c..f005a063248970b2b0436729820fc798f33addd6 100644
--- a/src/View/LateralContribution/translate.py
+++ b/src/View/LateralContribution/translate.py
@@ -33,6 +33,7 @@ LC_types = {
     "EV": Evaporation,
 }
 
+
 class LCTranslate(PamhyrTranslate):
     def __init__(self):
         super(LCTranslate, self).__init__()
diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index cf7e08a76213e4fab32599431f179639c87da8c9..18c4837e038ee86144b3fa143bd2d0aa8d6b2e75 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -16,7 +16,8 @@
 
 # -*- coding: utf-8 -*-
 
-import os, sys
+import os
+import sys
 import logging
 import subprocess
 from queue import Queue
@@ -107,6 +108,7 @@ action = (
     no_model_action + model_action + define_model_action
 )
 
+
 class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def __init__(self, conf=None):
         super(ApplicationWindow, self).__init__()
@@ -132,10 +134,10 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         self.setup_sc()
         self.setup_connection()
         self.default_style()
-        self.setup_debug_mode(init = True)
+        self.setup_debug_mode(init=True)
 
         self.trans = QTranslator(self)
-        #self.ui.retranslateUi()
+        # self.ui.retranslateUi()
 
         if self.conf.last_study != "" and not self.conf.close_correctly:
             self.dialog_reopen_study()
@@ -153,7 +155,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             title += "Pamhyr2"
             self.setWindowTitle(title)
 
-    def enable_actions(self, action:str, enable:bool):
+    def enable_actions(self, action: str, enable: bool):
         """Enable of disable an action componant
 
         Args:
@@ -196,7 +198,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             "action_menu_edit_reach_sediment_layers": self.open_reach_sediment_layers,
             "action_menu_close": self.close_model,
             "action_menu_results_last": self.open_last_results,
-            ## Help
+            # Help
             "action_menu_pamhyr_users_pdf": lambda: self.open_doc_user(ext="pdf"),
             "action_menu_pamhyr_developers_pdf": lambda: self.open_doc_dev(ext="pdf"),
             "action_menu_pamhyr_users_html": lambda: self.open_doc_user(ext="html"),
@@ -209,7 +211,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             "action_toolBar_save": self.save_study,
             "action_toolBar_close": self.close_model,
             "action_toolBar_run_solver": self.run_solver,
-            ## Current actions
+            # Current actions
             "action_toolBar_network": self.open_network,
             "action_toolBar_geometry": self.open_geometry,
             "action_toolBar_mesh": lambda: self.open_dummy("Mesh"),
@@ -255,7 +257,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def closeEvent(self, event):
         if not self._close_question:
             if self._study is not None and not self._study.is_saved:
-                if self.dialog_close(cancel = False):
+                if self.dialog_close(cancel=False):
                     # PAMHYR is close correctly (no crash)
                     self.conf.set_close_correctly()
                     super(ApplicationWindow, self).closeEvent(event)
@@ -272,7 +274,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         # Maximise window
         self.showMaximized()
 
-    def set_debug_lvl(self, debug = True):
+    def set_debug_lvl(self, debug=True):
         if debug:
             logger.setLevel(logging.DEBUG)
             logger.info("Set logging level to DEBUG")
@@ -280,7 +282,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             logger.setLevel(logging.INFO)
             logger.info("Set logging level to INFO")
 
-    def setup_debug_mode(self, init = False):
+    def setup_debug_mode(self, init=False):
         menu = self.findChild(QMenu, "menu_help")
         self.set_title()
 
@@ -290,22 +292,23 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             self.debug_action.triggered.connect(self.open_debug)
 
             self.debug_sqlite_action = QAction("Debug SQLite", self)
-            self.debug_sqlite_action.setStatusTip("Open SQLite debuging tool (sqlitebrowser)")
+            self.debug_sqlite_action.setStatusTip(
+                "Open SQLite debuging tool (sqlitebrowser)")
             self.debug_sqlite_action.triggered.connect(self.open_sqlite)
 
             if self.conf.debug:
                 menu.addAction(self.debug_action)
                 menu.addAction(self.debug_sqlite_action)
-                self.set_debug_lvl(debug = True)
+                self.set_debug_lvl(debug=True)
         else:
             if self.conf.debug:
                 menu.addAction(self.debug_action)
                 menu.addAction(self.debug_sqlite_action)
-                self.set_debug_lvl(debug = True)
+                self.set_debug_lvl(debug=True)
             else:
                 menu.removeAction(self.debug_action)
                 menu.removeAction(self.debug_sqlite_action)
-                self.set_debug_lvl(debug = False)
+                self.set_debug_lvl(debug=False)
 
     #########
     # MODEL #
@@ -430,7 +433,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
 
         dlg.setWindowTitle("Last open study")
         dlg.setText("Do you want to open again the last open study?")
-        opt = QMessageBox.Cancel | QMessageBox.Ok #| QMessageBox.Open
+        opt = QMessageBox.Cancel | QMessageBox.Ok  # | QMessageBox.Open
 
         dlg.setStandardButtons(opt)
         dlg.setIcon(QMessageBox.Question)
@@ -446,7 +449,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         elif res == QMessageBox.Cancel:
             return False
 
-    def dialog_close(self, cancel = True):
+    def dialog_close(self, cancel=True):
         dlg = QMessageBox(self)
 
         dlg.setWindowTitle("Close PAMHYR without saving study")
@@ -504,7 +507,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             dialog = QFileDialog(self)
             dialog.setFileMode(QFileDialog.FileMode.ExistingFile)
             dialog.setDefaultSuffix(".pamhyr")
-            #dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
+            # dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
             dialog.setNameFilters(['PamHyr (*.pamhyr)'])
             dialog.setDirectory(os.path.dirname(self.conf.last_study))
 
@@ -554,11 +557,12 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         if (self._study is not None and self._study.river.has_current_reach()):
             geometry = self.sub_win_filter_first(
                 "Geometry",
-                contain = [self._study.river.current_reach().name]
+                contain=[self._study.river.current_reach().name]
             )
 
             if geometry is None:
-                geometry = GeometryWindow(study=self._study, config=self.conf, parent=self)
+                geometry = GeometryWindow(
+                    study=self._study, config=self.conf, parent=self)
                 geometry.show()
             else:
                 geometry.activateWindow()
@@ -568,11 +572,11 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def open_boundary_cond(self):
         bound = self.sub_win_filter_first(
             "Boundary conditions",
-            contain = []
+            contain=[]
         )
 
         if bound is None:
-            bound = BoundaryConditionWindow(study = self._study, parent = self)
+            bound = BoundaryConditionWindow(study=self._study, parent=self)
             bound.show()
         else:
             bound.activateWindow()
@@ -580,11 +584,11 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def open_lateral_contrib(self):
         lateral = self.sub_win_filter_first(
             "Lateral contribution",
-            contain = []
+            contain=[]
         )
 
         if lateral is None:
-            lateral = LateralContributionWindow(study = self._study, parent = self)
+            lateral = LateralContributionWindow(study=self._study, parent=self)
             lateral.show()
         else:
             lateral.activateWindow()
@@ -592,14 +596,14 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def open_stricklers(self):
         strick = self.sub_win_filter_first(
             "Stricklers",
-            contain = []
+            contain=[]
         )
 
         if strick is None:
             strick = StricklersWindow(
-                study = self._study,
-                config = self.conf,
-                parent = self
+                study=self._study,
+                config=self.conf,
+                parent=self
             )
             strick.show()
         else:
@@ -607,17 +611,17 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
 
     def open_frictions(self):
         if (self._study is not None and
-            self._study.river.has_current_reach()):
+                self._study.river.has_current_reach()):
 
             frictions = self.sub_win_filter_first(
                 "Frictions",
-                contain = [self._study.river.current_reach().name]
+                contain=[self._study.river.current_reach().name]
             )
 
             if frictions is None:
                 frictions = FrictionsWindow(
-                    study = self._study,
-                    parent = self
+                    study=self._study,
+                    parent=self
                 )
                 frictions.show()
             else:
@@ -629,14 +633,14 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         if self._study.river.has_current_reach():
             initial = self.sub_win_filter_first(
                 "Initial condition",
-                contain = [self._study.river.current_reach().name]
+                contain=[self._study.river.current_reach().name]
             )
 
             if initial is None:
                 initial = InitialConditionsWindow(
-                    study = self._study,
-                    config = self.conf,
-                    parent = self
+                    study=self._study,
+                    config=self.conf,
+                    parent=self
                 )
                 initial.show()
             else:
@@ -647,13 +651,13 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     def open_solver_parameters(self):
         params = self.sub_win_filter_first(
             "Solver parameters",
-            contain = []
+            contain=[]
         )
 
         if params is None:
             params = SolverParametersWindow(
-                study = self._study,
-                parent = self
+                study=self._study,
+                parent=self
             )
             params.show()
         else:
@@ -661,15 +665,15 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
 
     def open_sediment_layers(self):
         sl = SedimentLayersWindow(
-            study = self._study,
-            parent = self
+            study=self._study,
+            parent=self
         )
         sl.show()
 
     def open_reach_sediment_layers(self):
         sl = ReachSedimentLayersWindow(
-            study = self._study,
-            parent = self
+            study=self._study,
+            parent=self
         )
         sl.show()
 
@@ -678,30 +682,30 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
             return
 
         run = SelectSolverWindow(
-            study = self._study,
-            config = self.conf,
-            parent = self
+            study=self._study,
+            config=self.conf,
+            parent=self
         )
         if run.exec():
             solver = run.solver
             check = CheckListWindow(
-                study = self._study,
-                config = self.conf,
-                solver = solver,
-                parent = self
+                study=self._study,
+                config=self.conf,
+                solver=solver,
+                parent=self
             )
             check.show()
 
     def solver_log(self, solver):
         sol = SolverLogWindow(
-            study = self._study,
-            config = self.conf,
-            solver = solver,
-            parent = self
+            study=self._study,
+            config=self.conf,
+            solver=solver,
+            parent=self
         )
         sol.show()
 
-    def open_solver_results(self, solver, results = None):
+    def open_solver_results(self, solver, results=None):
         # If no specific results, get last results
         if results is None:
             results = self._last_results
@@ -713,15 +717,15 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         # Windows already opened
         res = self.sub_win_filter_first(
             "Results",
-            contain = [solver.name, results.date]
+            contain=[solver.name, results.date]
         )
 
         if res is None:
             res = ResultsWindow(
-                study = self._study,
-                solver = solver,
-                results = results,
-                parent = self
+                study=self._study,
+                solver=solver,
+                results=results,
+                parent=self
             )
             res.show()
         else:
@@ -763,8 +767,8 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
                 QDesktopServices.openUrl(url)
             else:
                 doc = DocWindow(
-                    filename =  filename,
-                    parent = self
+                    filename=filename,
+                    parent=self
                 )
                 doc.show()
 
@@ -783,9 +787,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
 
     def open_debug(self):
         repl = ReplWindow(
-            study = self._study,
-            config = self.conf,
-            parent = self
+            study=self._study,
+            config=self.conf,
+            parent=self
         )
         repl.show()
 
diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py
index f7b5acd05a75efd16bc732dc0c12329acbbfe7df..5253c37f48a7d840fe4928610787dfbdde73a5fc 100644
--- a/src/View/Network/GraphWidget.py
+++ b/src/View/Network/GraphWidget.py
@@ -115,6 +115,7 @@ class NodeItem(QGraphicsItem):
         if not self.graph._only_display:
             super(NodeItem, self).mouseMoveEvent(event)
 
+
 class EdgeItem(QGraphicsItem):
     Type = QGraphicsItem.UserType + 2
 
@@ -216,6 +217,7 @@ class EdgeItem(QGraphicsItem):
         painter.drawPolygon(poly)
         painter.fillPath(path, brush)
 
+
 class NodeText(QGraphicsTextItem):
     def __init__(self, node_item):
         super(NodeText, self).__init__()
@@ -228,9 +230,9 @@ class NodeText(QGraphicsTextItem):
 
     def set_custom_pos(self, pos):
         x = pos.x()
-        y = pos.y() - 42 # Dont panic! The answer is 42
+        y = pos.y() - 42  # Dont panic! The answer is 42
 
-        self.setPos(QPointF(x,y))
+        self.setPos(QPointF(x, y))
 
     @timer
     def paint(self, painter, option, widget):
@@ -248,6 +250,7 @@ class NodeText(QGraphicsTextItem):
         # Update the node text
         self.setPlainText(self.item.node.name)
 
+
 class NewEdgeLine(QGraphicsItem):
     def __init__(self, src, dest):
         super(NewEdgeLine, self).__init__()
@@ -278,13 +281,14 @@ class NewEdgeLine(QGraphicsItem):
                             Qt.RoundJoin))
         painter.drawLine(line)
 
+
 class GraphWidget(QGraphicsView):
     changeEdge = pyqtSignal(object)
     changeNode = pyqtSignal(object)
 
     def __init__(self, graph, parent=None,
                  min_size=(400, 400), max_size=None,
-                 size=None, only_display=False, undo = None):
+                 size=None, only_display=False, undo=None):
         super(GraphWidget, self).__init__(parent=parent)
 
         self.timerId = 0
@@ -522,7 +526,6 @@ class GraphWidget(QGraphicsView):
         self.changeNode.emit(self.sender())
         self.changeEdge.emit(self.sender())
 
-
     def update_edges(self, node):
         """Update display of all edges linked with the node
 
@@ -791,7 +794,7 @@ class GraphWidget(QGraphicsView):
         if self._state == "move":
             # Move on scene
             if (not self.selected_item() and
-                event.buttons() & Qt.LeftButton):
+                    event.buttons() & Qt.LeftButton):
                 old_p = self.mapToScene(self.m_origin_x, self.m_origin_y)
                 new_p = self.mapToScene(event.pos())
                 translation = new_p - old_p
@@ -805,7 +808,6 @@ class GraphWidget(QGraphicsView):
             self.update()
             super(GraphWidget, self).mouseMoveEvent(event)
 
-
     # Contextual menu
 
     def _menu_default(self, event, pos, items, menu):
@@ -835,7 +837,8 @@ class GraphWidget(QGraphicsView):
             enable = menu.addAction(_translate("Network", "Enable the reach"))
             is_enable = False
 
-        reverse = menu.addAction(_translate("Network", "Reverse the reach orientation"))
+        reverse = menu.addAction(_translate(
+            "Network", "Reverse the reach orientation"))
 
         action = menu.exec_(self.mapToGlobal(event.pos()))
 
diff --git a/src/View/Network/Table.py b/src/View/Network/Table.py
index da74d8135d65275889c18e5e6d914835240e8d2e..8a94c8b8de961723a5ba7a265cc64df3d9e1c014 100644
--- a/src/View/Network/Table.py
+++ b/src/View/Network/Table.py
@@ -69,6 +69,7 @@ class ComboBoxDelegate(QItemDelegate):
     def currentItemChanged(self):
         self.commitData.emit(self.sender())
 
+
 class NodeTableModel(PamhyrTableModel):
     def _setup_lst(self):
         self._lst = self._data.nodes()
@@ -120,6 +121,7 @@ class NodeTableModel(PamhyrTableModel):
         self._lst = self._data.nodes()
         self.layoutChanged.emit()
 
+
 class EdgeTableModel(PamhyrTableModel):
     def _setup_lst(self):
         self._lst = self._data.edges()
@@ -140,7 +142,7 @@ class EdgeTableModel(PamhyrTableModel):
 
         try:
             if (self._headers[index.column()] == "node1" or
-                self._headers[index.column()] == "node2"):
+                    self._headers[index.column()] == "node2"):
                 node = self.graph.node(value)
                 self._undo.push(
                     SetNodeCommand(
diff --git a/src/View/Network/UndoCommand.py b/src/View/Network/UndoCommand.py
index c9cce895fb1adba400b32645cc4f0a47667a318a..1c1d9da15d6ac23512af54f84feea4a5c35a1980 100644
--- a/src/View/Network/UndoCommand.py
+++ b/src/View/Network/UndoCommand.py
@@ -31,6 +31,7 @@ from Model.Network.Node import Node
 from Model.Network.Edge import Edge
 from Model.Network.Graph import Graph
 
+
 class AddNodeCommand(QUndoCommand):
     def __init__(self, graph, node):
         QUndoCommand.__init__(self)
@@ -44,6 +45,7 @@ class AddNodeCommand(QUndoCommand):
     def redo(self):
         self._graph.insert_node(self._node)
 
+
 class SetNodePosCommand(QUndoCommand):
     def __init__(self, node, new, old):
         QUndoCommand.__init__(self)
@@ -58,6 +60,7 @@ class SetNodePosCommand(QUndoCommand):
     def redo(self):
         self._node.node.setPos(self._new[0], self._new[1])
 
+
 class DelNodeCommand(QUndoCommand):
     def __init__(self, graph, node):
         QUndoCommand.__init__(self)
@@ -86,6 +89,7 @@ class DelNodeCommand(QUndoCommand):
 
         self._graph.remove_node(self._node.name)
 
+
 class AddEdgeCommand(QUndoCommand):
     def __init__(self, graph, edge):
         QUndoCommand.__init__(self)
@@ -99,6 +103,7 @@ class AddEdgeCommand(QUndoCommand):
     def redo(self):
         self._graph.insert_edge(self._edge)
 
+
 class DelEdgeCommand(QUndoCommand):
     def __init__(self, graph, edge):
         QUndoCommand.__init__(self)
@@ -144,6 +149,7 @@ class SetNodeCommand(QUndoCommand):
     def redo(self):
         self._el[self._column] = self._new
 
+
 class EnableEdgeCommand(QUndoCommand):
     def __init__(self, edge, enable):
         QUndoCommand.__init__(self)
@@ -153,10 +159,11 @@ class EnableEdgeCommand(QUndoCommand):
         self._enable = enable
 
     def undo(self):
-        self._edge.enable(enable = self._old)
+        self._edge.enable(enable=self._old)
 
     def redo(self):
-        self._edge.enable(enable = self._enable)
+        self._edge.enable(enable=self._enable)
+
 
 class ReverseEdgeCommand(QUndoCommand):
     def __init__(self, edge):
diff --git a/src/View/Network/Window.py b/src/View/Network/Window.py
index f045859680e845dbffc75991b2aa410ed38ca649..1f8bb81193e7e16ee80f123bf3ffa481d26d91d6 100644
--- a/src/View/Network/Window.py
+++ b/src/View/Network/Window.py
@@ -57,11 +57,11 @@ class NetworkWindow(PamhyrWindow):
 
     def __init__(self, study=None, config=None, parent=None):
         super(NetworkWindow, self).__init__(
-            title = self._pamhyr_name + " - " + study.name,
-            study = study,
-            config = config,
-            trad = NetworkTranslate(),
-            options = ['undo'],
+            title=self._pamhyr_name + " - " + study.name,
+            study=study,
+            config=config,
+            trad=NetworkTranslate(),
+            options=['undo'],
             parent=parent,
         )
 
@@ -77,11 +77,11 @@ class NetworkWindow(PamhyrWindow):
         # Nodes table
         table = self.find(QTableView, "tableView_nodes")
         self._nodes_model = NodeTableModel(
-            table_view = table,
-            table_headers = self._table_headers_node,
-            editable_headers = ["name"],
-            data = self._graph,
-            undo = self._undo_stack,
+            table_view=table,
+            table_headers=self._table_headers_node,
+            editable_headers=["name"],
+            data=self._graph,
+            undo=self._undo_stack,
         )
         table.setModel(self._nodes_model)
 
@@ -91,30 +91,30 @@ class NetworkWindow(PamhyrWindow):
         # Edges table
         table = self.find(QTableView, "tableView_reachs")
         self.delegate_combobox = ComboBoxDelegate(
-            graph = self._graph,
-            parent = self,
+            graph=self._graph,
+            parent=self,
         )
 
         self._reachs_model = EdgeTableModel(
-            table_view = table,
-            table_headers = self._table_headers_edge,
-            editable_headers = ["name", "node1", "node2"],
-            delegates = {
+            table_view=table,
+            table_headers=self._table_headers_edge,
+            editable_headers=["name", "node1", "node2"],
+            delegates={
                 "node1": self.delegate_combobox,
                 "node2": self.delegate_combobox,
             },
-            data = self._graph,
-            undo = self._undo_stack,
+            data=self._graph,
+            undo=self._undo_stack,
         )
         table.setModel(self._reachs_model)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
         table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
-        #table.resizeColumnsToContents()
+        # table.resizeColumnsToContents()
 
     def setup_graph(self):
         self._graph_widget = GraphWidget(
             self._graph, parent=self,
-            undo = self._undo_stack
+            undo=self._undo_stack
         )
         self._graph_layout = self.find(QHBoxLayout, "horizontalLayout_graph")
         self._graph_layout.addWidget(self._graph_widget)
@@ -122,7 +122,8 @@ class NetworkWindow(PamhyrWindow):
     def setup_connections(self):
         self._nodes_model.dataChanged.connect(self._reachs_model.update)
         self._nodes_model.dataChanged.connect(self._graph_widget.rename_nodes)
-        self._reachs_model.dataChanged.connect(self._graph_widget.display_update)
+        self._reachs_model.dataChanged.connect(
+            self._graph_widget.display_update)
         self._reachs_model.dataChanged.connect(self._nodes_model.update)
         self._graph_widget.changeEdge.connect(self._reachs_model.update)
         self._graph_widget.changeNode.connect(self._nodes_model.update)
diff --git a/src/View/Network/translate.py b/src/View/Network/translate.py
index 44e97cf50f3b2deac34b319a009ce0e2506f6ec5..ac8431aeeeeac462f7fee4ce9795f9a3802565bd 100644
--- a/src/View/Network/translate.py
+++ b/src/View/Network/translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class NetworkTranslate(PamhyrTranslate):
     def __init__(self):
         super(NetworkTranslate, self).__init__()
diff --git a/src/View/Results/PlotAC.py b/src/View/Results/PlotAC.py
index ed3d99ad8fa52d5e6ebe7aa35724d354857e6fa4..075e879f9126aaf4ce33b2bed592649d05078fd0 100644
--- a/src/View/Results/PlotAC.py
+++ b/src/View/Results/PlotAC.py
@@ -25,16 +25,17 @@ from PyQt5.QtCore import (
 
 _translate = QCoreApplication.translate
 
+
 class PlotAC(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  parent=None):
         super(PlotAC, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._current_timestamp = max(results.get("timestamps"))
@@ -68,7 +69,7 @@ class PlotAC(PamhyrPlot):
         z = profile.geometry.z()
 
         self.canvas.axes.set_xlim(
-            left = min(x), right = max(x)
+            left=min(x), right=max(x)
         )
 
         self.line_kp, = self.canvas.axes.plot(
diff --git a/src/View/Results/PlotH.py b/src/View/Results/PlotH.py
index 99a59f88cd3c01a7ac7a696c5dcfe431feb39cb9..dd5a332b9cadf377f73cd5a25625735b760a4b06 100644
--- a/src/View/Results/PlotH.py
+++ b/src/View/Results/PlotH.py
@@ -32,16 +32,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotH(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  parent=None):
         super(PlotH, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._mode = "time"
@@ -87,7 +88,7 @@ class PlotH(PamhyrPlot):
         ts.sort()
 
         self.canvas.axes.set_xlim(
-            left = min(ts), right = max(ts)
+            left=min(ts), right=max(ts)
         )
 
         # Draw discharge for each timestamp
@@ -103,7 +104,7 @@ class PlotH(PamhyrPlot):
             return
 
         self.canvas.axes.set_ylim(
-            [min(min(y),0), max(y) + 10]
+            [min(min(y), 0), max(y) + 10]
         )
 
         self._line = [
@@ -136,8 +137,8 @@ class PlotH(PamhyrPlot):
                     lambda v: (
                         str(
                             datetime.fromtimestamp(v) - t0
-                        ).split(",")[0]\
-                        .replace("days", _translate("Results", "days"))\
+                        ).split(",")[0]
+                        .replace("days", _translate("Results", "days"))
                         .replace("day", _translate("Results", "day"))
                     ),
                     fx
diff --git a/src/View/Results/PlotKPC.py b/src/View/Results/PlotKPC.py
index 61de649d4bea0e4ef66b205a72b956b0883a5079..3dd789a2f1ef79707f3e61748b864ddd5d8812cf 100644
--- a/src/View/Results/PlotKPC.py
+++ b/src/View/Results/PlotKPC.py
@@ -25,16 +25,17 @@ from PyQt5.QtCore import (
 
 _translate = QCoreApplication.translate
 
+
 class PlotKPC(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  parent=None):
         super(PlotKPC, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._current_timestamp = max(results.get("timestamps"))
@@ -68,7 +69,7 @@ class PlotKPC(PamhyrPlot):
         z_min = reach.geometry.get_z_min()
 
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         self.line_kp_zmin = self.canvas.axes.plot(
diff --git a/src/View/Results/PlotSedProfile.py b/src/View/Results/PlotSedProfile.py
index 3163931bccd55eb953811d41b47df16e17373060..406863e23aac5e280fb7fe8dd9b7f76279fbae3c 100644
--- a/src/View/Results/PlotSedProfile.py
+++ b/src/View/Results/PlotSedProfile.py
@@ -15,16 +15,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotSedProfile(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  parent=None):
         super(PlotSedProfile, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._results = results
@@ -59,8 +60,8 @@ class PlotSedProfile(PamhyrPlot):
             cur_0 = []
 
             for p in range(profile.geometry.number_points):
-                 cur.append(profile_sl)
-                 cur_0.append(profile_sl_0)
+                cur.append(profile_sl)
+                cur_0.append(profile_sl_0)
 
             sl.append(cur)
             sl_0.append(cur_0)
@@ -106,7 +107,6 @@ class PlotSedProfile(PamhyrPlot):
 
         return list(reversed(z_sl))
 
-
     @timer
     def draw(self):
         self.canvas.axes.cla()
@@ -133,7 +133,7 @@ class PlotSedProfile(PamhyrPlot):
         z = profile.geometry.z()
 
         self.canvas.axes.set_xlim(
-            left = min(x), right = max(x)
+            left=min(x), right=max(x)
         )
 
         z_sl = self.get_zsl(profile)
diff --git a/src/View/Results/PlotSedReach.py b/src/View/Results/PlotSedReach.py
index c63c80ec900034442163704a32a0ebd3f21be795..f9e774d8cec01cb564c9f36b557f5da3883c0146 100644
--- a/src/View/Results/PlotSedReach.py
+++ b/src/View/Results/PlotSedReach.py
@@ -15,16 +15,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotSedReach(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  parent=None):
         super(PlotSedReach, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._results = results
diff --git a/src/View/Results/PlotXY.py b/src/View/Results/PlotXY.py
index 4271677610c23556a0ee418ff2e38345dda1d40d..5a513322f0f8b23bcb2863ac35fbbb12344aab01 100644
--- a/src/View/Results/PlotXY.py
+++ b/src/View/Results/PlotXY.py
@@ -31,16 +31,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class PlotXY(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, toolbar=None,
                  results=None, reach_id=0, profile_id=0,
                  display_current=True, parent=None):
         super(PlotXY, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = results,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=results,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self.display_current = display_current
@@ -87,7 +88,7 @@ class PlotXY(PamhyrPlot):
 
         kp = reach.geometry.get_kp()
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         # Draw line for each profile
@@ -98,9 +99,9 @@ class PlotXY(PamhyrPlot):
                 markersize=3, marker='+'
             )
             for x, y, kp in zip(
-                    reach.geometry.get_x(),
-                    reach.geometry.get_y(),
-                    kp
+                reach.geometry.get_x(),
+                reach.geometry.get_y(),
+                kp
             )
         ]
 
diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py
index 61e9f22b7e7f20529fad7f60bfe124fba5417a73..15167fd351a05463882ab26a8d54a76418c6b566 100644
--- a/src/View/Results/Window.py
+++ b/src/View/Results/Window.py
@@ -59,6 +59,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class ResultsWindow(PamhyrWindow):
     _pamhyr_ui = "Results"
     _pamhyr_name = "Results"
@@ -79,10 +80,10 @@ class ResultsWindow(PamhyrWindow):
         )
 
         super(ResultsWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = ResultsTranslate(),
+            title=name,
+            study=study,
+            config=config,
+            trad=ResultsTranslate(),
             parent=parent
         )
 
@@ -97,11 +98,11 @@ class ResultsWindow(PamhyrWindow):
         for t in ["reach", "profile"]:
             table = self.find(QTableView, f"tableView_{t}")
             self._table[t] = TableModel(
-                table_view = table,
-                table_headers = self._trad.get_dict(f"table_headers_{t}"),
-                data = self._results,
-                undo = self._undo_stack,
-                opt_data = t
+                table_view=table,
+                table_headers=self._trad.get_dict(f"table_headers_{t}"),
+                data=self._results,
+                undo=self._undo_stack,
+                opt_data=t
             )
 
     def setup_slider(self):
@@ -125,12 +126,12 @@ class ResultsWindow(PamhyrWindow):
         self.plot_layout.addWidget(self.canvas)
 
         self.plot_xy = PlotXY(
-            canvas = self.canvas,
-            results = self._results,
-            reach_id = 0,
-            profile_id = 0,
-            toolbar = self.toolbar,
-            display_current = False
+            canvas=self.canvas,
+            results=self._results,
+            reach_id=0,
+            profile_id=0,
+            toolbar=self.toolbar,
+            display_current=False
         )
         self.plot_xy.draw()
 
@@ -144,11 +145,11 @@ class ResultsWindow(PamhyrWindow):
         self.plot_layout_2.addWidget(self.canvas_2)
 
         self.plot_kpc = PlotKPC(
-            canvas = self.canvas_2,
-            results = self._results,
-            reach_id = 0,
-            profile_id = 0,
-            toolbar = self.toolbar_2
+            canvas=self.canvas_2,
+            results=self._results,
+            reach_id=0,
+            profile_id=0,
+            toolbar=self.toolbar_2
         )
         self.plot_kpc.draw()
 
@@ -162,11 +163,11 @@ class ResultsWindow(PamhyrWindow):
         self.plot_layout_3.addWidget(self.canvas_3)
 
         self.plot_ac = PlotAC(
-            canvas = self.canvas_3,
-            results = self._results,
-            reach_id = 0,
-            profile_id = 0,
-            toolbar = self.toolbar_3
+            canvas=self.canvas_3,
+            results=self._results,
+            reach_id=0,
+            profile_id=0,
+            toolbar=self.toolbar_3
         )
         self.plot_ac.draw()
 
@@ -175,16 +176,17 @@ class ResultsWindow(PamhyrWindow):
         self.toolbar_4 = PamhyrPlotToolbar(
             self.canvas_4, self
         )
-        self.plot_layout_4 = self.find(QVBoxLayout, "verticalLayout_hydrograph")
+        self.plot_layout_4 = self.find(
+            QVBoxLayout, "verticalLayout_hydrograph")
         self.plot_layout_4.addWidget(self.toolbar_4)
         self.plot_layout_4.addWidget(self.canvas_4)
 
         self.plot_h = PlotH(
-            canvas = self.canvas_4,
-            results = self._results,
-            reach_id = 0,
-            profile_id = 0,
-            toolbar = self.toolbar_4
+            canvas=self.canvas_4,
+            results=self._results,
+            reach_id=0,
+            profile_id=0,
+            toolbar=self.toolbar_4
         )
         self.plot_h.draw()
 
@@ -199,11 +201,11 @@ class ResultsWindow(PamhyrWindow):
 
         if self._study.river.has_sediment():
             self.plot_sed_reach = PlotSedReach(
-                canvas = self.canvas_5,
-                results = self._results,
-                reach_id = 0,
-                profile_id = 0,
-                toolbar = self.toolbar_5
+                canvas=self.canvas_5,
+                results=self._results,
+                reach_id=0,
+                profile_id=0,
+                toolbar=self.toolbar_5
             )
             self.plot_sed_reach.draw()
 
@@ -212,17 +214,18 @@ class ResultsWindow(PamhyrWindow):
         self.toolbar_6 = PamhyrPlotToolbar(
             self.canvas_6, self
         )
-        self.plot_layout_6 = self.find(QVBoxLayout, "verticalLayout_sed_profile")
+        self.plot_layout_6 = self.find(
+            QVBoxLayout, "verticalLayout_sed_profile")
         self.plot_layout_6.addWidget(self.toolbar_6)
         self.plot_layout_6.addWidget(self.canvas_6)
 
         if self._study.river.has_sediment():
             self.plot_sed_profile = PlotSedProfile(
-                canvas = self.canvas_6,
-                results = self._results,
-                reach_id = 0,
-                profile_id = 0,
-                toolbar = self.toolbar_6
+                canvas=self.canvas_6,
+                results=self._results,
+                reach_id=0,
+                profile_id=0,
+                toolbar=self.toolbar_6
             )
             self.plot_sed_profile.draw()
 
@@ -283,7 +286,8 @@ class ResultsWindow(PamhyrWindow):
 
             self._table[t].dataChanged.connect(fun[t])
 
-        self._slider_profile.valueChanged.connect(self._set_current_profile_slider)
+        self._slider_profile.valueChanged.connect(
+            self._set_current_profile_slider)
         self._slider_time.valueChanged.connect(self._set_current_timestamp)
 
     def update_table_selection_reach(self, ind):
@@ -312,7 +316,7 @@ class ResultsWindow(PamhyrWindow):
         )
         table.scrollTo(index)
 
-    def update(self, reach_id = None, profile_id = None, timestamp = None):
+    def update(self, reach_id=None, profile_id=None, timestamp=None):
         if reach_id is not None:
             self.plot_xy.set_reach(reach_id)
             self.plot_ac.set_reach(reach_id)
@@ -364,7 +368,7 @@ class ResultsWindow(PamhyrWindow):
         if len(indexes) == 0:
             return
 
-        self.update(reach_id = indexes[0].row())
+        self.update(reach_id=indexes[0].row())
 
     def _set_current_profile(self):
         table = self.find(QTableView, f"tableView_profile")
@@ -373,18 +377,18 @@ class ResultsWindow(PamhyrWindow):
             return
 
         ind = indexes[0].row()
-        self.update(profile_id = ind)
+        self.update(profile_id=ind)
         self._slider_profile.setValue(ind)
 
     def _set_current_profile_slider(self):
         pid = self._slider_profile.value()
-        self.update(profile_id = pid)
+        self.update(profile_id=pid)
 
         return
 
     def _set_current_timestamp(self):
         timestamp = self._timestamps[self._slider_time.value()]
-        self.update(timestamp = timestamp)
+        self.update(timestamp=timestamp)
 
     def _copy(self):
         logger.info("TODO: copy")
diff --git a/src/View/Results/translate.py b/src/View/Results/translate.py
index 14f55ba36ba4467b4f002d7665a91481c761dd67..ae9dcad17d28dff1c7b8bc28196eb6eecc2447e3 100644
--- a/src/View/Results/translate.py
+++ b/src/View/Results/translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class ResultsTranslate(PamhyrTranslate):
     def __init__(self):
         super(ResultsTranslate, self).__init__()
diff --git a/src/View/RunSolver/Log/Window.py b/src/View/RunSolver/Log/Window.py
index 2a33311f36669b2f217d0221150c197c5455a596..3e343a451b186fd9d3f07d7b1addacad8eae1642 100644
--- a/src/View/RunSolver/Log/Window.py
+++ b/src/View/RunSolver/Log/Window.py
@@ -44,22 +44,23 @@ from PyQt5.QtWidgets import (
 
 _translate = QCoreApplication.translate
 
+
 class SolverLogFileWindow(PamhyrWindow):
     _pamhyr_ui = "SolverLogFile"
     _pamhyr_name = "Solver logs"
 
-    def __init__(self, file_name = None,
+    def __init__(self, file_name=None,
                  study=None, config=None,
                  solver=None, parent=None):
         self._solver = solver
         self._file_name = file_name
 
         super(SolverLogFileWindow, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         self.setup_action()
@@ -75,7 +76,8 @@ class SolverLogFileWindow(PamhyrWindow):
 
     def setup_connections(self):
         self.find(QAction, "action_revert").triggered.connect(self.revert)
-        self.find(QAction, "action_open_in_editor").triggered.connect(self.open_on_editor)
+        self.find(QAction, "action_open_in_editor").triggered.connect(
+            self.open_on_editor)
 
     def setup_text(self):
         with open(self._file_name, "r") as f:
diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py
index 62484308003b2cfcfce532e089ea5f30fb007965..2adfce60b4a6829f08b1fa6aad35a822221303d6 100644
--- a/src/View/RunSolver/Window.py
+++ b/src/View/RunSolver/Window.py
@@ -55,6 +55,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class SelectSolverWindow(PamhyrDialog):
     _pamhyr_ui = "SelectSolver"
     _pamhyr_name = "Select solver"
@@ -64,11 +65,11 @@ class SelectSolverWindow(PamhyrDialog):
         self._solver = None
 
         super(SelectSolverWindow, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         self.setup_combobox()
@@ -101,6 +102,7 @@ class SelectSolverWindow(PamhyrDialog):
 
         super(SelectSolverWindow, self).accept()
 
+
 class SolverLogWindow(PamhyrWindow):
     _pamhyr_ui = "SolverLog"
     _pamhyr_name = "Solver Log"
@@ -111,11 +113,11 @@ class SolverLogWindow(PamhyrWindow):
         self._results = None
 
         super(SolverLogWindow, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         self.setup_action()
@@ -132,22 +134,22 @@ class SolverLogWindow(PamhyrWindow):
                 self._study.name.replace(" ", "_"),
                 self._solver.name.replace(" ", "_"),
             )
-            os.makedirs(self._workdir, exist_ok = True)
+            os.makedirs(self._workdir, exist_ok=True)
 
         self._alarm.start(500)
         self._output = Queue()
         self._process = self.new_process(parent)
 
         self._log(f" *** Export study {self._solver.name}", color="blue")
-        self._solver.export(self._study, self._workdir, qlog = self._output)
+        self._solver.export(self._study, self._workdir, qlog=self._output)
 
         self.update()
 
         self._log(f" *** Run solver {self._solver.name}", color="blue")
         self._solver.run(
             study,
-            process = self._process,
-            output_queue = self._output
+            process=self._process,
+            output_queue=self._output
         )
 
     def new_process(self, parent):
@@ -206,7 +208,8 @@ class SolverLogWindow(PamhyrWindow):
 
                 # Get results
                 if self._results is None:
-                    self._results = self._solver.results(self._study, self._workdir, qlog = self._output)
+                    self._results = self._solver.results(
+                        self._study, self._workdir, qlog=self._output)
                     self._parent.set_results(self._solver, self._results)
 
         while self._output.qsize() != 0:
@@ -219,14 +222,14 @@ class SolverLogWindow(PamhyrWindow):
     def start(self):
         if self._solver.is_stoped():
             self._log(f" *** Export study {self._solver.name}", color="blue")
-            self._solver.export(self._study, self._workdir, qlog = self._output)
+            self._solver.export(self._study, self._workdir, qlog=self._output)
             self.update()
 
             self._process = self.new_process(self._parent)
 
         self._log(" *** Start", color="blue")
         self._results = None
-        self._solver.start(self._study, process = self._process)
+        self._solver.start(self._study, process=self._process)
 
         self.find(QAction, "action_start").setEnabled(False)
         if _signal:
@@ -259,7 +262,8 @@ class SolverLogWindow(PamhyrWindow):
 
     def results(self):
         if self._results is None:
-            self._results = self._solver.results(self._study, self._workdir, qlog = self._output)
+            self._results = self._solver.results(
+                self._study, self._workdir, qlog=self._output)
 
         self._parent.set_results(self._solver, self._results)
         self._parent.open_solver_results(self._solver, self._results)
@@ -267,10 +271,10 @@ class SolverLogWindow(PamhyrWindow):
     def log_file(self):
         file_name = os.path.join(self._workdir, self._solver.log_file())
         log = SolverLogFileWindow(
-            file_name = file_name,
-            study = self._study,
-            config = self._config,
-            solver = self._solver,
-            parent = self,
+            file_name=file_name,
+            study=self._study,
+            config=self._config,
+            solver=self._solver,
+            parent=self,
         )
         log.show()
diff --git a/src/View/SedimentLayers/Edit/Plot.py b/src/View/SedimentLayers/Edit/Plot.py
index a6fa21852b8f5a87b2fccda9370313d481b10774..9a9baed3ac6b1c9b1ef905fbeef49632107cee82 100644
--- a/src/View/SedimentLayers/Edit/Plot.py
+++ b/src/View/SedimentLayers/Edit/Plot.py
@@ -9,15 +9,16 @@ from View.Tools.PamhyrPlot import PamhyrPlot
 
 logger = logging.getLogger()
 
+
 class Plot(PamhyrPlot):
     def __init__(self, canvas=None, trad=None, data=None, toolbar=None,
                  display_current=True, parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._display_current = display_current
@@ -39,13 +40,13 @@ class Plot(PamhyrPlot):
         if self.data is None:
             return
 
-        x = [0,1]
-        z = [0,0]
+        x = [0, 1]
+        z = [0, 0]
         sl = self.data.height()
         names = ["bottom"] + self.data.names()
 
         self.canvas.axes.set_xlim(
-            left = min(x), right = max(x)
+            left=min(x), right=max(x)
         )
 
         lsl = []
@@ -75,7 +76,8 @@ class Plot(PamhyrPlot):
                 lw=1.8,
                 color='grey' if i == len(names) - 1 else None
             )
-            self.canvas.axes.text(x[0] + 0.01, zsl[0] + 0.01, f'{names[-(i+1)]}')
+            self.canvas.axes.text(
+                x[0] + 0.01, zsl[0] + 0.01, f'{names[-(i+1)]}')
 
         self.canvas.figure.tight_layout()
         self.canvas.figure.canvas.draw_idle()
diff --git a/src/View/SedimentLayers/Edit/UndoCommand.py b/src/View/SedimentLayers/Edit/UndoCommand.py
index 298fa529708b659785d7ac56b0ede3cc98bb80d3..e353211cb262347986a943f6df286629c3fe3aa8 100644
--- a/src/View/SedimentLayers/Edit/UndoCommand.py
+++ b/src/View/SedimentLayers/Edit/UndoCommand.py
@@ -10,6 +10,7 @@ from PyQt5.QtWidgets import (
 from Model.SedimentLayer.SedimentLayer import SedimentLayer
 from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -25,6 +26,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).name = self._new
 
+
 class SetTypeCommand(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -40,6 +42,7 @@ class SetTypeCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).type = self._new
 
+
 class SetHeightCommand(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -55,6 +58,7 @@ class SetHeightCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).height = self._new
 
+
 class SetD50Command(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -70,6 +74,7 @@ class SetD50Command(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).d50 = self._new
 
+
 class SetSigmaCommand(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -85,6 +90,7 @@ class SetSigmaCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).sigma = self._new
 
+
 class SetCriticalConstraintCommand(QUndoCommand):
     def __init__(self, sediment_layers, index, new_value):
         QUndoCommand.__init__(self)
@@ -100,6 +106,7 @@ class SetCriticalConstraintCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.get(self._index).critical_constraint = self._new
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, sediment_layers, index):
         QUndoCommand.__init__(self)
@@ -117,6 +124,7 @@ class AddCommand(QUndoCommand):
         else:
             self._sediment_layers.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, sediment_layers, rows):
         QUndoCommand.__init__(self)
@@ -136,6 +144,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers.delete_i(self._rows)
 
+
 class MoveCommand(QUndoCommand):
     def __init__(self, sediment_layers, up, i):
         QUndoCommand.__init__(self)
diff --git a/src/View/SedimentLayers/Edit/Window.py b/src/View/SedimentLayers/Edit/Window.py
index e5835c97bba389d80e0eb7e9650ffb39f8b52ec0..080eee3f7db94d5122eafde60f17a2fc921b10c2 100644
--- a/src/View/SedimentLayers/Edit/Window.py
+++ b/src/View/SedimentLayers/Edit/Window.py
@@ -51,11 +51,12 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class EditSedimentLayersWindow(PamhyrWindow):
     _pamhyr_ui = "EditSedimentLayers"
     _pamhyr_name = "Edit Sediment Layers"
 
-    def __init__(self, study=None, config = None,
+    def __init__(self, study=None, config=None,
                  sl=None, parent=None):
         self._sl = sl
 
@@ -68,11 +69,11 @@ class EditSedimentLayersWindow(PamhyrWindow):
         )
 
         super(EditSedimentLayersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = SedimentEditTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=SedimentEditTranslate(),
+            parent=parent
         )
 
         self.setup_table()
@@ -83,12 +84,12 @@ class EditSedimentLayersWindow(PamhyrWindow):
         table_headers = self._trad.get_dict("table_headers")
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = table_headers,
-            editable_headers = list(table_headers),
-            data = self._sl,
-            trad = self._trad,
-            undo = self._undo_stack,
+            table_view=table,
+            table_headers=table_headers,
+            editable_headers=list(table_headers),
+            data=self._sl,
+            trad=self._trad,
+            undo=self._undo_stack,
         )
         table.setModel(self._table)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -108,20 +109,20 @@ class EditSedimentLayersWindow(PamhyrWindow):
 
     def _set_plot(self):
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._sl,
-            toolbar = self.toolbar,
-            trad = self._trad,
-            display_current = False
+            canvas=self.canvas,
+            data=self._sl,
+            toolbar=self.toolbar,
+            trad=self._trad,
+            display_current=False
         )
         self.plot.draw()
 
-
     def setup_connections(self):
         self.find(QAction, "action_add").triggered.connect(self.add)
         self.find(QAction, "action_del").triggered.connect(self.delete)
         self.find(QAction, "action_move_up").triggered.connect(self.move_up)
-        self.find(QAction, "action_move_down").triggered.connect(self.move_down)
+        self.find(QAction, "action_move_down").triggered.connect(
+            self.move_down)
 
         self._table.dataChanged.connect(self._set_plot)
         self._table.layoutChanged.connect(self._set_plot)
diff --git a/src/View/SedimentLayers/Edit/translate.py b/src/View/SedimentLayers/Edit/translate.py
index 658d4f23f2edbca7aa9da94a1a61be53fdf49872..ce036b8d6cb4bd62f38398f42bb734dbe78737f7 100644
--- a/src/View/SedimentLayers/Edit/translate.py
+++ b/src/View/SedimentLayers/Edit/translate.py
@@ -6,6 +6,7 @@ from View.SedimentLayers.translate import SedimentTranslate
 
 _translate = QCoreApplication.translate
 
+
 class SedimentEditTranslate(SedimentTranslate):
     def __init__(self):
         super(SedimentEditTranslate, self).__init__()
diff --git a/src/View/SedimentLayers/Reach/Plot.py b/src/View/SedimentLayers/Reach/Plot.py
index 069a09d711c667e0882e89599be3a8726bcb48a5..0db3b4e2efdff63036c55797be126f47b6736ac7 100644
--- a/src/View/SedimentLayers/Reach/Plot.py
+++ b/src/View/SedimentLayers/Reach/Plot.py
@@ -15,16 +15,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class Plot(PamhyrPlot):
     def __init__(self, data=None, display_current=True,
                  canvas=None, trad=None, toolbar=None,
                  parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._display_current = display_current
@@ -58,7 +59,7 @@ class Plot(PamhyrPlot):
         z_max = self.data.get_z_max()
 
         self.canvas.axes.set_xlim(
-            left = min(kp), right = max(kp)
+            left=min(kp), right=max(kp)
         )
 
         # Compute sediment layer in function to profile z_min
diff --git a/src/View/SedimentLayers/Reach/Profile/Plot.py b/src/View/SedimentLayers/Reach/Profile/Plot.py
index 01b2fe245b1e01bb73080ef5e403b4deec3b2128..062070acbf0fabb291a3c320c0deecc533da2366 100644
--- a/src/View/SedimentLayers/Reach/Profile/Plot.py
+++ b/src/View/SedimentLayers/Reach/Profile/Plot.py
@@ -15,16 +15,17 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class Plot(PamhyrPlot):
     def __init__(self, data=None, display_current=True,
                  canvas=None, trad=None, toolbar=None,
                  parent=None):
         super(Plot, self).__init__(
-            canvas = canvas,
-            trad = trad,
-            data = data,
-            toolbar = toolbar,
-            parent = parent
+            canvas=canvas,
+            trad=trad,
+            data=data,
+            toolbar=toolbar,
+            parent=parent
         )
 
         self._display_current = display_current
@@ -57,7 +58,7 @@ class Plot(PamhyrPlot):
         sl = self.data.get_sl()
 
         self.canvas.axes.set_xlim(
-            left = min(x), right = max(x)
+            left=min(x), right=max(x)
         )
 
         # Compute sediment layer in function to point z
diff --git a/src/View/SedimentLayers/Reach/Profile/Table.py b/src/View/SedimentLayers/Reach/Profile/Table.py
index 3550940b50659715965d0d211593ff0071b14b03..fbdfb0420aeb9190eb92e492390f903ed0200894 100644
--- a/src/View/SedimentLayers/Reach/Profile/Table.py
+++ b/src/View/SedimentLayers/Reach/Profile/Table.py
@@ -26,6 +26,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, study=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
diff --git a/src/View/SedimentLayers/Reach/Profile/UndoCommand.py b/src/View/SedimentLayers/Reach/Profile/UndoCommand.py
index fe3497aede40ac048aa6ea1999e6da1566bce976..980d970bc4a00d03ad8b14518f1306ca09c14099 100644
--- a/src/View/SedimentLayers/Reach/Profile/UndoCommand.py
+++ b/src/View/SedimentLayers/Reach/Profile/UndoCommand.py
@@ -16,6 +16,7 @@ from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
 
 logger = logging.getLogger()
 
+
 class SetSLCommand(QUndoCommand):
     def __init__(self, profile, index, new_value):
         QUndoCommand.__init__(self)
diff --git a/src/View/SedimentLayers/Reach/Profile/Window.py b/src/View/SedimentLayers/Reach/Profile/Window.py
index e2c2464b0ffe8a23c278cafc6098ffe264bf33d9..1dcbd0a8077aa21af3ca0e8e7669d62d17bdce56 100644
--- a/src/View/SedimentLayers/Reach/Profile/Window.py
+++ b/src/View/SedimentLayers/Reach/Profile/Window.py
@@ -37,6 +37,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class ProfileSedimentLayersWindow(PamhyrWindow):
     _pamhyr_ui = "ProfileSedimentLayers"
     _pamhyr_name = "Profile sediment layers"
@@ -49,11 +50,11 @@ class ProfileSedimentLayersWindow(PamhyrWindow):
         name = self.compute_name(study)
 
         super(ProfileSedimentLayersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = SedimentProfileTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=SedimentProfileTranslate(),
+            parent=parent
         )
 
         self.setup_table()
@@ -72,7 +73,7 @@ class ProfileSedimentLayersWindow(PamhyrWindow):
             pname = _translate(
                 "SedimentLayers",
                 "(no name - @kp)").replace("@kp", str(self._profile.kp)
-            )
+                                           )
 
         return (
             self._pamhyr_name + " - "
@@ -84,20 +85,20 @@ class ProfileSedimentLayersWindow(PamhyrWindow):
         table_headers = self._trad.get_dict("table_headers")
 
         self._delegate_sl = ComboBoxDelegate(
-            study = self._study,
+            study=self._study,
             parent=self
         )
 
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            data = self._profile,
-            opt_data = self._study,
-            table_headers = table_headers,
-            editable_headers = ["sl"],
-            delegates = {"sl": self._delegate_sl},
-            trad = self._trad,
-            undo = self._undo_stack,
+            table_view=table,
+            data=self._profile,
+            opt_data=self._study,
+            table_headers=table_headers,
+            editable_headers=["sl"],
+            delegates={"sl": self._delegate_sl},
+            trad=self._trad,
+            undo=self._undo_stack,
         )
         table.setModel(self._table)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -118,10 +119,10 @@ class ProfileSedimentLayersWindow(PamhyrWindow):
 
     def _update_plot(self):
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._profile,
-            toolbar = self.toolbar,
-            display_current = False
+            canvas=self.canvas,
+            data=self._profile,
+            toolbar=self.toolbar,
+            display_current=False
         )
         self.plot.draw()
 
diff --git a/src/View/SedimentLayers/Reach/Profile/translate.py b/src/View/SedimentLayers/Reach/Profile/translate.py
index b1c124051a5d108edd2f4f7af475acfcfad39019..81e6623d0c5d2f99449621f30c8949887de6020d 100644
--- a/src/View/SedimentLayers/Reach/Profile/translate.py
+++ b/src/View/SedimentLayers/Reach/Profile/translate.py
@@ -6,6 +6,7 @@ from View.SedimentLayers.Reach.translate import SedimentReachTranslate
 
 _translate = QCoreApplication.translate
 
+
 class SedimentProfileTranslate(SedimentReachTranslate):
     def __init__(self):
         super(SedimentProfileTranslate, self).__init__()
diff --git a/src/View/SedimentLayers/Reach/SLDialog.py b/src/View/SedimentLayers/Reach/SLDialog.py
index c8a1efa0cf2952ea6f5caa2c1df89b4dce24a521..9f3c878bc87657a2fbba4448460c81da05dc6725 100644
--- a/src/View/SedimentLayers/Reach/SLDialog.py
+++ b/src/View/SedimentLayers/Reach/SLDialog.py
@@ -19,15 +19,16 @@ from View.SedimentLayers.Reach.translate import *
 
 _translate = QCoreApplication.translate
 
+
 class SLDialog(PamhyrDialog):
     _pamhyr_ui = "SLDialog"
     _pamhyr_name = "SL"
 
     def __init__(self, study=None, config=None, parent=None):
         super(SLDialog, self).__init__(
-            title = self._pamhyr_name,
-            study = study,
-            config = config,
+            title=self._pamhyr_name,
+            study=study,
+            config=config,
             parent=parent
         )
 
diff --git a/src/View/SedimentLayers/Reach/Table.py b/src/View/SedimentLayers/Reach/Table.py
index 250a47357f634aea59121c5761e8453923cef8aa..7e38fcc86317ff66991bfd68cc18d806a5fe54b7 100644
--- a/src/View/SedimentLayers/Reach/Table.py
+++ b/src/View/SedimentLayers/Reach/Table.py
@@ -25,6 +25,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class ComboBoxDelegate(QItemDelegate):
     def __init__(self, study=None, trad=None, parent=None):
         super(ComboBoxDelegate, self).__init__(parent)
diff --git a/src/View/SedimentLayers/Reach/UndoCommand.py b/src/View/SedimentLayers/Reach/UndoCommand.py
index 17e1f0f1d308855606e2e8a0b972dc57b48d3983..4bce2235158f79732513c8ffd64a7e9166648a31 100644
--- a/src/View/SedimentLayers/Reach/UndoCommand.py
+++ b/src/View/SedimentLayers/Reach/UndoCommand.py
@@ -16,6 +16,7 @@ from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
 
 logger = logging.getLogger()
 
+
 class SetSLCommand(QUndoCommand):
     def __init__(self, reach, index, new_value):
         QUndoCommand.__init__(self)
diff --git a/src/View/SedimentLayers/Reach/Window.py b/src/View/SedimentLayers/Reach/Window.py
index 829bf035b39d2b073c62044ecd2785f125d6d534..9c400909330a072ee55aee09cf867f23e996501d 100644
--- a/src/View/SedimentLayers/Reach/Window.py
+++ b/src/View/SedimentLayers/Reach/Window.py
@@ -39,6 +39,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class ReachSedimentLayersWindow(PamhyrWindow):
     _pamhyr_ui = "ReachSedimentLayers"
     _pamhyr_name = "Reach sediment layers"
@@ -54,11 +55,11 @@ class ReachSedimentLayersWindow(PamhyrWindow):
         )
 
         super(ReachSedimentLayersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = SedimentReachTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=SedimentReachTranslate(),
+            parent=parent
         )
 
         self.setup_table()
@@ -69,21 +70,21 @@ class ReachSedimentLayersWindow(PamhyrWindow):
         table_headers = self._trad.get_dict("table_headers")
 
         self._delegate_sl = ComboBoxDelegate(
-            study = self._study,
-            trad = self._trad,
+            study=self._study,
+            trad=self._trad,
             parent=self
         )
 
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            data = self._reach,
-            opt_data = self._study,
-            table_headers = table_headers,
-            editable_headers = ["sl"],
-            delegates = {"sl": self._delegate_sl},
-            trad = self._trad,
-            undo = self._undo_stack,
+            table_view=table,
+            data=self._reach,
+            opt_data=self._study,
+            table_headers=table_headers,
+            editable_headers=["sl"],
+            delegates={"sl": self._delegate_sl},
+            trad=self._trad,
+            undo=self._undo_stack,
         )
         table.setModel(self._table)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -104,15 +105,14 @@ class ReachSedimentLayersWindow(PamhyrWindow):
 
     def _update_plot(self):
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._reach,
-            toolbar = self.toolbar,
-            trad = self._trad,
-            display_current = False
+            canvas=self.canvas,
+            data=self._reach,
+            toolbar=self.toolbar,
+            trad=self._trad,
+            display_current=False
         )
         self.plot.draw()
 
-
     def setup_connections(self):
         self.find(QAction, "action_edit").triggered.connect(self.edit_profile)
 
@@ -128,7 +128,6 @@ class ReachSedimentLayersWindow(PamhyrWindow):
         self._table.dataChanged\
                    .connect(self._update_plot)
 
-
     def index_selected_rows(self):
         table = self.find(QTableView, f"tableView")
         return list(
@@ -157,8 +156,8 @@ class ReachSedimentLayersWindow(PamhyrWindow):
 
     def apply_sl_each_profile(self):
         slw = SLDialog(
-            study = self._study,
-            parent = self
+            study=self._study,
+            parent=self
         )
         if slw.exec():
             sl = slw.sl
@@ -171,16 +170,15 @@ class ReachSedimentLayersWindow(PamhyrWindow):
 
         for row in rows:
             slw = ProfileSedimentLayersWindow(
-                study = self._study,
-                profile = self._reach.profile(row),
-                parent = self
+                study=self._study,
+                profile=self._reach.profile(row),
+                parent=self
             )
             slw.show()
 
-
     def edit_sl(self):
         slw = SedimentLayersWindow(
-            study = self._study,
-            parent = self
+            study=self._study,
+            parent=self
         )
         slw.show()
diff --git a/src/View/SedimentLayers/Reach/translate.py b/src/View/SedimentLayers/Reach/translate.py
index 34785f32b691f759a8cbb918ca06db71ecd1be4c..fd2d3bdb6ab10e75f334f967863cb4521eaa6297 100644
--- a/src/View/SedimentLayers/Reach/translate.py
+++ b/src/View/SedimentLayers/Reach/translate.py
@@ -6,6 +6,7 @@ from View.SedimentLayers.translate import SedimentTranslate
 
 _translate = QCoreApplication.translate
 
+
 class SedimentReachTranslate(SedimentTranslate):
     def __init__(self):
         super(SedimentReachTranslate, self).__init__()
diff --git a/src/View/SedimentLayers/UndoCommand.py b/src/View/SedimentLayers/UndoCommand.py
index f785743b4aa0b455a51bdb4228d0f961af3ee013..379a95456db4b90a4800528a8c9e954f227ab5f0 100644
--- a/src/View/SedimentLayers/UndoCommand.py
+++ b/src/View/SedimentLayers/UndoCommand.py
@@ -10,6 +10,7 @@ from PyQt5.QtWidgets import (
 from Model.SedimentLayer.SedimentLayer import SedimentLayer
 from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, sediment_layers_list, index, new_value):
         QUndoCommand.__init__(self)
@@ -25,6 +26,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers_list.get(self._index).name = self._new
 
+
 class SetCommentCommand(QUndoCommand):
     def __init__(self, sediment_layers_list, index, new_value):
         QUndoCommand.__init__(self)
@@ -40,6 +42,7 @@ class SetCommentCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers_list.get(self._index).comment = self._new
 
+
 class AddCommand(QUndoCommand):
     def __init__(self, sediment_layers_list, index):
         QUndoCommand.__init__(self)
@@ -57,6 +60,7 @@ class AddCommand(QUndoCommand):
         else:
             self._sediment_layers_list.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, sediment_layers_list, rows):
         QUndoCommand.__init__(self)
@@ -76,6 +80,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._sediment_layers_list.delete_i(self._rows)
 
+
 class MoveCommand(QUndoCommand):
     def __init__(self, sediment_layers_list, up, i):
         QUndoCommand.__init__(self)
diff --git a/src/View/SedimentLayers/Window.py b/src/View/SedimentLayers/Window.py
index 3c394de00cf6dc3bd8961852124231e4e3b14325..1ff2c7f9d49c4f524cce6651eac11a8d19cd4897 100644
--- a/src/View/SedimentLayers/Window.py
+++ b/src/View/SedimentLayers/Window.py
@@ -51,6 +51,7 @@ from View.SedimentLayers.Edit.Window import EditSedimentLayersWindow
 
 logger = logging.getLogger()
 
+
 class SedimentLayersWindow(PamhyrWindow):
     _pamhyr_ui = "SedimentLayersList"
     _pamhyr_name = "Sediment Layers List"
@@ -63,10 +64,10 @@ class SedimentLayersWindow(PamhyrWindow):
         )
 
         super(SedimentLayersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = SedimentTranslate(),
+            title=name,
+            study=study,
+            config=config,
+            trad=SedimentTranslate(),
             parent=parent
         )
 
@@ -77,12 +78,12 @@ class SedimentLayersWindow(PamhyrWindow):
     def setup_table(self):
         table = self.find(QTableView, f"tableView")
         self._table = TableModel(
-            table_view = table,
-            table_headers = self._trad.get_dict("table_headers"),
-            editable_headers = ["name", "comment"],
-            data = self._study.river.sediment_layers,
-            trad = self._trad,
-            undo = self._undo_stack,
+            table_view=table,
+            table_headers=self._trad.get_dict("table_headers"),
+            editable_headers=["name", "comment"],
+            data=self._study.river.sediment_layers,
+            trad=self._trad,
+            undo=self._undo_stack,
         )
         table.setModel(self._table)
         table.setSelectionBehavior(QAbstractItemView.SelectRows)
@@ -98,7 +99,8 @@ class SedimentLayersWindow(PamhyrWindow):
     def setup_connections(self):
         self.find(QAction, "action_add").triggered.connect(self.add)
         self.find(QAction, "action_del").triggered.connect(self.delete)
-        self.find(QAction, "action_edit").triggered.connect(self.edit_sediment_layers)
+        self.find(QAction, "action_edit").triggered.connect(
+            self.edit_sediment_layers)
 
         table = self.find(QTableView, f"tableView")
         table.selectionModel()\
@@ -115,15 +117,14 @@ class SedimentLayersWindow(PamhyrWindow):
             return
 
         self.plot = Plot(
-            canvas = self.canvas,
-            data = self._sediment_layers.get(rows[0]),
-            trad = self._trad,
-            toolbar = None,
-            display_current = False
+            canvas=self.canvas,
+            data=self._sediment_layers.get(rows[0]),
+            trad=self._trad,
+            toolbar=None,
+            display_current=False
         )
         self.plot.draw()
 
-
     def index_selected_rows(self):
         table = self.find(QTableView, f"tableView")
         return list(
@@ -167,8 +168,8 @@ class SedimentLayersWindow(PamhyrWindow):
 
         for row in rows:
             slw = EditSedimentLayersWindow(
-                study = self._study,
-                sl = self._sediment_layers.get(row),
-                parent = self
+                study=self._study,
+                sl=self._sediment_layers.get(row),
+                parent=self
             )
             slw.show()
diff --git a/src/View/SedimentLayers/translate.py b/src/View/SedimentLayers/translate.py
index 42d59f92412238bbab4353eea4cd930f92d083b1..83a6169d73a676faa243ede33c9e95912f3db979 100644
--- a/src/View/SedimentLayers/translate.py
+++ b/src/View/SedimentLayers/translate.py
@@ -6,6 +6,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class SedimentTranslate(PamhyrTranslate):
     def __init__(self):
         super(SedimentTranslate, self).__init__()
diff --git a/src/View/SolverParameters/Table.py b/src/View/SolverParameters/Table.py
index 47fa0ae9d8321b5d684a4f121465522d50990f58..bbf12adadebfd8d70054016dd84e197e307a1095 100644
--- a/src/View/SolverParameters/Table.py
+++ b/src/View/SolverParameters/Table.py
@@ -44,6 +44,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class TableModel(PamhyrTableModel):
     def _setup_lst(self):
         self._tab = self._opt_data
diff --git a/src/View/SolverParameters/UndoCommand.py b/src/View/SolverParameters/UndoCommand.py
index d3343d007ca17ad5c54a1398b92c1862c320e93b..2b6804b875d889d392162200e9dd95b27ed0dd98 100644
--- a/src/View/SolverParameters/UndoCommand.py
+++ b/src/View/SolverParameters/UndoCommand.py
@@ -25,6 +25,7 @@ from PyQt5.QtWidgets import (
 
 from Model.SolverParameters.SolverParametersList import SolverParametersList
 
+
 class SetCommand(QUndoCommand):
     def __init__(self, data, index, column, new_value):
         QUndoCommand.__init__(self)
diff --git a/src/View/SolverParameters/Window.py b/src/View/SolverParameters/Window.py
index b655cd532ba8ae6ed46fd303d093779ba517e532..d7100193e48b1ebe9fc5a3cd128454d944bc92e0 100644
--- a/src/View/SolverParameters/Window.py
+++ b/src/View/SolverParameters/Window.py
@@ -50,6 +50,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class SolverParametersWindow(PamhyrWindow):
     _pamhyr_ui = "SolverParameters"
     _pamhyr_name = "Solver parameters"
@@ -57,12 +58,12 @@ class SolverParametersWindow(PamhyrWindow):
     def __init__(self, study=None, config=None, parent=None):
         name = self._pamhyr_name + " - " + study.name
         super(SolverParametersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            options = ['copy'],
-            trad = ParamTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            options=['copy'],
+            trad=ParamTranslate(),
+            parent=parent
         )
 
         self._params = self._study.river.parameters
@@ -96,13 +97,13 @@ class SolverParametersWindow(PamhyrWindow):
 
             # Create table model
             self._table[st] = TableModel(
-                table_view = table,
-                data = self._study.river,
-                opt_data = st,
-                table_headers = self._trad.get_dict("table_headers"),
-                editable_headers = ["value"],
-                trad = self._trad,
-                undo = self._undo_stack[st],
+                table_view=table,
+                data=self._study.river,
+                opt_data=st,
+                table_headers=self._trad.get_dict("table_headers"),
+                editable_headers=["value"],
+                trad=self._trad,
+                undo=self._undo_stack[st],
             )
 
             table.setModel(self._table[st])
diff --git a/src/View/SolverParameters/translate.py b/src/View/SolverParameters/translate.py
index 01c51a705fd1a91add6e6353a4a1e3d45e136093..16816308115df1c780bab18c0178d72b790b86cb 100644
--- a/src/View/SolverParameters/translate.py
+++ b/src/View/SolverParameters/translate.py
@@ -22,6 +22,7 @@ from View.Tools.PamhyrTranslate import PamhyrTranslate
 
 _translate = QCoreApplication.translate
 
+
 class ParamTranslate(PamhyrTranslate):
     def __init__(self):
         super(ParamTranslate, self).__init__()
diff --git a/src/View/Stricklers/Table.py b/src/View/Stricklers/Table.py
index 587008032dd82b5b73866ab650ad296481360be9..7b740b91e40de5b8e98c0b3efb60ac45621eaac9 100644
--- a/src/View/Stricklers/Table.py
+++ b/src/View/Stricklers/Table.py
@@ -46,6 +46,7 @@ logger = logging.getLogger()
 
 _translate = QCoreApplication.translate
 
+
 class TableModel(PamhyrTableModel):
     def data(self, index, role):
         if role != Qt.ItemDataRole.DisplayRole:
diff --git a/src/View/Stricklers/UndoCommand.py b/src/View/Stricklers/UndoCommand.py
index 52988b262eb2b66e66e822602c513cf11c33f16a..00aedb219ea64a76728d7214dcc33b07a5c044ef 100644
--- a/src/View/Stricklers/UndoCommand.py
+++ b/src/View/Stricklers/UndoCommand.py
@@ -26,6 +26,7 @@ from PyQt5.QtWidgets import (
 from Model.LateralContribution.LateralContribution import LateralContribution
 from Model.LateralContribution.LateralContributionList import LateralContributionList
 
+
 class SetNameCommand(QUndoCommand):
     def __init__(self, data, index, new_value):
         QUndoCommand.__init__(self)
@@ -41,6 +42,7 @@ class SetNameCommand(QUndoCommand):
     def redo(self):
         self._data.get(self._index).name = self._new
 
+
 class SetCommentCommand(QUndoCommand):
     def __init__(self, data, index, new_value):
         QUndoCommand.__init__(self)
@@ -56,6 +58,7 @@ class SetCommentCommand(QUndoCommand):
     def redo(self):
         self._data.get(self._index).comment = self._new
 
+
 class SetMinorCommand(QUndoCommand):
     def __init__(self, data, index, new_value):
         QUndoCommand.__init__(self)
@@ -71,6 +74,7 @@ class SetMinorCommand(QUndoCommand):
     def redo(self):
         self._data.get(self._index).minor = self._new
 
+
 class SetMediumCommand(QUndoCommand):
     def __init__(self, data, index, new_value):
         QUndoCommand.__init__(self)
@@ -104,6 +108,7 @@ class AddCommand(QUndoCommand):
         else:
             self._data.insert(self._index, self._new)
 
+
 class DelCommand(QUndoCommand):
     def __init__(self, data, rows):
         QUndoCommand.__init__(self)
@@ -123,6 +128,7 @@ class DelCommand(QUndoCommand):
     def redo(self):
         self._data.delete_i(self._rows)
 
+
 class SortCommand(QUndoCommand):
     def __init__(self, data, _reverse):
         QUndoCommand.__init__(self)
@@ -150,6 +156,7 @@ class SortCommand(QUndoCommand):
             )
             self._old = None
 
+
 class PasteCommand(QUndoCommand):
     def __init__(self, data, row, el):
         QUndoCommand.__init__(self)
diff --git a/src/View/Stricklers/Window.py b/src/View/Stricklers/Window.py
index 792ed4e3114690eac33b72f6f069193d9d91787e..b647154ca425fc23d7224c185a89458cde95c7d0 100644
--- a/src/View/Stricklers/Window.py
+++ b/src/View/Stricklers/Window.py
@@ -49,6 +49,7 @@ _translate = QCoreApplication.translate
 
 logger = logging.getLogger()
 
+
 class StricklersWindow(PamhyrWindow):
     _pamhyr_ui = "Stricklers"
     _pamhyr_name = "Stricklers"
@@ -57,11 +58,11 @@ class StricklersWindow(PamhyrWindow):
         name = self._pamhyr_name + " - " + study.name
 
         super(StricklersWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            trad = StricklersTranslate(),
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            trad=StricklersTranslate(),
+            parent=parent
         )
 
         self.setup_table()
@@ -78,11 +79,11 @@ class StricklersWindow(PamhyrWindow):
                 data = self._config.stricklers
 
             self._table[t] = TableModel(
-                table_view = table,
-                table_headers = self._trad.get_dict("table_headers"),
-                editable_headers = ["name", "comment", "minor", "medium"],
-                data = data,
-                undo = self._undo_stack,
+                table_view=table,
+                table_headers=self._trad.get_dict("table_headers"),
+                editable_headers=["name", "comment", "minor", "medium"],
+                data=data,
+                undo=self._undo_stack,
             )
 
             table.setModel(self._table[t])
@@ -106,7 +107,6 @@ class StricklersWindow(PamhyrWindow):
             )
         )
 
-
     def add(self):
         rows = self.index_selected_rows()
         if len(rows) == 0:
diff --git a/src/View/Study/Window.py b/src/View/Study/Window.py
index 871d0545afdaacf7c3704ca30854bbf38ec06e52..35bbe1d9da378fb8eb74a6acd3d7493d23a0d220 100644
--- a/src/View/Study/Window.py
+++ b/src/View/Study/Window.py
@@ -27,27 +27,29 @@ from PyQt5.QtWidgets import (
 
 _translate = QCoreApplication.translate
 
+
 class NewStudyWindow(PamhyrDialog):
     _pamhyr_ui = "NewStudy"
     _pamhyr_name = "Edit/New Study"
 
-    def __init__(self, study=None, config = None, parent=None):
+    def __init__(self, study=None, config=None, parent=None):
         if study is not None:
             name = f"Edit study - {study.name}"
         else:
             name = "New study"
 
         super(NewStudyWindow, self).__init__(
-            title = name,
-            study = study,
-            config = config,
-            options = [],
-            parent = parent
+            title=name,
+            study=study,
+            config=config,
+            options=[],
+            parent=parent
         )
 
         if not self._study is None:
             self.set_line_edit_text("lineEdit_name", self._study.name)
-            self.set_text_edit_text("textEdit_description", self._study.description)
+            self.set_text_edit_text(
+                "textEdit_description", self._study.description)
             self.set_datetime_edit("dateTimeEdit_date", self._study.date)
 
             self.find(QLabel, "label_creation_date_data").setText(
@@ -81,7 +83,6 @@ class NewStudyWindow(PamhyrDialog):
             self.find(QLabel, "label_date").setEnabled(True)
             self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(True)
 
-
     def accept(self):
         name = self.get_line_edit_text("lineEdit_name")
         description = self.get_text_edit_text("textEdit_description")
diff --git a/src/View/Tools/ASubWindow.py b/src/View/Tools/ASubWindow.py
index b6adcc829caf3f7f6f222a78bd395e7419e9b3d8..aa95ddcd78ac2cfd849430a6433e0648ce5aa722 100644
--- a/src/View/Tools/ASubWindow.py
+++ b/src/View/Tools/ASubWindow.py
@@ -46,6 +46,7 @@ from Model.Except import ClipboardFormatError
 
 logger = logging.getLogger()
 
+
 class WindowToolKit(object):
     def __init__(self, parent=None):
         super(WindowToolKit, self).__init__()
@@ -150,7 +151,7 @@ class ASubWindowFeatures(object):
 
         return qtype
 
-    def get_label_text(self, name:str):
+    def get_label_text(self, name: str):
         """Get text of label component
 
         Args:
@@ -161,7 +162,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QLabel, name).text()
 
-    def set_label_text(self, name:str, text:str):
+    def set_label_text(self, name: str, text: str):
         """Set text of label component
 
         Args:
@@ -173,8 +174,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QLabel, name).setText(text)
 
-
-    def set_line_edit_text(self, name:str, text:str):
+    def set_line_edit_text(self, name: str, text: str):
         """Set text of line edit component
 
         Args:
@@ -189,7 +189,7 @@ class ASubWindowFeatures(object):
         except AttributeError as e:
             logger.error(e)
 
-    def get_line_edit_text(self, name:str):
+    def get_line_edit_text(self, name: str):
         """Get text of line edit component
 
         Args:
@@ -200,7 +200,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QLineEdit, name).text()
 
-    def set_text_edit_text(self, name:str, text:str):
+    def set_text_edit_text(self, name: str, text: str):
         """Set text of text edit component
 
         Args:
@@ -212,7 +212,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QTextEdit, name).setText(text)
 
-    def get_text_edit_text(self, name:str):
+    def get_text_edit_text(self, name: str):
         """Get text of text edit component
 
         Args:
@@ -223,7 +223,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QTextEdit, name).toHtml()
 
-    def set_plaintext_edit_text(self, name:str, text:str):
+    def set_plaintext_edit_text(self, name: str, text: str):
         """Set text of text edit component
 
         Args:
@@ -235,7 +235,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QPlainTextEdit, name).setPlainText(text)
 
-    def get_plaintext_edit_text(self, name:str):
+    def get_plaintext_edit_text(self, name: str):
         """Get text of text edit component
 
         Args:
@@ -246,7 +246,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QPlainTextEdit, name).toPlainText()
 
-    def set_check_box(self, name:str, checked:bool):
+    def set_check_box(self, name: str, checked: bool):
         """Set status of checkbox component
 
         Args:
@@ -258,7 +258,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QCheckBox, name).setChecked(checked)
 
-    def get_check_box(self, name:str):
+    def get_check_box(self, name: str):
         """Get status of checkbox component
 
         Args:
@@ -269,8 +269,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QCheckBox, name).isChecked()
 
-
-    def set_time_edit(self, name:str, time:str):
+    def set_time_edit(self, name: str, time: str):
         """Set time of timeedit component
 
         Args:
@@ -283,7 +282,7 @@ class ASubWindowFeatures(object):
         qtime = QTime.fromString(time)
         self.find(QTimeEdit, name).setTime(qtime)
 
-    def get_time_edit(self, name:str):
+    def get_time_edit(self, name: str):
         """Get time of timeedit component
 
         Args:
@@ -294,7 +293,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QTimeEdit, name).time().toString()
 
-    def set_spin_box(self, name:str, value:int):
+    def set_spin_box(self, name: str, value: int):
         """Set value of spinbox component
 
         Args:
@@ -306,7 +305,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QSpinBox, name).setValue(value)
 
-    def get_spin_box(self, name:str):
+    def get_spin_box(self, name: str):
         """Get time of spin box component
 
         Args:
@@ -317,7 +316,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QSpinBox, name).value()
 
-    def set_action_checkable(self, name:str, checked:bool):
+    def set_action_checkable(self, name: str, checked: bool):
         """Set value of action
 
         Args:
@@ -329,7 +328,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QAction, name).setChecked(checked)
 
-    def get_action_checkable(self, name:str):
+    def get_action_checkable(self, name: str):
         """Get status of action
 
         Args:
@@ -340,8 +339,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QAction, name).isChecked()
 
-
-    def set_push_button_checkable(self, name:str, checked:bool):
+    def set_push_button_checkable(self, name: str, checked: bool):
         """Set value of push button component
 
         Args:
@@ -353,7 +351,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QPushButton, name).setChecked(checked)
 
-    def get_push_button_checkable(self, name:str):
+    def get_push_button_checkable(self, name: str):
         """Get status of push button
 
         Args:
@@ -364,7 +362,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QPushButton, name).isChecked()
 
-    def set_radio_button(self, name:str, checked:bool):
+    def set_radio_button(self, name: str, checked: bool):
         """Set value of radio button component
 
         Args:
@@ -376,7 +374,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QRadioButton, name).setChecked(checked)
 
-    def get_radio_button(self, name:str):
+    def get_radio_button(self, name: str):
         """Get status of radio button
 
         Args:
@@ -387,7 +385,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QRadioButton, name).isChecked()
 
-    def combobox_add_item(self, name:str, item:str):
+    def combobox_add_item(self, name: str, item: str):
         """Add item in combo box
 
         Args:
@@ -399,7 +397,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QComboBox, name).addItem(item)
 
-    def combobox_add_items(self, name:str, items:str):
+    def combobox_add_items(self, name: str, items: str):
         """Add item in combo box
 
         Args:
@@ -412,7 +410,7 @@ class ASubWindowFeatures(object):
         for item in items:
             self.find(QComboBox, name).addItem(item)
 
-    def set_combobox_text(self, name:str, item:str):
+    def set_combobox_text(self, name: str, item: str):
         """Set current text of combo box
 
         Args:
@@ -424,7 +422,7 @@ class ASubWindowFeatures(object):
         """
         self.find(QComboBox, name).setCurrentText(item)
 
-    def get_combobox_text(self, name:str):
+    def get_combobox_text(self, name: str):
         """Get current text of combo box
 
         Args:
@@ -435,7 +433,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QComboBox, name).currentText()
 
-    def get_datetime_edit(self, name:str):
+    def get_datetime_edit(self, name: str):
         """Get datetime of datetime edit
 
         Args:
@@ -446,7 +444,7 @@ class ASubWindowFeatures(object):
         """
         return self.find(QDateTimeEdit, name).dateTime().toPyDateTime()
 
-    def set_datetime_edit(self, name:str, date:datetime):
+    def set_datetime_edit(self, name: str, date: datetime):
         """Set datetime of a datetime edit
 
         Args:
@@ -500,6 +498,7 @@ class ASubMainWindow(QMainWindow, ASubWindowFeatures, WindowToolKit):
 
         return self.ui.findChild(qtype, name)
 
+
 class ASubWindow(QDialog, ASubWindowFeatures, WindowToolKit):
     def __init__(self, name="", ui="dummy", parent=None, **kwargs):
         super(ASubWindow, self).__init__(parent=parent)
@@ -536,6 +535,7 @@ class ASubWindow(QDialog, ASubWindowFeatures, WindowToolKit):
 
         return self.ui.findChild(qtype, name)
 
+
 class AWidget(QWidget, ASubWindowFeatures):
     def __init__(self, ui="", parent=None):
         super(AWidget, self).__init__(parent=parent)
diff --git a/src/View/Tools/ListedSubWindow.py b/src/View/Tools/ListedSubWindow.py
index 6c93b84eda99b998a6109c5e9f211cc54a81df4e..5a6c132c929adc38febbb6675747534daec0840f 100644
--- a/src/View/Tools/ListedSubWindow.py
+++ b/src/View/Tools/ListedSubWindow.py
@@ -21,6 +21,7 @@ from functools import reduce
 
 logger = logging.getLogger()
 
+
 class ListedSubWindow(object):
     def __init__(self, **kwargs):
         super(ListedSubWindow, self).__init__()
@@ -37,7 +38,8 @@ class ListedSubWindow(object):
         self.sub_win_list.append((name, win))
         self.sub_win_cnt += 1
         try:
-            logger.info(f"Open window: {name}: {self.sub_win_cnt}: {win.hash()}")
+            logger.info(
+                f"Open window: {name}: {self.sub_win_cnt}: {win.hash()}")
         except:
             logger.info(f"Open window: {name}: {self.sub_win_cnt}: X")
 
@@ -75,7 +77,7 @@ class ListedSubWindow(object):
             False
         )
 
-    def sub_win_exists(self, name, contain = []):
+    def sub_win_exists(self, name, contain=[]):
         if contain == []:
             return self._sub_win_exists(name)
         else:
diff --git a/src/View/Tools/PamhyrDelegate.py b/src/View/Tools/PamhyrDelegate.py
index c5e97da3a2ad5c2d7d253f351bd2d3891dc94832..c253ec25a81132fff8d84d1465baa9466fa78a30 100644
--- a/src/View/Tools/PamhyrDelegate.py
+++ b/src/View/Tools/PamhyrDelegate.py
@@ -32,6 +32,7 @@ from View.Tools.PamhyrWidget import (
 
 logger = logging.getLogger()
 
+
 class PamhyrExTimeDelegate(QItemDelegate):
     def __init__(self, data=None, mode="time", parent=None):
         super(PamhyrExTimeDelegate, self).__init__(parent)
diff --git a/src/View/Tools/PamhyrPlot.py b/src/View/Tools/PamhyrPlot.py
index b06ec2c24209d1c12bfc5f1818813a51fbc8d2a5..600687d58c2af1c15ca0f2c20efb7e93b9e5e7e1 100644
--- a/src/View/Tools/PamhyrPlot.py
+++ b/src/View/Tools/PamhyrPlot.py
@@ -20,6 +20,7 @@ from View.Tools.Plot.APlot import APlot
 from View.Tools.Plot.PamhyrCanvas import MplCanvas
 from View.Tools.Plot.PamhyrToolbar import PamhyrPlotToolbar
 
+
 class PamhyrPlot(APlot):
     def __init__(self, data=None, trad=None,
                  canvas=None, toolbar=None,
@@ -32,7 +33,7 @@ class PamhyrPlot(APlot):
         self._toolbar = toolbar
         self._parent = parent
 
-        super(PamhyrPlot, self).__init__(data = data)
+        super(PamhyrPlot, self).__init__(data=data)
 
     @property
     def canvas(self):
diff --git a/src/View/Tools/PamhyrTable.py b/src/View/Tools/PamhyrTable.py
index 43aa22c2320705a16606941c46c79d344cd5c2a7..ff815624f52756736f3c855a38fac430b6dedb4e 100644
--- a/src/View/Tools/PamhyrTable.py
+++ b/src/View/Tools/PamhyrTable.py
@@ -57,6 +57,7 @@ class PamhyrTextDelegate(QStyledItemDelegate):
     def updateEditorGeometry(self, editor, option, index):
         editor.setGeometry(option.rect)
 
+
 class PamhyrTableModel(QAbstractTableModel):
     def _setup_delegates(self):
         if self._table_view is None:
@@ -75,14 +76,14 @@ class PamhyrTableModel(QAbstractTableModel):
                 )
 
     def __init__(self,
-                 table_view = None,
-                 table_headers = {},
-                 editable_headers = [],
-                 delegates = {},
-                 trad = None,
-                 data = None,
-                 undo = None,
-                 opt_data = None):
+                 table_view=None,
+                 table_headers={},
+                 editable_headers=[],
+                 delegates={},
+                 trad=None,
+                 data=None,
+                 undo=None,
+                 opt_data=None):
         super(PamhyrTableModel, self).__init__()
 
         self._table_view = table_view
@@ -112,14 +113,13 @@ class PamhyrTableModel(QAbstractTableModel):
         self._table_view.setAlternatingRowColors(True)
         self._table_view.resizeColumnsToContents()
 
-
     def flags(self, index):
         column = index.column()
 
         options = Qt.ItemIsEnabled | Qt.ItemIsSelectable
 
         if (self._editable_headers or
-            self._headers[column] in self._editable_headers):
+                self._headers[column] in self._editable_headers):
             options |= Qt.ItemIsEditable
 
         return options
diff --git a/src/View/Tools/PamhyrWidget.py b/src/View/Tools/PamhyrWidget.py
index f906beedd3dc2d8e836c53c5d75c1a197f905248..d3e02dd9c071ed01f71dac7999e86225ab70a5fd 100644
--- a/src/View/Tools/PamhyrWidget.py
+++ b/src/View/Tools/PamhyrWidget.py
@@ -32,14 +32,15 @@ from View.Tools.ASubWindow import AWidget
 
 logger = logging.getLogger()
 
+
 class PamhyrWidget(AWidget):
     _pamhyr_ui = None
     _pamhyr_name = "PamhyrWidget"
 
     def __init__(self, parent=None):
         super(PamhyrWidget, self).__init__(
-            ui = self._pamhyr_ui,
-            parent = parent
+            ui=self._pamhyr_ui,
+            parent=parent
         )
 
 
@@ -83,6 +84,7 @@ class PamhyrExtendedTimeEdit(AWidget):
 
         return timedelta(days=days, seconds=secs)
 
+
 class PamhyrExtendedDateTimeEdit(AWidget):
     def __init__(self, parent=None):
         super(ExtendedDateTimeEdit, self).__init__(
diff --git a/src/View/Tools/PamhyrWindow.py b/src/View/Tools/PamhyrWindow.py
index fb4bf1a12cf76a77574a14f3c0db41658a2756cc..a3c7d4c302730cb4e1d42a37e102a483a4ca0e57 100644
--- a/src/View/Tools/PamhyrWindow.py
+++ b/src/View/Tools/PamhyrWindow.py
@@ -31,8 +31,9 @@ from View.Tools.ListedSubWindow import ListedSubWindow
 
 logger = logging.getLogger()
 
+
 class PamhyrWindowTools(object):
-    def __init__(self, options = ["undo", "copy"], parent = None, **kwargs):
+    def __init__(self, options=["undo", "copy"], parent=None, **kwargs):
         super(PamhyrWindowTools, self).__init__()
 
         self._hash_data = []
@@ -139,10 +140,10 @@ class PamhyrWindow(ASubMainWindow, ListedSubWindow, PamhyrWindowTools):
     _pamhyr_name = "PamhyrWindow"
 
     def __init__(self,
-                 title = "Pamhyr2",
-                 study = None, config = None, trad = None,
-                 options = ["undo", "copy"],
-                 parent = None):
+                 title="Pamhyr2",
+                 study=None, config=None, trad=None,
+                 options=["undo", "copy"],
+                 parent=None):
         self._title = title
         self._study = study
         self._config = config
@@ -150,9 +151,9 @@ class PamhyrWindow(ASubMainWindow, ListedSubWindow, PamhyrWindowTools):
         self._parent = parent
 
         super(PamhyrWindow, self).__init__(
-            name = self._pamhyr_name,
-            ui = self._pamhyr_ui,
-            parent = parent,
+            name=self._pamhyr_name,
+            ui=self._pamhyr_ui,
+            parent=parent,
         )
 
         self._hash_data.append(self._study)
@@ -166,10 +167,10 @@ class PamhyrDialog(ASubWindow, ListedSubWindow, PamhyrWindowTools):
     _pamhyr_name = "PamhyrWindow"
 
     def __init__(self,
-                 title = "Pamhyr2",
-                 study = None, config = None, trad = None,
-                 options = ["undo", "copy"],
-                 parent = None):
+                 title="Pamhyr2",
+                 study=None, config=None, trad=None,
+                 options=["undo", "copy"],
+                 parent=None):
         self._title = title
         self._study = study
         self._config = config
@@ -177,9 +178,9 @@ class PamhyrDialog(ASubWindow, ListedSubWindow, PamhyrWindowTools):
         self._parent = parent
 
         super(PamhyrDialog, self).__init__(
-            name = self._pamhyr_name,
-            ui = self._pamhyr_ui,
-            parent = parent,
+            name=self._pamhyr_name,
+            ui=self._pamhyr_ui,
+            parent=parent,
         )
 
         self._hash_data.append(self._study)
diff --git a/src/View/Tools/Plot/APlot.py b/src/View/Tools/Plot/APlot.py
index 7d8de3070421bd7214aac4a05fc5fc8a3cb2c1dc..3fe98fbc5bfa9561b3cac0ed53dfa6019c76774f 100644
--- a/src/View/Tools/Plot/APlot.py
+++ b/src/View/Tools/Plot/APlot.py
@@ -18,6 +18,7 @@
 
 from Model.Except import NotImplementedMethodeError
 
+
 class APlot(object):
     def __init__(self, data=None):
         super(APlot, self).__init__()
@@ -29,7 +30,6 @@ class APlot(object):
     def data(self):
         return self._data
 
-
     def draw(self):
         """Draw plot
 
@@ -38,8 +38,7 @@ class APlot(object):
         """
         raise NotImplementedMethodeError(self, self.draw)
 
-
-    def update(self, ind = None):
+    def update(self, ind=None):
         """Update plot
 
         Update the plot, update for data index IND if define, else
diff --git a/src/View/Tools/Plot/OnPickEvent.py b/src/View/Tools/Plot/OnPickEvent.py
index fdfa1de6c7950d98d9ff53004ed4ccfcabbd3f80..e02c897dae027286f0443edc79ee5ff8c3cb8f18 100644
--- a/src/View/Tools/Plot/OnPickEvent.py
+++ b/src/View/Tools/Plot/OnPickEvent.py
@@ -26,6 +26,7 @@ from shapely.geometry.polygon import Polygon as ShapelyPolygon
 
 logger = logging.getLogger()
 
+
 class OnpickEvent(object):
     def __init__(self, ax, x, y, x_carto, y_carto, tableview=None):
         """
@@ -117,7 +118,8 @@ class OnpickEvent(object):
                     self.pt1 = self.ax.plot(self.x[row], self.y[row],
                                             '+', c='Blue', markersize=7)
                     self.pt.append(self.pt1)
-                    self.update_select_point_point_bis(self.x[row], self.y[row])
+                    self.update_select_point_point_bis(
+                        self.x[row], self.y[row])
             elif len(rows) == 1:
                 for row in rows:
                     try:
@@ -130,7 +132,8 @@ class OnpickEvent(object):
                         self.update_select_point_point_bis(self.x[row],
                                                            self.y[row])
                     except:
-                        logger.info("update_select_point_point_bis: Update issue, possible index missing")
+                        logger.info(
+                            "update_select_point_point_bis: Update issue, possible index missing")
 
             self.ax.figure.canvas.draw_idle()
 
@@ -382,7 +385,8 @@ class OnpickEvent(object):
             self.pos_x_annotation = x_min + ((x_max - x_min) / 2)
 
             percent = 0
-            y_ecran_lim = ((max(self.ax.set_ylim()) - min(self.ax.set_ylim())) / 2)
+            y_ecran_lim = ((max(self.ax.set_ylim()) -
+                           min(self.ax.set_ylim())) / 2)
 
             if abs(y_ecran_lim) > 4:
                 percent = 0.05
@@ -499,7 +503,8 @@ class OnpickEvent(object):
                 liste_points_miroir = [
                     x for (x, y) in zip(xs, ys) if np.isclose(y, val)
                 ]
-                largeur_miroir_polygone = liste_points_miroir[-2] - liste_points_miroir[0]
+                largeur_miroir_polygone = liste_points_miroir[-2] - \
+                    liste_points_miroir[0]
                 largeur_miroir += largeur_miroir_polygone
 
                 polygone_shapely = ShapelyPolygon(points_polygone)
diff --git a/src/View/Tools/Plot/PamhyrCanvas.py b/src/View/Tools/Plot/PamhyrCanvas.py
index c4bbf4d33d66b408f75a8c6a9134555eb56a03ea..ee1f5373544bb9096839da3e6b7ef964679035b4 100644
--- a/src/View/Tools/Plot/PamhyrCanvas.py
+++ b/src/View/Tools/Plot/PamhyrCanvas.py
@@ -17,6 +17,7 @@
 from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
 from matplotlib.figure import Figure
 
+
 class MplCanvas(FigureCanvasQTAgg):
     def __init__(self, width=5, height=4, dpi=100):
         fig = Figure(
diff --git a/src/View/Tools/Plot/PamhyrToolbar.py b/src/View/Tools/Plot/PamhyrToolbar.py
index c88dfacf6ffa5d8cc1180fed06fa9887137fb33f..7d769d32b577c9aecb293939cf0729b906d5999a 100644
--- a/src/View/Tools/Plot/PamhyrToolbar.py
+++ b/src/View/Tools/Plot/PamhyrToolbar.py
@@ -39,7 +39,7 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
     """
     isometric_signal = pyqtSignal(str)
 
-    def __init__(self, canvas, parent, items = ["home", "move", "zoom", "save"]):
+    def __init__(self, canvas, parent, items=["home", "move", "zoom", "save"]):
         """PamhyrPlotToolbar
 
         Args:
@@ -56,12 +56,15 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
         icons = []
 
         if "home" in items:
-            self.toolitems.append(('Home', _translate("Toolbar", 'Default view'), 'home', 'home'))
+            self.toolitems.append(
+                ('Home', _translate("Toolbar", 'Default view'), 'home', 'home'))
             self.toolitems.append((None, None, None, None))
 
         if "back/forward" in items:
-            self.toolitems.append(('Back', _translate("Toolbar", 'Back to previous view'), 'back', 'back'))
-            self.toolitems.append(('Forward', _translate("Toolbar", 'Return to next view'), 'forward', 'forward'))
+            self.toolitems.append(
+                ('Back', _translate("Toolbar", 'Back to previous view'), 'back', 'back'))
+            self.toolitems.append(('Forward', _translate(
+                "Toolbar", 'Return to next view'), 'forward', 'forward'))
             self.toolitems.append((None, None, None, None))
 
         if "move" in items:
@@ -73,7 +76,8 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
             self.toolitems.append((None, None, None, None))
 
         if "zoom" in items:
-            self.toolitems.append(('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom'))
+            self.toolitems.append(
+                ('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom'))
             self.toolitems.append((None, None, None, None))
 
             icon_zoom = QtGui.QIcon()
@@ -81,7 +85,7 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
                 os.path.abspath(f"{file_path}/../ui/ressources/zoom.png")
             ))
 
-            icons.append(("zoom",icon_zoom))
+            icons.append(("zoom", icon_zoom))
 
         if "iso" in items:
             self.toolitems.append(
@@ -173,10 +177,16 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
 
     def toolitems_translation(self):
         self._actions['home'].setToolTip(_translate("Toolbar", "Default view"))
-        self._actions['back'].setToolTip(_translate("Toolbar", "Back to previous view"))
-        self._actions['forward'].setToolTip(_translate("Toolbar", "Return to next view"))
-        self._actions['pan'].setToolTip(_translate("Toolbar", "Axes panoramic"))
+        self._actions['back'].setToolTip(
+            _translate("Toolbar", "Back to previous view"))
+        self._actions['forward'].setToolTip(
+            _translate("Toolbar", "Return to next view"))
+        self._actions['pan'].setToolTip(
+            _translate("Toolbar", "Axes panoramic"))
         self._actions['zoom'].setToolTip(_translate("Toolbar", "Zoom"))
-        self._actions['save_figure'].setToolTip(_translate("Toolbar", "Save the figure"))
-        self.action_isometric_view.setToolTip(_translate("Toolbar", "Isometric view (Shift+W)"))
-        self.action_auto_global_view.setToolTip(_translate("Toolbar", "Auto scale view (Shift+X)"))
+        self._actions['save_figure'].setToolTip(
+            _translate("Toolbar", "Save the figure"))
+        self.action_isometric_view.setToolTip(
+            _translate("Toolbar", "Isometric view (Shift+W)"))
+        self.action_auto_global_view.setToolTip(
+            _translate("Toolbar", "Auto scale view (Shift+X)"))
diff --git a/src/config.py b/src/config.py
index b3ddf6b446501544e5a0797a091d8aee2bae9d0f..7477f57ee0e7a104fa28ff09ec65a5c68f62f260 100644
--- a/src/config.py
+++ b/src/config.py
@@ -32,6 +32,7 @@ config_file = "config.sqlite3"
 
 logger = logging.getLogger()
 
+
 class Config(SQL):
     def __init__(self):
         self._version = '0.0.3'
@@ -40,15 +41,17 @@ class Config(SQL):
 
         logging.info(f"Configuration file : {self.filename}")
 
-        super(Config, self).__init__(filename = self.filename)
+        super(Config, self).__init__(filename=self.filename)
 
     def _create(self):
         # Info (meta data)
-        self.execute("CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
+        self.execute(
+            "CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
         self.execute(f"INSERT INTO info VALUES ('version', '{self._version}')")
 
         # Key / Value (data)
-        self.execute("CREATE TABLE data(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
+        self.execute(
+            "CREATE TABLE data(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
 
         # Solver
         self.execute("""
@@ -79,12 +82,15 @@ class Config(SQL):
 
         self.commit()
 
-
     def _update(self):
-        version = self.execute(f"SELECT value FROM info WHERE key='version'")[0]
+        version = self.execute(
+            f"SELECT value FROM info WHERE key='version'")[0]
 
         if version != self._version:
-            logger.info(f"Configuration file update from {version} to {self._version}...")
+            logger.info(
+                "Configuration file update from " +
+                f"{version} to {self._version}..."
+            )
 
             major, minor, release = version.strip().split(".")
 
@@ -92,6 +98,8 @@ class Config(SQL):
                 if int(release) < 2:
                     # Add default solver
                     posix = os.name == 'posix'
+                    ext = "" if posix else ".exe"
+
                     self.execute(f"""
                       INSERT INTO solver VALUES (
                         'mage8',
@@ -101,13 +109,14 @@ class Config(SQL):
                         '', '', '',
 
                         '',
-                        '@install_dir/mage/mage{"" if posix else ".exe"} @args @input',
+                        '@install_dir/mage/mage{ext} @args @input',
                         ''
                       )
                     """)
                 if int(release) < 3:
                     self.execute(f"INSERT INTO data VALUES ('last_study', '')")
-                    self.execute(f"INSERT INTO data VALUES ('close_correctly', 'True')")
+                    self.execute(
+                        f"INSERT INTO data VALUES ('close_correctly', 'True')")
 
             self.commit()
 
@@ -116,7 +125,7 @@ class Config(SQL):
 
         solvers = self.execute(
             "SELECT * FROM solver",
-            fetch_one = False
+            fetch_one=False
         )
         for solver in solvers:
             solver_type = solver[0]
@@ -139,7 +148,7 @@ class Config(SQL):
         id = 0
         stricklers = self.execute(
             "SELECT * FROM stricklers",
-            fetch_one = False
+            fetch_one=False
         )
         for strickler in stricklers:
             new = Stricklers()
@@ -210,7 +219,7 @@ class Config(SQL):
                 '{self._sql_format(solver._cmd_output)}'
               )
               """,
-              commit = True)
+                         commit=True)
 
     def _save_stricklers(self):
         self.execute(f"DELETE FROM stricklers")
@@ -263,10 +272,12 @@ class Config(SQL):
         self._solvers = []
 
         posix = os.name == 'posix'
+        ext = "" if posix else ".exe"
+
         ctor = solver_type_list["mage8"]
         new = ctor("default-mage")
         new._description = "Default Pamhyr2 mage 8 version"
-        new._cmd_solver = f""""@install_dir/mage/mage{"" if posix else ".exe"}" @args @input"""
+        new._cmd_solver = f""""@install_dir/mage/mage{ext}" @args @input"""
         self._solvers.append(new)
 
         # Meshing tool
@@ -300,14 +311,22 @@ class Config(SQL):
 
     def set_close_correctly(self):
         self.close_correctly = True
-        self.execute(f"UPDATE data SET value='True' WHERE key='close_correctly'")
+        self.execute(
+            f"UPDATE data SET value='True' WHERE key='close_correctly'")
         self.commit()
 
     def set_last_study(self, filename):
         self.last_study = filename
         self.close_correctly = False
-        self.execute(f"UPDATE data SET value='{self._sql_format(self.last_study)}' WHERE key='last_study'")
-        self.execute(f"UPDATE data SET value='{self.close_correctly}' WHERE key='close_correctly'")
+        self.execute(
+            "UPDATE data SET " +
+            f"value='{self._sql_format(self.last_study)}' " +
+            "WHERE key='last_study'"
+        )
+        self.execute(
+            f"UPDATE data SET value='{self.close_correctly}' " +
+            "WHERE key='close_correctly'"
+        )
         self.commit()
 
     @classmethod
@@ -320,7 +339,7 @@ class Config(SQL):
             ndir = os.path.expanduser('~') + config_dir
             ndir = ndir.replace("/", "\\")
 
-        os.makedirs(ndir, exist_ok = True)
+        os.makedirs(ndir, exist_ok=True)
         file = ndir + config_file
 
         return file
diff --git a/src/init.py b/src/init.py
index a6eb3aa4119d4ce431afe57d23d1f3dad7302ada..9a2305f4cdf011795e0f333fde40962c5a00cdcb 100644
--- a/src/init.py
+++ b/src/init.py
@@ -16,7 +16,8 @@
 
 # -*- coding: utf-8 -*-
 
-import sys, os
+import sys
+import os
 import locale
 import logging
 
@@ -53,13 +54,14 @@ try:
     handler.setFormatter(formatter)
     handler.setLevel(logging.DEBUG)
     logger.addHandler(handler)
-except:
-    logger.error("Failed to create logfile...")
+except Exception as e:
+    logger.error(f"Failed to create logfile... {e}")
 
 
 def legal_info():
     "Display in stdout Pamhyr infomation about licence and version"
-    blue = lambda s: logger.info(f"{logger_color_blue()}{s}{logger_color_reset()}")
+    def blue(s): return logger.info(
+        f"{logger_color_blue()}{s}{logger_color_reset()}")
 
     blue("""`7MM\"""Mq.   db      `7MMM.     ,MMF'`7MMF'  `7MMF'`YMM'   `MM'`7MM\"""Mq.""")
     blue("""  MM   `MM. ;MM:       MMMb    dPMM    MM      MM    VMA   ,V    MM   `MM.""")
@@ -76,11 +78,15 @@ def legal_info():
             )
     ), "r") as f:
         version = f.readline().strip()
-        logger.info(f"version:  {logger_color_green()}{version}{logger_color_reset()}")
+        logger.info(
+            f"version:  {logger_color_green()}{version}{logger_color_reset()}")
 
     logger.info("license: pamhyr  Copyright (C) 2023  INRAE")
     logger.info("license: This program comes with ABSOLUTELY NO WARRANTY.")
-    logger.info("license: This is free software, and you are welcome to redistribute it")
+    logger.info(
+        "license: This is free software," +
+        " and you are welcome to redistribute it"
+    )
     logger.info("license: under certain conditions.")
 
 
@@ -90,9 +96,13 @@ def debug_info():
 
     info = QLibraryInfo
     logger.debug(f"Qt PrefixPath: {info.location(QLibraryInfo.PrefixPath)}")
-    logger.debug(f"Qt LibExecPath: {info.location(QLibraryInfo.LibraryExecutablesPath)}")
+    logger.debug(
+        "Qt LibExecPath: " +
+        f"{info.location(QLibraryInfo.LibraryExecutablesPath)}"
+    )
+
 
-def setup_lang(app, conf:Config):
+def setup_lang(app, conf: Config):
     "Return QTranslator configured for current language"
     lang_file = ""
     translator = QTranslator()
diff --git a/src/pamhyr.py b/src/pamhyr.py
index 4ae6a7dcf06f3cb4efb6f029e3eba3210e9ce9fc..2381da01dc01068e7d8119809a010722416fb7e0 100755
--- a/src/pamhyr.py
+++ b/src/pamhyr.py
@@ -18,7 +18,8 @@
 
 # -*- coding: utf-8 -*-
 
-import sys, os
+import sys
+import os
 import locale
 import logging
 
@@ -46,19 +47,24 @@ scripts = {
     "3DST": Script3DST,
 }
 
+
 def usage(argv):
     logger.info("")
     logger.info(f"Usage: {argv[0]} <script> <args...>")
     logger.info("")
-    logger.info(f"Available scripts:")
-    logger.info(f"\thelp\t\tDisplay this message")
-    logger.info(f"\tgui\t\tRun Pamhyr graphics user interface (by default)")
-    logger.info(f"\tdebug\t\tRun Pamhyr graphics user interface as debug mode (for developers)")
+    logger.info("Available scripts:")
+    logger.info("\thelp\t\tDisplay this message")
+    logger.info("\tgui\t\tRun Pamhyr graphics user interface (by default)")
+    logger.info(
+        "\tdebug\t\tRun Pamhyr graphics user interface " +
+        "as debug mode (for developers)"
+    )
     for s in scripts:
         logger.info(f"\t{s}\t\t{scripts[s].description}")
     logger.info("")
 
-def gui(app:QApplication, conf:Config):
+
+def gui(app: QApplication, conf: Config):
     application = ApplicationWindow(conf=conf)
     application.show()
 
@@ -66,6 +72,7 @@ def gui(app:QApplication, conf:Config):
 
     return app.exec_()
 
+
 def main():
     conf = Config.load()
 
@@ -107,5 +114,6 @@ def main():
     display_timers()
     sys.exit(ret)
 
+
 if __name__ == "__main__":
     main()
diff --git a/src/tools.py b/src/tools.py
index 390e89f40ee1196edebcecccd07ba5e6db931e4e..d286345a2f3245258300e9fc0af04758102de2f2 100644
--- a/src/tools.py
+++ b/src/tools.py
@@ -39,24 +39,28 @@ from functools import (
 
 logger = logging.getLogger()
 
+
 def logger_color_blue():
     posix = os.name == "posix"
     if posix:
         return f"{Style.BRIGHT}{Fore.BLUE}"
     return ""
 
+
 def logger_color_red():
     posix = os.name == "posix"
     if posix:
         return f"{Style.BRIGHT}{Fore.RED}"
     return ""
 
+
 def logger_color_green():
     posix = os.name == "posix"
     if posix:
         return f"{Style.BRIGHT}{Fore.GREEN}"
     return ""
 
+
 def logger_color_reset():
     posix = os.name == "posix"
     if posix:
@@ -67,9 +71,11 @@ def logger_color_reset():
 # TIMERS #
 ##########
 
+
 _timers = {}
 _calls = {}
 
+
 def reset_timers():
     global _timers
     global _calls
@@ -77,6 +83,7 @@ def reset_timers():
     _timers = {}
     _calls = {}
 
+
 def display_timers():
     global _timers
     global _calls
@@ -100,13 +107,15 @@ def display_timers():
             lambda f: (f, _timers[f], _calls[f]),
             _timers
         ),
-        key = lambda f: f[1],
-        reverse = True
+        key=lambda f: f[1],
+        reverse=True
     )
 
     for func, time, calls in lst:
         name = (f"{Fore.BLUE}{func.__module__}{Style.RESET_ALL}" +
-                f".{Style.BRIGHT}{Fore.GREEN}{func.__qualname__:<{fmax - len(func.__module__)}}{Style.RESET_ALL}")
+                f".{Style.BRIGHT}{Fore.GREEN}" +
+                f"{func.__qualname__:<{fmax - len(func.__module__)}}" +
+                f"{Style.RESET_ALL}")
         logger.debug(f" | {name} | {time:>10.6f} sec | {calls:>5} calls |")
 
     tail = " +--"
@@ -115,6 +124,7 @@ def display_timers():
     tail += "+"
     logger.debug(tail)
 
+
 def timer(func):
     """Function wrapper to register function runtime"""
     @wraps(func)
@@ -126,8 +136,10 @@ def timer(func):
             value = func(*args, **kwargs)
         except Exception as e:
             logger.debug(f"[{Fore.RED}ERROR{Style.RESET_ALL}]" +
-                  f"[{func.__module__}.{Fore.GREEN}{func.__qualname__}{Style.RESET_ALL}]: " +
-                  f"{Fore.RED}{e}{Style.RESET_ALL}")
+                         f"[{func.__module__}.{Fore.GREEN}" +
+                         f"{func.__qualname__}" +
+                         f"{Style.RESET_ALL}]: " +
+                         f"{Fore.RED}{e}{Style.RESET_ALL}")
             traceback.print_exc()
 
         end_time = time.perf_counter()
@@ -147,18 +159,25 @@ def timer(func):
 # DEBUG #
 #########
 
+
 def trace(func):
     @wraps(func)
     def wrapper(*args, **kwargs):
         t = time.ctime()
         head = f"[{Fore.BLUE}TRACE{Style.RESET_ALL}]"
-        c = f"{head}[{t}] Call {func.__module__}.{Fore.GREEN}{func.__qualname__}{Style.RESET_ALL}({args}, {kwargs})"
+        c = (
+            f"{head}[{t}] Call {func.__module__}.{Fore.GREEN}" +
+            f"{func.__qualname__}{Style.RESET_ALL}({args}, {kwargs})"
+        )
         logger.debug(c)
 
         value = func(*args, **kwargs)
 
         t = time.ctime()
-        r = f"{head}[{t}] Return {func.__module__}.{Fore.GREEN}{func.__qualname__}{Style.RESET_ALL}: {value}"
+        r = (
+            f"{head}[{t}] Return {func.__module__}.{Fore.GREEN}" +
+            f"{func.__qualname__}{Style.RESET_ALL}: {value}"
+        )
         logger.debug(r)
 
         return value
@@ -169,6 +188,7 @@ def trace(func):
 # OTHERS TOOLS #
 ################
 
+
 @timer
 def flatten(lst):
     """Flatten list of list
@@ -184,14 +204,16 @@ def flatten(lst):
 
     return reduce(list.__add__, lst)
 
-def timestamp(dt:datetime):
+
+def timestamp(dt: datetime):
     # Fix timestamp for some windows version.
     # - Issue : (https://bugs.python.org/issue29097)
     if os.name == 'nt':
         return (dt - datetime(1970, 1, 1)).total_seconds()
     return dt.timestamp()
 
-def old_pamhyr_date_to_timestamp(date:str):
+
+def old_pamhyr_date_to_timestamp(date: str):
     v = date.split(":")
     if len(v) != 4:
         return 0
@@ -220,13 +242,14 @@ def old_pamhyr_date_to_timestamp(date:str):
 # This class is an abstract class to make class with save and load
 # from sqlite3.
 
+
 class SQL(object):
     def _init_db_file(self, db):
         exists = Path(db).exists()
 
         os.makedirs(
             os.path.dirname(db),
-            exist_ok = True
+            exist_ok=True
         )
 
         self._db = sqlite3.connect(db)
@@ -239,8 +262,7 @@ class SQL(object):
             self._update()      # Update db scheme if necessary
             self._load()        # Load data
 
-
-    def __init__(self, filename = None):
+    def __init__(self, filename=None):
         self._db = None
 
         if filename is not None:
@@ -256,7 +278,7 @@ class SQL(object):
     def _fetch_tuple(self, tup):
         res = []
         for v in tup:
-            if type(v) == str:
+            if v is str:
                 v = self._fetch_string(v)
             res.append(v)
 
@@ -265,9 +287,9 @@ class SQL(object):
     def _fetch_list(self, lst):
         res = []
         for v in lst:
-            if type(v) == str:
+            if v is str:
                 v = self._fetch_string(v)
-            elif type(v) == tuple:
+            elif v is tuple:
                 v = self._fetch_tuple(v)
             res.append(v)
 
@@ -280,21 +302,21 @@ class SQL(object):
             value = res.fetchall()
         res = value
 
-        if type(value) == list:
+        if value is list:
             res = self._fetch_list(value)
-        elif type(value) == tuple:
+        elif value is tuple:
             res = self._fetch_tuple(value)
 
         return res
 
     def _sql_format(self, value):
         # Replace ''' by '&#39;' to preserve SQL injection
-        if type(value) == str:
+        if value is str:
             value = value.replace("'", "&#39;")
         return value
 
     @timer
-    def execute(self, cmd, fetch_one = True, commit = False):
+    def execute(self, cmd, fetch_one=True, commit=False):
         logger.debug(f"SQL - {cmd}")
         res = self._cur.execute(cmd)