diff --git a/b_asic/GUI/about_window.py b/b_asic/GUI/about_window.py
index f6ca3ae815e7bf7cd9c4066ed43565712b0b33ce..2322d94954f97cc6235f846fb508ce485637adaf 100644
--- a/b_asic/GUI/about_window.py
+++ b/b_asic/GUI/about_window.py
@@ -1,4 +1,5 @@
-from qtpy.QtWidgets import QVBoxLayout, QHBoxLayout, QWidget, QDialog, QLabel, QFrame, QScrollArea
+from qtpy.QtWidgets import QVBoxLayout, QHBoxLayout, QDialog, QLabel, QFrame, \
+    QScrollArea
 from qtpy.QtCore import Qt
 
 
diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py
index bcfe780e4569b53ce428a667a1d1a9c986f783aa..c650337a26d95b2d6057b4d002a3c84b2e3d2ced 100644
--- a/b_asic/GUI/main_window.py
+++ b/b_asic/GUI/main_window.py
@@ -5,7 +5,7 @@ This file opens the main window of the GUI for B-ASIC when run.
 
 
 from pprint import pprint
-from os import getcwd, path
+import os
 import importlib
 import logging
 import sys
@@ -22,23 +22,21 @@ from b_asic.GUI.select_sfg_window import SelectSFGWindow
 
 # from b_asic import FastSimulation
 from b_asic.simulation import Simulation as FastSimulation
-from b_asic.operation import Operation
-from b_asic.port import InputPort, OutputPort
+from b_asic.port import OutputPort
 from b_asic.signal_flow_graph import SFG
 from b_asic.special_operations import Input, Output
 import b_asic.core_operations as c_oper
 import b_asic.special_operations as s_oper
-from b_asic.save_load_structure import *
+from b_asic.save_load_structure import sfg_to_python, python_to_sfg
 
 import numpy as np
 
-from qtpy.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
-    QStatusBar, QMenuBar, QLineEdit, QPushButton, QSlider, QScrollArea, QVBoxLayout,\
-    QHBoxLayout, QDockWidget, QToolBar, QMenu, QLayout, QSizePolicy, QListWidget,\
-    QListWidgetItem, QGraphicsView, QGraphicsScene, QShortcut, QGraphicsTextItem,\
-    QGraphicsProxyWidget, QInputDialog, QTextEdit, QFileDialog
-from qtpy.QtCore import Qt, QSize, QFileInfo
-from qtpy.QtGui import QIcon, QFont, QPainter, QPen, QBrush, QKeySequence
+from qtpy.QtWidgets import (
+    QApplication, QMainWindow, QAction, QLineEdit, QListWidgetItem,
+    QGraphicsView, QGraphicsScene, QShortcut, QFileDialog, QGraphicsTextItem,
+    QInputDialog)
+from qtpy.QtCore import QFileInfo, QSize, Qt
+from qtpy.QtGui import QIcon, QKeySequence, QPainter
 
 
 MIN_WIDTH_SCENE = 600
@@ -54,19 +52,19 @@ class MainWindow(QMainWindow):
         self.ui.setupUi(self)
         self.setWindowIcon(QIcon('small_logo.png'))
         self.scene = None
-        self._operations_from_name = dict()
+        self._operations_from_name = {}
         self.zoom = 1
         self.sfg_name_i = 0
-        self.dragOperationSceneDict = dict()
-        self.operationDragDict = dict()
+        self.dragOperationSceneDict = {}
+        self.operationDragDict = {}
         self.operationItemSceneList = []
         self.signalList = []
         self.pressed_operations = []
-        self.portDict = dict()
-        self.signalPortDict = dict()
-        self.opToSFG = dict()
+        self.portDict = {}
+        self.signalPortDict = {}
+        self.opToSFG = {}
         self.pressed_ports = []
-        self.sfg_dict = dict()
+        self.sfg_dict = {}
         self._window = self
         self.logger = logging.getLogger(__name__)
         self.init_ui()
@@ -116,7 +114,8 @@ class MainWindow(QMainWindow):
 
         self.logger.info("Finished setting up GUI")
         self.logger.info(
-            "For questions please refer to 'Ctrl+?', or visit the 'Help' section on the toolbar.")
+            "For questions please refer to 'Ctrl+?', or visit the 'Help' "
+            "section on the toolbar.")
 
     def init_ui(self):
         self.create_toolbar_view()
@@ -139,7 +138,8 @@ class MainWindow(QMainWindow):
         self.ui.operation_box.setGeometry(
             10, 10, self.ui.operation_box.width(), self.height())
         self.graphic_view.setGeometry(self.ui.operation_box.width(
-        ) + 20, 60, self.width() - self.ui.operation_box.width() - 20, self.height()-30)
+        ) + 20, 60, self.width() - self.ui.operation_box.width() - 20,
+            self.height()-30)
         super().resizeEvent(event)
 
     def wheelEvent(self, event):
@@ -168,10 +168,10 @@ class MainWindow(QMainWindow):
             return
 
         self.logger.info(f"Saving SFG to path: {module}.")
-        operation_positions = dict()
-        for operation_drag, operation_scene in self.dragOperationSceneDict.items():
-            operation_positions[operation_drag.operation.graph_id] = (
-                operation_scene.x(), operation_scene.y())
+        operation_positions = {}
+        for op_drag, op_scene in self.dragOperationSceneDict.items():
+            operation_positions[op_drag.operation.graph_id] = (
+                op_scene.x(), op_scene.y())
 
         try:
             with open(module, "w+") as file_obj:
@@ -201,12 +201,14 @@ class MainWindow(QMainWindow):
             sfg, positions = python_to_sfg(module)
         except ImportError as e:
             self.logger.error(
-                f"Failed to load module: {module} with the following error: {e}.")
+                f"Failed to load module: {module} with the following error: "
+                f"{e}.")
             return
 
         while sfg.name in self.sfg_dict:
             self.logger.warning(
-                f"Duplicate SFG with name: {sfg.name} detected. Please choose a new name.")
+                f"Duplicate SFG with name: {sfg.name} detected. "
+                "Please choose a new name.")
             name, accepted = QInputDialog.getText(
                 self, "Change SFG Name", "Name: ", QLineEdit.Normal)
             if not accepted:
@@ -221,10 +223,13 @@ class MainWindow(QMainWindow):
         def connect_ports(ports):
             for port in ports:
                 for signal in port.signals:
-                    source = [source for source in self.portDict[self.operationDragDict[signal.source.operation]]
-                              if source.port is signal.source]
-                    destination = [destination for destination in self.portDict[self.operationDragDict[
-                        signal.destination.operation]] if destination.port is signal.destination]
+                    source = [source for source in self.portDict[
+                        self.operationDragDict[signal.source.operation]]
+                        if source.port is signal.source]
+                    destination = [destination for destination in
+                                   self.portDict[self.operationDragDict[
+                                       signal.destination.operation]]
+                                   if destination.port is signal.destination]
 
                     if source and destination:
                         self.connect_button(source[0], destination[0])
@@ -291,40 +296,46 @@ class MainWindow(QMainWindow):
                     and signal.destination.operation.type_name() == signal_2.destination.operation.type_name()):
                 return False
 
-            if hasattr(signal.source.operation, "value") and hasattr(signal_2.source.operation, "value") \
-                    and hasattr(signal.destination.operation, "value") and hasattr(signal_2.destination.operation, "value"):
+            if (hasattr(signal.source.operation, "value") and
+                hasattr(signal_2.source.operation, "value") and
+                hasattr(signal.destination.operation, "value") and
+                hasattr(signal_2.destination.operation, "value")):
                 if not (signal.source.operation.value == signal_2.source.operation.value
                         and signal.destination.operation.value == signal_2.destination.operation.value):
                     return False
 
-            if hasattr(signal.source.operation, "name") and hasattr(signal_2.source.operation, "name") \
-                    and hasattr(signal.destination.operation, "name") and hasattr(signal_2.destination.operation, "name"):
+            if (hasattr(signal.source.operation, "name") and
+                hasattr(signal_2.source.operation, "name") and
+                hasattr(signal.destination.operation, "name") and
+                hasattr(signal_2.destination.operation, "name")):
                 if not (signal.source.operation.name == signal_2.source.operation.name
                         and signal.destination.operation.name == signal_2.destination.operation.name):
                     return False
 
             try:
-                _signal_source_index = [signal.source.operation.outputs.index(
-                    port) for port in signal.source.operation.outputs if signal in port.signals]
-                _signal_2_source_index = [signal_2.source.operation.outputs.index(
-                    port) for port in signal_2.source.operation.outputs if signal_2 in port.signals]
+                _signal_source_index = [
+                    signal.source.operation.outputs.index(port) for port in
+                    signal.source.operation.outputs if signal in port.signals]
+                _signal_2_source_index = [
+                    signal_2.source.operation.outputs.index(port) for port in
+                    signal_2.source.operation.outputs if signal_2 in port.signals]
             except ValueError:
                 return False  # Signal output connections not matching
 
             try:
-                _signal_destination_index = [signal.destination.operation.inputs.index(
-                    port) for port in signal.destination.operation.inputs if signal in port.signals]
-                _signal_2_destination_index = [signal_2.destination.operation.inputs.index(
-                    port) for port in signal_2.destination.operation.inputs if signal_2 in port.signals]
+                _signal_destination_index = [
+                    signal.destination.operation.inputs.index(port) for port in
+                    signal.destination.operation.inputs if signal in port.signals]
+                _signal_2_destination_index = [
+                    signal_2.destination.operation.inputs.index(port) for port in
+                    signal_2.destination.operation.inputs if signal_2 in port.signals]
             except ValueError:
                 return False  # Signal input connections not matching
 
-            if not (_signal_source_index == _signal_2_source_index and _signal_destination_index == _signal_2_destination_index):
-                return False
-
-            return True
+            return (_signal_source_index == _signal_2_source_index and
+                    _signal_destination_index == _signal_2_destination_index)
 
-        for pressed_op in self.pressed_operations:
+        for _pressed_op in self.pressed_operations:
             for operation in sfg.operations:
                 for input_ in operation.inputs:
                     for signal in input_.signals:
@@ -362,7 +373,7 @@ class MainWindow(QMainWindow):
             55 - 17, operation.operation.output_count)
         _input_ports_dist = self._determine_port_distance(
             55 - 17, operation.operation.input_count)
-        self.portDict[operation] = list()
+        self.portDict[operation] = []
 
         print(_output_ports_dist)
         print(_input_ports_dist)
@@ -428,11 +439,11 @@ class MainWindow(QMainWindow):
             border-color: black; border-width: 2px")
             self.add_ports(attr_button)
 
-            icon_path = path.join(path.dirname(
+            icon_path = os.path.join(os.path.dirname(
                 __file__), "operation_icons", f"{op.type_name().lower()}.png")
-            if not path.exists(icon_path):
-                icon_path = path.join(path.dirname(
-                    __file__), "operation_icons", f"custom_operation.png")
+            if not os.path.exists(icon_path):
+                icon_path = os.path.join(os.path.dirname(
+                    __file__), "operation_icons", "custom_operation.png")
             attr_button.setIcon(QIcon(icon_path))
             attr_button.setIconSize(QSize(55, 55))
             attr_button.setToolTip("No SFG")
diff --git a/b_asic/GUI/properties_window.py b/b_asic/GUI/properties_window.py
index e24e7bf58a2aef66cfbd722172891e51ee998f07..3aba3d280409fb16a31a28e4583dfc3357aec8e5 100644
--- a/b_asic/GUI/properties_window.py
+++ b/b_asic/GUI/properties_window.py
@@ -18,7 +18,7 @@ class PropertiesWindow(QDialog):
         self.edit_name = QLineEdit(self.operation.operation_path_name)
         self.name_layout.addWidget(self.name_label)
         self.name_layout.addWidget(self.edit_name)
-        self.latency_fields = dict()
+        self.latency_fields = {}
 
         self.vertical_layout = QVBoxLayout()
         self.vertical_layout.addLayout(self.name_layout)
diff --git a/b_asic/GUI/show_pc_window.py b/b_asic/GUI/show_pc_window.py
index c3cbd32b4d37e6a5fdb7cd9a7914bd0301ea70c1..f5d575377461860ac5dad095aa733bc200e8234d 100644
--- a/b_asic/GUI/show_pc_window.py
+++ b/b_asic/GUI/show_pc_window.py
@@ -11,7 +11,7 @@ class ShowPCWindow(QDialog):
     def __init__(self, window):
         super().__init__()
         self._window = window
-        self.check_box_dict = dict()
+        self.check_box_dict = {}
         self.setWindowFlags(Qt.WindowTitleHint | Qt.WindowCloseButtonHint)
         self.setWindowTitle("Show precedence graph")
 
diff --git a/b_asic/GUI/simulate_sfg_window.py b/b_asic/GUI/simulate_sfg_window.py
index c3df452f1a98a49b8407ebd509e18d08586ee307..9cb69e26ad6fa7fe5863be62085cc91595bb0e28 100644
--- a/b_asic/GUI/simulate_sfg_window.py
+++ b/b_asic/GUI/simulate_sfg_window.py
@@ -14,9 +14,9 @@ class SimulateSFGWindow(QDialog):
     def __init__(self, window):
         super().__init__()
         self._window = window
-        self.properties = dict()
-        self.sfg_to_layout = dict()
-        self.input_fields = dict()
+        self.properties = {}
+        self.sfg_to_layout = {}
+        self.input_fields = {}
         self.setWindowFlags(Qt.WindowTitleHint | Qt.WindowCloseButtonHint)
         self.setWindowTitle("Simulate SFG")
 
diff --git a/b_asic/operation.py b/b_asic/operation.py
index c4d557503621ad14b00720959c11bc6c758bcb25..293b47526bfb8f216e13bc0537e1360040d2f01e 100644
--- a/b_asic/operation.py
+++ b/b_asic/operation.py
@@ -387,7 +387,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
 
     def __str__(self) -> str:
         """Get a string representation of this operation."""
-        inputs_dict = dict()
+        inputs_dict = {}
         for i, port in enumerate(self.inputs):
             if port.signal_count == 0:
                 inputs_dict[i] = '-'
@@ -406,7 +406,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
                         dict_ele.append("no_id")
             inputs_dict[i] = dict_ele
 
-        outputs_dict = dict()
+        outputs_dict = {}
         for i, port in enumerate(self.outputs):
             if port.signal_count == 0:
                 outputs_dict[i] = '-'
@@ -618,7 +618,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
 
     @property
     def latency_offsets(self) -> Sequence[Sequence[int]]:
-        latency_offsets = dict()
+        latency_offsets = {}
 
         for i, inp in enumerate(self.inputs):
             latency_offsets["in" + str(i)] = inp.latency_offset
diff --git a/b_asic/save_load_structure.py b/b_asic/save_load_structure.py
index 222e474193691ce9b1ca9b7320dc5ffd6fd9b75d..caa5755e8871280d899d96ea24ba03e3b2d68886 100644
--- a/b_asic/save_load_structure.py
+++ b/b_asic/save_load_structure.py
@@ -53,7 +53,7 @@ def sfg_to_python(sfg: SFG, counter: int = 0, suffix: str = None) -> str:
 
     result += "\n# Signals:\n"
     # Keep track of already existing connections to avoid adding duplicates
-    connections = list()
+    connections = []
     for op in sfg.split():
         for out in op.outputs:
             for signal in out.signals:
diff --git a/b_asic/schedule.py b/b_asic/schedule.py
index d0bb566850353bb12681b34ef0dbc12030e11eb7..8d0dfafe4beaf17b24f67a3bb52b08f0bcde66e2 100644
--- a/b_asic/schedule.py
+++ b/b_asic/schedule.py
@@ -30,7 +30,7 @@ class Schedule:
     def __init__(self, sfg: SFG, schedule_time: Optional[int] = None, cyclic: bool = False, resolution: int = 1, scheduling_alg: str = "ASAP"):
         """Construct a Schedule from an SFG."""
         self._sfg = sfg
-        self._start_times = dict()
+        self._start_times = {}
         self._laps = defaultdict(lambda: 0)
         self._cyclic = cyclic
         self._resolution = resolution
@@ -77,11 +77,11 @@ class Schedule:
         return slack
 
     def _forward_slacks(self, op_id: GraphID) -> Dict["OutputPort", Dict["Signal", int]]:
-        ret = dict()
+        ret = {}
         start_time = self._start_times[op_id]
         op = self._sfg.find_by_id(op_id)
         for output_port in op.outputs:
-            output_slacks = dict()
+            output_slacks = {}
             available_time = start_time + output_port.latency_offset
 
             for signal in output_port.signals:
@@ -103,11 +103,11 @@ class Schedule:
         return slack
 
     def _backward_slacks(self, op_id: GraphID) -> Dict["OutputPort", Dict["Signal", int]]:
-        ret = dict()
+        ret = {}
         start_time = self._start_times[op_id]
         op = self._sfg.find_by_id(op_id)
         for input_port in op.inputs:
-            input_slacks = dict()
+            input_slacks = {}
             usage_time = start_time + input_port.latency_offset
 
             for signal in input_port.signals:
@@ -309,7 +309,7 @@ class Schedule:
         ytickpositions = []
         yticklabels = []
         plt.grid(zorder=0.5)
-        ypositions = dict()
+        ypositions = {}
         for op_id, op_start_time in self._start_times.items():
             op = self._sfg.find_by_id(op_id)
             latency_coords, execution_time_coords = op.get_plot_coordinates()
diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index 15e624d33944269089d02b73adc45930d7147afb..42c0cdefd3af54add2ff13eae402ba8ef2a56a81 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -93,7 +93,7 @@ class SFG(AbstractOperation):
                          output_count=output_signal_count + output_operation_count,
                          name=name, input_sources=input_sources)
 
-        self._components_by_id = dict()
+        self._components_by_id = {}
         self._used_ids = set()
         self._components_by_name = defaultdict(list)
         self._components_dfs_order = []
diff --git a/test/test_schedule.py b/test/test_schedule.py
index 10c0913fe2de24a21df062bbb6f52488a417bac9..f75e85023144317965d58801228d5a783f959dc8 100644
--- a/test/test_schedule.py
+++ b/test/test_schedule.py
@@ -24,7 +24,7 @@ class TestInit:
         for op in schedule._sfg.get_operations_topological_order():
             print(op.latency_offsets)
 
-        start_times_names = dict()
+        start_times_names = {}
         for op_id, start_time in schedule._start_times.items():
             op_name = precedence_sfg_delays.find_by_id(op_id).name
             start_times_names[op_name] = start_time
@@ -49,7 +49,7 @@ class TestInit:
 
         schedule = Schedule(precedence_sfg_delays, scheduling_alg="ASAP")
 
-        start_times_names = dict()
+        start_times_names = {}
         for op_id, start_time in schedule._start_times.items():
             op_name = precedence_sfg_delays.find_by_id(op_id).name
             start_times_names[op_name] = start_time
@@ -60,7 +60,7 @@ class TestInit:
     def test_independent_sfg(self, sfg_two_inputs_two_outputs_independent_with_cmul):
         schedule = Schedule(sfg_two_inputs_two_outputs_independent_with_cmul, scheduling_alg="ASAP")
 
-        start_times_names = dict()
+        start_times_names = {}
         for op_id, start_time in schedule._start_times.items():
             op_name = sfg_two_inputs_two_outputs_independent_with_cmul.find_by_id(op_id).name
             start_times_names[op_name] = start_time
@@ -100,7 +100,7 @@ class TestRescheduling:
         schedule.move_operation(precedence_sfg_delays.find_by_name("ADD3")[0].graph_id, 4)
         schedule.move_operation(precedence_sfg_delays.find_by_name("A2")[0].graph_id, 2)
 
-        start_times_names = dict()
+        start_times_names = {}
         for op_id, start_time in schedule._start_times.items():
             op_name = precedence_sfg_delays.find_by_id(op_id).name
             start_times_names[op_name] = start_time