diff --git a/scripts/modules_matrix.py b/scripts/modules_matrix.py
index e26d283f8a6c2669a3306ad80ec93a4d8e886ffb..3f410dcfa1e68ef01178f418453ee6645de5fd25 100755
--- a/scripts/modules_matrix.py
+++ b/scripts/modules_matrix.py
@@ -1,19 +1,16 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 """ modules_matrix """
 
-from __future__ import print_function
-
 import argparse
 import csv
 import itertools
 import json
 import os.path
-import packaging.specifiers
 
 def arg_parse():
     """
-    argument parser
+    Argument parser
     """
     parser = argparse.ArgumentParser(
         description="Module_matrix"
@@ -24,32 +21,29 @@ def arg_parse():
     return parser.parse_args()
 
 def get_data(filename):
-    '''function to read the data form the input csv file to use in the analysis'''
+    """Function to read the data from the input CSV file to use in the analysis"""
     reader = []  # Just in case the file open fails
     with open(filename, 'r') as fdata:
         reader = csv.reader(fdata, delimiter=',')
-        # returns all the data from the csv file in list form
-#        print(list(reader))
-        return list(reader)  # only return the reader when you have finished.
+        return list(reader)  # Only return the reader when you have finished.
 
 def get_datalist():
-    """ get_datalist """
+    """Get data list"""
     datalist = []
     for name in ['karolina', 'dgx', 'barbora']:
-        path = os.path.join('scripts', "{}.csv".format(name))
+        path = os.path.join('scripts', f"{name}.csv")
         datalist += get_data(path)
     return datalist
 
 def get_counts(datalist):
-    """ get_counts """
-    counts = dict()
+    """Get counts"""
+    counts = {}
     for i in datalist:
         counts[i[0]] = counts.get(i[0], 0) + int(i[1])
     return counts
 
 def get_matrix():
-    """ get_matrix """
-    #     1    2    4    8    16   32
+    """Get matrix"""
     chars = ['K', 'B', 'D']
     arr = []
     mask = ''.join(reversed(chars))
@@ -65,10 +59,10 @@ def get_matrix():
     return arr
 
 def get_software(datalist):
-    """ get_software """
+    """Get software"""
     matrix = get_matrix()
     counts = get_counts(datalist)
-    software = dict()
+    software = {}
     prev = ''
     for mat, i in sorted(counts.items()):
         split = mat.split('/')
@@ -80,31 +74,28 @@ def get_software(datalist):
     return software
 
 def packages_json(software):
-    """ packages_json """
+    """Packages JSON"""
     packages = {}
     for module in sorted(software.items(), key=lambda i: i[0].lower()):
-        packages[module[0]] = sorted(module[1],
-                                     key=packaging.specifiers.LegacyVersion)[len(module[1]) - 1]
+        packages[module[0]] = sorted(module[1])[-1]
     data = {'total': len(packages), 'projects': packages}
     return data
 
 def print_software(software):
-    """ print_software """
-    versions = ''
-    clusters = ''
+    """Print software"""
     for module in sorted(software.items(), key=lambda i: i[0].lower()):
-        software = module[0]
+        software_name = module[0]
         versions = []
         clusters = []
-        for key in sorted(module[1].keys(), key=packaging.specifiers.LegacyVersion):
+        for key in sorted(module[1].keys()):
             versions.append(key)
             clusters.append(module[1][key])
-        print("| {} | {} | {} |".format(software, '</br>'.join(versions), '</br>'.join(clusters)))
+        print(f"| {software_name} | {'</br>'.join(versions)} | {'</br>'.join(clusters)} |")
     print()
     print('---8<--- "modules_matrix_search.md"')
 
 def print_hint():
-    """ print_hint """
+    """Print hint"""
     print('!!! Hint "Cluster Acronyms"')
     print('    ```')
     print('    D B K')
@@ -114,13 +105,13 @@ def print_hint():
     print('    +--------> DGX')
     print('    ```')
     print()
-    print("{} {} {}".format('| Module </br><form><input id="searchInput" placeholder="🔍 Filter"',
-                            'style="width: 8rem; border-radius: 0.2rem; color: black;',
-                            'padding-left: .2rem;"></form> | Versions | Clusters |'))
+    print(f"| Module </br><form><input id=\"searchInput\" placeholder=\"🔍 Filter\""
+          f"style=\"width: 8rem; border-radius: 0.2rem; color: black;"
+          f"padding-left: .2rem;\"></form> | Versions | Clusters |")
     print("| ------ | -------- | -------- |")
 
 def print_changelog():
-    """ print_changelog """
+    """Print changelog"""
     print('**Modules Changelog**<br>')
     print('You can see the modules changelog for each supercomputer here:<br>')
     print('[DGX modules changelog][1]<br>')
@@ -128,15 +119,13 @@ def print_changelog():
     print('[Karolina modules changelog][3]<br>')
 
 def print_links():
-    """ print_links """
+    """Print links"""
     print('[1]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/dgx-changelog.md')
     print('[2]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/barbora-changelog.md')
     print('[3]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/karolina-changelog.md')
 
 def main():
-    """
-    main function
-    """
+    """Main function"""
     arg = arg_parse()
     datalist = get_datalist()
     software = get_software(datalist)