diff --git a/lib/bmc_redfish.py b/lib/bmc_redfish.py
index db9e013..2ae405a 100644
--- a/lib/bmc_redfish.py
+++ b/lib/bmc_redfish.py
@@ -56,7 +56,7 @@
             if not result:
                 gp.lprint_var(except_type)
                 gp.lprint_varx("except_value", str(except_value))
-                raise(get_exception)
+                raise (get_exception)
         BuiltIn().set_global_variable("${REDFISH_SUPPORTED}", self.__inited__)
         BuiltIn().set_global_variable("${REDFISH_REST_SUPPORTED}", True)
 
diff --git a/lib/func_timer.py b/lib/func_timer.py
index 0021163..852bbf2 100644
--- a/lib/func_timer.py
+++ b/lib/func_timer.py
@@ -223,7 +223,7 @@
             # exception.
             gp.lprint_timen("Encountered exception in user's function.")
             self.cleanup()
-            raise(func_exception)
+            raise (func_exception)
         gp.lprint_timen("Returned from the user's function.")
 
         self.cleanup()
diff --git a/lib/gen_plug_in_utils.py b/lib/gen_plug_in_utils.py
index 7ec2088..0cf3262 100755
--- a/lib/gen_plug_in_utils.py
+++ b/lib/gen_plug_in_utils.py
@@ -288,7 +288,7 @@
     default_value = os.environ.get(package_var_name, None)
     if default_value is not None:
         # A package-name version of the variable was found so return its value.
-        return(default_value)
+        return (default_value)
 
     plug_var_name = PLUG_VAR_PREFIX + "_OVERRIDE_" + var_name
     default_value = os.environ.get(plug_var_name, None)
diff --git a/lib/gen_robot_ssh.py b/lib/gen_robot_ssh.py
index cd1a997..ab68415 100755
--- a/lib/gen_robot_ssh.py
+++ b/lib/gen_robot_ssh.py
@@ -142,7 +142,7 @@
         return
 
     # If we get to this point, the login has failed on all attempts so the exception will be raised again.
-    raise(except_value)
+    raise (except_value)
 
 
 def execute_ssh_command(cmd_buf,
@@ -305,7 +305,7 @@
             # We do not handle any other RuntimeErrors so we will raise the exception again.
             sshlib.close_all_connections()
             gp.lprintn(traceback.format_exc())
-            raise(except_value)
+            raise (except_value)
 
         # If we get to this point, the command was executed.
         break
