Repository: zincware/MDSuite (language: python)

Issue:
update ruff excluded
After #567 we excluded as many as possible of ruffs errors. We should slowly bring them back.
https://github.com/zincware/MDSuite/blob/0b85016999ac93caf52fa10ab7f46df11d7acaa9/pyproject.toml#L13-L20


Discussion / hints:

Fix patch:
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 3d26b606..d4282558 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -18,4 +18,4 @@ black
 znvis
 ase
 astroid
-ruff
+ruff>=0.0.231
diff --git a/mdsuite/calculators/angular_distribution_function.py b/mdsuite/calculators/angular_distribution_function.py
index 78453241..4b6c91a3 100644
--- a/mdsuite/calculators/angular_distribution_function.py
+++ b/mdsuite/calculators/angular_distribution_function.py
@@ -53,9 +53,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     number_of_bins: int
     number_of_configurations: int
@@ -72,7 +70,7 @@ class Args:
 
 class AngularDistributionFunction(TrajectoryCalculator, ABC):
     """
-    Compute the Angular Distribution Function for all species combinations
+    Compute the Angular Distribution Function for all species combinations.
 
     Attributes
     ----------
@@ -114,7 +112,7 @@ class AngularDistributionFunction(TrajectoryCalculator, ABC):
 
     def __init__(self, **kwargs):
         """
-        Compute the Angular Distribution Function for all species combinations
+        Compute the Angular Distribution Function for all species combinations.
 
         Parameters
         ----------
@@ -274,8 +272,10 @@ def _compute_number_of_atoms(self, reference: dict):
     def _prepare_data_structure(self):
         """
         Prepare variables and dicts for the analysis.
+
         Returns
         -------
+        -------.
 
         """
         sample_configs = np.linspace(
@@ -305,7 +305,7 @@ def _prepare_triples_generator(self):
         """
         Prepare the triples generators including tf.function
         Returns
-        -------
+        -------.
 
         """
         if self.use_tf_function:
@@ -405,7 +405,6 @@ def _build_histograms(self, positions, species_indices, angles):
         angles : dict
                 A dictionary of the triples references and their histogram values.
         """
-
         tmp = tf.transpose(tf.concat(positions, axis=0), (1, 0, 2))
 
         timesteps, atoms, _ = tf.shape(tmp)
@@ -475,7 +474,7 @@ def _compute_adfs(self, angles, species_indices):
             self.queue_data(data=data, subjects=self.selected_species)
 
     def plot_data(self, data):
-        """Plot data"""
+        """Plot data."""
         for selected_species, val in data.items():
             bin_range_to_angles = np.linspace(
                 self.bin_range[0] * (180 / 3.14159),
diff --git a/mdsuite/calculators/calculator.py b/mdsuite/calculators/calculator.py
index f11f3316..77aba53a 100644
--- a/mdsuite/calculators/calculator.py
+++ b/mdsuite/calculators/calculator.py
@@ -51,7 +51,7 @@
 
 def call(func):
     """
-    Decorator for the calculator call method
+    Decorator for the calculator call method.
 
     This decorator provides a unified approach for handling run_computation and
     load_data for a single or multiple experiments.
@@ -93,7 +93,7 @@ def call(func):
 
     @functools.wraps(func)
     def inner(self, *args, **kwargs) -> Union[db.Computation, Dict[str, db.Computation]]:
-        """Manage the call method
+        """Manage the call method.
 
         Parameters
         ----------
@@ -150,7 +150,7 @@ def inner(self, *args, **kwargs) -> Union[db.Computation, Dict[str, db.Computati
 
 class Calculator(CalculatorDatabase):
     """
-    Parent class for analysis modules
+    Parent class for analysis modules.
 
     Attributes
     ----------
@@ -241,7 +241,7 @@ def __init__(
 
     @property
     def dtype(self):
-        """Get the dtype used for the calculator"""
+        """Get the dtype used for the calculator."""
         return self._dtype
 
     def run_visualization(
@@ -290,7 +290,7 @@ def run_calculator(self):
 
     def plot_data(self, data):
         """
-        Plot the data coming from the database
+        Plot the data coming from the database.
 
         Parameters
         ----------
@@ -308,9 +308,7 @@ def plot_data(self, data):
             )
 
     def run_analysis(self):
-        """
-        Run the appropriate analysis
-        """
+        """Run the appropriate analysis."""
         if self.experimental:
             log.warning(
                 "This is an experimental calculator. Please see the "
diff --git a/mdsuite/calculators/coordination_number_calculation.py b/mdsuite/calculators/coordination_number_calculation.py
index 50f8458a..07c84125 100644
--- a/mdsuite/calculators/coordination_number_calculation.py
+++ b/mdsuite/calculators/coordination_number_calculation.py
@@ -46,9 +46,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     savgol_order: int
     savgol_window_length: int
@@ -83,7 +81,7 @@ def _integrate_rdf(radii_data: np.array, rdf_data: np.array, density: float) ->
 
 class CoordinationNumbers(Calculator):
     """
-    Class for the calculation of coordination numbers
+    Class for the calculation of coordination numbers.
 
     Attributes
     ----------
@@ -118,7 +116,6 @@ class CoordinationNumbers(Calculator):
 
     Examples
     --------
-
     .. code-block:: python
 
         experiment.run.CoordinationNumbers(
@@ -131,14 +128,13 @@ class CoordinationNumbers(Calculator):
 
     def __init__(self, **kwargs):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
         experiment : class object
                         Class object of the experiment.
         """
-
         super().__init__(**kwargs)
         self.file_to_study = None
 
@@ -181,7 +177,6 @@ def __call__(
         number_of_shells : int
                 Number of shells to look for.
         """
-
         if isinstance(rdf_data, Computation):
             self.rdf_data = rdf_data
         else:
@@ -221,10 +216,7 @@ def _compute_nm_volume(self):
         self.volume = volume_si / 1e-9**3
 
     def _get_density(self, species: str) -> float:
-        """
-        Use the species_tuple in front of the name to get information about the pair
-        """
-
+        """Use the species_tuple in front of the name for information about the pair."""
         species = species.split("_")  # get an array of the species being studied
         rdf_number_of_atoms = self.experiment.species[species[0]].n_particles
 
@@ -232,7 +224,7 @@ def _get_density(self, species: str) -> float:
 
     def _get_rdf_peaks(self, rdf: np.ndarray) -> np.ndarray:
         """
-        Get the max values of the rdf for use in the minimum calculation
+        Get the max values of the rdf for use in the minimum calculation.
 
         Parameters
         ----------
@@ -250,7 +242,6 @@ def _get_rdf_peaks(self, rdf: np.ndarray) -> np.ndarray:
         ValueError
                 Raised if the number of peaks required for the analysis are not met.
         """
-
         filtered_data = apply_savgol_filter(
             rdf,
             order=self.args.savgol_order,
@@ -273,7 +264,7 @@ def _get_rdf_peaks(self, rdf: np.ndarray) -> np.ndarray:
 
     def _find_minima(self, radii: np.ndarray, rdf: np.ndarray) -> dict:
         """
-        Use min finding algorithm to determine the minima of the function
+        Use min finding algorithm to determine the minima of the function.
 
         Parameters
         ----------
@@ -281,12 +272,12 @@ def _find_minima(self, radii: np.ndarray, rdf: np.ndarray) -> dict:
                 A numpy array of radii values.
         rdf : np.ndarray
                 A numpy array of rdf values.
+
         Returns
         -------
         coordination_shells : dict
                 A dictionary of coordination shell radial ranges.
         """
-
         peaks = self._get_rdf_peaks(rdf)  # get the max value indices
 
         # Calculate the range in which the coordination numbers should exist.
@@ -305,7 +296,7 @@ def _get_coordination_numbers(
         self, integral_data: np.ndarray, radii: np.ndarray, rdf: np.ndarray
     ) -> dict:
         """
-        Calculate the coordination numbers
+        Calculate the coordination numbers.
 
         Parameters
         ----------
@@ -321,7 +312,6 @@ def _get_coordination_numbers(
         coordination_numbers : dict
                 A dictionary of coordination numbers.
         """
-
         coordination_shells = self._find_minima(radii, rdf)  # get the minimums
 
         coordination_numbers = {}
@@ -340,10 +330,7 @@ def _get_coordination_numbers(
         return coordination_numbers
 
     def run_calculator(self):
-        """
-        Calculate the coordination numbers and perform error analysis
-        """
-
+        """Calculate the coordination numbers and perform error analysis."""
         for selected_species, vals in self.rdf_data.data_dict.items():
             log.debug(f"Computing coordination numbers for {selected_species}")
 
@@ -370,7 +357,7 @@ def run_calculator(self):
             self.queue_data(data=data, subjects=selected_species)
 
     def plot_data(self, data):
-        """Plot the CN"""
+        """Plot the CN."""
         # Plot the values if required
         for selected_species, val in data.items():
             fig = figure(x_axis_label=self.x_label, y_axis_label=self.y_label)
diff --git a/mdsuite/calculators/einstein_diffusion_coefficients.py b/mdsuite/calculators/einstein_diffusion_coefficients.py
index 14adc62c..c51efae7 100644
--- a/mdsuite/calculators/einstein_diffusion_coefficients.py
+++ b/mdsuite/calculators/einstein_diffusion_coefficients.py
@@ -50,9 +50,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -65,7 +63,7 @@ class Args:
 
 class EinsteinDiffusionCoefficients(TrajectoryCalculator, ABC):
     """
-    Class for the Einstein diffusion coefficient implementation
+    Class for the Einstein diffusion coefficient implementation.
 
     Attributes
     ----------
@@ -92,7 +90,6 @@ def __init__(self, **kwargs):
         experiments :  Experiment
                 Experiment classes to call from
         """
-
         super().__init__(**kwargs)
         self.scale_function = {"linear": {"scale_factor": 150}}
         self.loaded_property = mdsuite_properties.unwrapped_positions
@@ -193,10 +190,7 @@ def ensemble_operation(self, ensemble):
         return np.array(msd)
 
     def fit_diff_coeff(self):
-        """
-        Apply unit conversion, fit line to the data, prepare for database storage
-        """
-
+        """Apply unit conversion, fit line to the data, prepare for database storage."""
         # self.msd_array /= int(self.n_batches) * self.ensemble_loop
         self.msd_array /= self.count
 
@@ -221,9 +215,7 @@ def fit_diff_coeff(self):
         return data
 
     def run_calculator(self):
-        """
-        Run analysis.
-        """
+        """Run analysis."""
         self._run_dependency_check()
         for species in self.args.species:
             # Here for now to avoid issues. Should be moved out when calculators become
diff --git a/mdsuite/calculators/einstein_distinct_diffusion_coefficients.py b/mdsuite/calculators/einstein_distinct_diffusion_coefficients.py
index c2dff6e9..bbb8bdb9 100644
--- a/mdsuite/calculators/einstein_distinct_diffusion_coefficients.py
+++ b/mdsuite/calculators/einstein_distinct_diffusion_coefficients.py
@@ -42,9 +42,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -61,7 +59,7 @@ class Args:
 
 class EinsteinDistinctDiffusionCoefficients(TrajectoryCalculator):
     """
-    Class for the Green-Kubo diffusion coefficient implementation
+    Class for the Green-Kubo diffusion coefficient implementation.
 
     Attributes
     ----------
@@ -150,7 +148,6 @@ def __call__(
         None
 
         """
-
         if species is None:
             species = list(self.experiment.species)
         self.combinations = list(itertools.combinations_with_replacement(species, 2))
@@ -198,7 +195,7 @@ def ref_conf_map(ref_dataset, full_ds):
             """
             Maps over the atoms axis in dataset
             Parameters
-            ----------
+            ----------.
 
             Returns
             -------
@@ -207,11 +204,12 @@ def ref_conf_map(ref_dataset, full_ds):
             def test_conf_map(test_dataset):
                 """
                 Map over atoms in test dataset.
+
                 Parameters
                 ----------
                 test_dataset
                 Returns
-                -------
+                -------.
                 """
                 return msd_operation(ref_dataset, test_dataset)
 
@@ -224,10 +222,11 @@ def test_conf_map(test_dataset):
     def _compute_self_correlation(self, ds_a, ds_b):
         """
         Compute the self correlation coefficients.
+
         Parameters
         ----------
         ds_a : np.ndarray (n_timesteps, n_atoms, dimension)
-        ds_b : np.ndarray (n_timesteps, n_atoms, dimension)
+        ds_b : np.ndarray (n_timesteps, n_atoms, dimension).
 
         Returns
         -------
@@ -248,6 +247,7 @@ def _compute_msd(self, data: dict, data_path: list, combination: tuple):
                 Data paths for accessing the dictionary.
         combination : tuple
                 Tuple being studied in the msd, i.e. ('Na', 'Cl) or ('Na', 'Na').
+
         Returns
         -------
         updates the class state
@@ -267,9 +267,10 @@ def _compute_msd(self, data: dict, data_path: list, combination: tuple):
     def _apply_averaging_factor(self):
         """
         Apply an averaging factor to the tensor_values.
+
         Returns
         -------
-        averaged copy of the tensor_values
+        averaged copy of the tensor_values.
         """
         self.msd_array /= int(self.n_batches) * self.ensemble_loop
 
@@ -277,7 +278,7 @@ def _post_operation_processes(self, species: Union[str, tuple] = None):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         self._apply_averaging_factor()  # update in place
@@ -325,9 +326,7 @@ def check_input(self):
         self._run_dependency_check()
 
     def run_calculator(self):
-        """
-        Perform the distinct coefficient analysis analysis
-        """
+        """Perform the distinct coefficient analysis analysis."""
         self.check_input()
         for combination in self.combinations:
             species_values = list(combination)
diff --git a/mdsuite/calculators/einstein_helfand_ionic_conductivity.py b/mdsuite/calculators/einstein_helfand_ionic_conductivity.py
index f26c2e32..c0b56e86 100644
--- a/mdsuite/calculators/einstein_helfand_ionic_conductivity.py
+++ b/mdsuite/calculators/einstein_helfand_ionic_conductivity.py
@@ -41,9 +41,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -54,7 +52,7 @@ class Args:
 
 class EinsteinHelfandIonicConductivity(TrajectoryCalculator, ABC):
     """
-    Class for the Einstein-Helfand Ionic Conductivity
+    Class for the Einstein-Helfand Ionic Conductivity.
 
     See Also
     --------
@@ -69,14 +67,13 @@ class EinsteinHelfandIonicConductivity(TrajectoryCalculator, ABC):
 
     def __init__(self, **kwargs):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
         experiment :  object
             Experiment class to call from
         """
-
         # parse to the experiment class
         super().__init__(**kwargs)
         self.scale_function = {"linear": {"scale_factor": 5}}
@@ -104,7 +101,7 @@ def __call__(
         fit_range: int = -1,
     ):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
@@ -163,8 +160,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         self.msd_array /= int(self.n_batches) * self.ensemble_loop
@@ -191,7 +190,7 @@ def _post_operation_processes(self):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         fit_values, covariance, gradients, gradient_errors = fit_einstein_curve(
diff --git a/mdsuite/calculators/einstein_helfand_thermal_conductivity.py b/mdsuite/calculators/einstein_helfand_thermal_conductivity.py
index 4544a71d..2e8302a6 100644
--- a/mdsuite/calculators/einstein_helfand_thermal_conductivity.py
+++ b/mdsuite/calculators/einstein_helfand_thermal_conductivity.py
@@ -40,9 +40,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -53,7 +51,7 @@ class Args:
 
 class EinsteinHelfandThermalConductivity(TrajectoryCalculator, ABC):
     """
-    Class for the Einstein-Helfand Ionic Conductivity
+    Class for the Einstein-Helfand Ionic Conductivity.
 
     Attributes
     ----------
@@ -81,14 +79,13 @@ class EinsteinHelfandThermalConductivity(TrajectoryCalculator, ABC):
 
     def __init__(self, **kwargs):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
         experiment :  object
             Experiment class to call from
         """
-
         # parse to the experiment class
         super().__init__(**kwargs)
         self.scale_function = {"linear": {"scale_factor": 5}}
@@ -114,7 +111,7 @@ def __call__(
         fit_range: int = -1,
     ):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
@@ -176,8 +173,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         self.msd_array /= int(self.n_batches) * self.ensemble_loop
@@ -203,7 +202,7 @@ def _post_operation_processes(self):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         fit_values, covariance, gradients, gradient_errors = fit_einstein_curve(
diff --git a/mdsuite/calculators/einstein_helfand_thermal_kinaci.py b/mdsuite/calculators/einstein_helfand_thermal_kinaci.py
index d145a777..06f3a5a4 100644
--- a/mdsuite/calculators/einstein_helfand_thermal_kinaci.py
+++ b/mdsuite/calculators/einstein_helfand_thermal_kinaci.py
@@ -41,9 +41,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -54,7 +52,7 @@ class Args:
 
 class EinsteinHelfandThermalKinaci(TrajectoryCalculator, ABC):
     """
-    Class for the Einstein-Helfand Ionic Conductivity
+    Class for the Einstein-Helfand Ionic Conductivity.
 
     Attributes
     ----------
@@ -83,14 +81,13 @@ class EinsteinHelfandThermalKinaci(TrajectoryCalculator, ABC):
 
     def __init__(self, **kwargs):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
         experiment :  object
             Experiment class to call from
         """
-
         # parse to the experiment class
         super().__init__(**kwargs)
         self.scale_function = {"linear": {"scale_factor": 5}}
@@ -117,7 +114,7 @@ def __call__(
         fit_range: int = -1,
     ):
         """
-        Python constructor
+        Python constructor.
 
         Parameters
         ----------
@@ -181,8 +178,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         self.msd_array /= int(self.n_batches) * self.ensemble_loop
@@ -208,7 +207,7 @@ def _post_operation_processes(self):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         fit_values, covariance, gradients, gradient_errors = fit_einstein_curve(
diff --git a/mdsuite/calculators/green_kubo_distinct_diffusion_coefficients.py b/mdsuite/calculators/green_kubo_distinct_diffusion_coefficients.py
index 1bc399ee..31f56d22 100644
--- a/mdsuite/calculators/green_kubo_distinct_diffusion_coefficients.py
+++ b/mdsuite/calculators/green_kubo_distinct_diffusion_coefficients.py
@@ -44,9 +44,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -71,7 +69,7 @@ class GreenKuboDistinctDiffusionCoefficients(TrajectoryCalculator, ABC):
     analysis_name : str
             Name of the analysis
     loaded_property : str
-            Property loaded from the database_path for the analysis
+            Property loaded from the database_path for the analysis.
 
     See Also
     --------
@@ -174,15 +172,18 @@ def __call__(
     def _compute_self_correlation(self, ds_a, ds_b):
         """
         Compute the self correlation coefficients.
+
         Parameters
         ----------
         ds_a : np.ndarray (n_timesteps, n_atoms, dimension)
         ds_b : np.ndarray (n_timesteps, n_atoms, dimension)
         data_range : int (default = 500)
                 Range over which the acf will be computed.
-        correlation_time : int (default = 1)
+        correlation_time : int (default = 1).
+
         Returns
         -------
+        -------.
         """
         atomwise_vmap = jax.vmap(correlate, in_axes=0)
 
@@ -215,17 +216,18 @@ def ref_conf_map(ref_dataset, full_ds):
             ----------
             dataset
             Returns
-            -------
+            -------.
             """
 
             def test_conf_map(test_dataset):
                 """
                 Map over atoms in test dataset.
+
                 Parameters
                 ----------
                 test_dataset
                 Returns
-                -------
+                -------.
                 """
                 return correlate(ref_dataset, test_dataset)
 
@@ -248,6 +250,7 @@ def ensemble_operation(self, data: dict, dict_ref: list, same_species: bool = Fa
                 Dictionary of data returned by tensorflow
         same_species : bool
                 If true, the species are the same and i=j should be skipped.
+
         Returns
         -------
         updates the class state
@@ -264,9 +267,7 @@ def ensemble_operation(self, data: dict, dict_ref: list, same_species: bool = Fa
         self.sigma.append(np.trapz(vacf, x=self.time))
 
     def run_calculator(self):
-        """
-        Perform the distinct coefficient analysis analysis
-        """
+        """Perform the distinct coefficient analysis analysis."""
         self.check_input()
         for combination in self.combinations:
             species_values = list(combination)
@@ -301,11 +302,11 @@ def _calculate_prefactor(self, species: Union[str, tuple] = None):
         ----------
         species : str
                 Species property if required.
+
         Returns
         -------
 
         """
-
         numerator = self.experiment.units.length**2
         denominator = self.experiment.units.time * (self.args.data_range - 1)
 
@@ -325,7 +326,7 @@ def _post_operation_processes(self, species: Union[str, tuple] = None):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         result = self.prefactor * np.array(self.sigma)
@@ -340,7 +341,7 @@ def _post_operation_processes(self, species: Union[str, tuple] = None):
         self.queue_data(data=data, subjects=list(species))
 
     def plot_data(self, data):
-        """Plot the data"""
+        """Plot the data."""
         for selected_species, val in data.items():
             span = Span(
                 location=(
diff --git a/mdsuite/calculators/green_kubo_ionic_conductivity.py b/mdsuite/calculators/green_kubo_ionic_conductivity.py
index c00bb73a..70178a3e 100644
--- a/mdsuite/calculators/green_kubo_ionic_conductivity.py
+++ b/mdsuite/calculators/green_kubo_ionic_conductivity.py
@@ -48,9 +48,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -61,7 +59,7 @@ class Args:
 
 class GreenKuboIonicConductivity(TrajectoryCalculator, ABC):
     """
-    Class for the Green-Kubo ionic conductivity implementation
+    Class for the Green-Kubo ionic conductivity implementation.
 
     Attributes
     ----------
@@ -94,7 +92,6 @@ def __init__(self, **kwargs):
         experiment :  object
                 Experiment class to call from
         """
-
         # update experiment class
         super().__init__(**kwargs)
         self.scale_function = {"linear": {"scale_factor": 5}}
@@ -134,7 +131,6 @@ def __call__(
         integration_range : int
                 Range over which integration should be performed.
         """
-
         self.plot = plot
         self.jacf: np.ndarray
         self.sigma = []
@@ -191,8 +187,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         pass
@@ -220,7 +218,7 @@ def _post_operation_processes(self):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         sigma = np.mean(self.sigmas, axis=0)
@@ -242,7 +240,7 @@ def _post_operation_processes(self):
         self.queue_data(data=data, subjects=["System"])
 
     def plot_data(self, data):
-        """Plot the data"""
+        """Plot the data."""
         for selected_species, val in data.items():
             fig = figure(x_axis_label=self.x_label, y_axis_label=self.y_label)
 
diff --git a/mdsuite/calculators/green_kubo_self_diffusion_coefficients.py b/mdsuite/calculators/green_kubo_self_diffusion_coefficients.py
index c8f39e37..aba53eff 100644
--- a/mdsuite/calculators/green_kubo_self_diffusion_coefficients.py
+++ b/mdsuite/calculators/green_kubo_self_diffusion_coefficients.py
@@ -46,9 +46,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -75,7 +73,7 @@ class GreenKuboDiffusionCoefficients(TrajectoryCalculator, ABC):
     analysis_name : str
             Name of the analysis
     loaded_property : str
-            Property loaded from the database_path for the analysis
+            Property loaded from the database_path for the analysis.
 
     See Also
     --------
@@ -204,7 +202,7 @@ def ensemble_operation(self, ensemble):
 
     def plot_data(self, data: dict):
         """
-        Plot the data
+        Plot the data.
 
         Parameters
         ----------
diff --git a/mdsuite/calculators/green_kubo_thermal_conductivity.py b/mdsuite/calculators/green_kubo_thermal_conductivity.py
index 3a389abd..b5f89556 100644
--- a/mdsuite/calculators/green_kubo_thermal_conductivity.py
+++ b/mdsuite/calculators/green_kubo_thermal_conductivity.py
@@ -42,9 +42,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -55,7 +53,7 @@ class Args:
 
 class GreenKuboThermalConductivity(TrajectoryCalculator, ABC):
     """
-    Class for the Green-Kubo Thermal conductivity implementation
+    Class for the Green-Kubo Thermal conductivity implementation.
 
     Attributes
     ----------
@@ -80,7 +78,7 @@ class GreenKuboThermalConductivity(TrajectoryCalculator, ABC):
 
     def __init__(self, **kwargs):
         """
-        Class for the Green-Kubo Thermal conductivity implementation
+        Class for the Green-Kubo Thermal conductivity implementation.
 
         Attributes
         ----------
@@ -108,7 +106,7 @@ def __call__(
         integration_range: int = None,
     ):
         """
-        Class for the Green-Kubo Thermal conductivity implementation
+        Class for the Green-Kubo Thermal conductivity implementation.
 
         Parameters
         ----------
@@ -180,8 +178,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         pass
@@ -213,7 +213,7 @@ def ensemble_operation(self, ensemble: tf.Tensor):
 
     def _post_operation_processes(self):
         """
-        call the post-op processes
+        call the post-op processes.
 
         Returns
         -------
diff --git a/mdsuite/calculators/green_kubo_viscosity.py b/mdsuite/calculators/green_kubo_viscosity.py
index 79c249c1..88ded36b 100644
--- a/mdsuite/calculators/green_kubo_viscosity.py
+++ b/mdsuite/calculators/green_kubo_viscosity.py
@@ -42,9 +42,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -54,7 +52,7 @@ class Args:
 
 
 class GreenKuboViscosity(TrajectoryCalculator, ABC):
-    """Class for the Green-Kubo ionic conductivity implementation
+    """Class for the Green-Kubo ionic conductivity implementation.
 
     Attributes
     ----------
@@ -175,8 +173,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         pass
@@ -210,7 +210,7 @@ def _post_operation_processes(self):
         """
         call the post-op processes
         Returns
-        -------
+        -------.
 
         """
         result = self.prefactor * np.array(self.sigma)
diff --git a/mdsuite/calculators/green_kubo_viscosity_flux.py b/mdsuite/calculators/green_kubo_viscosity_flux.py
index f44b0bb3..6ce3d11e 100644
--- a/mdsuite/calculators/green_kubo_viscosity_flux.py
+++ b/mdsuite/calculators/green_kubo_viscosity_flux.py
@@ -42,9 +42,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     data_range: int
     correlation_time: int
@@ -55,7 +53,7 @@ class Args:
 
 class GreenKuboViscosityFlux(TrajectoryCalculator, ABC):
     """
-    Class for the Green Kubo viscosity from flux implementation
+    Class for the Green Kubo viscosity from flux implementation.
 
     Attributes
     ----------
@@ -173,8 +171,10 @@ def _calculate_prefactor(self):
     def _apply_averaging_factor(self):
         """
         Apply the averaging factor to the msd array.
+
         Returns
         -------
+        -------.
 
         """
         self.jacf /= max(self.jacf)
@@ -205,7 +205,7 @@ def ensemble_operation(self, ensemble):
 
     def _post_operation_processes(self):
         """
-        call the post-op processes
+        call the post-op processes.
 
         Returns
         -------
diff --git a/mdsuite/calculators/kirkwood_buff_integrals.py b/mdsuite/calculators/kirkwood_buff_integrals.py
index 3fd812c0..e11bbb74 100644
--- a/mdsuite/calculators/kirkwood_buff_integrals.py
+++ b/mdsuite/calculators/kirkwood_buff_integrals.py
@@ -40,9 +40,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     savgol_order: int
     savgol_window_length: int
@@ -53,7 +51,7 @@ class Args:
 
 class KirkwoodBuffIntegral(Calculator):
     """
-    Class for the calculation of the Kirkwood-Buff integrals
+    Class for the calculation of the Kirkwood-Buff integrals.
 
     Attributes
     ----------
@@ -92,14 +90,13 @@ class KirkwoodBuffIntegral(Calculator):
 
     def __init__(self, **kwargs):
         """
-        Python constructor for the class
+        Python constructor for the class.
 
         Parameters
         ----------
         experiment : class object
                         Class object of the experiment.
         """
-
         super().__init__(**kwargs)
         self.file_to_study = None
         self.data_files = []
@@ -158,7 +155,7 @@ def __call__(
 
     def _calculate_kb_integral(self, radii_data: np.ndarray, rdf_data: np.ndarray):
         """
-        calculate the Kirkwood-Buff integral
+        calculate the Kirkwood-Buff integral.
 
         Parameters
         ----------
@@ -184,9 +181,7 @@ def _calculate_kb_integral(self, radii_data: np.ndarray, rdf_data: np.ndarray):
         return 4 * np.pi * integral_data
 
     def run_calculator(self):
-        """
-        Calculate the potential of mean-force and perform error analysis
-        """
+        """Calculate the potential of mean-force and perform error analysis."""
         for selected_species, vals in self.rdf_data.data_dict.items():
             selected_species = selected_species.split("_")
 
@@ -202,7 +197,7 @@ def run_calculator(self):
             self.queue_data(data=data, subjects=selected_species)
 
     def plot_data(self, data):
-        """Plot the data"""
+        """Plot the data."""
         for selected_species, val in data.items():
             self.run_visualization(
                 x_data=val[self.result_series_keys[0]],
diff --git a/mdsuite/calculators/nernst_einstein_ionic_conductivity.py b/mdsuite/calculators/nernst_einstein_ionic_conductivity.py
index 021f1c9e..26a41804 100644
--- a/mdsuite/calculators/nernst_einstein_ionic_conductivity.py
+++ b/mdsuite/calculators/nernst_einstein_ionic_conductivity.py
@@ -35,7 +35,7 @@
 
 class NernstEinsteinIonicConductivity(Calculator):
     """
-    Class for the calculation of the Nernst-Einstein ionic conductivity
+    Class for the calculation of the Nernst-Einstein ionic conductivity.
 
     See Also
     --------
@@ -49,7 +49,7 @@ class NernstEinsteinIonicConductivity(Calculator):
 
     def __init__(self, **kwargs):
         """
-        Standard constructor
+        Standard constructor.
 
         Parameters
         ----------
@@ -76,7 +76,7 @@ def __call__(
         save: bool = True,
     ):
         """
-        Standard constructor
+        Standard constructor.
 
         Parameters
         ----------
@@ -94,7 +94,6 @@ def __call__(
         save : bool
                 if true, save the output.
         """
-
         self.update_user_args(plot=plot, save=False, data_range=data_range, export=export)
         self.corrected = corrected
         self.data = self._load_data()  # tensor_values to be read in
@@ -106,14 +105,13 @@ def __call__(
 
     def _load_data(self):
         """
-        Load tensor_values from a yaml file
+        Load tensor_values from a yaml file.
 
         Returns
         -------
         tensor_values: dict
                 A dictionary of tensor_values stored in the yaml file
         """
-
         test = self.experiment.export_property_data(
             {"property": "Diffusion_Coefficients"}
         )
@@ -169,7 +167,7 @@ def truth_table(self):
 
     def _nernst_einstein(self, diffusion_information: list):
         """
-        Calculate the Nernst-Einstein ionic conductivity
+        Calculate the Nernst-Einstein ionic conductivity.
 
         Parameters
         ----------
@@ -180,7 +178,6 @@ def _nernst_einstein(self, diffusion_information: list):
         -------
         Nernst-Einstein Ionic conductivity of the experiment in units of S/cm
         """
-
         # evaluate the prefactor
         numerator = self.experiment.number_of_atoms * (elementary_charge**2)
         denominator = (
@@ -212,7 +209,7 @@ def _corrected_nernst_einstein(
         self, self_diffusion_information: list, distinct_diffusion_information: list
     ):
         """
-        Calculate the corrected Nernst-Einstein ionic conductivity
+        Calculate the corrected Nernst-Einstein ionic conductivity.
 
         Parameters
         ----------
@@ -225,7 +222,6 @@ def _corrected_nernst_einstein(
         -------
         Corrected Nernst-Einstein ionic conductivity in units of S/cm
         """
-
         # evaluate the prefactor
         numerator = self.experiment.number_of_atoms * (elementary_charge**2)
         denominator = (
@@ -271,7 +267,7 @@ def _corrected_nernst_einstein(
 
     def _run_nernst_einstein(self):
         """
-        Process truth table and run all possible nernst-einstein calculations
+        Process truth table and run all possible nernst-einstein calculations.
 
         Returns
         -------
@@ -327,13 +323,12 @@ def _run_nernst_einstein(self):
 
     def _run_corrected_nernst_einstein(self):
         """
-        Process truth table and run all possible nernst-einstein calculations
+        Process truth table and run all possible nernst-einstein calculations.
 
         Returns
         -------
         Updates the experiment database_path
         """
-
         cne_table = [self.truth_table[0][1], self.truth_table[1][1]]
 
         if cne_table[0]:
@@ -401,9 +396,7 @@ def _run_corrected_nernst_einstein(self):
             self._update_properties_file(properties)
 
     def run_post_generation_analysis(self):
-        """
-        Run the analysis
-        """
+        """Run the analysis."""
         self._run_nernst_einstein()
         if self.corrected:
             self._run_corrected_nernst_einstein()
diff --git a/mdsuite/calculators/potential_of_mean_force.py b/mdsuite/calculators/potential_of_mean_force.py
index acc01066..c51ed4b5 100644
--- a/mdsuite/calculators/potential_of_mean_force.py
+++ b/mdsuite/calculators/potential_of_mean_force.py
@@ -45,9 +45,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     savgol_order: int
     savgol_window_length: int
@@ -59,7 +57,7 @@ class Args:
 
 class PotentialOfMeanForce(Calculator):
     """
-    Class for the calculation of the potential of mean-force
+    Class for the calculation of the potential of mean-force.
 
     The potential of mean-force is a measure of the binding strength between
     atomic species in a experiment.
@@ -103,7 +101,7 @@ class PotentialOfMeanForce(Calculator):
 
     def __init__(self, **kwargs):
         """
-        Python constructor for the class
+        Python constructor for the class.
 
         Parameters
         ----------
@@ -113,7 +111,6 @@ def __init__(self, **kwargs):
                         Class object of the experiment.
         load_data : bool
         """
-
         super().__init__(**kwargs)
         self.file_to_study = None
         self.rdf = None
@@ -140,7 +137,7 @@ def __call__(
         number_of_shells: int = 1,
     ):
         """
-        Python constructor for the class
+        Python constructor for the class.
 
         Parameters
         ----------
@@ -155,7 +152,6 @@ def __call__(
         number_of_shells : int
                 Number of shells to integrate through.
         """
-
         if isinstance(rdf_data, Computation):
             self.rdf_data = rdf_data
         else:
@@ -183,7 +179,7 @@ def __call__(
 
     def _calculate_potential_of_mean_force(self, rdf: np.ndarray) -> np.ndarray:
         """
-        Calculate the potential of mean force
+        Calculate the potential of mean force.
 
         Parameters
         ----------
@@ -266,7 +262,7 @@ def get_pomf_peaks(self, pomf_data: np.ndarray) -> np.ndarray:
 
     def _find_minimum(self, pomf_data: np.ndarray, radii_data: np.ndarray) -> dict:
         """
-        Find the minimum of the pomf function
+        Find the minimum of the pomf function.
 
         This function calls an implementation of the Golden-section search
         algorithm to determine the minimum of the potential of mean-force function.
@@ -285,7 +281,6 @@ def _find_minimum(self, pomf_data: np.ndarray, radii_data: np.ndarray) -> dict:
                 {'1': [0.1, 0.2]} indicates that the first pomf peak is betwee 0.1 and
                 0.2 angstrom.
         """
-
         # get the peaks of the tensor_values post-filtering
         peaks = self.get_pomf_peaks(pomf_data)
 
@@ -331,9 +326,7 @@ def _get_pomf_values(self, pomf: np.ndarray, radii: np.ndarray) -> dict:
         return pomf_data
 
     def run_calculator(self):
-        """
-        Calculate the potential of mean-force and perform error analysis
-        """
+        """Calculate the potential of mean-force and perform error analysis."""
         for selected_species, vals in self.rdf_data.data_dict.items():
             selected_species = selected_species.split("_")
             radii = np.array(vals["x"]).astype(float)[1:]
@@ -354,7 +347,7 @@ def run_calculator(self):
             self.queue_data(data=data, subjects=selected_species)
 
     def plot_data(self, data):
-        """Plot the POMF"""
+        """Plot the POMF."""
         log.debug("Start plotting the POMF.")
         for selected_species, val in data.items():
             fig = figure(x_axis_label=self.x_label, y_axis_label=self.y_label)
diff --git a/mdsuite/calculators/radial_distribution_function.py b/mdsuite/calculators/radial_distribution_function.py
index 1716d64e..b7cd52e9 100644
--- a/mdsuite/calculators/radial_distribution_function.py
+++ b/mdsuite/calculators/radial_distribution_function.py
@@ -57,9 +57,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     number_of_bins: int
     number_of_configurations: int
@@ -75,7 +73,7 @@ class Args:
 
 class RadialDistributionFunction(TrajectoryCalculator, ABC):
     """
-    Class for the calculation of the radial distribution function
+    Class for the calculation of the radial distribution function.
 
     Attributes
     ----------
@@ -101,7 +99,6 @@ class RadialDistributionFunction(TrajectoryCalculator, ABC):
 
     Examples
     --------
-
     .. code-block:: python
 
         project = mdsuite.Project()
@@ -155,7 +152,7 @@ def __call__(
         **kwargs,
     ):
         """
-        Compute the RDF with the given user parameters
+        Compute the RDF with the given user parameters.
 
         Parameters
         ----------
@@ -261,9 +258,8 @@ def _initialize_rdf_parameters(self):
         Updates class attributes.
         """
         self.bin_range = [0, self.args.cutoff]
-        self.index_list = [
-            i for i in range(len(self.args.species))
-        ]  # Get the indices of the species
+        self.index_list = list(range(len(self.args.species)))
+        # Get the indices of the species
 
         self.sample_configurations = np.linspace(
             self.args.start,
@@ -284,7 +280,7 @@ def _initialize_rdf_parameters(self):
 
     def _get_species_names(self, species_tuple: tuple) -> str:
         """
-        Get the correct names of the species being studied
+        Get the correct names of the species being studied.
 
         Parameters
         ----------
@@ -302,14 +298,13 @@ def _get_species_names(self, species_tuple: tuple) -> str:
 
     def _calculate_prefactor(self, species: Union[str, tuple] = None):
         """
-        Calculate the relevant prefactor for the analysis
+        Calculate the relevant prefactor for the analysis.
 
         Parameters
         ----------
         species : str
                 The species tuple of the RDF being studied, e.g. Na_Na
         """
-
         species_scale_factor = 1
         species_split = species.split("_")
         if species_split[0] == species_split[1]:
@@ -388,7 +383,7 @@ def _calculate_radial_distribution_functions(self):
 
     def _ang_to_nm(self, data_in: np.ndarray) -> np.ndarray:
         """
-        Convert Angstroms to nm
+        Convert Angstroms to nm.
 
         Returns
         -------
@@ -426,7 +421,7 @@ def _correct_batch_properties(self):
 
     def run_minibatch_loop(self, atoms, stop, n_atoms, minibatch_start, positions_tensor):
         """
-        Run a minibatch loop
+        Run a minibatch loop.
 
         Parameters
         ----------
@@ -476,7 +471,7 @@ def compute_species_values(
         self, indices: tf.Tensor, start_batch, d_ij: tf.Tensor
     ) -> dict:
         """
-        Compute species-wise histograms
+        Compute species-wise histograms.
 
         Parameters
         ----------
@@ -529,7 +524,7 @@ def compute_species_values(
         return rdf
 
     def plot_data(self, data):
-        """Plot the RDF data"""
+        """Plot the RDF data."""
         for selected_species, val in data.items():
             self.run_visualization(
                 x_data=np.array(val[self.result_series_keys[0]]),
@@ -582,7 +577,6 @@ def prepare_computation(self):
                 If true, the main tqdm loop over batches is disabled and only the
                 mini-batch loop will be displayed.
         """
-
         path_list = [
             join_path(item, self.loaded_property.name) for item in self.args.species
         ]
@@ -607,14 +601,14 @@ def prepare_computation(self):
     @staticmethod
     def combine_dictionaries(dict_a: dict, dict_b: dict):
         """
-        Combine two dictionaries in a tf.function call
+        Combine two dictionaries in a tf.function call.
 
         Parameters
         ----------
         dict_a : dict
         dict_b : dict
         """
-        out = dict()
+        out = {}
         for key in dict_a:
             out[key] = dict_a[key] + dict_b[key]
         return out
@@ -625,7 +619,7 @@ def bin_minibatch(
         start, stop, indices, d_ij, bin_range, number_of_bins, cutoff
     ) -> tf.Tensor:
         """
-        Compute the minibatch histogram
+        Compute the minibatch histogram.
 
         Parameters
         ----------
@@ -654,7 +648,7 @@ def bin_minibatch(
     @tf.function(experimental_relax_shapes=True)
     def get_dij(indices, positions_tensor, atoms, box_array):
         """
-        Compute the distance matrix for the minibatch
+        Compute the distance matrix for the minibatch.
 
         Parameters
         ----------
@@ -698,8 +692,10 @@ def get_dij(indices, positions_tensor, atoms, box_array):
     def particles_list(self):
         """
         List of number of atoms of each species being studied.
+
         Returns
         -------
+        -------.
 
         """
         if self.args.molecules:
@@ -723,7 +719,7 @@ def particles_list(self):
     @property
     def ideal_correction(self) -> float:
         """
-        Get the correct ideal gas term
+        Get the correct ideal gas term.
 
         In the case of a cutoff value greater than half of the box size, the ideal gas
         term of the experiment must be corrected due to the lack of spherical symmetry
@@ -734,11 +730,10 @@ def ideal_correction(self) -> float:
         correction : float
                 Correct ideal gas term for the RDF prefactor
         """
-
         # TODO make it a property
         def _spherical_symmetry(data: np.array) -> np.array:
             """
-            Operation to perform for full spherical symmetry
+            Operation to perform for full spherical symmetry.
 
             Parameters
             ----------
@@ -763,7 +758,6 @@ def _correction_1(data: np.array) -> np.array:
                     result of the operation
 
             """
-
             return 2 * np.pi * data * (3 - 4 * data)
 
         def _correction_2(data: np.array) -> np.array:
@@ -796,14 +790,13 @@ def _piecewise(data: np.array) -> np.array:
             Parameters
             ----------
             data : np.array
-                    tensor_values on which to operate
+                    tensor_values on which to operate.
 
             Returns
             -------
             scaled_data : np.array
                     tensor_values that has been operated on.
             """
-
             # Boundaries on the ideal gsa correction. These go to 73% over half the box
             # size, the most for a cubic box.
             lower_bound = self.experiment.box_array[0] / 2
diff --git a/mdsuite/calculators/spatial_distribution_function.py b/mdsuite/calculators/spatial_distribution_function.py
index eddda051..521537b0 100644
--- a/mdsuite/calculators/spatial_distribution_function.py
+++ b/mdsuite/calculators/spatial_distribution_function.py
@@ -56,9 +56,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     number_of_configurations: int
     data_range: int
@@ -72,11 +70,11 @@ class Args:
 
 
 class SpatialDistributionFunction(TrajectoryCalculator):
-    """Spatial Distribution Function Calculator based on the r_ij matrix"""
+    """Spatial Distribution Function Calculator based on the r_ij matrix."""
 
     def __init__(self, experiment: Experiment, experiments=None):
         """
-        Constructor of the SpatialDistributionFunction
+        Constructor of the SpatialDistributionFunction.
 
         Parameters
         ----------
@@ -113,7 +111,7 @@ def __call__(
         **kwargs,
     ):
         """
-        User Interface to the Spatial Distribution Function
+        User Interface to the Spatial Distribution Function.
 
         Parameters
         ----------
@@ -160,7 +158,7 @@ def __call__(
 
     def _load_positions(self, indices: list, species: str) -> tf.Tensor:
         """
-        Load the positions matrix
+        Load the positions matrix.
 
         This function is here to optimize calculation speed
 
@@ -189,7 +187,7 @@ def _load_positions(self, indices: list, species: str) -> tf.Tensor:
             return tf.cast(tf.concat(data, axis=0), dtype=self.dtype)
 
     def run_calculator(self):
-        """Run the computation"""
+        """Run the computation."""
         path_list = [
             join_path(item, self.loaded_property.name) for item in self.args.species
         ]
@@ -254,7 +252,7 @@ def run_calculator(self):
         self._run_visualization(coordinates, colour_map)
 
     def _get_unit_sphere(self) -> tf.Tensor:
-        """Get the coordinates on the sphere for the bins
+        """Get the coordinates on the sphere for the bins.
 
         Returns
         -------
@@ -275,7 +273,7 @@ def _get_unit_sphere(self) -> tf.Tensor:
 
     def r_ij_to_bins(self, r_ij) -> tf.Tensor:
         """Compute the 2D histogram in spherical coordinates while projecting
-        all values of r to a unit sphere
+        all values of r to a unit sphere.
 
         Parameters
         ----------
diff --git a/mdsuite/calculators/structure_factor.py b/mdsuite/calculators/structure_factor.py
index 88b0baef..fc97ee58 100644
--- a/mdsuite/calculators/structure_factor.py
+++ b/mdsuite/calculators/structure_factor.py
@@ -42,9 +42,7 @@
 
 @dataclass
 class Args:
-    """
-    Data class for the saved properties.
-    """
+    """Data class for the saved properties."""
 
     number_of_bins: int
     number_of_configurations: int
@@ -54,9 +52,7 @@ class Args:
 
 @dataclass
 class SpeciesData:
-    """
-    Data class for species data to be used in the calculation.
-    """
+    """Data class for species data to be used in the calculation."""
 
     particle_density: float
     molar_fraction: float
@@ -69,7 +65,7 @@ class StructureFactor(Calculator):
     using the Faber-Ziman partial structure factors. This analysis is valid for a
     magnitude of the X-ray scattering vector Q < 25 * 1/Angstrom. This means that
     the radii of the rdf has to be in Angstrom, otherwise it wont work.
-    Explicitly equations 9, 10 and 11 of the paper
+    Explicitly equations 9, 10 and 11 of the paper.
 
     'DFT Accurate Interatomic Potential for Molten NaCl from MachineLearning' from
     Samuel Tovey, Anand Narayanan Krishnamoorthy, Ganesh Sivaraman, Jicheng Guo,
@@ -117,14 +113,13 @@ class StructureFactor(Calculator):
 
     def __init__(self, **kwargs):
         """
-        Constructor for the class
+        Constructor for the class.
 
         Parameters
         ----------
         experiment : class object
                 Class object of the experiment.
         """
-
         super().__init__(**kwargs)
 
         self.post_generation = True
@@ -324,9 +319,7 @@ def _compute_total_structure_factor(
         return structure_factor
 
     def run_calculator(self):
-        """
-        Compute the total structure factor.
-        """
+        """Compute the total structure factor."""
         partial_sf = self._compute_partial_structure_factors()
         print(partial_sf)
         weight_factors = self._compute_weight_factors()
diff --git a/mdsuite/calculators/trajectory_calculator.py b/mdsuite/calculators/trajectory_calculator.py
index 93aaf214..49311da3 100644
--- a/mdsuite/calculators/trajectory_calculator.py
+++ b/mdsuite/calculators/trajectory_calculator.py
@@ -109,7 +109,7 @@ def __init__(self, experiment: Experiment = None, experiments: List = None):
 
     @property
     def database(self):
-        """Get the database based on the experiment database path"""
+        """Get the database based on the experiment database path."""
         if self._database is None:
             self._database = Database(self.experiment.database_path / "database.hdf5")
         return self._database
@@ -122,7 +122,6 @@ def _run_dependency_check(self):
         -------
         Will call transformations if required.
         """
-
         if self.loaded_property is None:
             return
 
@@ -153,7 +152,7 @@ def _resolve_dependencies(
 
         def _string_to_function(argument):
             """
-            Select a transformation based on an input
+            Select a transformation based on an input.
 
             Parameters
             ----------
@@ -164,7 +163,6 @@ def _string_to_function(argument):
             -------
             transformation call.
             """
-
             switcher_unwrapping = {"Unwrapped_Positions": self._unwrap_choice()}
 
             # add the other transformations and merge the dictionaries
@@ -183,8 +181,10 @@ def _string_to_function(argument):
     def _unwrap_choice(self):
         """
         Unwrap either with indices or with box arrays.
+
         Returns
         -------
+        -------.
 
         """
         indices = self.database.check_existence("Box_Images")
diff --git a/mdsuite/database/calculator_database.py b/mdsuite/database/calculator_database.py
index bbb68d2d..f6a98701 100644
--- a/mdsuite/database/calculator_database.py
+++ b/mdsuite/database/calculator_database.py
@@ -44,19 +44,21 @@
 
 @dataclass
 class ComputationResults:
+    """Computation Results dataclass."""
+
     data: dict = field(default_factory=dict)
     subjects: dict = field(default_factory=list)
 
 
 @dataclass
 class Args:
-    """Dummy Class for type hinting"""
+    """Dummy Class for type hinting."""
 
     pass
 
 
 def conv_to_db(val):
-    """Convert the given value to something that can be stored in the database"""
+    """Convert the given value to something that can be stored in the database."""
     if is_jsonable(val):
         if not isinstance(val, dict):
             val = {"serialized_value": val}
@@ -66,13 +68,13 @@ def conv_to_db(val):
 
 
 class CalculatorDatabase:
-    """Database Interactions of the calculator class
+    """Database Interactions of the calculator class.
 
     This class handles the interaction of the calculator with the project database
     """
 
     def __init__(self, experiment):
-        """Constructor for the calculator database"""
+        """Constructor for the calculator database."""
         self.experiment: Experiment = experiment
         self.db_computation: db.Computation = None
         self.database_group = None
@@ -87,7 +89,7 @@ def __init__(self, experiment):
         self.db_computation_attributes = []
 
     def prepare_db_entry(self):
-        """Prepare a database entry based on the attributes defined in the init"""
+        """Prepare a database entry based on the attributes defined in the init."""
         with self.experiment.project.session as ses:
             experiment = (
                 ses.query(db.Experiment)
@@ -99,13 +101,13 @@ def prepare_db_entry(self):
         self.db_computation.name = self.analysis_name
 
     def get_computation_data(self) -> db.Computation:
-        """Query the database for computation data
+        """Query the database for computation data.
 
         This method used the self.args dataclass to look for matching
         calculator attributes and returns a db.Computation object if
         the calculation has already been performed
 
-        Return
+        Return:
         ------
         db.Computation
             Returns the computation object from the database if available,
@@ -170,7 +172,7 @@ def get_computation_data(self) -> db.Computation:
         return None
 
     def save_computation_args(self):
-        """Store the user args
+        """Store the user args.
 
         This method stored the user args from the self.args dataclass
         into SQLAlchemy objects and adds them to a list which will be
@@ -193,7 +195,7 @@ def save_computation_args(self):
 
     def save_db_data(self):
         """Save all the collected computationattributes and computation data to the
-        database
+        database.
 
         This will be run after the computation was successful.
         """
@@ -232,9 +234,10 @@ def save_db_data(self):
             ses.commit()
 
     def queue_data(self, data, subjects):
-        """Queue data to be stored in the database
+        """Queue data to be stored in the database.
 
-        Parameters:
+        Parameters
+        ----------
             data: dict
                 A  dictionary containing all the data that was computed by the
                 computation
@@ -246,7 +249,7 @@ def queue_data(self, data, subjects):
 
     def update_database(self, parameters, delete_duplicate: bool = True):
         """
-        Add data to the database
+        Add data to the database.
 
         Parameters
         ----------
@@ -256,6 +259,7 @@ def update_database(self, parameters, delete_duplicate: bool = True):
                 "data_range": 500, "data": 1.8e-9}
         delete_duplicate : bool
                 If true, duplicate entries will be deleted.
+
         Returns
         -------
         Updates the sql database
@@ -265,7 +269,7 @@ def update_database(self, parameters, delete_duplicate: bool = True):
     # REMOVE
     # TODO rename and potentially move to a RDF based parent class
     def _get_rdf_data(self) -> List[db.Computation]:
-        """Fill the data_files list with filenames of the rdf tensor_values"""
+        """Fill the data_files list with filenames of the rdf tensor_values."""
         # TODO replace with exp.load.RDF()
         raise DeprecationWarning(
             "Replaced by experiment.run.RadialDistributionFunction(**kwargs)"
@@ -289,7 +293,7 @@ def _get_rdf_data(self) -> List[db.Computation]:
 
     # TODO rename and potentially move to a RDF based parent class
     def _load_rdf_from_file(self, computation: db.Computation):
-        """Load the raw rdf tensor_values from a directory"""
+        """Load the raw rdf tensor_values from a directory."""
         raise DeprecationWarning(
             "Replaced by experiment.run.RadialDistributionFuncion(**kwargs)"
         )
diff --git a/mdsuite/database/data_manager.py b/mdsuite/database/data_manager.py
index ab414654..8b514fd2 100644
--- a/mdsuite/database/data_manager.py
+++ b/mdsuite/database/data_manager.py
@@ -40,7 +40,7 @@
 
 class DataManager:
     """
-    Class for the MDS tensor_values fetcher
+    Class for the MDS tensor_values fetcher.
 
     Due to the amount of tensor_values that needs to be collected and the possibility
     to optimize repeated loading, a separate tensor_values fetching class is required.
@@ -66,7 +66,7 @@ def __init__(
         offset: int = 0,
     ):
         """
-        Constructor for the DataManager class
+        Constructor for the DataManager class.
 
         Parameters
         ----------
@@ -115,7 +115,7 @@ def __init__(
         self.correlation_time = correlation_time
         self.atom_selection = atom_selection
 
-    def batch_generator(
+    def batch_generator(  # noqa: C901
         self,
         dictionary: bool = False,
         system: bool = False,
@@ -123,7 +123,7 @@ def batch_generator(
         loop_array: np.ndarray = None,
     ) -> tuple:
         """
-        Build a generator object for the batch loop
+        Build a generator object for the batch loop.
 
         Parameters
         ----------
@@ -145,7 +145,6 @@ def batch_generator(
         -------
         Returns a generator function and its arguments
         """
-
         args = (
             self.n_batches,
             self.batch_size,
@@ -288,7 +287,7 @@ def atom_generator(
 
     def ensemble_generator(self, system: bool = False, glob_data: dict = None) -> tuple:
         """
-        Build a generator for the ensemble loop
+        Build a generator for the ensemble loop.
 
         Parameters
         ----------
@@ -305,7 +304,6 @@ def ensemble_generator(self, system: bool = False, glob_data: dict = None) -> tu
         -------
         Ensemble loop generator
         """
-
         args = (self.ensemble_loop, self.correlation_time, self.data_range)
 
         def dictionary_generator(ensemble_loop, correlation_time, data_range):
@@ -321,7 +319,7 @@ def dictionary_generator(ensemble_loop, correlation_time, data_range):
                     Size of each ensemble
             Returns
             -------
-            None
+            None.
             """
             ensemble_loop = int(
                 np.clip(
diff --git a/mdsuite/database/database_base.py b/mdsuite/database/database_base.py
index 8dc37e22..4c34b97f 100644
--- a/mdsuite/database/database_base.py
+++ b/mdsuite/database/database_base.py
@@ -38,9 +38,7 @@
 
 
 class DatabaseBase:
-    """
-    Docstring
-    """
+    """Docstring."""
 
     def __init__(self, database_name: str):
         """
@@ -59,7 +57,7 @@ def __init__(self, database_name: str):
 
     @property
     def engine(self) -> Engine:
-        """Create a SQLAlchemy Engine
+        """Create a SQLAlchemy Engine.
 
         Returns
         -------
@@ -78,12 +76,13 @@ def session(self) -> Session:
         """
 
         Notes
-        -------
+        -----
         Use with context manager like:
         >>> with self.session as ses:
         >>>     ses.add()
 
         Returns
+        -------
             Session that can be used inside a context manager
 
         """
@@ -101,6 +100,6 @@ def base(self) -> declarative_base:
         return Base
 
     def build_database(self):
-        """Build the database and get create the tables"""
+        """Build the database and get create the tables."""
         log.debug("Creating the database if it does not exist.")
         self.base.metadata.create_all(self.engine)
diff --git a/mdsuite/database/experiment_database.py b/mdsuite/database/experiment_database.py
index 1a0031c9..0cbe7045 100644
--- a/mdsuite/database/experiment_database.py
+++ b/mdsuite/database/experiment_database.py
@@ -44,7 +44,7 @@
 
 
 class LazyProperty:
-    """Property preset for I/O with the database
+    """Property preset for I/O with the database.
 
     References
     ----------
@@ -52,11 +52,11 @@ class LazyProperty:
     """
 
     def __set_name__(self, owner, name):
-        """See https://www.python.org/dev/peps/pep-0487/"""
+        """See https://www.python.org/dev/peps/pep-0487/."""
         self.name = name
 
     def __get__(self, instance: ExperimentDatabase, owner):
-        """Get the value either from memory or from the database
+        """Get the value either from memory or from the database.
 
         Try to get the value from memory, if not write it to memory
         """
@@ -67,7 +67,7 @@ def __get__(self, instance: ExperimentDatabase, owner):
             return self.__get__(instance, owner)
 
     def __set__(self, instance: ExperimentDatabase, value):
-        """Write value to the database
+        """Write value to the database.
 
         Write the given value to the database and remove it from memory
         """
@@ -78,6 +78,8 @@ def __set__(self, instance: ExperimentDatabase, value):
 
 
 class ExperimentDatabase:
+    """Experiment Database helper class for lazy access."""
+
     temperature = LazyProperty()
     time_step = LazyProperty()
     number_of_configurations = LazyProperty()
@@ -103,6 +105,7 @@ def export_property_data(self, parameters: dict) -> List[db.Computation]:
                 Parameters to be used in the addition, i.e.
                 {"Analysis": "Green_Kubo_Self_Diffusion", "Subject": "Na",
                 "data_range": 500}
+
         Returns
         -------
         output : list
@@ -113,7 +116,7 @@ def export_property_data(self, parameters: dict) -> List[db.Computation]:
         )
 
     def set_db(self, name: str, value):
-        """Store values in the database
+        """Store values in the database.
 
         Parameters
         ----------
@@ -133,7 +136,7 @@ def set_db(self, name: str, value):
             ses.commit()
 
     def get_db(self, name: str, default=None):
-        """Load values from the database
+        """Load values from the database.
 
         Parameters
         ----------
@@ -174,14 +177,14 @@ def get_db(self, name: str, default=None):
 
     @property
     def active(self):
-        """Get the state (activated or not) of the experiment"""
+        """Get the state (activated or not) of the experiment."""
         with self.project.session as ses:
             experiment = get_or_create(ses, db.Experiment, name=self.name)
         return experiment.active
 
     @active.setter
     def active(self, value):
-        """Set the state (activated or not) of the experiment"""
+        """Set the state (activated or not) of the experiment."""
         if value is None:
             return
         with self.project.session as ses:
@@ -191,11 +194,10 @@ def active(self, value):
 
     @property
     def species(self) -> Dict[str, SpeciesInfo]:
-        """Get species
+        """Get species.
 
         Returns
         -------
-
         dict[str, SpeciesInfo]:
             A dictionary of species such as {Li: SpeciesInfo}
         """
@@ -215,7 +217,7 @@ def species(self) -> Dict[str, SpeciesInfo]:
 
     @species.setter
     def species(self, value: dict):
-        """Save the SpeciesInfo to the SQL database
+        """Save the SpeciesInfo to the SQL database.
 
         Parameters
         ----------
@@ -259,8 +261,7 @@ def species(self, value: dict):
 
     @property
     def molecules(self) -> Dict[str, MoleculeInfo]:
-        """Get the molecules dict"""
-
+        """Get the molecules dict."""
         if self._molecules is None:
             with self.project.session as ses:
                 experiment = (
@@ -280,7 +281,7 @@ def molecules(self) -> Dict[str, MoleculeInfo]:
 
     @molecules.setter
     def molecules(self, value):
-        """Save the molecules dict to the database"""
+        """Save the molecules dict to the database."""
         if value is None:
             return
 
@@ -316,12 +317,12 @@ def molecules(self, value):
     # Almost Lazy Properties
     @property
     def box_array(self):
-        """Get the sample_rate of the experiment"""
+        """Get the sample_rate of the experiment."""
         return self.get_db(name="box_array")
 
     @box_array.setter
     def box_array(self, value):
-        """Set the time_step of the experiment"""
+        """Set the time_step of the experiment."""
         if value is None:
             return
         if isinstance(value, np.ndarray):
@@ -331,7 +332,7 @@ def box_array(self, value):
 
     @property
     def units(self) -> Union[Units, None]:
-        """Get the units of the experiment"""
+        """Get the units of the experiment."""
         dict_data = self.get_db(name="units")
         if dict_data is None:
             return None
@@ -339,7 +340,7 @@ def units(self) -> Union[Units, None]:
 
     @units.setter
     def units(self, value: Units):
-        """Set the units of the experiment"""
+        """Set the units of the experiment."""
         if value is None:
             return
         self.set_db(name="units", value=dataclasses.asdict(value))
@@ -358,7 +359,7 @@ def read_files(self):
 
     @read_files.setter
     def read_files(self, value):
-        """Add a file that has been read to the database
+        """Add a file that has been read to the database.
 
         Does nothing if the file already  exists within the database
 
@@ -376,7 +377,7 @@ def read_files(self, value):
     def simulation_data(self) -> dict:
         """
         Load simulation data from internals.
-        If not available try to read them from file
+        If not available try to read them from file.
 
         Returns
         -------
@@ -387,7 +388,7 @@ def simulation_data(self) -> dict:
 
     @simulation_data.setter
     def simulation_data(self, value: dict):
-        """Update simulation data
+        """Update simulation data.
 
         Try to load the data from self.simulation_data_file, update the internals and
         update the yaml file.
@@ -408,7 +409,7 @@ def simulation_data(self, value: dict):
 
     @property
     def version(self) -> int:
-        """Get the version of the experiment
+        """Get the version of the experiment.
 
         Versioning starts at 0 and can be increased by +1 for every added file
         """
@@ -416,7 +417,7 @@ def version(self) -> int:
 
     @version.setter
     def version(self, value: int):
-        """Update the version of the experiment
+        """Update the version of the experiment.
 
         Can be used to differentiate between different experiment versions in
         calculations
@@ -428,5 +429,5 @@ def version(self, value: int):
     # On the fly properties
     @property
     def volume(self):
-        """Compute the Volume"""
+        """Compute the Volume."""
         return np.prod(self.box_array)
diff --git a/mdsuite/database/mdsuite_properties.py b/mdsuite/database/mdsuite_properties.py
index bd990ca4..bc012bbe 100644
--- a/mdsuite/database/mdsuite_properties.py
+++ b/mdsuite/database/mdsuite_properties.py
@@ -32,8 +32,8 @@
 # disable init. This class is not supposed to be changed from its default values
 @dataclass(frozen=True, init=False)
 class MDSuiteProperties:
-    """
-    The names of properties used by MDSuite.
+    """The names of properties used by MDSuite.
+
     Use members in the code whenever referencing properties. A string is only needed when
     writing/reading the database.
     Non-obvious members are described below:
diff --git a/mdsuite/database/project_database.py b/mdsuite/database/project_database.py
index bb495a58..d8097971 100644
--- a/mdsuite/database/project_database.py
+++ b/mdsuite/database/project_database.py
@@ -36,24 +36,20 @@
 
 
 class ProjectDatabase(DatabaseBase):
-    """
-    Class for the management of the project database.
-    """
+    """Class for the management of the project database."""
 
     def __init__(self):
-        """
-        Constructor for the Project database class.
-        """
+        """Constructor for the Project database class."""
         super().__init__(database_name="project.db")
 
     @property
     def project_id(self) -> int:
-        """The id of this project in the database"""
+        """The id of this project in the database."""
         return 1
 
     @property
     def db_experiments(self):
-        """Get all experiments"""
+        """Get all experiments."""
         # renamed to db_experiments because experiments contains the instances of the
         # Experiment class
         with self.session as ses:
@@ -72,7 +68,7 @@ def description(self):
     @description.setter
     def description(self, value: str):
         """
-        Allow users to add a short description to their project
+        Allow users to add a short description to their project.
 
         Parameters
         ----------
diff --git a/mdsuite/database/scheme.py b/mdsuite/database/scheme.py
index 5c2eb1d8..ee91f256 100644
--- a/mdsuite/database/scheme.py
+++ b/mdsuite/database/scheme.py
@@ -37,7 +37,7 @@
 
 
 class SpeciesAssociation(Base):
-    """Connection between Computations and Experiment Species
+    """Connection between Computations and Experiment Species.
 
     This table is required to be defined specifically, because we need add the count,
     e.g. Na - Na would otherwise only appear as Na.
@@ -58,11 +58,13 @@ class SpeciesAssociation(Base):
 
     @property
     def name(self):
-        """Get the name of the species"""
+        """Get the name of the species."""
         return self.species.name
 
 
 class Project(Base):
+    """Project table."""
+
     __tablename__ = "projects"
     id = Column(Integer, primary_key=True)
     description = Column(String, nullable=True)
@@ -71,9 +73,7 @@ class Project(Base):
 
 
 class Experiment(Base):
-    """
-    Class for the experiment table associated with the Project table.
-    """
+    """Class for the experiment table associated with the Project table."""
 
     __tablename__ = "experiments"
 
@@ -106,7 +106,7 @@ def __repr__(self):
         return f"{self.id}: {self.name}"
 
     def get_species(self) -> dict:
-        """Get the species information for the experiment"""
+        """Get the species information for the experiment."""
         species_dict = {}
         for species in self.species:
             if species.molecule:
@@ -117,7 +117,7 @@ def get_species(self) -> dict:
         return species_dict
 
     def get_molecules(self) -> dict:
-        """Get the molecules information for the experiment"""
+        """Get the molecules information for the experiment."""
         molecule_dict = {}
         for molecule in self.species:
             if molecule.molecule:
@@ -165,7 +165,7 @@ def __repr__(self):
 
 
 class ExperimentSpecies(Base):
-    """Table for storing species information
+    """Table for storing species information.
 
     This table is used to store species and molecule information that can be related to
     a specific experiment
@@ -268,7 +268,7 @@ def data_dict(self) -> dict:
         return species_dict
 
     def __getitem__(self, item):
-        """Allow for subscription
+        """Allow for subscription.
 
         Parameters
         ----------
@@ -296,12 +296,12 @@ def __getitem__(self, item):
             )
 
     def keys(self) -> list:
-        """Map the data_dict keys"""
+        """Map the data_dict keys."""
         return list(self.data_dict.keys())
 
     @property
     def computation_parameter(self) -> dict:
-        """Get a dict of all used computation parameters
+        """Get a dict of all used computation parameters.
 
         Examples
         --------
@@ -327,14 +327,14 @@ def computation_parameter(self) -> dict:
 
     @property
     def data_range(self) -> int:
-        """Get the data_range stored in computation_attributes"""
+        """Get the data_range stored in computation_attributes."""
         for comp_attr in self.computation_attributes:
             if comp_attr.name == "data_range":
                 return int(comp_attr.data["serialized_value"])
 
     @property
     def subjects(self) -> list:
-        """Get the subjects stored in computation_attributes"""
+        """Get the subjects stored in computation_attributes."""
         log.warning("This function will be depreciated!")
         subjects = []
         for x in self.computation_results:
@@ -343,9 +343,7 @@ def subjects(self) -> list:
 
 
 class ComputationAttribute(Base):
-    """
-    Class for the meta data of a computation.
-    """
+    """Class for the meta data of a computation."""
 
     __tablename__ = "computation_attributes"
 
@@ -363,9 +361,7 @@ def __repr__(self):
 
 
 class ComputationResult(Base):
-    """
-    raw computation data of a calculation.
-    """
+    """raw computation data of a calculation."""
 
     __tablename__ = "computation_results"
 
diff --git a/mdsuite/database/simulation_database.py b/mdsuite/database/simulation_database.py
index 5dbdf2a4..d12a3178 100644
--- a/mdsuite/database/simulation_database.py
+++ b/mdsuite/database/simulation_database.py
@@ -46,7 +46,7 @@ class PropertyInfo:
     Information of a trajectory property.
     example:
     pos_info = PropertyInfo('Positions', 3)
-    vel_info = PropertyInfo('Velocities', 3)
+    vel_info = PropertyInfo('Velocities', 3).
 
     Attributes
     ----------
@@ -63,7 +63,7 @@ class PropertyInfo:
 @dataclasses.dataclass
 class SpeciesInfo:
     """
-    Information of a species
+    Information of a species.
 
     Attributes
     ----------
@@ -99,7 +99,7 @@ def __eq__(self, other):
 
 @dataclasses.dataclass
 class MoleculeInfo(SpeciesInfo):
-    """Information about a Molecule
+    """Information about a Molecule.
 
     All the information of a species + groups
 
@@ -119,7 +119,7 @@ class MoleculeInfo(SpeciesInfo):
     groups: dict = None
 
     def __eq__(self, other):
-        """Add a check to see if the groups are identical"""
+        """Add a check to see if the groups are identical."""
         if self.groups != other.groups:
             return False
         return super(MoleculeInfo, self).__eq__(other)
@@ -127,9 +127,10 @@ def __eq__(self, other):
 
 @dataclasses.dataclass
 class TrajectoryMetadata:
-    """
+    """Trajectory Metadata container.
+
     This metadata must be extracted from trajectory files to build the database into
-    which the trajectory will be stored
+    which the trajectory will be stored.
 
     Attributes
     ----------
@@ -167,9 +168,7 @@ class TrajectoryMetadata:
 
 
 class TrajectoryChunkData:
-    """
-    Class to specify the data format for transfer from the file to the database
-    """
+    """Class to specify the data format for transfer from the file to the database."""
 
     def __init__(self, species_list: List[SpeciesInfo], chunk_size: int):
         """
@@ -185,9 +184,9 @@ def __init__(self, species_list: List[SpeciesInfo], chunk_size: int):
         """
         self.chunk_size = chunk_size
         self.species_list = species_list
-        self._data = dict()
+        self._data = {}
         for sp_info in species_list:
-            self._data[sp_info.name] = dict()
+            self._data[sp_info.name] = {}
             for prop_info in sp_info.properties:
                 self._data[sp_info.name][prop_info.name] = np.zeros(
                     (chunk_size, sp_info.n_particles, prop_info.n_dims)
@@ -207,9 +206,10 @@ def add_data(self, data: np.ndarray, config_idx, species_name, property_name):
         species_name
             Name of the species to which the data belongs
         property_name
-            Name of the property being added
+            Name of the property being added.
 
-        example:
+        Example:
+        -------
         Storing velocity Information for 42 Na atoms in the 17th iteration of a loop
         that reads 5 configs per loop:
         add_data(vel_array, 16*5, 'Na', 'Velocities')
@@ -227,7 +227,7 @@ def get_data(self):
 
 class Database:
     """
-    Database class
+    Database class.
 
     Databases make up a large part of the functionality of MDSuite and are kept
     fairly consistent in structure. Therefore, the database_path structure we
@@ -277,7 +277,6 @@ def _update_indices(
         -------
 
         """
-
         ids = np.reshape(np.array(data[:, 0]).astype(int), (-1, n_atoms))
         ref_ids = np.argsort(ids, axis=1)
         n_batches = ids.shape[0]
@@ -289,7 +288,7 @@ def _update_indices(
     @staticmethod
     def _build_path_input(structure: dict) -> dict:
         """
-        Build an input to a hdf5 database_path from a dictionary
+        Build an input to a hdf5 database_path from a dictionary.
 
         In many cases, whilst a dict can be passed on to a method, it is not ideal for
         use in the hdf5 database_path. This method takes a dictionary and return a new
@@ -317,7 +316,6 @@ def _build_path_input(structure: dict) -> dict:
                 or {'/Na/Forces': (200, 5000, 3)}
 
         """
-
         # Build file paths for the addition.
         architecture = {}
         for group in structure:
@@ -333,14 +331,14 @@ def _build_path_input(structure: dict) -> dict:
     def add_data(self, chunk: TrajectoryChunkData, start_idx: int):
         """
         Add new data to the dataset.
+
         Parameters
         ----------
         chunk:
             a data chunk
         start_idx:
-            Configuration at which to start writing
+            Configuration at which to start writing.
         """
-
         workaround_time_in_axis_1 = True
 
         chunk_data = chunk.get_data()
@@ -375,7 +373,7 @@ def add_data(self, chunk: TrajectoryChunkData, start_idx: int):
 
     def resize_datasets(self, structure: dict):
         """
-        Resize a dataset so more tensor_values can be added
+        Resize a dataset so more tensor_values can be added.
 
         Parameters
         ----------
@@ -426,22 +424,20 @@ def initialize_database(self, structure: dict):
                 'Temperature': (5000, 1)} In this case, the last value in the tuple
                 corresponds to the number of components that wil be parsed to the
                 database_path.
+
         Returns
         -------
 
         """
-
         self.add_dataset(structure)  # add a dataset to the groups
 
     def database_exists(self) -> bool:
-        """
-        Check if the database file already exists
-        """
+        """Check if the database file already exists."""
         return pathlib.Path(self.path).exists()
 
     def add_dataset(self, structure: dict):
         """
-        Add a dataset of the necessary size to the database_path
+        Add a dataset of the necessary size to the database_path.
 
         Just as a separate method exists for building the group structure of the hdf5
         database_path, so too do we include a separate method for adding a dataset.
@@ -461,7 +457,6 @@ def add_dataset(self, structure: dict):
         -------
         Updates the database_path directly.
         """
-
         with hf.File(self.path, "a") as database:
             architecture = self._build_path_input(structure)  # get the correct file path
             for item in architecture:
@@ -509,7 +504,6 @@ def _add_group_structure(self, structure: dict):
         -------
         Updates the database_path directly.
         """
-
         with hf.File(self.path, "a") as database:
             # Build file paths for the addition.
             architecture = self._build_path_input(structure=structure)
@@ -521,7 +515,7 @@ def _add_group_structure(self, structure: dict):
 
     def get_memory_information(self) -> dict:
         """
-        Get memory information from the database_path
+        Get memory information from the database_path.
 
         Returns
         -------
@@ -539,7 +533,7 @@ def get_memory_information(self) -> dict:
 
     def check_existence(self, path: str) -> bool:
         """
-        Check to see if a dataset is in the database_path
+        Check to see if a dataset is in the database_path.
 
         Parameters
         ----------
@@ -565,7 +559,7 @@ def check_existence(self, path: str) -> bool:
 
     def change_key_names(self, mapping: dict):
         """
-        Change the name of database_path keys
+        Change the name of database_path keys.
 
         Parameters
         ----------
@@ -638,6 +632,7 @@ def get_load_time(self, database_path: str = None):
         ----------
         database_path : str
                 Database path on which to test the time.
+
         Returns
         -------
         opening time : float
@@ -658,7 +653,7 @@ def get_load_time(self, database_path: str = None):
 
     def get_data_size(self, data_path: str) -> tuple:
         """
-        Return the size of a dataset as a tuple (n_rows, n_columns, n_bytes)
+        Return the size of a dataset as a tuple (n_rows, n_columns, n_bytes).
 
         Parameters
         ----------
@@ -671,7 +666,6 @@ def get_data_size(self, data_path: str) -> tuple:
                 Tuple of tensor_values about the dataset, e.g.
                 (n_rows, n_columns, n_bytes)
         """
-
         with hf.File(self.path, "r") as db:
             data_tuple = (
                 db[data_path].shape[0],
@@ -684,10 +678,11 @@ def get_data_size(self, data_path: str) -> tuple:
     def get_database_summary(self):
         """
         Get a summary of the database properties.
+
         Returns
         -------
         summary : list
-                A list of properties that are in the database
+                A list of properties that are in the database.
         """
         with hf.File(self.path, "r") as db:
             return list(db.keys())
diff --git a/mdsuite/database/types.py b/mdsuite/database/types.py
index ec1dc589..f0b0663a 100644
--- a/mdsuite/database/types.py
+++ b/mdsuite/database/types.py
@@ -37,7 +37,7 @@ class JSONEncodedDict(TypeDecorator):
     impl = VARCHAR
 
     def process_bind_param(self, value: dict, dialect):
-        """Provide a bound value processing function
+        """Provide a bound value processing function.
 
         Convert a dictionary to a json string and store the string in the database
         """
@@ -46,7 +46,7 @@ def process_bind_param(self, value: dict, dialect):
         return value
 
     def process_result_value(self, value, dialect) -> dict:
-        """Receive a result-row column value to be converted
+        """Receive a result-row column value to be converted.
 
         Convert a loaded string from the database into a dict object
         """
@@ -56,12 +56,11 @@ def process_result_value(self, value, dialect) -> dict:
 
 
 class MutableDict(Mutable, dict):
-    """Subclassed version of a dictionary used in the database"""
+    """Subclassed version of a dictionary used in the database."""
 
     @classmethod
     def coerce(cls, key, value):
         """Convert plain dictionaries to MutableDict."""
-
         if not isinstance(value, MutableDict):
             if isinstance(value, dict):
                 return MutableDict(value)
@@ -73,12 +72,10 @@ def coerce(cls, key, value):
 
     def __setitem__(self, key, value):
         """Detect dictionary set events and emit change events."""
-
         dict.__setitem__(self, key, value)
         self.changed()
 
     def __delitem__(self, key):
         """Detect dictionary del events and emit change events."""
-
         dict.__delitem__(self, key)
         self.changed()
diff --git a/mdsuite/experiment/experiment.py b/mdsuite/experiment/experiment.py
index 17a923d6..c6f423ce 100644
--- a/mdsuite/experiment/experiment.py
+++ b/mdsuite/experiment/experiment.py
@@ -60,9 +60,7 @@
 
 
 def _get_processor(simulation_data):
-    """
-    Read in one file
-    """
+    """Read in one file."""
     if isinstance(simulation_data, str) or isinstance(simulation_data, pathlib.Path):
         suffix = pathlib.Path(simulation_data).suffix
         if suffix == ".lammpstraj":
@@ -161,7 +159,6 @@ def __init__(
                 will be adjusted so as to allow for optimal performance on a large
                 computing cluster.
         """
-
         if not name[0].isalpha():
             raise ValueError(
                 f"Experiment name must start with a letter! Found '{name[0]}' instead."
@@ -215,7 +212,7 @@ def __init__(
 
     @property
     def run(self) -> RunComputation:
-        """Method to access the available calculators
+        """Method to access the available calculators.
 
         Returns
         -------
@@ -233,10 +230,10 @@ def __repr__(self):
         return f"exp_{self.name}"
 
     def _create_internal_file_paths(self):
-        """Create or update internal file paths
+        """Create or update internal file paths.
 
         Attributes
-        -----------
+        ----------
         path: Path
             The default path for the experiment files
         database_path: Path
@@ -251,7 +248,7 @@ def _create_internal_file_paths(self):
 
     def _build_model(self):
         """
-        Build the 'experiment' for the analysis
+        Build the 'experiment' for the analysis.
 
         A method to build the database_path in the hdf5 format. Within this method,
         several other are called to develop the database_path skeleton,
@@ -259,7 +256,6 @@ def _build_model(self):
         accompanied by a loading bar which should be customized to make it more
         interesting.
         """
-
         # Create new analysis directory and change into it
         try:
             self.path.mkdir()
@@ -272,7 +268,7 @@ def _build_model(self):
         log.info(f"** An experiment has been added titled {self.name} **")
 
     def cls_transformation_run(self, transformation: Transformations, *args, **kwargs):
-        """Run the transformation
+        """Run the transformation.
 
         The Transformation class is updated with this experiment and afterwards
         performs the transformation.
@@ -304,7 +300,6 @@ def units_to_si(units_system) -> Units:
         units: Units
             dataclass that contains the conversion factors to SI
         """
-
         if isinstance(units_system, Units):
             return units_system
         elif isinstance(units_system, str):
@@ -313,7 +308,7 @@ def units_to_si(units_system) -> Units:
             except KeyError:
                 raise KeyError(
                     f"The unit '{units_system}' is not implemented."
-                    f" The available units are: {[x for x in units_dict]}"
+                    f" The available units are: {list(units_dict)}"
                 )
         else:
             raise ValueError(
@@ -327,7 +322,6 @@ def _load_or_build(self) -> bool:
         Check if the experiment already exists and decide whether to load it or build a
         new one.
         """
-
         # Check if the experiment exists and load if it does.
         if Path(self.path).exists():
             log.debug(
@@ -434,7 +428,7 @@ def run_visualization(
 
     def set_charge(self, element: str, charge: float):
         """
-        Set the charge/s of an element
+        Set the charge/s of an element.
 
         Parameters
         ----------
@@ -443,14 +437,13 @@ def set_charge(self, element: str, charge: float):
         charge : list
                 New charge/s of the element
         """
-
         species = self.species
         species[element].charge = [charge]
         self.species = species
 
     def set_mass(self, element: str, mass: float):
         """
-        Set the mass/es of an element
+        Set the mass/es of an element.
 
         Parameters
         ----------
@@ -491,10 +484,9 @@ def add_data(
             Default: False
         update_with_pubchempy: bool
             Whether or not to look for the masses of the species in pubchempy.
-            Default: True
+            Default: True.
 
         """
-
         if isinstance(simulation_data, list):
             for elem in simulation_data:
                 proc = _get_processor(elem)
@@ -514,7 +506,7 @@ def _add_data_from_file_processor(
         update_with_pubchempy: bool = True,
     ):
         """
-        Add tensor_values to the database_path
+        Add tensor_values to the database_path.
 
         Parameters
         ----------
@@ -527,7 +519,6 @@ def _add_data_from_file_processor(
         update_with_pubchempy: bool
                 Whether or not to look for the masses of the species in pubchempy
         """
-
         already_read = str(file_processor) in self.read_files
         if already_read and not force:
             log.info(
@@ -606,7 +597,7 @@ def load_matrix(
         return database.load_data(path_list=path_list, select_slice=select_slice)
 
     def _store_metadata(self, metadata: TrajectoryMetadata, update_with_pubchempy=False):
-        """Save Metadata in the SQL DB
+        """Save Metadata in the SQL DB.
 
         Parameters
         ----------
@@ -629,7 +620,7 @@ def _store_metadata(self, metadata: TrajectoryMetadata, update_with_pubchempy=Fa
         if update_with_pubchempy:
             update_species_attributes_with_pubchempy(species_list)
         # store the species information in dict format
-        species_dict = dict()
+        species_dict = {}
         for sp_info in species_list:
             species_dict[sp_info.name] = {
                 # look here
@@ -650,7 +641,7 @@ def _store_metadata(self, metadata: TrajectoryMetadata, update_with_pubchempy=Fa
 
 def update_species_attributes_with_pubchempy(species_list: List[SpeciesInfo]):
     """
-    Add information to the species dictionary
+    Add information to the species dictionary.
 
     A fundamental part of this package is species specific analysis. Therefore, the
     Pubchempy package is used to add important species specific information to the
@@ -701,7 +692,7 @@ def _species_list_to_architecture_dict(species_list, n_configurations):
     Parameters
     ----------
     species_list
-    n_configurations
+    n_configurations.
 
     Returns
     -------
diff --git a/mdsuite/experiment/run.py b/mdsuite/experiment/run.py
index c53f8f85..3cd0a00d 100644
--- a/mdsuite/experiment/run.py
+++ b/mdsuite/experiment/run.py
@@ -1,8 +1,9 @@
-"""
+"""MDSuite run module.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
 https://www.eclipse.org/legal/epl-v20.html
-SPDX-License-Identifier: EPL-2.0
+SPDX-License-Identifier: EPL-2.0.
 
 Copyright Contributors to the Zincware Project.
 
@@ -55,12 +56,12 @@
 
 
 class RunComputation:
-    """Collection of all calculators that can be used by an experiment"""
+    """Collection of all calculators that can be used by an experiment."""
 
     def __init__(
         self, experiment: Experiment = None, experiments: List[Experiment] = None
     ):
-        """Collection of all calculators
+        """Collection of all calculators.
 
         Parameters
         ----------
@@ -87,7 +88,7 @@ def wrapper(*args, **kwargs):
         return wrapper
 
     def transformation_wrapper(self, func: Union[Type[Transformations], Any]):
-        """Run the transformation for every selected experiment
+        """Run the transformation for every selected experiment.
 
         Parameters
         ----------
diff --git a/mdsuite/experiment/run_module.py b/mdsuite/experiment/run_module.py
index 8f1d0608..9aea3351 100644
--- a/mdsuite/experiment/run_module.py
+++ b/mdsuite/experiment/run_module.py
@@ -33,7 +33,7 @@
 
 
 class RunModule:
-    """Run a calculator from the experiment class
+    """Run a calculator from the experiment class.
 
     Notes
     -----
@@ -52,7 +52,7 @@ def __init__(self, parent, module_dict, **kwargs):
             A dictionary containing all the modules / calculators / Time series
             operations with their names as keys
         kwargs:
-            Additional parameters to be passed to the module_dict
+            Additional parameters to be passed to the module_dict.
         """
         self.parent: Experiment = parent
         self._kwargs = kwargs
@@ -63,9 +63,10 @@ def __init__(self, parent, module_dict, **kwargs):
     def __getattribute__(self, item):
         """Call via function
         You can call the computation via a function and autocompletion
-        >>> self.run.EinsteinDiffusionCoefficients(plot=True)
+        >>> self.run.EinsteinDiffusionCoefficients(plot=True).
 
         Returns
+        -------
             Instantiated calculator class with added experiment that can be called.
         """
         if item.startswith("_"):
diff --git a/mdsuite/file_io/chemfiles_read.py b/mdsuite/file_io/chemfiles_read.py
index e7689332..fd68e211 100644
--- a/mdsuite/file_io/chemfiles_read.py
+++ b/mdsuite/file_io/chemfiles_read.py
@@ -1,3 +1,4 @@
+"""Test MDSuites chemfiles read module."""
 import pathlib
 import typing
 
@@ -15,7 +16,7 @@
 class ChemfilesRead(mdsuite.file_io.file_read.FileProcessor):
     """
     Read trajectory files via chemfiles.
-    See https://chemfiles.org/chemfiles/0.10.0/formats.html for supported data formats
+    See https://chemfiles.org/chemfiles/0.10.0/formats.html for supported data formats.
     """
 
     def __init__(
@@ -97,7 +98,7 @@ def _get_metadata(self) -> TrajectoryMetadata:
             else:
                 self.properties_in_file[mds_prop] = chemfile_attr_name
 
-        species_list = list()
+        species_list = []
         for key, val in self.species_name_to_line_idxs_dict.items():
             species_list.append(
                 mdsuite.database.simulation_database.SpeciesInfo(
@@ -116,10 +117,7 @@ def _get_metadata(self) -> TrajectoryMetadata:
     def get_configurations_generator(
         self,
     ) -> typing.Iterator[mdsuite.file_io.file_read.TrajectoryChunkData]:
-        """
-        Implement parent abstract method
-        """
-
+        """Implement parent abstract method."""
         batch_size = mdsuite.utils.meta_functions.optimize_batch_size(
             filepath=self.traj_file_path,
             number_of_configurations=self.metadata.n_configurations,
diff --git a/mdsuite/file_io/extxyz_files.py b/mdsuite/file_io/extxyz_files.py
index af6ba701..4e255863 100644
--- a/mdsuite/file_io/extxyz_files.py
+++ b/mdsuite/file_io/extxyz_files.py
@@ -53,9 +53,7 @@
 
 
 class EXTXYZFile(mdsuite.file_io.tabular_text_files.TabularTextFileProcessor):
-    """
-    Reader for extxyz files
-    """
+    """Reader for extxyz files."""
 
     def __init__(
         self, file_path: typing.Union[str, pathlib.Path], custom_data_map: dict = None
@@ -84,9 +82,7 @@ def __init__(
     def _get_tabular_text_reader_mdata(
         self,
     ) -> mdsuite.file_io.tabular_text_files.TabularTextFileReaderMData:
-        """
-        Implement abstract parent method
-        """
+        """Implement abstract parent method."""
         with open(self.file_path, "r") as file:
             # first header line: number of particles
             n_particles = int(file.readline())
@@ -160,7 +156,7 @@ def _get_metadata(self):
 
     def _get_species_information(self, file, species_idx: int, n_particles: int):
         """
-        Get the initial species information
+        Get the initial species information.
 
         Parameters
         ----------
@@ -189,7 +185,7 @@ def _get_species_information(self, file, species_idx: int, n_particles: int):
 
 def _get_box_l(header: str) -> list:
     """
-    Get the box lengths from the Lattice property in the header
+    Get the box lengths from the Lattice property in the header.
 
     Parameters
     ----------
@@ -232,10 +228,11 @@ def _get_time(header: str) -> float:
     """
     Retrieve the time value from a header line.
     Can be used to infer the sampling step by calling on consecutive config headers.
+
     Parameters
     ----------
     header
-        The extxyz header line as one string
+        The extxyz header line as one string.
     """
     data = copy.deepcopy(header).split()
     time = None
diff --git a/mdsuite/file_io/file_read.py b/mdsuite/file_io/file_read.py
index 5988907c..ed25ed27 100644
--- a/mdsuite/file_io/file_read.py
+++ b/mdsuite/file_io/file_read.py
@@ -45,7 +45,7 @@ class FileProcessor(abc.ABC):
     def __str__(self):
         """
         Return a unique string representing this FileProcessor. (
-        The absolute file path, for example)
+        The absolute file path, for example).
         """
         raise NotImplementedError("File Processors must implement a string")
 
@@ -54,7 +54,7 @@ def _get_metadata(self) -> TrajectoryMetadata:
         """
         Return the metadata required to build a database.
         See mdsuite.database.simulation_database.TrajectoryMetadata to see the details of
-        which values must be extracted from the file
+        which values must be extracted from the file.
         """
         raise NotImplementedError("File Processors must implement metadata extraction")
 
diff --git a/mdsuite/file_io/lammps_flux_files.py b/mdsuite/file_io/lammps_flux_files.py
index c6d77c89..9e1705cf 100644
--- a/mdsuite/file_io/lammps_flux_files.py
+++ b/mdsuite/file_io/lammps_flux_files.py
@@ -50,7 +50,7 @@
 
 
 class LAMMPSFluxFile(mdsuite.file_io.tabular_text_files.TabularTextFileProcessor):
-    """LAMMPS Flux file reader"""
+    """LAMMPS Flux file reader."""
 
     def __init__(
         self,
@@ -80,7 +80,7 @@ def __init__(
             Dictionary connecting the name in the mdsuite database to the name of the
             corresponding columns
             example:
-            {"Thermal_Flux":["c_flux_thermal[1]","c_flux_thermal[2]","c_flux_thermal[3]"]}
+            {"Thermal_Flux":["c_flux_thermal[1]","c_flux_thermal[2]","c_flux_thermal[3]"]}.
         """
         super(LAMMPSFluxFile, self).__init__(
             file_path,
@@ -96,9 +96,7 @@ def __init__(
     def _get_tabular_text_reader_mdata(
         self,
     ) -> mdsuite.file_io.tabular_text_files.TabularTextFileReaderMData:
-        """
-        Implement abstract parent method
-        """
+        """Implement abstract parent method."""
         with open(self.file_path, "r") as file:
             with open(self.file_path, "r") as file:
                 file.seek(0)
diff --git a/mdsuite/file_io/lammps_trajectory_files.py b/mdsuite/file_io/lammps_trajectory_files.py
index 09a0365b..66344dba 100644
--- a/mdsuite/file_io/lammps_trajectory_files.py
+++ b/mdsuite/file_io/lammps_trajectory_files.py
@@ -67,9 +67,7 @@
 
 
 class LAMMPSTrajectoryFile(mdsuite.file_io.tabular_text_files.TabularTextFileProcessor):
-    """
-    Reader for LAMMPS files
-    """
+    """Reader for LAMMPS files."""
 
     def __init__(
         self,
@@ -105,9 +103,7 @@ def __init__(
     def _get_tabular_text_reader_mdata(
         self,
     ) -> mdsuite.file_io.tabular_text_files.TabularTextFileReaderMData:
-        """
-        Implement abstract parent method
-        """
+        """Implement abstract parent method."""
         with open(self.file_path, "r") as file:
             header = mdsuite.file_io.tabular_text_files.read_n_lines(
                 file, self.n_header_lines, start_at=0
@@ -187,7 +183,7 @@ def _get_species_information(
     ):
         """
         Get the information which species are present and which particle ids/ lines in
-        the file belong to them
+        the file belong to them.
 
         Parameters
         ----------
@@ -209,7 +205,7 @@ def _get_species_information(
         else:
             raise ValueError("Insufficient species or type identification available.")
 
-        species_dict = dict()
+        species_dict = {}
         # skip the header
         mdsuite.file_io.tabular_text_files.skip_n_lines(file, self.n_header_lines)
         # read one configuration
@@ -273,7 +269,6 @@ def extract_properties_from_header(
         {'MDSuite_Property_1': [column_indices], 'MDSuite_Property_2': ...}
         Example {'Unwrapped_Positions': [2,3,4], 'Velocities': [5,6,8]}
     """
-
     column_dict_properties = {
         variable: idx for idx, variable in enumerate(header_property_names)
     }
diff --git a/mdsuite/file_io/script_input.py b/mdsuite/file_io/script_input.py
index c78ac54c..31fd5eca 100644
--- a/mdsuite/file_io/script_input.py
+++ b/mdsuite/file_io/script_input.py
@@ -1,3 +1,4 @@
+"""MDSuite script input module."""
 import typing
 
 import mdsuite.file_io.file_read
@@ -7,7 +8,7 @@
 class ScriptInput(mdsuite.file_io.file_read.FileProcessor):
     """
     For testing purposes. Does not actually process files, instead uses data given
-     on instantiation
+     on instantiation.
     """
 
     def __init__(
@@ -20,7 +21,7 @@ def __init__(
         data
         metadata
         name : A unique name for this dataset. Used to prevent multiple adding of the
-         same data
+         same data.
         """
         self.data = data
         self.mdata = metadata
diff --git a/mdsuite/file_io/tabular_text_files.py b/mdsuite/file_io/tabular_text_files.py
index 7eae9e40..704d5ee5 100644
--- a/mdsuite/file_io/tabular_text_files.py
+++ b/mdsuite/file_io/tabular_text_files.py
@@ -1,3 +1,4 @@
+"""MDSuite Tabular Text file reader module."""
 import abc
 import copy
 import dataclasses
@@ -15,7 +16,7 @@
 @dataclasses.dataclass
 class TabularTextFileReaderMData:
     """Class to hold the data that needs to be extracted from tabular text files before
-    reading them
+    reading them.
 
     Attributes
     ----------
@@ -55,7 +56,7 @@ class TabularTextFileReaderMData:
 
 class TabularTextFileProcessor(mdsuite.file_io.file_read.FileProcessor):
     """Parent class for all file readers that are based on tabular text data
-    (e.g. lammps, extxyz,...)
+    (e.g. lammps, extxyz,...).
     """
 
     def __init__(
@@ -83,7 +84,7 @@ def __init__(
         custom_column_names:
             Dict connecting user-defined properties the column names. To be provided by
             the user.
-            Example: {'MyMagicProperty':['MMP1', 'MMP2']}
+            Example: {'MyMagicProperty':['MMP1', 'MMP2']}.
         """
         self.file_path = pathlib.Path(file_path).resolve()
         my_file_format_column_names = copy.deepcopy(file_format_column_names)
@@ -105,7 +106,7 @@ def _get_tabular_text_reader_mdata(self) -> TabularTextFileReaderMData:
         """
         Child classes of TabularTextFileProcessor must implement this function, so its
         output can be used in get_configurations_generator.
-        See TabularTextFileReaderData for the data that needs to be provided
+        See TabularTextFileReaderData for the data that needs to be provided.
         """
         raise NotImplementedError("Tabular text files must implement this function")
 
@@ -125,7 +126,7 @@ def get_configurations_generator(
         TabularTextFiles implements the parent virtual function,
         but requires its children to provide the necessary information about the table
         contents,
-        see self._get_tabular_text_reader_data
+        see self._get_tabular_text_reader_data.
         """
         n_configs = self.tabular_text_reader_data.n_configs
 
@@ -173,7 +174,7 @@ def _read_process_n_configurations(
         n_header_lines:
             Number of header lines PER CONFIG
         -------
-            The chunk for your reader output
+            The chunk for your reader output.
         """
         species_list = self.metadata.species_list
         chunk = mdsuite.database.simulation_database.TrajectoryChunkData(
@@ -225,7 +226,7 @@ def read_n_lines(file, n_lines: int, start_at: int = None) -> list:
     If start_at is None, read from the current file state
     Returns
     -------
-    A list of strings, one string for each line
+    A list of strings, one string for each line.
     """
     if start_at is not None:
         file.seek(0)
@@ -239,7 +240,7 @@ def skip_n_lines(file, n_lines: int) -> None:
     Parameters
     ----------
     file: the file where we skip lines
-    n_lines: the number of lines to skip
+    n_lines: the number of lines to skip.
 
     Returns
     -------
@@ -255,10 +256,10 @@ def get_species_list_from_tabular_text_reader_data(
     """
     Use the data collected in TabularTextFileProcessor._get_tabular_text_reader_data() to
     get the values necessary for
-    TabularTextFileProcessor.metadata
+    TabularTextFileProcessor.metadata.
     """
     # all species have the same properties
-    properties_list = list()
+    properties_list = []
     for (
         key,
         val,
@@ -267,7 +268,7 @@ def get_species_list_from_tabular_text_reader_data(
             mdsuite.database.simulation_database.PropertyInfo(name=key, n_dims=len(val))
         )
 
-    species_list = list()
+    species_list = []
     for key, val in tabular_text_reader_data.species_name_to_line_idx_dict.items():
         species_list.append(
             mdsuite.database.simulation_database.SpeciesInfo(
diff --git a/mdsuite/graph_modules/adjacency_matrix.py b/mdsuite/graph_modules/adjacency_matrix.py
index 41e838fc..7488c890 100644
--- a/mdsuite/graph_modules/adjacency_matrix.py
+++ b/mdsuite/graph_modules/adjacency_matrix.py
@@ -27,12 +27,8 @@
 
 
 class AdjacencyMatrix:
-    """
-    Class for the adjacency matrix of a simulation
-    """
+    """Class for the adjacency matrix of a simulation."""
 
     def __init__(self):
-        """
-        Constructor for the adjacency matrix module.
-        """
+        """Constructor for the adjacency matrix module."""
         pass
diff --git a/mdsuite/graph_modules/molecular_graph.py b/mdsuite/graph_modules/molecular_graph.py
index 8960a16d..2e9b1afc 100644
--- a/mdsuite/graph_modules/molecular_graph.py
+++ b/mdsuite/graph_modules/molecular_graph.py
@@ -308,6 +308,7 @@ def _split_decomposed_graphs(self, graph_dict: dict) -> dict:
         graph_dict : dict
                 Dict of decomposed graphs to be converted into correct particle species
                 indices.
+
         Returns
         -------
         group_dict : dict
@@ -395,7 +396,6 @@ def _apply_system_cutoff(input_tensor: tf.Tensor, cutoff: float) -> tf.Tensor:
             and 0s indicated no bonding. Note, the diagonals of this tensor are
             set to 0 as a particle cannot bond itself.
     """
-
     cutoff_mask = tf.cast(
         tf.less(input_tensor, cutoff), dtype=tf.int16
     )  # Construct the mask
@@ -405,7 +405,7 @@ def _apply_system_cutoff(input_tensor: tf.Tensor, cutoff: float) -> tf.Tensor:
 
 def get_neighbour_list(positions: tf.Tensor, cell: list = None) -> tf.Tensor:
     """
-    Generate the neighbour list
+    Generate the neighbour list.
 
     Parameters
     ----------
diff --git a/mdsuite/memory_management/memory_manager.py b/mdsuite/memory_management/memory_manager.py
index e4c945fc..f0ce2e07 100644
--- a/mdsuite/memory_management/memory_manager.py
+++ b/mdsuite/memory_management/memory_manager.py
@@ -45,7 +45,7 @@
 
 class MemoryManager:
     """
-    A class to manage memory during MDSuite operations
+    A class to manage memory during MDSuite operations.
 
     In most MDSuite operations the memory requirements of a complete procedure will be
     greater than what is available to the average computer. Therefore, some degree of
@@ -135,7 +135,7 @@ def __init__(
     @staticmethod
     def _select_scale_function(input_dict: dict):
         """
-        select a scale function
+        select a scale function.
 
         Parameters
         ----------
@@ -155,6 +155,7 @@ def _string_to_function(argument: str):
             ----------
             argument : str
                     String to use in the matching.
+
             Returns
             -------
             function : Callable
@@ -220,7 +221,7 @@ def get_batch_size(self) -> tuple:
     @staticmethod
     def hdf5_load_time(n: int):
         """
-        Describes the load time of a hdf5 database i.e. O(log N)
+        Describes the load time of a hdf5 database i.e. O(log N).
 
         Parameters
         ----------
diff --git a/mdsuite/project/project.py b/mdsuite/project/project.py
index f04f32dc..3c09a01b 100644
--- a/mdsuite/project/project.py
+++ b/mdsuite/project/project.py
@@ -16,7 +16,7 @@
 --------
 If you use this module please cite us with:
 Summary
--------
+-------.
 """
 from __future__ import annotations
 
@@ -84,7 +84,7 @@ def __init__(
         storage_path: Union[str, Path] = "./",
         description: str = None,
     ):
-        """Project class constructor
+        """Project class constructor.
 
         The constructor will check to see if the project already exists, if so,
         it will load the state of each of the classes so that they can be used
@@ -127,8 +127,7 @@ def __init__(
         self.description = description
 
     def attach_file_logger(self):
-        """Attach a file logger for this project"""
-
+        """Attach a file logger for this project."""
         logger = logging.getLogger("mdsuite")
         formatter = logging.Formatter(
             "%(asctime)s %(levelname)s (%(module)s): %(message)s"
@@ -164,7 +163,7 @@ def add_experiment(
             str, pathlib.Path, mdsuite.file_io.file_read.FileProcessor, list
         ] = None,  # TODO make this the second argument, (name, data, ...)
     ) -> Experiment:
-        """Add an experiment to the project
+        """Add an experiment to the project.
 
         Parameters
         ----------
@@ -191,7 +190,7 @@ def add_experiment(
         Using custom NoneType to raise a custom ValueError message with useful info.
 
         Returns
-        --------
+        -------
         Experiment:
             The experiment object that was added to the project
 
@@ -237,21 +236,21 @@ def add_experiment(
         return self.experiments[name]
 
     def load_experiments(self, names: Union[str, list]):
-        """Alias for activate_experiments"""
+        """Alias for activate_experiments."""
         self.activate_experiments(names)
 
     def activate_experiments(self, names: Union[str, list]):
-        """Load experiments, such that they are used for the computations
+        """Load experiments, such that they are used for the computations.
 
         Parameters
         ----------
         names: Name or list of names of experiments that should be instantiated
                and loaded into self.experiments.
+
         Returns
         -------
         Updates the class state.
         """
-
         if isinstance(names, str):
             names = [names]
 
@@ -259,7 +258,7 @@ def activate_experiments(self, names: Union[str, list]):
             self.experiments[name].active = True
 
     def disable_experiments(self, names: Union[str, list]):
-        """Disable experiments
+        """Disable experiments.
 
         Parameters
         ----------
@@ -269,7 +268,6 @@ def disable_experiments(self, names: Union[str, list]):
         -------
 
         """
-
         if isinstance(names, str):
             names = [names]
 
@@ -294,25 +292,23 @@ def add_data(self, data_sets: dict):
         -------
         Updates the experiment classes.
         """
-
         for key, val in data_sets.items():
             self.experiments[key].add_data(val)
 
     @property
     def run(self) -> RunComputation:
-        """Method to access the available calculators
+        """Method to access the available calculators.
 
         Returns
         -------
         RunComputation:
             class that has all available calculators as properties
         """
-        return RunComputation(experiments=[x for x in self.active_experiments.values()])
+        return RunComputation(experiments=list(self.active_experiments.values()))
 
     @property
     def experiments(self) -> Dict[str, Experiment]:
-        """Get a DotDict of instantiated experiments!"""
-
+        """Get a DotDict of instantiated experiments!."""
         with self.session as ses:
             db_experiments = ses.query(db.Experiment).all()
 
@@ -325,8 +321,7 @@ def experiments(self) -> Dict[str, Experiment]:
 
     @property
     def active_experiments(self) -> Dict[str, Experiment]:
-        """Get a DotDict of instantiated experiments that are currently selected!"""
-
+        """Get a DotDict of instantiated experiments that are currently selected!."""
         active_experiment = {
             key: val for key, val in self.experiments.items() if val.active
         }
diff --git a/mdsuite/time_series/base.py b/mdsuite/time_series/base.py
index c2682b6f..89be20f6 100644
--- a/mdsuite/time_series/base.py
+++ b/mdsuite/time_series/base.py
@@ -38,13 +38,15 @@
     from mdsuite import Experiment
 
 
-def running_mean(x, N):
-    """Perform a rolling window mean"""
+def running_mean(x, size):
+    """Perform a rolling window mean."""
     cumsum = np.cumsum(np.insert(x, 0, 0))
-    return (cumsum[N:] - cumsum[:-N]) / float(N)
+    return (cumsum[size:] - cumsum[:-size]) / float(size)
 
 
 class TimeSeries:
+    """Time Series class."""
+
     def __init__(self, experiment: Experiment):
         """
 
@@ -73,14 +75,14 @@ def __call__(self, species: list = None, rolling_window: int = 0):
 
     @property
     def database(self):
-        """Get the database"""
+        """Get the database."""
         if self._database is None:
             self._database = Database(self.experiment.database_path / "database.hdf5")
         return self._database
 
     @property
     def data(self):
-        """Get the data for all species and timesteps for the loaded_property"""
+        """Get the data for all species and timesteps for the loaded_property."""
         if self._data is None:
             self._data = tf.concat(
                 [
@@ -93,7 +95,7 @@ def data(self):
 
     @property
     def preprocess_data(self):
-        """Perform some data preprocessing before plotting it"""
+        """Perform some data preprocessing before plotting it."""
         data = self.data
         if self.reduce_sum:
             data = tf.einsum("atx -> t", data)
@@ -105,7 +107,7 @@ def preprocess_data(self):
         return data
 
     def plot(self):
-        """Plot the data over timesteps"""
+        """Plot the data over timesteps."""
         fig, ax = plt.subplots()
         ax.plot(self.preprocess_data)
         ax.set_xlabel(self.fig_labels["x"])
diff --git a/mdsuite/time_series/energies.py b/mdsuite/time_series/energies.py
index 4169f931..a7e4da65 100644
--- a/mdsuite/time_series/energies.py
+++ b/mdsuite/time_series/energies.py
@@ -35,6 +35,8 @@
 
 
 class Energies(TimeSeries):
+    """Energies Time Series class."""
+
     def __init__(self, experiment: Experiment):
         super().__init__(experiment)
         self.loaded_property = "PE"
diff --git a/mdsuite/transformations/integrated_heat_current.py b/mdsuite/transformations/integrated_heat_current.py
index 06fb2ed3..56334f9b 100644
--- a/mdsuite/transformations/integrated_heat_current.py
+++ b/mdsuite/transformations/integrated_heat_current.py
@@ -33,10 +33,7 @@
 
 
 class IntegratedHeatCurrent(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the integrated heat current (positions * energies)
-
-    """
+    """Transformation to calculate the integrated heat current (positions * energies)."""
 
     def __init__(self):
         super(IntegratedHeatCurrent, self).__init__(
diff --git a/mdsuite/transformations/ionic_current.py b/mdsuite/transformations/ionic_current.py
index cc70d48c..f8261dd8 100644
--- a/mdsuite/transformations/ionic_current.py
+++ b/mdsuite/transformations/ionic_current.py
@@ -33,10 +33,7 @@
 
 
 class IonicCurrent(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the ionic current (charge * velocities)
-
-    """
+    """Transformation to calculate the ionic current (charge * velocities)."""
 
     def __init__(self):
         super(IonicCurrent, self).__init__(
diff --git a/mdsuite/transformations/kinaci_integrated_heat_current.py b/mdsuite/transformations/kinaci_integrated_heat_current.py
index 382e690c..0fb01bd6 100644
--- a/mdsuite/transformations/kinaci_integrated_heat_current.py
+++ b/mdsuite/transformations/kinaci_integrated_heat_current.py
@@ -34,10 +34,7 @@
 
 
 class KinaciIntegratedHeatCurrent(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the Kinaci integrated heat current
-
-    """
+    """Transformation to calculate the Kinaci integrated heat current."""
 
     def __init__(self):
         super(KinaciIntegratedHeatCurrent, self).__init__(
diff --git a/mdsuite/transformations/map_molecules.py b/mdsuite/transformations/map_molecules.py
index 81d4c6cb..697735f1 100644
--- a/mdsuite/transformations/map_molecules.py
+++ b/mdsuite/transformations/map_molecules.py
@@ -61,9 +61,7 @@ class MolecularMap(Transformations):
     """
 
     def __init__(self):
-        """
-        Constructor for the MolecularMap class.
-        """
+        """Constructor for the MolecularMap class."""
         super().__init__()
         self.molecules = None  # parsed by the user.
         self.reference_molecules = {}
@@ -82,6 +80,7 @@ def _prepare_database_entry(self, species: str, number_of_molecules: int) -> dic
                 Name of the species to be added
         number_of_molecules : int
                 Number of molecules to be added to the database.
+
         Returns
         -------
         data_structure : dict
@@ -98,7 +97,7 @@ def _prepare_database_entry(self, species: str, number_of_molecules: int) -> dic
         # data_structure = {path: {"indices": np.s_[:], "columns": [0, 1, 2]}}
         data_structure = {
             path: {
-                "indices": [i for i in range(number_of_molecules)],
+                "indices": list(range(number_of_molecules)),
                 "columns": [0, 1, 2],
             }
         }
@@ -126,6 +125,7 @@ def _get_mass_array(self, species: list) -> list:
         ----------
         species : list
                 List of species to be loaded.
+
         Returns
         -------
         mass_array : list
diff --git a/mdsuite/transformations/momentum_flux.py b/mdsuite/transformations/momentum_flux.py
index fc452383..df2d89d9 100644
--- a/mdsuite/transformations/momentum_flux.py
+++ b/mdsuite/transformations/momentum_flux.py
@@ -33,9 +33,7 @@
 
 
 class MomentumFlux(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the momentum flux
-    """
+    """Transformation to calculate the momentum flux."""
 
     def __init__(self):
         super(MomentumFlux, self).__init__(
diff --git a/mdsuite/transformations/scale_coordinates.py b/mdsuite/transformations/scale_coordinates.py
index 6386f4d1..6275d6a8 100644
--- a/mdsuite/transformations/scale_coordinates.py
+++ b/mdsuite/transformations/scale_coordinates.py
@@ -33,9 +33,7 @@
 
 
 class ScaleCoordinates(SingleSpeciesTrafo):
-    """
-    Scale coordinates by multiplying them with the box size
-    """
+    """Scale coordinates by multiplying them with the box size."""
 
     def __init__(self):
         super(ScaleCoordinates, self).__init__(
@@ -50,9 +48,7 @@ def __init__(self):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> tf.Tensor:
-        """
-        Implement parent class abstract method.
-        """
+        """Implement parent class abstract method."""
         pos = batch[mdsuite_properties.scaled_positions.name]
         box_l = batch[mdsuite_properties.box_length.name]
         return pos * box_l
diff --git a/mdsuite/transformations/thermal_flux.py b/mdsuite/transformations/thermal_flux.py
index 81b71df6..015c6f4c 100644
--- a/mdsuite/transformations/thermal_flux.py
+++ b/mdsuite/transformations/thermal_flux.py
@@ -34,10 +34,7 @@
 
 
 class ThermalFlux(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the integrated heat current (positions * energies)
-
-    """
+    """Transformation to calculate the integrated heat current (positions * energies)."""
 
     def __init__(self):
         super(ThermalFlux, self).__init__(
diff --git a/mdsuite/transformations/transformations.py b/mdsuite/transformations/transformations.py
index 63c2f5af..9cea7176 100644
--- a/mdsuite/transformations/transformations.py
+++ b/mdsuite/transformations/transformations.py
@@ -51,10 +51,14 @@
 
 
 class CannotFindTransformationError(Exception):
+    """Exception for when a transformation cannot be found."""
+
     pass
 
 
 class CannotFindPropertyError(Exception):
+    """Exception for when a property cannot be found."""
+
     pass
 
 
@@ -127,7 +131,7 @@ def __init__(
 
     @property
     def database(self):
-        """Update the database
+        """Update the database.
 
         replace for https://github.com/zincware/MDSuite/issues/404
         """
@@ -137,7 +141,7 @@ def database(self):
 
     @property
     def experiment(self) -> Experiment:
-        """TODO replace for https://github.com/zincware/MDSuite/issues/404"""
+        """TODO replace for https://github.com/zincware/MDSuite/issues/404."""
         return self._experiment
 
     @experiment.setter
@@ -154,6 +158,7 @@ def _run_dataset_check(self, path: str):
         ----------
         path : str
                 dataset path to check.
+
         Returns
         -------
         outcome : bool
@@ -177,11 +182,10 @@ def _save_output(
         -------
         saves the tensor_values to the database_path.
         """
-
         # turn data into trajectory chunk
         # data_structure is dict {'/path/to/property':{'indices':irrelevant,
         #                           'columns':deduce->deduce n_dims, 'length':n_particles}
-        species_list = list()
+        species_list = []
         # data structure only has 1 element
         key, val = list(data_structure.items())[0]
         path = str(copy.copy(key))
@@ -269,7 +273,7 @@ def _prepare_monitors(self, data_path: Union[list, np.array]):
 
     def _prepare_database_entry(self, species: str, system_tensor=False):
         """
-        Add or extend the dataset in which the transformation result is stored
+        Add or extend the dataset in which the transformation result is stored.
 
         Parameters
         ----------
@@ -281,7 +285,6 @@ def _prepare_database_entry(self, species: str, system_tensor=False):
         tensor_values structure for use in saving the tensor_values to the
         database_path.
         """
-
         if system_tensor:
             output_length = 1
             path = join_path(self.output_property.name, self.output_property.name)
@@ -446,7 +449,7 @@ def run_transformation(self, species: typing.Iterable[str] = None):
         Parameters
         ----------
         species : Iterable[str]
-            Names of the species on which to perform the transformation
+            Names of the species on which to perform the transformation.
 
         Returns
         -------
@@ -520,6 +523,7 @@ def transform_batch(
     ) -> typing.Union[tf.Tensor, typing.Tuple[tf.Tensor, typing.Any]]:
         """
         Do the actual transformation.
+
         Parameters
         ----------
         batch : dict
@@ -527,7 +531,7 @@ def transform_batch(
             {'Property1': tansordata, ...}
         carryover : any
             if the transformation batching is only possible with carryover,
-            this argument will provide it
+            this argument will provide it.
 
         Returns
         -------
@@ -542,7 +546,7 @@ def transform_batch(
 class MultiSpeciesTrafo(Transformations):
     """
     Base class for all transformations, where information of multiple species is combined
-    in the transformation of a new property
+    in the transformation of a new property.
     """
 
     def run_transformation(self, species: typing.Iterable[str] = None) -> None:
@@ -552,7 +556,7 @@ def run_transformation(self, species: typing.Iterable[str] = None) -> None:
         Parameters
         ----------
         species : Iterable[str]
-            Names of the species on which to perform the transformation
+            Names of the species on which to perform the transformation.
 
         Returns
         -------
@@ -621,6 +625,7 @@ def transform_batch(
     ) -> tf.Tensor | typing.Tuple[tf.Tensor, typing.Any]:
         """
         Do the actual transformation.
+
         Parameters
         ----------
         batch : dict
diff --git a/mdsuite/transformations/translational_dipole_moment.py b/mdsuite/transformations/translational_dipole_moment.py
index ed7d2508..796889df 100644
--- a/mdsuite/transformations/translational_dipole_moment.py
+++ b/mdsuite/transformations/translational_dipole_moment.py
@@ -33,10 +33,7 @@
 
 
 class TranslationalDipoleMoment(MultiSpeciesTrafo):
-    """
-    Transformation to calculate the translational dipole moment (charge * positions)
-
-    """
+    """Transformation to compute the translational dipole moment (charge * positions)."""
 
     def __init__(self):
         super(TranslationalDipoleMoment, self).__init__(
diff --git a/mdsuite/transformations/unwrap_coordinates.py b/mdsuite/transformations/unwrap_coordinates.py
index 4d5d1a18..4b177de1 100644
--- a/mdsuite/transformations/unwrap_coordinates.py
+++ b/mdsuite/transformations/unwrap_coordinates.py
@@ -35,7 +35,7 @@
 class CoordinateUnwrapper(SingleSpeciesTrafo):
     """
     Unwrap coordinates by checking if particles moved from one side of the box to
-    the other within one time step
+    the other within one time step.
     """
 
     def __init__(self):
@@ -51,9 +51,7 @@ def __init__(self):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> typing.Tuple[tf.Tensor, dict]:
-        """
-        Implement parent class abstract method.
-        """
+        """Implement parent class abstract method."""
         pos = batch[mdsuite_properties.positions.name]
         box_l = batch[mdsuite_properties.box_length.name]
 
diff --git a/mdsuite/transformations/unwrap_via_indices.py b/mdsuite/transformations/unwrap_via_indices.py
index 2a39abaf..53224e90 100644
--- a/mdsuite/transformations/unwrap_via_indices.py
+++ b/mdsuite/transformations/unwrap_via_indices.py
@@ -33,9 +33,7 @@
 
 
 class UnwrapViaIndices(SingleSpeciesTrafo):
-    """
-    Unwrap corrdinates via the box images (pos + box_length * box_image_idx)
-    """
+    """Unwrap corrdinates via the box images (pos + box_length * box_image_idx)."""
 
     def __init__(self):
         super(UnwrapViaIndices, self).__init__(
@@ -51,9 +49,7 @@ def __init__(self):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> tf.Tensor:
-        """
-        Implement parent class abstract method.
-        """
+        """Implement parent class abstract method."""
         pos = batch[mdsuite_properties.positions.name]
         box_im = batch[mdsuite_properties.box_images.name]
         box_l = batch[mdsuite_properties.box_length.name]
diff --git a/mdsuite/transformations/velocity_from_positions.py b/mdsuite/transformations/velocity_from_positions.py
index b3f6734a..1f294d3b 100644
--- a/mdsuite/transformations/velocity_from_positions.py
+++ b/mdsuite/transformations/velocity_from_positions.py
@@ -1,7 +1,8 @@
-"""
+"""Velocity from positions Trafo module.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
-https://www.eclipse.org/legal/epl-v20.html
+https://www.eclipse.org/legal/epl-v20.html.
 
 SPDX-License-Identifier: EPL-2.0
 
@@ -41,9 +42,7 @@ def __init__(self):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> tf.Tensor:
-        """
-        Implement parent class abstract method.
-        """
+        """Implement parent class abstract method."""
         pos = batch[mdsuite_properties.unwrapped_positions.name]
         dt = (
             batch[mdsuite_properties.time_step.name]
diff --git a/mdsuite/transformations/wrap_coordinates.py b/mdsuite/transformations/wrap_coordinates.py
index 35902b5b..8c904843 100644
--- a/mdsuite/transformations/wrap_coordinates.py
+++ b/mdsuite/transformations/wrap_coordinates.py
@@ -34,13 +34,11 @@
 
 
 class CoordinateWrapper(SingleSpeciesTrafo):
-    """
-    Wrap coordinates into the simulation box
-    """
+    """Wrap coordinates into the simulation box."""
 
     def __init__(self, center_box: bool = True):
         """
-        Class init
+        Class init.
 
         Parameters
         ----------
@@ -63,9 +61,7 @@ def __init__(self, center_box: bool = True):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> tf.Tensor:
-        """
-        Implement parent class abstract method.
-        """
+        """Implement parent class abstract method."""
         unwrap_pos = batch[mdsuite_properties.unwrapped_positions.name]
         box_l = batch[mdsuite_properties.box_length.name]
 
diff --git a/mdsuite/utils/calculator_helper_methods.py b/mdsuite/utils/calculator_helper_methods.py
index 9422ab04..7e8001e6 100644
--- a/mdsuite/utils/calculator_helper_methods.py
+++ b/mdsuite/utils/calculator_helper_methods.py
@@ -42,7 +42,7 @@ def fit_einstein_curve(
     x_data: np.ndarray, y_data: np.ndarray, fit_max_index: int
 ) -> Tuple[Union[ndarray, Iterable, int, float], Any, list, list]:
     """
-    Fit operation for Einstein calculations
+    Fit operation for Einstein calculations.
 
     Parameters
     ----------
diff --git a/mdsuite/utils/colours.py b/mdsuite/utils/colours.py
index de0569da..92f48a13 100644
--- a/mdsuite/utils/colours.py
+++ b/mdsuite/utils/colours.py
@@ -1,9 +1,10 @@
+"""MDSuite colours module."""
 import dataclasses
 
 
 @dataclasses.dataclass
 class Colour:
-    """Collection of colours that are used by MDSuite
+    """Collection of colours that are used by MDSuite.
 
     Names generated by https://www.htmlcsscolor.com
     """
diff --git a/mdsuite/utils/config.py b/mdsuite/utils/config.py
index 2c576372..ed67728e 100644
--- a/mdsuite/utils/config.py
+++ b/mdsuite/utils/config.py
@@ -29,10 +29,10 @@
 
 @dataclass
 class Config:
-    """Collection of MDSuite configurations
+    """Collection of MDSuite configurations.
 
     Attributes
-    -----------
+    ----------
     bokeh_sizing_mode: str
         The way bokeh scales plots.
         see bokeh / sizing_mode for more information
diff --git a/mdsuite/utils/database.py b/mdsuite/utils/database.py
index 61fc151c..8817ba85 100644
--- a/mdsuite/utils/database.py
+++ b/mdsuite/utils/database.py
@@ -27,7 +27,7 @@
 
 
 def get_or_create(session, model, **kwargs):
-    """Query or create an instance of a model
+    """Query or create an instance of a model.
 
     Parameters
     ----------
diff --git a/mdsuite/utils/exceptions.py b/mdsuite/utils/exceptions.py
index 773ae107..49cee0e1 100644
--- a/mdsuite/utils/exceptions.py
+++ b/mdsuite/utils/exceptions.py
@@ -27,57 +27,43 @@
 
 
 class NoElementInDump(Exception):
-    """
-    Thrown when no elements are found in a dump file
-    """
+    """Thrown when no elements are found in a dump file."""
 
     pass
 
 
 class NoTempInData(Exception):
-    """
-    Thrown when no temperature is found in a tensor_values file
-    """
+    """Thrown when no temperature is found in a tensor_values file."""
 
     pass
 
 
 class NotApplicableToAnalysis(Exception):
-    """
-    Thrown when the function is not applicable to the type of analysis being performed
-    """
+    """Thrown when the function is not applicable to the type of analysis."""
 
     pass
 
 
 class CannotPerformThisAnalysis(Exception):
-    """
-    Thrown when analysis cannot be reliably performed given the tensor_values
-    """
+    """Thrown when analysis cannot be reliably performed given the tensor_values."""
 
     pass
 
 
 class ElementMassAssignedZero(Exception):
-    """
-    Thrown when an element mass has been assigned zero.
-    """
+    """Thrown when an element mass has been assigned zero."""
 
     pass
 
 
 class NoGPUInSystem(Exception):
-    """
-    Thrown during experiment analysis when GPUs are being searched for.
-    """
+    """Thrown during experiment analysis when GPUs are being searched for."""
 
     pass
 
 
 class DatasetExists(Exception):
-    """
-    Thrown if a dataset in a hdf5 database_path already exists
-    """
+    """Thrown if a dataset in a hdf5 database_path already exists."""
 
     pass
 
@@ -85,26 +71,22 @@ class DatasetExists(Exception):
 class RangeExceeded(Exception):
     """
     Thrown when the tensor_values range asked for exceeds the total number of
-    configurations
+    configurations.
     """
 
     pass
 
 
 class DatabaseDoesNotExist(Exception):
-    """
-    Thrown when a preexisting database_path object is called but none exists
-    """
+    """Thrown when a preexisting database_path object is called but none exists."""
 
     def __init__(self):
-        """Constructor method"""
+        """Constructor method."""
         self.message = "Database does not exist"
         super().__init__(self.message)
 
 
 class NotInDataFile(Exception):
-    """
-    Thrown when a parameter is not in a data file.
-    """
+    """Thrown when a parameter is not in a data file."""
 
     pass
diff --git a/mdsuite/utils/helpers.py b/mdsuite/utils/helpers.py
index 737ecf06..197bbbfb 100644
--- a/mdsuite/utils/helpers.py
+++ b/mdsuite/utils/helpers.py
@@ -1,8 +1,9 @@
-"""
+"""MDSuite helpers.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
 https://www.eclipse.org/legal/epl-v20.html
-SPDX-License-Identifier: EPL-2.0
+SPDX-License-Identifier: EPL-2.0.
 
 Copyright Contributors to the Zincware Project.
 
@@ -11,7 +12,7 @@
 
 
 class NoneType:
-    """Custom NoneType that is != None
+    """Custom NoneType that is != None.
 
     Examples
     --------
diff --git a/mdsuite/utils/linalg.py b/mdsuite/utils/linalg.py
index 27e579b0..2900af14 100644
--- a/mdsuite/utils/linalg.py
+++ b/mdsuite/utils/linalg.py
@@ -29,16 +29,12 @@
 
 
 def unit_vector(vector):
-    """
-    Returns the unit vector of the vector.
-    """
+    """Returns the unit vector of the vector."""
     return vector / tf.expand_dims(tf.norm(vector, axis=-1), -1)
 
 
 def angle_between(v1, v2, acos=True):
-    """
-    Returns the angle in radians between vectors 'v1' and 'v2'::
-    """
+    """Returns the angle in radians between vectors 'v1' and 'v2'."""
     v1_u = unit_vector(v1)
     v2_u = unit_vector(v2)
     # return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0))
@@ -54,7 +50,7 @@ def angle_between(v1, v2, acos=True):
 
 def get_angles(r_ij_mat, indices, acos=True):
     """
-    Compute the cosine angle for the given triples
+    Compute the cosine angle for the given triples.
 
     Using :math theta = acos(r_ij * r_ik / (|r_ij| * |r_ik|))
 
@@ -72,7 +68,6 @@ def get_angles(r_ij_mat, indices, acos=True):
     -------
     tf.Tensor: Tensor with the shape (triples)
     """
-
     r_ij = tf.gather_nd(
         r_ij_mat, tf.stack([indices[:, 0], indices[:, 1], indices[:, 2]], axis=1)
     )
@@ -105,7 +100,7 @@ def apply_minimum_image(r_ij, box_array):
 
 
 def get_partial_triu_indices(n_atoms: int, m_atoms: int, idx: int) -> tf.Tensor:
-    """Calculate the indices of a slice of the triu values
+    """Calculate the indices of a slice of the triu values.
 
     Parameters
     ----------
@@ -129,14 +124,13 @@ def get_partial_triu_indices(n_atoms: int, m_atoms: int, idx: int) -> tf.Tensor:
 
 def apply_system_cutoff(tensor: tf.Tensor, cutoff: float) -> tf.Tensor:
     """
-    Enforce a cutoff on a tensor
+    Enforce a cutoff on a tensor.
 
     Parameters
     ----------
     tensor : tf.Tensor
     cutoff : flaot
     """
-
     cutoff_mask = tf.cast(tf.less(tensor, cutoff), dtype=tf.bool)  # Construct the mask
 
     return tf.boolean_mask(tensor, cutoff_mask)
@@ -162,7 +156,9 @@ def cartesian_to_spherical_coordinates(
       eps: A small `float`, to be added to the denominator. If left as `None`, its
         value is automatically selected using `point_cartesian.dtype`.
       name: A name for this op. Defaults to "cartesian_to_spherical_coordinates".
-    Returns:
+
+    Returns
+    -------
       A tensor of shape `[A1, ..., An, 3]`. The last dimensions contains
       (`r`,`theta`,`phi`), where `r` is the sphere radius, `theta` is the polar
       angle and `phi` is the azimuthal angle. Returns `NaN` gradient if x = y = 0.
@@ -193,10 +189,14 @@ def spherical_to_cartesian_coordinates(
         contains r, theta, and phi that respectively correspond to the radius,
         polar angle and azimuthal angle; r must be non-negative.
       name: A name for this op. Defaults to "spherical_to_cartesian_coordinates".
-    Raises:
+
+    Raises
+    ------
       tf.errors.InvalidArgumentError: If r, theta or phi contains out of range
       data.
-    Returns:
+
+    Returns
+    -------
       A tensor of shape `[A1, ..., An, 3]`, where the last dimension contains the
       cartesian coordinates in x,y,z order.
     """
@@ -213,7 +213,7 @@ def spherical_to_cartesian_coordinates(
 
 def get2dHistogram(x, y, value_range, nbins=100, dtype=tf.dtypes.int32):
     """
-    Bins x, y coordinates of points onto simple square 2d histogram
+    Bins x, y coordinates of points onto simple square 2d histogram.
 
     Given the tensor x and y:
     x: x coordinates of points
diff --git a/mdsuite/utils/meta_functions.py b/mdsuite/utils/meta_functions.py
index 24c5dcb0..2b988fd7 100644
--- a/mdsuite/utils/meta_functions.py
+++ b/mdsuite/utils/meta_functions.py
@@ -47,7 +47,7 @@
 
 
 def gpu_available() -> bool:
-    """Check if TensorFlow has access to any GPU device"""
+    """Check if TensorFlow has access to any GPU device."""
     return len(tf.config.list_physical_devices("GPU")) > 1
 
 
@@ -58,6 +58,7 @@ def is_jsonable(x: dict) -> bool:
     ----------
     x: dict
         Dictionary to check, if it is json serializable.
+
     Returns
     -------
     bool: Whether the dict was serializable or not.
@@ -70,7 +71,7 @@ def is_jsonable(x: dict) -> bool:
 
 
 def join_path(a, b):
-    """Join a and b and make sure to use forward slashes
+    """Join a and b and make sure to use forward slashes.
 
     Parameters
     ----------
@@ -94,7 +95,7 @@ def join_path(a, b):
 
 def get_dimensionality(box: list) -> int:
     """
-    Calculate the dimensionality of the experiment box
+    Calculate the dimensionality of the experiment box.
 
     Parameters
     ----------
@@ -107,7 +108,6 @@ def get_dimensionality(box: list) -> int:
             dimension of the box i.e, 1 or 2 or 3 (Higher dimensions probably don't
             make sense just yet)
     """
-
     # Check if the x, y, or z entries are empty, i.e. 2 dimensions
     if box[0] == 0 or box[1] == 0 or box[2] == 0:
         if (
@@ -131,14 +131,13 @@ def get_dimensionality(box: list) -> int:
 
 def get_machine_properties() -> dict:
     """
-    Get the properties of the machine being used
+    Get the properties of the machine being used.
 
     Returns
     -------
     machine_properties : dict
             A dictionary containing information about the hardware being used.
     """
-
     machine_properties = {}
     available_memory = psutil.virtual_memory().available  # RAM available
     total_cpu_cores = psutil.cpu_count(logical=True)  # CPU cores available
@@ -161,7 +160,7 @@ def get_machine_properties() -> dict:
 
 def line_counter(filename: str) -> int:
     """
-    Count the number of lines in a file
+    Count the number of lines in a file.
 
     This function used a memory safe method to count the number of lines in the file.
     Using the other tensor_values collected during the trajectory analysis, this is
@@ -177,7 +176,6 @@ def line_counter(filename: str) -> int:
     lines : int
             Number of lines in the file
     """
-
     f = open(filename, "rb")
     num_lines = sum(1 for _ in f)
     f.close()
@@ -192,7 +190,7 @@ def optimize_batch_size(
     test: bool = False,
 ) -> int:
     """
-    Optimize the size of batches during initial processing
+    Optimize the size of batches during initial processing.
 
     During the database_path construction a batch size must be chosen in order to
     process the trajectories with the least RAM but reasonable performance.
@@ -242,7 +240,7 @@ def optimize_batch_size(
 
 def linear_fitting_function(x: np.array, a: float, b: float) -> np.array:
     """
-    Linear function for line fitting
+    Linear function for line fitting.
 
     In many cases, namely those involving an Einstein relation, a linear curve must be
     fit to some tensor_values. This function is called by the scipy curve_fit module as
@@ -267,7 +265,7 @@ def linear_fitting_function(x: np.array, a: float, b: float) -> np.array:
 
 def simple_file_read(filename: str) -> list:
     """
-    Trivially read a file and load it into an array
+    Trivially read a file and load it into an array.
 
     There are many occasions when a file simply must be read and dumped into a file. In
     these cases, we call this method and dump tensor_values into an array. This is NOT
@@ -283,7 +281,6 @@ def simple_file_read(filename: str) -> list:
     data_array: list
             Data read in by the function.
     """
-
     data_array = []  # define empty tensor_values array
     with open(filename, "r+") as f:  # Open the file for reading
         for line in f:  # Loop over the lines
@@ -316,9 +313,7 @@ def timeit(f: Callable) -> Callable:
 
     @wraps(f)
     def wrap(*args, **kw):
-        """
-        Function to wrap a method and time its execution
-        """
+        """Function to wrap a method and time its execution."""
         ts = time()  # get the initial time
         result = f(*args, **kw)  # run the function.
         te = time()  # get the time after the function as run.
@@ -333,7 +328,7 @@ def apply_savgol_filter(
     data: np.ndarray, order: int = 2, window_length: int = 17
 ) -> np.ndarray:
     """
-    Apply a savgol filter for function smoothing
+    Apply a savgol filter for function smoothing.
 
     This function will simply call the scipy SavGol implementation with preset
     parameters for the polynomial number and window size.
@@ -357,7 +352,6 @@ def apply_savgol_filter(
     There are no tests for this method as a test would simply be testing the scipy
     implementation which they have done.
     """
-
     return savgol_filter(data, window_length, order)
 
 
@@ -391,7 +385,7 @@ def golden_section_search(
     fd: float = None,
 ) -> tuple:
     """
-    Perform a golden-section search for function minimums
+    Perform a golden-section search for function minimums.
 
     The Golden-section search algorithm is one of the best min-finding algorithms
     available and is here used to the minimums of functions during analysis.
@@ -402,7 +396,7 @@ def golden_section_search(
 
 
     Parameters
-    ---------
+    ----------
     data : np.array
             Data on which to find minimums.
     a : float
@@ -415,7 +409,6 @@ def golden_section_search(
     minimum range : tuple
             Returns two radii values within which the minimum can be found.
     """
-
     # Define the golden ratio identities
     phi_a = 1 / golden_ratio
     phi_b = 1 / (golden_ratio**2)
@@ -463,7 +456,6 @@ def get_nearest_divisor(a: int, b: int) -> int:
     divisor : int
             nearest number to a that divides into b evenly.
     """
-
     remainder = 1  # initialize a remainder
     a += 1
     while remainder != 0:
@@ -481,20 +473,19 @@ def split_array(data: np.array, condition: np.array) -> list:
     data : np.array
             tensor_values to split
     condition : np.array
-            condition on which to split by
+            condition on which to split by.
 
     Returns
     -------
     split_array : list
             A list of split up arrays.
     """
-
     initial_split = [data[condition], data[~condition]]  # attempt to split the array
 
     if (
         len(initial_split[1]) == 0
     ):  # if the condition is never met, return only the raw tensor_values
-        return list([data[condition]])
+        return [data[condition]]
     else:  # else return the whole array
         return list(initial_split)
 
@@ -538,7 +529,7 @@ def sort_array_by_column(array: np.ndarray, column_idx: int):
 
 def check_a_in_b(a, b):
     """
-    Check if any value of a is in b
+    Check if any value of a is in b.
 
     Parameters
     ----------
diff --git a/mdsuite/utils/neighbour_list.py b/mdsuite/utils/neighbour_list.py
index 4060efc8..398a8b53 100644
--- a/mdsuite/utils/neighbour_list.py
+++ b/mdsuite/utils/neighbour_list.py
@@ -36,10 +36,10 @@
 
 def get_triu_indicies(n_atoms):
     """
-    Version of np.triu_indices with k=1
+    Version of np.triu_indices with k=1.
 
     Returns
-    ---------
+    -------
     Returns a vector of size (2, None) instead of a tuple of two values like
     np.triu_indices
     """
@@ -53,7 +53,7 @@ def get_triu_indicies(n_atoms):
 
 def get_neighbour_list(positions: tf.Tensor, cell=None, batch_size=None) -> tf.Tensor:
     """
-    Generate the neighbour list
+    Generate the neighbour list.
 
     Parameters
     ----------
@@ -112,7 +112,7 @@ def get_rij_mat(positions, triu_mask, cell):
 def get_triplets(
     full_r_ij: tf.Tensor, r_cut: float, n_atoms: int, n_batches=200, disable_tqdm=True
 ) -> tf.Tensor:
-    """Compute the triple indices within a cutoff
+    """Compute the triple indices within a cutoff.
 
     Mostly vectorized method to compute the triples inside the cutoff sphere. Therefore
     a matrix of all possible distances *r_ijk* over all timesteps
diff --git a/mdsuite/utils/report_computer_characteristics.py b/mdsuite/utils/report_computer_characteristics.py
index 12da680a..64745427 100644
--- a/mdsuite/utils/report_computer_characteristics.py
+++ b/mdsuite/utils/report_computer_characteristics.py
@@ -35,8 +35,7 @@
 
 
 class Report(scooby.Report):
-    """
-    A class for custom scooby.Report."""
+    """A class for custom scooby.Report."""
 
     def __init__(
         self,
diff --git a/mdsuite/utils/scale_functions.py b/mdsuite/utils/scale_functions.py
index 1004a392..a9ad0823 100644
--- a/mdsuite/utils/scale_functions.py
+++ b/mdsuite/utils/scale_functions.py
@@ -38,6 +38,7 @@ def linear_scale_function(memory_usage: int, scale_factor: int = 1) -> int:
     scale_factor : int
             Scalar scaling factor for the memory usage in cases on non-size dependent
             inflation.
+
     Returns
     -------
     scaled_memory : int
@@ -57,6 +58,7 @@ def linearithmic_scale_function(memory_usage: int, scale_factor: int = 1) -> flo
     scale_factor : int
             Scalar scaling factor for the memory usage in cases on non-size dependent
             inflation.
+
     Returns
     -------
     scaled_memory : float
@@ -106,6 +108,7 @@ def polynomial_scale_function(
             Scalar scaling factor for the outer multiplication
     order : int
             Order of the polynomial.
+
     Returns
     -------
     scaled_memory : int
diff --git a/mdsuite/utils/tensor_flow/helpers.py b/mdsuite/utils/tensor_flow/helpers.py
index d57d3231..548aa7c3 100644
--- a/mdsuite/utils/tensor_flow/helpers.py
+++ b/mdsuite/utils/tensor_flow/helpers.py
@@ -29,7 +29,7 @@
 
 
 def triu_mask(n, k=0, m=None):
-    """Compute the triu mask"""
+    """Compute the triu mask."""
     if m is None:
         m = n
     bool_mat = tf.ones((n, m), dtype=tf.bool)
@@ -40,5 +40,5 @@ def triu_mask(n, k=0, m=None):
 
 
 def triu_indices(n, k=0, m=None):
-    """Replicate of np.triu_mask"""
+    """Replicate of np.triu_mask."""
     return tf.where(triu_mask(n, k, m))
diff --git a/mdsuite/utils/tensor_flow/layers.py b/mdsuite/utils/tensor_flow/layers.py
index c483088f..d6f00734 100644
--- a/mdsuite/utils/tensor_flow/layers.py
+++ b/mdsuite/utils/tensor_flow/layers.py
@@ -30,7 +30,7 @@
 
 
 class NLLayer(tf.keras.layers.Layer):
-    """Convert positions to an r_ij distance matrix"""
+    """Convert positions to an r_ij distance matrix."""
 
     def __init__(self, dense: bool = True, **kwargs):
         """
@@ -43,7 +43,7 @@ def __init__(self, dense: bool = True, **kwargs):
         self.dense = dense
 
     def call(self, inputs, *args, **kwargs):
-        """Convert positions to r_ij distance matrix
+        """Convert positions to r_ij distance matrix.
 
         Parameters
         ----------
@@ -53,7 +53,6 @@ def call(self, inputs, *args, **kwargs):
 
         Returns
         -------
-
         flat_rij, triu_indices, n_atoms: tf.Tensor, tf.Tensor, tf.Tenosr
             The distances flattend out, of shape (x, 3) and the corresponding indices
             in the r_ij matrix of shape (x, 2) as well as the number of atoms
@@ -76,7 +75,7 @@ def call(self, inputs, *args, **kwargs):
         if self.dense:
 
             def to_dense(flat_rij):
-                """Convert the flattened output to a dense r_ij matrix
+                """Convert the flattened output to a dense r_ij matrix.
 
                 Parameters
                 ----------
@@ -85,7 +84,6 @@ def to_dense(flat_rij):
 
                 Returns
                 -------
-
                 r_ij: tf.Tensor
                     A dense r_ij tensor
 
diff --git a/mdsuite/utils/units.py b/mdsuite/utils/units.py
index b1219177..6ff57aa1 100644
--- a/mdsuite/utils/units.py
+++ b/mdsuite/utils/units.py
@@ -44,9 +44,7 @@
 
 @dataclass(frozen=True)
 class Units:
-    """
-    Dataclass for the units.
-    """
+    """Dataclass for the units."""
 
     time: float
     length: float
@@ -60,7 +58,7 @@ class Units:
 
     @property
     def volume(self) -> float:
-        """Get the volume factor"""
+        """Get the volume factor."""
         return self.length**3
 
 
diff --git a/mdsuite/visualizer/d2_data_visualization.py b/mdsuite/visualizer/d2_data_visualization.py
index 33be112f..d501bb02 100644
--- a/mdsuite/visualizer/d2_data_visualization.py
+++ b/mdsuite/visualizer/d2_data_visualization.py
@@ -37,9 +37,7 @@
 
 
 class DataVisualizer2D:
-    """
-    Visualizer for two-dimensional data.
-    """
+    """Visualizer for two-dimensional data."""
 
     def __init__(self, title: str, path: pathlib.Path):
         """
@@ -52,7 +50,6 @@ def __init__(self, title: str, path: pathlib.Path):
         path : pathlib.Path
                 path to the saving directory of the plot
         """
-
         if config.jupyter:
             output_notebook()
         else:
@@ -82,6 +79,7 @@ def construct_plot(
                 label of the y axis.
         title : str
                 name of the specific plot.
+
         Returns
         -------
         figure : figure
diff --git a/mdsuite/visualizer/d3_data_visualizer.py b/mdsuite/visualizer/d3_data_visualizer.py
index d73e5260..8dffcd21 100644
--- a/mdsuite/visualizer/d3_data_visualizer.py
+++ b/mdsuite/visualizer/d3_data_visualizer.py
@@ -37,9 +37,7 @@
 
 
 class DataVisualizer3D:
-    """
-    Class for the visualizer of three dimensional data.
-    """
+    """Class for the visualizer of three dimensional data."""
 
     def __init__(
         self,
@@ -76,7 +74,7 @@ def _build_colour_map(self):
         """
         Build the colour map
         Returns
-        -------
+        -------.
 
         """
         viridis = cm.get_cmap("binary")
diff --git a/mdsuite/visualizer/znvis_visualizer.py b/mdsuite/visualizer/znvis_visualizer.py
index e882e572..5b9ab2d9 100644
--- a/mdsuite/visualizer/znvis_visualizer.py
+++ b/mdsuite/visualizer/znvis_visualizer.py
@@ -39,9 +39,7 @@
 
 
 class SimulationVisualizer:
-    """
-    Visualize a simulation.
-    """
+    """Visualize a simulation."""
 
     def __init__(
         self,
diff --git a/pyproject.toml b/pyproject.toml
index da683935..991d012c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -11,12 +11,11 @@ line-length = 90
 
 select = ["E", "F", "D", "N", "C"]
 extend-ignore = [
-    "D100", "D101", "D102", "D103", "D105", "D107",
-    "D200", "D202", "D205", "D207", "D212", "D213", "D203",
-    "D400", "D401", "D404", "D405", "D406", "D407", "D409", "D410", "D411", "D412", "D413", "D414", "D415", "D416", "D417",
-    "C400", "C408", "C410", "C416", 
-    "C901",
-    "N802", "N803", "N806", "N818"
+    "D102", "D103", "D105", "D107",
+    "D205", "D212", "D213", "D203",
+    "D401", "D414", "D417",
+    "C400",
+    "N802",  "N806", "N818"
 ]
 
 exclude = [


Test patch:
diff --git a/CI/functional_tests/test_molten_salts.py b/CI/functional_tests/test_molten_salts.py
index 5212017f..6d30a73c 100644
--- a/CI/functional_tests/test_molten_salts.py
+++ b/CI/functional_tests/test_molten_salts.py
@@ -35,9 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_files(tmp_path_factory) -> Tuple[str, str]:
-    """
-    Download trajectory file into a temporary directory and keep it for all tests
-    """
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl_file = DataHub(
diff --git a/CI/functional_tests/test_water_study.py b/CI/functional_tests/test_water_study.py
index 8b3c35d7..50936f9f 100644
--- a/CI/functional_tests/test_water_study.py
+++ b/CI/functional_tests/test_water_study.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(scope="session")
 def traj_files(tmp_path_factory) -> List[str]:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     water = DataHub(
@@ -95,14 +95,13 @@ def mdsuite_project(traj_files, tmp_path) -> mdsuite.Project:
 
 def test_water_analysis(mdsuite_project):
     """
-    Run a functional test by performing a study on an MD simulation of water
+    Run a functional test by performing a study on an MD simulation of water.
 
     Notes
     -----
     The diffusion, angle, and eventually coordination data tested here are comparable
     with values taken from experiment and published studies.
     """
-
     water = mdsuite_project.experiments["water_sim"]
 
     water_molecule = mds.Molecule(
diff --git a/CI/integration_tests/calculators/__test_structure_factor.py b/CI/integration_tests/calculators/__test_structure_factor.py
index ea8caac6..80edfbf3 100644
--- a/CI/integration_tests/calculators/__test_structure_factor.py
+++ b/CI/integration_tests/calculators/__test_structure_factor.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -50,7 +50,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -58,7 +58,7 @@ def true_values() -> dict:
 
 
 def test_structure_factor_project(traj_files, true_values, tmp_path):
-    """Test the structure_factor called from the project class"""
+    """Test the structure_factor called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -85,7 +85,7 @@ def test_structure_factor_project(traj_files, true_values, tmp_path):
 
 
 def test_structure_factor_experiment(traj_files, true_values, tmp_path):
-    """Test the structure_factor called from the experiment class"""
+    """Test the structure_factor called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/_test_einstein_helfand_thermal_kinaci.py b/CI/integration_tests/calculators/_test_einstein_helfand_thermal_kinaci.py
index e7863f43..04e6d131 100644
--- a/CI/integration_tests/calculators/_test_einstein_helfand_thermal_kinaci.py
+++ b/CI/integration_tests/calculators/_test_einstein_helfand_thermal_kinaci.py
@@ -38,7 +38,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -51,7 +51,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -59,7 +59,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_files, true_values, tmp_path):
-    """Test the einstein_helfand_thermal_kinaci called from the project class"""
+    """Test the einstein_helfand_thermal_kinaci called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -81,7 +81,7 @@ def test_project(traj_files, true_values, tmp_path):
 
 
 def test_experiment(traj_files, true_values, tmp_path):
-    """Test the einstein_helfand_thermal_kinaci called from the experiment class"""
+    """Test the einstein_helfand_thermal_kinaci called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/_test_green_kubo_thermal_conductivity.py b/CI/integration_tests/calculators/_test_green_kubo_thermal_conductivity.py
index ebe09bf1..75cc696e 100644
--- a/CI/integration_tests/calculators/_test_green_kubo_thermal_conductivity.py
+++ b/CI/integration_tests/calculators/_test_green_kubo_thermal_conductivity.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -50,7 +50,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -58,7 +58,7 @@ def true_values() -> dict:
 
 
 def test_roject(traj_files, true_values, tmp_path):
-    """Test the green_kubo_thermal_conductivity called from the project class"""
+    """Test the green_kubo_thermal_conductivity called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -80,7 +80,7 @@ def test_roject(traj_files, true_values, tmp_path):
 
 
 def test_experiment(traj_files, true_values, tmp_path):
-    """Test the green_kubo_thermal_conductivity called from the experiment class"""
+    """Test the green_kubo_thermal_conductivity called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/_test_green_kubo_viscosity.py b/CI/integration_tests/calculators/_test_green_kubo_viscosity.py
index cf41b522..058dcfb8 100644
--- a/CI/integration_tests/calculators/_test_green_kubo_viscosity.py
+++ b/CI/integration_tests/calculators/_test_green_kubo_viscosity.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -50,7 +50,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -58,7 +58,7 @@ def true_values() -> dict:
 
 
 def test_gkv_project(traj_files, true_values, tmp_path):
-    """Test the gkv called from the project class"""
+    """Test the gkv called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -80,7 +80,7 @@ def test_gkv_project(traj_files, true_values, tmp_path):
 
 
 def test_gkv_experiment(traj_files, true_values, tmp_path):
-    """Test the gkv called from the experiment class"""
+    """Test the gkv called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/_test_green_kubo_viscosity_flux.py b/CI/integration_tests/calculators/_test_green_kubo_viscosity_flux.py
index e25c0831..2408512c 100644
--- a/CI/integration_tests/calculators/_test_green_kubo_viscosity_flux.py
+++ b/CI/integration_tests/calculators/_test_green_kubo_viscosity_flux.py
@@ -38,7 +38,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -51,7 +51,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -59,7 +59,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_files, true_values, tmp_path):
-    """Test the green_kubo_viscosity_flux called from the project class"""
+    """Test the green_kubo_viscosity_flux called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -81,7 +81,7 @@ def test_project(traj_files, true_values, tmp_path):
 
 
 def test_experiment(traj_files, true_values, tmp_path):
-    """Test the green_kubo_viscosity_flux called from the experiment class"""
+    """Test the green_kubo_viscosity_flux called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/_test_nernst_einstein_ionic_conductivity.py b/CI/integration_tests/calculators/_test_nernst_einstein_ionic_conductivity.py
index 447f60ed..4dca532f 100644
--- a/CI/integration_tests/calculators/_test_nernst_einstein_ionic_conductivity.py
+++ b/CI/integration_tests/calculators/_test_nernst_einstein_ionic_conductivity.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -50,7 +50,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -58,7 +58,7 @@ def true_values() -> dict:
 
 
 def test_neic_project(traj_files, true_values, tmp_path):
-    """Test the nernst_einstein_ionic_conductivity called from the project class"""
+    """Test the nernst_einstein_ionic_conductivity called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -80,7 +80,7 @@ def test_neic_project(traj_files, true_values, tmp_path):
 
 
 def test_neic_experiment(traj_files, true_values, tmp_path):
-    """Test the nernst_einstein_ionic_conductivity called from the experiment class"""
+    """Test the nernst_einstein_ionic_conductivity called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_angular_distribution_function.py b/CI/integration_tests/calculators/test_angular_distribution_function.py
index c0c266d0..09e32730 100644
--- a/CI/integration_tests/calculators/test_angular_distribution_function.py
+++ b/CI/integration_tests/calculators/test_angular_distribution_function.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -48,7 +48,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -56,7 +56,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the ADF called from the project class"""
+    """Test the ADF called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_coordination_numbers.py b/CI/integration_tests/calculators/test_coordination_numbers.py
index f9d8a3a8..231cb4c7 100644
--- a/CI/integration_tests/calculators/test_coordination_numbers.py
+++ b/CI/integration_tests/calculators/test_coordination_numbers.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -48,7 +48,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.1"
     )
@@ -56,7 +56,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the CN called from the project class"""
+    """Test the CN called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_einstein_distinct_diffusion_coefficients.py b/CI/integration_tests/calculators/test_einstein_distinct_diffusion_coefficients.py
index 54c15958..b0a4fa3a 100644
--- a/CI/integration_tests/calculators/test_einstein_distinct_diffusion_coefficients.py
+++ b/CI/integration_tests/calculators/test_einstein_distinct_diffusion_coefficients.py
@@ -40,7 +40,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -53,7 +53,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -61,7 +61,7 @@ def true_values() -> dict:
 
 
 def test_eddc_project(traj_file, true_values, tmp_path):
-    """Test the EinsteinDistinctDiffusionCoefficients called from the project class"""
+    """Test the EinsteinDistinctDiffusionCoefficients called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -88,9 +88,7 @@ def test_eddc_project(traj_file, true_values, tmp_path):
 
 
 def test_eddc_experiment(traj_file, true_values, tmp_path):
-    """
-    Test the EinsteinDistinctDiffusionCoefficients called from the experiment class
-    """
+    """Test the EinsteinDistinctDiffusionCoefficients called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_einstein_helfand_ionic_conductivity.py b/CI/integration_tests/calculators/test_einstein_helfand_ionic_conductivity.py
index 83149d99..aebc59ee 100644
--- a/CI/integration_tests/calculators/test_einstein_helfand_ionic_conductivity.py
+++ b/CI/integration_tests/calculators/test_einstein_helfand_ionic_conductivity.py
@@ -34,7 +34,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -47,7 +47,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -55,10 +55,10 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the Einstein_Helfand_Ionic_Conductivity called from the project class
+    """Test the Einstein_Helfand_Ionic_Conductivity called from the project class.
 
     Notes
-    ------
+    -----
     Test uncertainty is very high!
     """
     os.chdir(tmp_path)
diff --git a/CI/integration_tests/calculators/test_green_kubo_distinct_diffusion_coefficients.py b/CI/integration_tests/calculators/test_green_kubo_distinct_diffusion_coefficients.py
index 4fd5b6ec..eb09f396 100644
--- a/CI/integration_tests/calculators/test_green_kubo_distinct_diffusion_coefficients.py
+++ b/CI/integration_tests/calculators/test_green_kubo_distinct_diffusion_coefficients.py
@@ -34,7 +34,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -47,7 +47,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -55,9 +55,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """
-    Test the green_kubo_distinct_diffusion_coefficients called from the project class
-    """
+    """Test the GK distinct diffusion coefficients called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -82,9 +80,7 @@ def test_project(traj_file, true_values, tmp_path):
 
 
 def test_experiment(traj_file, true_values, tmp_path):
-    """
-    Test the green_kubo_distinct_diffusion_coefficients called from the experiment class
-    """
+    """Test the GK distinct diffusion coefficients called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_green_kubo_ionic_conductivity.py b/CI/integration_tests/calculators/test_green_kubo_ionic_conductivity.py
index b6e389cc..84dbe7ad 100644
--- a/CI/integration_tests/calculators/test_green_kubo_ionic_conductivity.py
+++ b/CI/integration_tests/calculators/test_green_kubo_ionic_conductivity.py
@@ -36,7 +36,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -49,7 +49,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -57,7 +57,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the green_kubo_ionic_conductivity called from the project class"""
+    """Test the green_kubo_ionic_conductivity called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_kirkwood_buff_integrals.py b/CI/integration_tests/calculators/test_kirkwood_buff_integrals.py
index dde4ba4b..6aa275e3 100644
--- a/CI/integration_tests/calculators/test_kirkwood_buff_integrals.py
+++ b/CI/integration_tests/calculators/test_kirkwood_buff_integrals.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -48,7 +48,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.1"
     )
@@ -56,7 +56,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the kbi called from the project class"""
+    """Test the kbi called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_potential_of_mean_force.py b/CI/integration_tests/calculators/test_potential_of_mean_force.py
index 8dbb820b..f1799656 100644
--- a/CI/integration_tests/calculators/test_potential_of_mean_force.py
+++ b/CI/integration_tests/calculators/test_potential_of_mean_force.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -48,7 +48,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.1"
     )
@@ -56,7 +56,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the pomf called from the project class"""
+    """Test the pomf called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -71,7 +71,7 @@ def test_project(traj_file, true_values, tmp_path):
 
 
 def test_experiment(traj_file, true_values, tmp_path):
-    """Test the pomf called from the experiment class"""
+    """Test the pomf called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/calculators/test_radial_distribution_function.py b/CI/integration_tests/calculators/test_radial_distribution_function.py
index 79dc6028..f778c0b6 100644
--- a/CI/integration_tests/calculators/test_radial_distribution_function.py
+++ b/CI/integration_tests/calculators/test_radial_distribution_function.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -48,7 +48,7 @@ def traj_file(tmp_path_factory) -> str:
 
 @pytest.fixture(scope="session")
 def true_values() -> dict:
-    """Example fixture for downloading analysis results from github"""
+    """Example fixture for downloading analysis results from github."""
     NaCl = DataHub(
         url="https://github.com/zincware/DataHub/tree/main/NaCl_gk_i_q", tag="v0.1.0"
     )
@@ -56,7 +56,7 @@ def true_values() -> dict:
 
 
 def test_project(traj_file, true_values, tmp_path):
-    """Test the rdf called from the project class"""
+    """Test the rdf called from the project class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -69,7 +69,7 @@ def test_project(traj_file, true_values, tmp_path):
 
 
 def test_experiment(traj_file, true_values, tmp_path):
-    """Test the rdf called from the experiment class"""
+    """Test the rdf called from the experiment class."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
diff --git a/CI/integration_tests/project/test_run_load_multiple_experiments.py b/CI/integration_tests/project/test_run_load_multiple_experiments.py
index cac4c3ea..36c9d739 100644
--- a/CI/integration_tests/project/test_run_load_multiple_experiments.py
+++ b/CI/integration_tests/project/test_run_load_multiple_experiments.py
@@ -35,7 +35,7 @@
 
 @pytest.fixture(scope="session")
 def traj_files(tmp_path_factory) -> list:
-    """Download files into a temporary directory and keep them for all tests"""
+    """Download files into a temporary directory and keep them for all tests."""
     base_url = "https://github.com/zincware/DataHub/tree/main"
 
     files_to_load = [
@@ -59,7 +59,7 @@ def traj_files(tmp_path_factory) -> list:
 
 @pytest.fixture(scope="session")
 def project(tmp_path_factory) -> mds.Project:
-    """Create a project in a temporary directory"""
+    """Create a project in a temporary directory."""
     os.chdir(tmp_path_factory.getbasetemp())
     project = mds.Project()
 
@@ -67,7 +67,7 @@ def project(tmp_path_factory) -> mds.Project:
 
 
 def test_add_run_load_data(project, traj_files):
-    """Add data and run RDF on all of them
+    """Add data and run RDF on all of them.
 
     Test the run_computation and load_data method on multiple experiments
     """
@@ -92,7 +92,7 @@ def test_add_run_load_data(project, traj_files):
     # Check that data for 4 experiments has been loaded
     assert len(loaded_data) == 4
     # Check the keys
-    assert {x for x in loaded_data} == {"NaCl0", "NaCl1", "NaCl2", "NaCl3"}  #
+    assert set(loaded_data) == {"NaCl0", "NaCl1", "NaCl2", "NaCl3"}  #
 
     # Each loaded data should contain 3 entries, Na-Na, Na-Cl, Cl-Cl
     for data in loaded_data.values():
diff --git a/CI/integration_tests/transformations/test_molecular_mapping_results.py b/CI/integration_tests/transformations/test_molecular_mapping_results.py
index 5f73833a..28df25a5 100644
--- a/CI/integration_tests/transformations/test_molecular_mapping_results.py
+++ b/CI/integration_tests/transformations/test_molecular_mapping_results.py
@@ -39,7 +39,7 @@
 
 @pytest.fixture(scope="session")
 def traj_files(tmp_path_factory) -> Tuple[List[str], str]:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     water = DataHub(
@@ -117,9 +117,7 @@ def mdsuite_project(traj_files, tmp_path) -> mdsuite.Project:
 
 
 class TestMoleculeMapping:
-    """
-    Class to wrap test suite so we can run all tests within PyCharm.
-    """
+    """Class to wrap test suite so we can run all tests within PyCharm."""
 
     def test_water_molecule_smiles(self, mdsuite_project):
         """
diff --git a/CI/integration_tests/transformations/test_transformation_run_options.py b/CI/integration_tests/transformations/test_transformation_run_options.py
index f2f171a2..55654ee2 100644
--- a/CI/integration_tests/transformations/test_transformation_run_options.py
+++ b/CI/integration_tests/transformations/test_transformation_run_options.py
@@ -1,8 +1,9 @@
-"""
+"""MDSuite Test for transformations and run options.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
 https://www.eclipse.org/legal/epl-v20.html
-SPDX-License-Identifier: EPL-2.0
+SPDX-License-Identifier: EPL-2.0.
 
 Copyright Contributors to the Zincware Project.
 
@@ -18,7 +19,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -86,17 +87,13 @@ def test_from_experiment_twice(mdsuite_project):
 
 
 def test_pass_instance_to_exp(mdsuite_project):
-    """
-    Test passing the transformation to the experiment class.
-    """
+    """Test passing the transformation to the experiment class."""
     mdsuite_project.experiments.NaCl.cls_transformation_run(
         mdsuite.transformations.CoordinateUnwrapper()
     )
 
 
 def test_call_with_instance(mdsuite_project):
-    """
-    test instanciating and then calling the trafo
-    """
+    """Test instanciating and then calling the trafo."""
     trafo = mdsuite.transformations.CoordinateUnwrapper()
     mdsuite_project.experiments.NaCl.cls_transformation_run(trafo)
diff --git a/CI/integration_tests/visualizer/znvis_visualizer.py b/CI/integration_tests/visualizer/znvis_visualizer.py
index 0f3bc30c..16c1f808 100644
--- a/CI/integration_tests/visualizer/znvis_visualizer.py
+++ b/CI/integration_tests/visualizer/znvis_visualizer.py
@@ -37,9 +37,7 @@
 
 
 class TestZnvisVisualizer(unittest.TestCase):
-    """
-    A test class for the Particle class.
-    """
+    """A test class for the Particle class."""
 
     def test_run(self):
         """
diff --git a/CI/unit_tests/database/test_experiment_database.py b/CI/unit_tests/database/test_experiment_database.py
index a673b40b..a830ce62 100644
--- a/CI/unit_tests/database/test_experiment_database.py
+++ b/CI/unit_tests/database/test_experiment_database.py
@@ -38,7 +38,7 @@
 
 @pytest.fixture(scope="session")
 def traj_file(tmp_path_factory) -> str:
-    """Download trajectory file into a temporary directory and keep it for all tests"""
+    """Download trajectory file into a temporary directory and keep it for all tests."""
     temporary_path = tmp_path_factory.getbasetemp()
 
     NaCl = DataHub(
@@ -50,7 +50,7 @@ def traj_file(tmp_path_factory) -> str:
 
 
 def test_read_files(tmp_path, traj_file):
-    """Test that read_files is saved correctly"""
+    """Test that read_files is saved correctly."""
     os.chdir(tmp_path)
     project_1 = mds.Project()
     file_proc = mdsuite.file_io.lammps_trajectory_files.LAMMPSTrajectoryFile(traj_file)
@@ -60,7 +60,7 @@ def test_read_files(tmp_path, traj_file):
 
 
 def test_project_temperature(tmp_path):
-    """Test that the project description is stored correctly in the database"""
+    """Test that the project description is stored correctly in the database."""
     os.chdir(tmp_path)
     project_1 = mds.Project()
     project_1.add_experiment(name="Exp01")
@@ -72,7 +72,7 @@ def test_project_temperature(tmp_path):
 
 
 def test_project_time_step(tmp_path):
-    """Test that the project description is stored correctly in the database"""
+    """Test that the project description is stored correctly in the database."""
     os.chdir(tmp_path)
     project_1 = mds.Project()
     project_1.add_experiment(name="Exp01")
@@ -84,7 +84,7 @@ def test_project_time_step(tmp_path):
 
 
 def test_project_number_of_configurations(tmp_path):
-    """Test that the project description is stored correctly in the database"""
+    """Test that the project description is stored correctly in the database."""
     os.chdir(tmp_path)
     project_1 = mds.Project()
     project_1.add_experiment(name="Exp01")
@@ -96,7 +96,7 @@ def test_project_number_of_configurations(tmp_path):
 
 
 def test_project_number_of_atoms(tmp_path):
-    """Test that the project description is stored correctly in the database"""
+    """Test that the project description is stored correctly in the database."""
     os.chdir(tmp_path)
     project_1 = mds.Project()
     project_1.add_experiment(name="Exp01")
@@ -108,7 +108,7 @@ def test_project_number_of_atoms(tmp_path):
 
 
 def test_species(tmp_path):
-    """Test that the species are stored correctly in the database"""
+    """Test that the species are stored correctly in the database."""
     os.chdir(tmp_path)
     species = {
         "H": SpeciesInfo(name="H", n_particles=3, mass=1, properties=[]),
@@ -135,7 +135,7 @@ def test_species(tmp_path):
 
 
 def test_molecules(tmp_path):
-    """Test that the molecules are stored correctly in the database"""
+    """Test that the molecules are stored correctly in the database."""
     os.chdir(tmp_path)
 
     molecule = {
@@ -153,7 +153,7 @@ def test_molecules(tmp_path):
 
 
 def test_project_box_array(tmp_path):
-    """Test that the project description is stored correctly in the database"""
+    """Test that the project description is stored correctly in the database."""
     os.chdir(tmp_path)
     box_array = np.array([1.0, 1.414, 1.732])
 
@@ -167,7 +167,7 @@ def test_project_box_array(tmp_path):
 
 
 def test_experiment_simulation_data(tmp_path):
-    """Test that the experiment simulation data is stored correctly in the database"""
+    """Test that the experiment simulation data is stored correctly in the database."""
     os.chdir(tmp_path)
     simulation_data = {
         "a_5": [10.0, 11.0, 12.0],
@@ -187,9 +187,7 @@ def test_experiment_simulation_data(tmp_path):
 
 
 def test_experiment_simulation_data_nested(tmp_path):
-    """
-    Test that nested experiment simulation data is stored correctly in the database
-    """
+    """Test that nested experiment simulation data is stored correctly in the database."""
     os.chdir(tmp_path)
     simulation_data = {"a": {"one": [1.0, 2.0, 3.0], "two": [4.0, 5.0, 6.0]}}
 
@@ -205,7 +203,7 @@ def test_experiment_simulation_data_nested(tmp_path):
 
 
 def test_experiment_units(tmp_path):
-    """Test that the experiment simulation data is stored correctly in the database"""
+    """Test that the experiment simulation data is stored correctly in the database."""
     from mdsuite.utils.units import Units
 
     os.chdir(tmp_path)
diff --git a/CI/unit_tests/database/test_file_read.py b/CI/unit_tests/database/test_file_read.py
index f9f770d2..53afd57d 100644
--- a/CI/unit_tests/database/test_file_read.py
+++ b/CI/unit_tests/database/test_file_read.py
@@ -1,3 +1,4 @@
+"""Test MDSuite file reading."""
 import numpy as np
 
 import mdsuite
@@ -13,10 +14,10 @@
 
 
 def get_species_list(n_species=1, prop_names=["Positions"], n_particles=17, n_dims=3):
-    props = list()
+    props = []
     for prop_name in prop_names:
         props.append(PropertyInfo(name=prop_name, n_dims=n_dims))
-    ret = list()
+    ret = []
     for i in range(n_species):
         ret.append(
             SpeciesInfo(
diff --git a/CI/unit_tests/database/test_simulation_database.py b/CI/unit_tests/database/test_simulation_database.py
index 7463ecea..048afa37 100644
--- a/CI/unit_tests/database/test_simulation_database.py
+++ b/CI/unit_tests/database/test_simulation_database.py
@@ -34,9 +34,7 @@
 
 
 class TestScalingFunctions(unittest.TestCase):
-    """
-    A test class for the simulation database class.
-    """
+    """A test class for the simulation database class."""
 
     def test_build_path_input(self):
         """
diff --git a/CI/unit_tests/experiment/test_Experiment.py b/CI/unit_tests/experiment/test_Experiment.py
index c8030d57..991247b1 100644
--- a/CI/unit_tests/experiment/test_Experiment.py
+++ b/CI/unit_tests/experiment/test_Experiment.py
@@ -1,3 +1,4 @@
+"""Test MDSuite Experiment class."""
 import pytest
 
 from mdsuite.experiment.experiment import Experiment
diff --git a/CI/unit_tests/experiment/test_run_computation.py b/CI/unit_tests/experiment/test_run_computation.py
index 24c0427c..7d648498 100644
--- a/CI/unit_tests/experiment/test_run_computation.py
+++ b/CI/unit_tests/experiment/test_run_computation.py
@@ -1,8 +1,9 @@
-"""
+"""MDSuite test for run computation.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
 https://www.eclipse.org/legal/epl-v20.html
-SPDX-License-Identifier: EPL-2.0
+SPDX-License-Identifier: EPL-2.0.
 
 Copyright Contributors to the Zincware Project.
 
@@ -14,21 +15,21 @@
 
 
 class MockTransformation:
-    """Mock a transformation"""
+    """Mock a transformation."""
 
     def run_transformation(self, *args, **kwargs):
         pass
 
 
 class MockExperiment(Mock):
-    """Mock a Experiment class with cls_transformation_run"""
+    """Mock a Experiment class with cls_transformation_run."""
 
     def cls_transformation_run(self, cls, *args, **kwargs):
         self.cls = cls
 
 
 def test_transformation_wrapper():
-    """Test the transformation wrapper for a single experiment"""
+    """Test the transformation wrapper for a single experiment."""
     mock_experiment = MockExperiment()
     run_computation = RunComputation(experiment=mock_experiment)
 
@@ -39,7 +40,7 @@ def test_transformation_wrapper():
 
 
 def test_transformation_wrapper_multi_exp():
-    """Test the transformation wrapper for a single experiment"""
+    """Test the transformation wrapper for a single experiment."""
     mock_experiment1 = MockExperiment()
     mock_experiment2 = MockExperiment()
     run_computation = RunComputation(experiments=[mock_experiment1, mock_experiment2])
diff --git a/CI/unit_tests/graph_modules/test_molecular_graph.py b/CI/unit_tests/graph_modules/test_molecular_graph.py
index 8e944dcb..2c4fefa6 100644
--- a/CI/unit_tests/graph_modules/test_molecular_graph.py
+++ b/CI/unit_tests/graph_modules/test_molecular_graph.py
@@ -63,17 +63,13 @@ class SmilesTestData:
 
 
 class MockExperiment:
-    """
-    Experiment class for a unit test
-    """
+    """Experiment class for a unit test."""
 
     database_path = Path("./")
 
 
 class TestMolecularGraph:
-    """
-    Class to test the molecular graph module.
-    """
+    """Class to test the molecular graph module."""
 
     def test_apply_system_cutoff(self):
         """
diff --git a/CI/unit_tests/memory_manager/test_memory_manager.py b/CI/unit_tests/memory_manager/test_memory_manager.py
index 89584d90..b89ad00a 100644
--- a/CI/unit_tests/memory_manager/test_memory_manager.py
+++ b/CI/unit_tests/memory_manager/test_memory_manager.py
@@ -27,14 +27,10 @@
 
 
 class TestDatabase:
-    """
-    Test database for the unit testing.
-    """
+    """Test database for the unit testing."""
 
     def __init__(self, data_size: int = 500, rows: int = 10, columns: int = 10):
-        """
-        Constructor for the test database.
-        """
+        """Constructor for the test database."""
         self.data_size = data_size
         self.rows = rows
         self.columns = columns
@@ -51,9 +47,7 @@ def get_data_size(self, item):
 
 
 class TestMemoryManager(unittest.TestCase):
-    """
-    Test the memory manager module.
-    """
+    """Test the memory manager module."""
 
     @classmethod
     def setUpClass(cls) -> None:
diff --git a/CI/unit_tests/project/test_project_add_experiment.py b/CI/unit_tests/project/test_project_add_experiment.py
index 2ec10dc8..0ed72055 100644
--- a/CI/unit_tests/project/test_project_add_experiment.py
+++ b/CI/unit_tests/project/test_project_add_experiment.py
@@ -47,7 +47,7 @@
 def ase_md_extxyz(tmp_path_factory) -> pathlib.Path:
     """
     References
-    -----------
+    ----------
     https://wiki.fysik.dtu.dk/ase/tutorials/md/md.html
 
     Returns
@@ -84,7 +84,7 @@ def ase_md_extxyz(tmp_path_factory) -> pathlib.Path:
 
 @pytest.fixture(scope="session")
 def traj_files(tmp_path_factory) -> dict:
-    """Download files into a temporary directory and keep them for all tests"""
+    """Download files into a temporary directory and keep them for all tests."""
     base_url = "https://github.com/zincware/DataHub/tree/main"
 
     files_to_load = [
@@ -98,7 +98,7 @@ def traj_files(tmp_path_factory) -> dict:
     ]
 
     temporary_path = tmp_path_factory.getbasetemp()
-    file_paths = dict()
+    file_paths = {}
     for fname in files_to_load:
         folder = fname.split(".")[0]
         url = f"{base_url}/{folder}"
@@ -115,9 +115,7 @@ def traj_files(tmp_path_factory) -> dict:
 
 
 def test_experiment_return():
-    """
-    Check that an experiment is returned by the add_experiment argument.
-    """
+    """Check that an experiment is returned by the add_experiment argument."""
     project_1 = mds.Project()
     exp_1 = project_1.add_experiment("Exp01")
     assert type(exp_1) is mdsuite.experiment.experiment.Experiment
@@ -125,7 +123,7 @@ def test_experiment_return():
 
 
 def test_add_file_from_list(traj_files, tmp_path):
-    """Check that adding files from lists does not raise an error"""
+    """Check that adding files from lists does not raise an error."""
     os.chdir(tmp_path)
     project = mds.Project()
     file_names = [
@@ -141,7 +139,7 @@ def test_add_file_from_list(traj_files, tmp_path):
 
 
 def test_add_file_from_str(traj_files, tmp_path):
-    """Check that adding files from str does not raise an error"""
+    """Check that adding files from str does not raise an error."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -156,7 +154,7 @@ def test_add_file_from_str(traj_files, tmp_path):
 
 
 def test_add_file_from_str_extxyz(ase_md_extxyz, tmp_path):
-    """Check that adding extxyz files from an ASE md simulation works"""
+    """Check that adding extxyz files from an ASE md simulation works."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(
@@ -173,7 +171,7 @@ def test_add_file_from_str_extxyz(ase_md_extxyz, tmp_path):
 
 
 def test_multiple_experiments(tmp_path):
-    """Test the paths within the experiment classes
+    """Test the paths within the experiment classes.
 
     Parameters
     ----------
diff --git a/CI/unit_tests/project/test_project_database.py b/CI/unit_tests/project/test_project_database.py
index 8ed06693..950a1a12 100644
--- a/CI/unit_tests/project/test_project_database.py
+++ b/CI/unit_tests/project/test_project_database.py
@@ -38,7 +38,7 @@
 
 @pytest.fixture(autouse=True)
 def prepare_env():
-    """Prepare temporary environment"""
+    """Prepare temporary environment."""
     temp_dir = TemporaryDirectory()
     os.chdir(temp_dir.name)
 
@@ -49,8 +49,7 @@ def prepare_env():
 
 
 def test_project_description():
-    """Test that the project description is stored correctly in the database"""
-
+    """Test that the project description is stored correctly in the database."""
     project_1 = mds.Project()
     project_1.description = "HelloWorld"
 
@@ -61,9 +60,8 @@ def test_project_description():
 def test_project_description_from_file():
     """
     Test that the project description is stored correctly in the database if
-    read from file
+    read from file.
     """
-
     desc = Path("desc.md")
     desc.write_text("HelloWorld")
 
diff --git a/CI/unit_tests/project/test_project_instantiation.py b/CI/unit_tests/project/test_project_instantiation.py
index 33d1cfc9..cb3c8462 100644
--- a/CI/unit_tests/project/test_project_instantiation.py
+++ b/CI/unit_tests/project/test_project_instantiation.py
@@ -1,8 +1,9 @@
-"""
+"""MDSuite test for project instatiating.
+
 This program and the accompanying materials are made available under the terms of the
 Eclipse Public License v2.0 which accompanies this distribution, and is available at
 https://www.eclipse.org/legal/epl-v20.html
-SPDX-License-Identifier: EPL-2.0
+SPDX-License-Identifier: EPL-2.0.
 
 Copyright Contributors to the Zincware Project.
 
diff --git a/CI/unit_tests/project/test_project_load_experiments.py b/CI/unit_tests/project/test_project_load_experiments.py
index 1bba5bd6..7b857645 100644
--- a/CI/unit_tests/project/test_project_load_experiments.py
+++ b/CI/unit_tests/project/test_project_load_experiments.py
@@ -37,7 +37,7 @@
 
 @pytest.fixture(autouse=True)
 def prepare_env():
-    """Prepare temporary environment"""
+    """Prepare temporary environment."""
     temp_dir = TemporaryDirectory()
     os.chdir(temp_dir.name)
 
@@ -48,8 +48,7 @@ def prepare_env():
 
 
 def test_project_load_experiments():
-    """Test that the project loads experiments"""
-
+    """Test that the project loads experiments."""
     project_1 = mds.Project()
     project_1.description = "HelloWorld"
     project_1.add_experiment("Exp01", active=False)
diff --git a/CI/unit_tests/transformations/test_transformator_parent.py b/CI/unit_tests/transformations/test_transformator_parent.py
index b2398f12..e433134f 100644
--- a/CI/unit_tests/transformations/test_transformator_parent.py
+++ b/CI/unit_tests/transformations/test_transformator_parent.py
@@ -69,7 +69,7 @@ def test_automatic_coordinate_unwrapping(tmp_path):
     """
     check if positions are automatically unwrapped if needed in another transformation.
     This also tests the fallback mechanism in case the first trafo (unwrap_via_indices)
-    does not work
+    does not work.
     """
     os.chdir(tmp_path)
 
@@ -94,7 +94,7 @@ def test_automatic_coordinate_unwrapping(tmp_path):
 def test_full_transformation_with_values(tmp_path):
     """
     Check for one transformation, that the correct data is loaded and
-    transferred to the actual transformation function
+    transferred to the actual transformation function.
     """
     os.chdir(tmp_path)
 
@@ -119,9 +119,7 @@ def test_full_transformation_with_values(tmp_path):
 
 
 def test_not_found_errors(tmp_path):
-    """
-    Test that the correct error is thrown if input data cannot be found
-    """
+    """Test that the correct error is thrown if input data cannot be found."""
     os.chdir(tmp_path)
     project = mds.Project()
     project.add_experiment(name="TestExp1234", timestep=12345)
@@ -145,7 +143,7 @@ def check_madeup_prop(trafo_class, prop_name):
 def test_save_to_correct_name(tmp_path):
     """
     Check that the transformation result is at the correct place
-    in the simulation database
+    in the simulation database.
     """
     os.chdir(tmp_path)
     project = mds.Project()
@@ -175,7 +173,7 @@ def test_save_to_correct_name(tmp_path):
 def test_data_from_species_and_experiment(tmp_path):
     """
     test trafo that takes positions time dependent, charge from the species,
-    and box_l from the experiment
+    and box_l from the experiment.
     """
     os.chdir(tmp_path)
 
@@ -206,9 +204,7 @@ def check_trafo(trafo_class, prop_name):
 
 
 def test_transformation_on_new_data_(tmp_path):
-    """
-    Check that after adding new data, the transformation still works
-    """
+    """Check that after adding new data, the transformation still works."""
     os.chdir(tmp_path)
     project = mds.Project()
 
diff --git a/CI/unit_tests/utils/test_calculator_helper_methods.py b/CI/unit_tests/utils/test_calculator_helper_methods.py
index acb06229..07cb6f44 100644
--- a/CI/unit_tests/utils/test_calculator_helper_methods.py
+++ b/CI/unit_tests/utils/test_calculator_helper_methods.py
@@ -37,9 +37,7 @@
 
 
 class TestCalculatorHelperMethods:
-    """
-    Test suite for the calculator helper methods.
-    """
+    """Test suite for the calculator helper methods."""
 
     def test_fit_einstein_curve(self):
         """
diff --git a/CI/unit_tests/utils/test_meta_functions.py b/CI/unit_tests/utils/test_meta_functions.py
index da167981..226d3bbe 100644
--- a/CI/unit_tests/utils/test_meta_functions.py
+++ b/CI/unit_tests/utils/test_meta_functions.py
@@ -48,9 +48,7 @@
 
 
 class TestMetaFunction:
-    """
-    A test class for the meta functions module.
-    """
+    """A test class for the meta functions module."""
 
     def test_join_path(self):
         """
@@ -171,9 +169,10 @@ def test_golden_section_search(self):
         def func(x: np.ndarray):
             """
             test function.
+
             Parameters
             ----------
-            x : np.ndarray
+            x : np.ndarray.
 
             Returns
             -------
diff --git a/CI/unit_tests/utils/test_molecule_class.py b/CI/unit_tests/utils/test_molecule_class.py
index 4690f087..79430ce3 100644
--- a/CI/unit_tests/utils/test_molecule_class.py
+++ b/CI/unit_tests/utils/test_molecule_class.py
@@ -57,7 +57,5 @@ def test_instantiation():
 
 
 def test_project_import():
-    """
-    Test that the molecule can be import directly from the mdsuite import.
-    """
+    """Test that the molecule can be import directly from the mdsuite import."""
     mdsuite.Molecule(name="test", amount=1, cutoff=1.0)
diff --git a/CI/unit_tests/utils/test_scaling_functions.py b/CI/unit_tests/utils/test_scaling_functions.py
index 15eb7df9..6d00fb03 100644
--- a/CI/unit_tests/utils/test_scaling_functions.py
+++ b/CI/unit_tests/utils/test_scaling_functions.py
@@ -1,5 +1,5 @@
-"""
-MDSuite: A Zincwarecode package.
+"""MDSuite: A Zincwarecode package.
+
 License
 -------
 This program and the accompanying materials are made available under the terms
@@ -33,9 +33,7 @@
 
 
 class TestScalingFunctions(unittest.TestCase):
-    """
-    A test class for the scaling functions module.
-    """
+    """A test class for the scaling functions module."""
 
     def test_linear_scaling_function(self):
         """
diff --git a/CI/unit_tests/utils/test_testing.py b/CI/unit_tests/utils/test_testing.py
index db655111..b96b3e75 100644
--- a/CI/unit_tests/utils/test_testing.py
+++ b/CI/unit_tests/utils/test_testing.py
@@ -34,9 +34,7 @@
 
 
 class TestProcess(unittest.TestCase):
-    """
-    Test the process class
-    """
+    """Test the process class."""
 
     def test_exception(self):
         """
@@ -72,8 +70,10 @@ def test_no_exception(self):
     def _exception_throw():
         """
         Process to throw exception.
+
         Returns
         -------
+        -------.
 
         """
         raise ValueError("Test error")
@@ -82,17 +82,17 @@ def _exception_throw():
     def _no_exception():
         """
         Process to not throw an exception.
+
         Returns
         -------
+        -------.
 
         """
         pass
 
 
 class TestAssertDeepAlmostEqual(unittest.TestCase):
-    """
-    Test the deep array assert testing method.
-    """
+    """Test the deep array assert testing method."""
 
     def test_almost_equal(self):
         """
diff --git a/CI/unit_tests/utils/test_units.py b/CI/unit_tests/utils/test_units.py
index cfd3a613..688131a5 100644
--- a/CI/unit_tests/utils/test_units.py
+++ b/CI/unit_tests/utils/test_units.py
@@ -1,8 +1,9 @@
+"""Test MDSuite units."""
 import mdsuite as mds
 
 
 def test_units_loading():
-    """Test that the import works"""
+    """Test that the import works."""
     assert mds.units.SI.pressure == 1
     assert mds.units.METAL.pressure == 100000
     assert mds.units.REAL.pressure == 101325.0
diff --git a/mdsuite/transformations/test_trafos.py b/mdsuite/transformations/test_trafos.py
index 5cac98b5..c7a089b4 100644
--- a/mdsuite/transformations/test_trafos.py
+++ b/mdsuite/transformations/test_trafos.py
@@ -36,9 +36,7 @@
 
 
 class TestMultispecies(MultiSpeciesTrafo):
-    """
-    transformation for testing purposes only
-    """
+    """transformation for testing purposes only."""
 
     def __init__(self, input_properties: typing.Iterable, output_property):
         super(TestMultispecies, self).__init__(
@@ -52,9 +50,7 @@ def transform_batch(
         batch: typing.Dict[str, typing.Dict[str, tf.Tensor]],
         carryover: typing.Any = None,
     ) -> typing.Tuple[tf.Tensor, typing.Any]:
-        """
-        'use' all input properties, return array of 516
-        """
+        """'use' all input properties, return array of 516."""
         for properties in batch.values():
             for input_prop in self.input_properties:
                 val = properties[input_prop.name]
@@ -71,9 +67,7 @@ def transform_batch(
 
 
 class TestSingleSpecies(SingleSpeciesTrafo):
-    """
-    Wrap coordinates into the simulation box
-    """
+    """Wrap coordinates into the simulation box."""
 
     def __init__(self, input_properties: typing.Iterable, output_property):
         super(TestSingleSpecies, self).__init__(
@@ -85,9 +79,7 @@ def __init__(self, input_properties: typing.Iterable, output_property):
     def transform_batch(
         self, batch: typing.Dict[str, tf.Tensor], carryover: typing.Any = None
     ) -> typing.Tuple[tf.Tensor, int]:
-        """
-        'use' all input properties, return array of 516
-        """
+        """'use' all input properties, return array of 516."""
         self.logger.debug(batch)
         for input_prop in self.input_properties:
             val = batch[input_prop.name]
diff --git a/mdsuite/utils/testing.py b/mdsuite/utils/testing.py
index c0205734..81898832 100644
--- a/mdsuite/utils/testing.py
+++ b/mdsuite/utils/testing.py
@@ -63,22 +63,16 @@ def assertDeepAlmostEqual(expected, actual, *args, **kwargs):
 
 
 class MDSuiteProcess(multiprocessing.Process):
-    """
-    Process class for use in ZnVis testing.
-    """
+    """Process class for use in ZnVis testing."""
 
     def __init__(self, *args, **kwargs):
-        """
-        Multiprocessing class constructor.
-        """
+        """Multiprocessing class constructor."""
         super(MDSuiteProcess, self).__init__(*args, **kwargs)
         self._pconn, self._cconn = multiprocessing.Pipe()
         self._exception = None
 
     def run(self):
-        """
-        Run the process and catch exceptions.
-        """
+        """Run the process and catch exceptions."""
         try:
             multiprocessing.Process.run(self)
             self._cconn.send(None)
@@ -88,9 +82,7 @@ def run(self):
 
     @property
     def exception(self):
-        """
-        Exception property to be stored by the process.
-        """
+        """Exception property to be stored by the process."""
         if self._pconn.poll():
             self._exception = self._pconn.recv()
         return self._exception