diff --git a/settings.py b/settings.py
index 57053f7..0867fbc 100755
--- a/settings.py
+++ b/settings.py
@@ -1,32 +1,36 @@
 #!/usr/bin/env python3
 
+import argparse
 import os
+
 import yaml
 from mako.template import Template
-import argparse
 
 
 def main():
     parser = argparse.ArgumentParser(
-        description="Settings YAML parser and code generator")
+        description="Settings YAML parser and code generator"
+    )
 
     parser.add_argument(
-        '-i', '--settings_yaml', dest='settings_yaml',
-        default='settings_example.yaml', help='settings yaml file to parse')
+        "-i",
+        "--settings_yaml",
+        dest="settings_yaml",
+        default="settings_example.yaml",
+        help="settings yaml file to parse",
+    )
     args = parser.parse_args()
 
-    with open(os.path.join(script_dir, args.settings_yaml), 'r') as fd:
+    with open(os.path.join(script_dir, args.settings_yaml), "r") as fd:
         yamlDict = yaml.safe_load(fd)
 
         # Render the mako template
-        template = os.path.join(script_dir, 'settings_manager.mako.hpp')
+        template = os.path.join(script_dir, "settings_manager.mako.hpp")
         t = Template(filename=template)
-        with open('settings_manager.hpp', 'w') as fd:
-            fd.write(
-                t.render(
-                    settingsDict=yamlDict))
+        with open("settings_manager.hpp", "w") as fd:
+            fd.write(t.render(settingsDict=yamlDict))
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     script_dir = os.path.dirname(os.path.realpath(__file__))
     main()
