diff --git a/bin/generate_inventory b/bin/generate_inventory
index 3654682..0d90343 100755
--- a/bin/generate_inventory
+++ b/bin/generate_inventory
@@ -10,7 +10,7 @@
 
 lib_path = sys.path[0] + "/../lib"
 sys.path.insert(0, lib_path)
-from gen_print import *
+from gen_print import *    # NOQA
 
 # This list will be longer when more development codes are available.
 inventory_items = ['fru', 'core', 'fan', 'fan_wc', 'gpu']
diff --git a/bin/generate_testsuite_info.py b/bin/generate_testsuite_info.py
index 7cafd1e..4a2f115 100755
--- a/bin/generate_testsuite_info.py
+++ b/bin/generate_testsuite_info.py
@@ -10,9 +10,9 @@
 from robot.parsing.model import TestData
 sys.path.append(os.path.join(os.path.dirname(__file__), "../lib"))
 
-from gen_arg import *
-from gen_print import *
-from gen_valid import *
+from gen_arg import *     # NOQA
+from gen_print import *   # NOQA
+from gen_valid import *   # NOQA
 
 # Set exit_on_error for gen_valid functions.
 set_exit_on_error(True)
diff --git a/bin/obmc_ser_num b/bin/obmc_ser_num
index ba620c8..4057316 100755
--- a/bin/obmc_ser_num
+++ b/bin/obmc_ser_num
@@ -11,9 +11,9 @@
 save_path_0 = sys.path[0]
 del sys.path[0]
 
-from gen_arg import *
-from gen_print import *
-from gen_valid import *
+from gen_arg import *     # NOQA
+from gen_print import *   # NOQA
+from gen_valid import *   # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
diff --git a/bin/print_ffdc_functions b/bin/print_ffdc_functions
index dd46bc6..7988195 100755
--- a/bin/print_ffdc_functions
+++ b/bin/print_ffdc_functions
@@ -9,10 +9,10 @@
 save_path_0 = sys.path[0]
 del sys.path[0]
 
-from gen_arg import *
-from gen_print import *
-from gen_valid import *
-from openbmc_ffdc_list import *
+from gen_arg import *               # NOQA
+from gen_print import *             # NOQA
+from gen_valid import *             # NOQA
+from openbmc_ffdc_list import *     # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
diff --git a/bin/prop_call.py b/bin/prop_call.py
index 15cff57..e352d55 100755
--- a/bin/prop_call.py
+++ b/bin/prop_call.py
@@ -22,11 +22,11 @@
 save_path_0 = sys.path[0]
 del sys.path[0]
 
-from gen_arg import *
-from gen_print import *
-from gen_valid import *
-from gen_misc import *
-from gen_cmd import *
+from gen_arg import *      # NOQA
+from gen_print import *    # NOQA
+from gen_valid import *    # NOQA
+from gen_misc import *     # NOQA
+from gen_cmd import *      # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
diff --git a/bin/validate_plug_ins.py b/bin/validate_plug_ins.py
index a202d2e..8e3ed1d 100755
--- a/bin/validate_plug_ins.py
+++ b/bin/validate_plug_ins.py
@@ -1,12 +1,12 @@
 #!/usr/bin/env python3
 
+import os
 import sys
 try:
     import __builtin__
 except ImportError:
     import builtins as __builtin__
 
-import os
 
 # python puts the program's directory path in sys.path[0].  In other words, the user ordinarily has no way
 # to override python's choice of a module from its own dir.  We want to have that ability in our environment.
@@ -17,9 +17,9 @@
 save_path_0 = sys.path[0]
 del sys.path[0]
 
-from gen_print import *
-from gen_arg import *
-from gen_plug_in import *
+from gen_print import *     # NOQA
+from gen_arg import *       # NOQA
+from gen_plug_in import *   # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
diff --git a/bin/websocket_monitor.py b/bin/websocket_monitor.py
index 846ccd5..3425057 100755
--- a/bin/websocket_monitor.py
+++ b/bin/websocket_monitor.py
@@ -14,9 +14,9 @@
 save_path_0 = sys.path[0]
 del sys.path[0]
 
-from gen_print import *
-from gen_arg import *
-from gen_valid import *
+from gen_print import *   # NOQA
+from gen_arg import *     # NOQA
+from gen_valid import *   # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
diff --git a/ffdc/collect_ffdc.py b/ffdc/collect_ffdc.py
index c1c9495..d709a96 100644
--- a/ffdc/collect_ffdc.py
+++ b/ffdc/collect_ffdc.py
@@ -18,7 +18,7 @@
     for found_dir in dirs:
         sys.path.append(os.path.join(root, found_dir))
 
-from ffdc_collector import ffdc_collector
+from ffdc_collector import ffdc_collector  # NOQA
 
 
 @click.command(context_settings=dict(help_option_names=['-h', '--help']))
diff --git a/ffdc/ffdc_collector.py b/ffdc/ffdc_collector.py
index 27b088c..91fe261 100644
--- a/ffdc/ffdc_collector.py
+++ b/ffdc/ffdc_collector.py
@@ -4,6 +4,8 @@
 See class prolog below for details.
 """
 
+from errno import EACCES, EPERM
+
 import os
 import re
 import sys
@@ -22,8 +24,8 @@
     for dir in dirs:
         sys.path.append(os.path.join(root, dir))
 
-from ssh_utility import SSHRemoteclient
-from telnet_utility import TelnetRemoteclient
+from ssh_utility import SSHRemoteclient         # NOQA
+from telnet_utility import TelnetRemoteclient   # NOQA
 
 r"""
 User define plugins python functions.
diff --git a/ffdc/plugins/scp_execution.py b/ffdc/plugins/scp_execution.py
index 0aca54c..3b4767a 100644
--- a/ffdc/plugins/scp_execution.py
+++ b/ffdc/plugins/scp_execution.py
@@ -16,7 +16,7 @@
         sys.path.append(os.path.join(root, found_dir))
 
 # ssh_utility is in ../lib
-from ssh_utility import SSHRemoteclient
+from ssh_utility import SSHRemoteclient  # NOQA
 
 
 def scp_remote_file(hostname,
diff --git a/ffdc/plugins/ssh_execution.py b/ffdc/plugins/ssh_execution.py
index 087d887..8623918 100644
--- a/ffdc/plugins/ssh_execution.py
+++ b/ffdc/plugins/ssh_execution.py
@@ -16,7 +16,7 @@
         sys.path.append(os.path.join(root, found_dir))
 
 # ssh_utility is in ../lib
-from ssh_utility import SSHRemoteclient
+from ssh_utility import SSHRemoteclient  # NOQA
 
 
 def ssh_execute_cmd(hostname,
diff --git a/ffdc/plugins/telnet_execution.py b/ffdc/plugins/telnet_execution.py
index 7cfd78b..d55d18a 100644
--- a/ffdc/plugins/telnet_execution.py
+++ b/ffdc/plugins/telnet_execution.py
@@ -15,7 +15,7 @@
     for found_dir in dirs:
         sys.path.append(os.path.join(root, found_dir))
 
-from telnet_utility import TelnetRemoteclient
+from telnet_utility import TelnetRemoteclient  # NOQA
 
 
 def telnet_execute_cmd(hostname,
diff --git a/lib/code_update_utils.py b/lib/code_update_utils.py
index e8ee562..212dc3d 100644
--- a/lib/code_update_utils.py
+++ b/lib/code_update_utils.py
@@ -4,6 +4,8 @@
 This module provides utilities for code updates.
 """
 
+from robot.libraries.BuiltIn import BuiltIn
+
 import os
 import re
 import sys
@@ -16,11 +18,10 @@
 repo_data_path = re.sub('/lib', '/data', robot_pgm_dir_path)
 sys.path.append(repo_data_path)
 
-import bmc_ssh_utils as bsu
-import gen_robot_keyword as keyword
-import gen_print as gp
-import variables as var
-from robot.libraries.BuiltIn import BuiltIn
+import bmc_ssh_utils as bsu             # NOQA
+import gen_robot_keyword as keyword     # NOQA
+import gen_print as gp                  # NOQA
+import variables as var                 # NOQA
 
 
 def get_bmc_firmware(image_type, sw_dict):
diff --git a/lib/dump_utils.py b/lib/dump_utils.py
index d0b0108..f3691ed 100755
--- a/lib/dump_utils.py
+++ b/lib/dump_utils.py
@@ -4,20 +4,20 @@
 This file contains functions which are useful for processing BMC dumps.
 """
 
+from robot.libraries.BuiltIn import BuiltIn
 import gen_print as gp
 import gen_misc as gm
 import gen_robot_keyword as grk
 import bmc_ssh_utils as bsu
 import var_funcs as vf
 import os
-from robot.libraries.BuiltIn import BuiltIn
 import sys
 import os
 import imp
 base_path = os.path.dirname(os.path.dirname(
                             imp.find_module("gen_robot_print")[1])) + os.sep
 sys.path.append(base_path + "data/")
-import variables as var
+import variables as var     # NOQA
 
 
 def get_dump_dict(quiet=None):
diff --git a/lib/ffdc_cli_robot_script.py b/lib/ffdc_cli_robot_script.py
index 013e4ab..30fe428 100644
--- a/lib/ffdc_cli_robot_script.py
+++ b/lib/ffdc_cli_robot_script.py
@@ -4,12 +4,12 @@
 import sys
 
 
-sys.path.append(__file__.split(__file__.split("/")[-1])[0] + "../ffdc")
-from ffdc_collector import ffdc_collector
-from ssh_utility import SSHRemoteclient
-
 from robot.libraries.BuiltIn import BuiltIn as robotBuildIn
 
+sys.path.append(__file__.split(__file__.split("/")[-1])[0] + "../ffdc")
+from ffdc_collector import ffdc_collector  # NOQA
+from ssh_utility import SSHRemoteclient    # NOQA
+
 # (Sub) String constants used for input dictionary key search
 HOST = "HOST"
 USER = "USERNAME"
diff --git a/lib/gen_robot_ssh.py b/lib/gen_robot_ssh.py
index ab68415..b08d470 100755
--- a/lib/gen_robot_ssh.py
+++ b/lib/gen_robot_ssh.py
@@ -4,6 +4,9 @@
 This module provides many valuable ssh functions such as sprint_connection, execute_ssh_command, etc.
 """
 
+from robot.libraries.BuiltIn import BuiltIn
+from SSHLibrary import SSHLibrary
+
 import sys
 import traceback
 import re
@@ -18,8 +21,6 @@
 import func_timer as ft
 func_timer = ft.func_timer_class()
 
-from robot.libraries.BuiltIn import BuiltIn
-from SSHLibrary import SSHLibrary
 sshlib = SSHLibrary()
 
 
diff --git a/lib/ipmi_utils.py b/lib/ipmi_utils.py
index f8cc9be..38045f5 100644
--- a/lib/ipmi_utils.py
+++ b/lib/ipmi_utils.py
@@ -4,6 +4,7 @@
 Provide useful ipmi functions.
 """
 
+from robot.libraries.BuiltIn import BuiltIn
 import re
 import gen_print as gp
 import gen_misc as gm
@@ -14,9 +15,8 @@
 import var_funcs as vf
 import ipmi_client as ic
 import tempfile
-gru.my_import_resource("ipmi_client.robot")
-from robot.libraries.BuiltIn import BuiltIn
 import json
+gru.my_import_resource("ipmi_client.robot")
 
 
 def get_sol_info():
diff --git a/lib/logging_utils.py b/lib/logging_utils.py
index e621d5e..3e0d079 100644
--- a/lib/logging_utils.py
+++ b/lib/logging_utils.py
@@ -4,6 +4,8 @@
 Provide useful error log utility keywords.
 """
 
+from robot.libraries.BuiltIn import BuiltIn
+
 import gen_print as gp
 import sys
 import os
@@ -11,9 +13,8 @@
 base_path = os.path.dirname(os.path.dirname(
                             imp.find_module("gen_robot_print")[1])) + os.sep
 sys.path.append(base_path + "data/")
-import variables as var
-from robot.libraries.BuiltIn import BuiltIn
-import gen_robot_utils as gru
+import variables as var          # NOQA
+import gen_robot_utils as gru    # NOQA
 gru.my_import_resource("logging_utils.robot")
 
 
diff --git a/lib/obmc_boot_test.py b/lib/obmc_boot_test.py
index 0dc245d..452d607 100755
--- a/lib/obmc_boot_test.py
+++ b/lib/obmc_boot_test.py
@@ -38,7 +38,7 @@
                             imp.find_module("gen_robot_print")[1])) +\
     os.sep
 sys.path.append(base_path + "extended/")
-import run_keyword as rk
+import run_keyword as rk  # NOQA
 
 # Setting master_pid correctly influences the behavior of plug-ins like
 # DB_Logging
diff --git a/lib/pel_utils.py b/lib/pel_utils.py
index d361a4e..334f26d 100644
--- a/lib/pel_utils.py
+++ b/lib/pel_utils.py
@@ -14,7 +14,7 @@
 base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 sys.path.append(base_path + "/data/")
 
-import pel_variables
+import pel_variables  # NOQA
 
 
 class peltool_exception(Exception):
diff --git a/lib/state_map.py b/lib/state_map.py
index 5d72b5a..abff002 100644
--- a/lib/state_map.py
+++ b/lib/state_map.py
@@ -16,8 +16,8 @@
 repo_data_dir_path = re.sub('/lib', '/data', robot_pgm_dir_path)
 sys.path.append(repo_data_dir_path)
 
-import gen_robot_keyword as keyword
-import variables as var
+import gen_robot_keyword as keyword  # NOQA
+import variables as var              # NOQA
 
 BuiltIn().import_resource("state_manager.robot")
 BuiltIn().import_resource("rest_client.robot")
diff --git a/syslib/utils_os.py b/syslib/utils_os.py
index 2026d95..0c6131a 100755
--- a/syslib/utils_os.py
+++ b/syslib/utils_os.py
@@ -9,8 +9,8 @@
 
 sys.path.append(os.path.join(os.path.dirname(__file__), "../lib"))
 
-import bmc_ssh_utils
-import var_funcs
+import bmc_ssh_utils  # NOQA
+import var_funcs      # NOQA
 
 
 def get_os_release_info(default_cmd="cat /etc/os-release"):
diff --git a/tools/ct_metrics/gen_csv_results.py b/tools/ct_metrics/gen_csv_results.py
index 342fe69..5f53e86 100755
--- a/tools/ct_metrics/gen_csv_results.py
+++ b/tools/ct_metrics/gen_csv_results.py
@@ -6,6 +6,10 @@
 http://robot-framework.readthedocs.io/en/3.0/autodoc/robot.result.html
 """
 
+from robot.api import ExecutionResult
+from robot.result.visitor import ResultVisitor
+from xml.etree import ElementTree
+
 import sys
 import os
 import getopt
@@ -14,18 +18,15 @@
 import re
 import stat
 import datetime
-from robot.api import ExecutionResult
-from robot.result.visitor import ResultVisitor
-from xml.etree import ElementTree
 
 # Remove the python library path to restore with local project path later.
 save_path_0 = sys.path[0]
 del sys.path[0]
 sys.path.append(os.path.join(os.path.dirname(__file__), "../../lib"))
 
-from gen_arg import *
-from gen_print import *
-from gen_valid import *
+from gen_arg import *    # NOQA
+from gen_print import *  # NOQA
+from gen_valid import *  # NOQA
 
 # Restore sys.path[0].
 sys.path.insert(0, save_path_0)
