diff --git a/lib/openbmc_ffdc_list.py b/lib/openbmc_ffdc_list.py
index 9fb882a..ea79a81 100755
--- a/lib/openbmc_ffdc_list.py
+++ b/lib/openbmc_ffdc_list.py
@@ -17,159 +17,203 @@
 # -----------------------------------------------------------------
 # Add cmd's needed to be part of the ffdc report manifest file
 FFDC_BMC_CMD = {
-    'DRIVER INFO':
-    {
+    "DRIVER INFO": {
         # String Name         Command
-        'FW Level': 'cat /etc/os-release',
-        'FW Timestamp': 'cat /etc/timestamp',
+        "FW Level": "cat /etc/os-release",
+        "FW Timestamp": "cat /etc/timestamp",
     },
-    'BMC DATA':
-    {
-        'BMC OS': 'uname -a',
-        'BMC Uptime': 'uptime;cat /proc/uptime',
-        'BMC File System Disk Space Usage': 'df -hT',
-        'BMC Date Time': 'date;/sbin/hwclock --show;/usr/bin/timedatectl'
+    "BMC DATA": {
+        "BMC OS": "uname -a",
+        "BMC Uptime": "uptime;cat /proc/uptime",
+        "BMC File System Disk Space Usage": "df -hT",
+        "BMC Date Time": "date;/sbin/hwclock --show;/usr/bin/timedatectl",
     },
-    'APPLICATION DATA':
-    {
-        'BMC state': '/usr/bin/obmcutil state',
+    "APPLICATION DATA": {
+        "BMC state": "/usr/bin/obmcutil state",
     },
 }
 # Add file name and corresponding command needed for BMC
 FFDC_BMC_FILE = {
-    'BMC FILES':
-    {
+    "BMC FILES": {
         # File Name         Command
-        'BMC_flash_side.txt': 'cat /sys/class/watchdog/watchdog1/bootstatus >/tmp/BMC_flash_side.txt 2>&1',
-        'BMC_hwmon.txt': 'grep -r . /sys/class/hwmon/* >/tmp/BMC_hwmon.txt 2>&1',
-        'BMC_proc_list.txt': 'top -n 1 -b >/tmp/BMC_proc_list.txt 2>&1',
-        'BMC_proc_fd_active_list.txt': 'ls -Al /proc/*/fd/ >/tmp/BMC_proc_fd_active_list.txt 2>&1',
-        'BMC_journalctl_nopager.txt': 'journalctl --no-pager >/tmp/BMC_journalctl_nopager.txt 2>&1',
-        'BMC_journalctl_pretty.json': 'journalctl -o json-pretty >/tmp/BMC_journalctl_pretty.json 2>&1',
-        'BMC_dmesg.txt': 'dmesg >/tmp/BMC_dmesg.txt 2>&1',
-        'BMC_procinfo.txt': 'cat /proc/cpuinfo >/tmp/BMC_procinfo.txt 2>&1',
-        'BMC_meminfo.txt': 'cat /proc/meminfo >/tmp/BMC_meminfo.txt 2>&1',
-        'BMC_systemd.txt': 'systemctl status --all >/tmp/BMC_systemd.txt 2>&1',
-        'BMC_failed_service.txt': 'systemctl list-units --failed >/tmp/BMC_failed_service.txt 2>&1',
-        'BMC_list_service.txt': 'systemctl list-jobs >/tmp/BMC_list_service.txt 2>&1',
-        'BMC_obmc_console.txt': 'cat /var/log/obmc-console.log >/tmp/BMC_obmc_console.txt 2>&1',
-        'BMC_obmc_console1.txt': 'cat /var/log/obmc-console1.log >/tmp/BMC_obmc_console1.txt 2>&1',
-        'PEL_logs_list.json': 'peltool -l >/tmp/PEL_logs_list.json 2>&1',
-        'PEL_logs_complete_list.json': 'peltool -l -a -f >/tmp/PEL_logs_complete_list.json 2>&1',
-        'PEL_logs_display.json': 'peltool -a >/tmp/PEL_logs_display.json 2>&1',
-        'PEL_logs_complete_display.json': 'peltool -a -f -h>/tmp/PEL_logs_complete_display.json 2>&1',
-        'PEL_logs_badPEL.txt': 'hexdump -C'
-        + ' /var/lib/phosphor-logging/extensions/pels/badPEL>/tmp/PEL_logs_badPEL.txt 2>&1',
-        'PLDM_fru_record.txt': 'pldmtool fru getfrurecordtable>/tmp/PLDM_fru_record.txt 2>&1',
-        'BMC_pldm_flight_recorder.txt': 'rm -rf /tmp/pldm_flight_recorder; killall -s SIGUSR1 pldmd;'
-        + ' sleep 5; cat /tmp/pldm_flight_recorder > /tmp/BMC_pldm_flight_recorder.txt 2>&1;',
-        'OCC_state.txt': 'echo "OCC state check";for i in {0..3};'
-        + ' do (echo /org/open_power/control/occ$i;'
-        + ' busctl get-property org.open_power.OCC.Control /org/open_power/control/occ$i'
-        + ' org.open_power.OCC.Status OccActive) done > /tmp/OCC_state.txt 2>&1',
-        'bmcweb_persistent_data.json': 'cat /home/root/bmcweb_persistent_data.json'
-        + ' > /tmp/bmcweb_persistent_data.json',
-        'GUARD_list.txt': 'guard -l > /tmp/GUARD_list.txt 2>&1',
-        'fan_control_dump.json': 'fanctl dump; sleep 5',
-        'DEVTREE': 'cat /var/lib/phosphor-software-manager/pnor/rw/DEVTREE > /tmp/DEVTREE 2>&1',
+        "BMC_flash_side.txt": (
+            "cat /sys/class/watchdog/watchdog1/bootstatus"
+            " >/tmp/BMC_flash_side.txt 2>&1"
+        ),
+        "BMC_hwmon.txt": (
+            "grep -r . /sys/class/hwmon/* >/tmp/BMC_hwmon.txt 2>&1"
+        ),
+        "BMC_proc_list.txt": "top -n 1 -b >/tmp/BMC_proc_list.txt 2>&1",
+        "BMC_proc_fd_active_list.txt": (
+            "ls -Al /proc/*/fd/ >/tmp/BMC_proc_fd_active_list.txt 2>&1"
+        ),
+        "BMC_journalctl_nopager.txt": (
+            "journalctl --no-pager >/tmp/BMC_journalctl_nopager.txt 2>&1"
+        ),
+        "BMC_journalctl_pretty.json": (
+            "journalctl -o json-pretty >/tmp/BMC_journalctl_pretty.json 2>&1"
+        ),
+        "BMC_dmesg.txt": "dmesg >/tmp/BMC_dmesg.txt 2>&1",
+        "BMC_procinfo.txt": "cat /proc/cpuinfo >/tmp/BMC_procinfo.txt 2>&1",
+        "BMC_meminfo.txt": "cat /proc/meminfo >/tmp/BMC_meminfo.txt 2>&1",
+        "BMC_systemd.txt": "systemctl status --all >/tmp/BMC_systemd.txt 2>&1",
+        "BMC_failed_service.txt": (
+            "systemctl list-units --failed >/tmp/BMC_failed_service.txt 2>&1"
+        ),
+        "BMC_list_service.txt": (
+            "systemctl list-jobs >/tmp/BMC_list_service.txt 2>&1"
+        ),
+        "BMC_obmc_console.txt": (
+            "cat /var/log/obmc-console.log >/tmp/BMC_obmc_console.txt 2>&1"
+        ),
+        "BMC_obmc_console1.txt": (
+            "cat /var/log/obmc-console1.log >/tmp/BMC_obmc_console1.txt 2>&1"
+        ),
+        "PEL_logs_list.json": "peltool -l >/tmp/PEL_logs_list.json 2>&1",
+        "PEL_logs_complete_list.json": (
+            "peltool -l -a -f >/tmp/PEL_logs_complete_list.json 2>&1"
+        ),
+        "PEL_logs_display.json": "peltool -a >/tmp/PEL_logs_display.json 2>&1",
+        "PEL_logs_complete_display.json": (
+            "peltool -a -f -h>/tmp/PEL_logs_complete_display.json 2>&1"
+        ),
+        "PEL_logs_badPEL.txt": "hexdump -C"
+        + " /var/lib/phosphor-logging/extensions/pels/badPEL>/tmp/PEL_logs_badPEL.txt"
+        " 2>&1",
+        "PLDM_fru_record.txt": (
+            "pldmtool fru getfrurecordtable>/tmp/PLDM_fru_record.txt 2>&1"
+        ),
+        "BMC_pldm_flight_recorder.txt": (
+            "rm -rf /tmp/pldm_flight_recorder; killall -s SIGUSR1 pldmd;"
+        )
+        + " sleep 5; cat /tmp/pldm_flight_recorder >"
+        " /tmp/BMC_pldm_flight_recorder.txt 2>&1;",
+        "OCC_state.txt": 'echo "OCC state check";for i in {0..3};'
+        + " do (echo /org/open_power/control/occ$i;"
+        + " busctl get-property org.open_power.OCC.Control"
+        " /org/open_power/control/occ$i"
+        + " org.open_power.OCC.Status OccActive) done > /tmp/OCC_state.txt"
+        " 2>&1",
+        "bmcweb_persistent_data.json": (
+            "cat /home/root/bmcweb_persistent_data.json"
+        )
+        + " > /tmp/bmcweb_persistent_data.json",
+        "GUARD_list.txt": "guard -l > /tmp/GUARD_list.txt 2>&1",
+        "fan_control_dump.json": "fanctl dump; sleep 5",
+        "DEVTREE": (
+            "cat /var/lib/phosphor-software-manager/pnor/rw/DEVTREE >"
+            " /tmp/DEVTREE 2>&1"
+        ),
     },
 }
 # Add file name and corresponding command needed for all Linux distributions
 FFDC_OS_ALL_DISTROS_FILE = {
-    'OS FILES':
-    {
+    "OS FILES": {
         # File Name         Command
-        'OS_msglog.txt': 'cat /sys/firmware/opal/msglog >/tmp/OS_msglog.txt 2>&1',
-        'OS_cpufrequency.txt': 'ppc64_cpu --frequency '
-        + '>/tmp/OS_cpufrequency.txt 2>&1',
-        'OS_dmesg.txt': 'dmesg >/tmp/OS_dmesg.txt 2>&1',
-        'OS_opal_prd.txt': 'cat /var/log/opal-prd* >/tmp/OS_opal_prd.txt 2>&1',
-        'OS_boot.txt': 'cat /var/log/boot.log >/tmp/OS_boot.txt 2>&1',
-        'OS_procinfo.txt': 'cat /proc/cpuinfo >/tmp/OS_procinfo.txt 2>&1',
-        'OS_meminfo.txt': 'cat /proc/meminfo >/tmp/OS_meminfo.txt 2>&1',
-        'OS_netstat.txt': 'netstat -a >/tmp/OS_netstat.txt 2>&1',
-        'OS_lspci.txt': 'lspci >/tmp/OS_lspci.txt 2>&1',
-        'OS_lscpu.txt': 'lscpu >/tmp/OS_lscpu.txt 2>&1',
-        'OS_lscfg.txt': 'lscfg >/tmp/OS_lscfg.txt 2>&1',
-        'OS_journalctl_nopager.txt': 'journalctl --no-pager -b '
-        + '> /tmp/OS_journalctl_nopager.txt  2>&1',
+        "OS_msglog.txt": (
+            "cat /sys/firmware/opal/msglog >/tmp/OS_msglog.txt 2>&1"
+        ),
+        "OS_cpufrequency.txt": "ppc64_cpu --frequency "
+        + ">/tmp/OS_cpufrequency.txt 2>&1",
+        "OS_dmesg.txt": "dmesg >/tmp/OS_dmesg.txt 2>&1",
+        "OS_opal_prd.txt": "cat /var/log/opal-prd* >/tmp/OS_opal_prd.txt 2>&1",
+        "OS_boot.txt": "cat /var/log/boot.log >/tmp/OS_boot.txt 2>&1",
+        "OS_procinfo.txt": "cat /proc/cpuinfo >/tmp/OS_procinfo.txt 2>&1",
+        "OS_meminfo.txt": "cat /proc/meminfo >/tmp/OS_meminfo.txt 2>&1",
+        "OS_netstat.txt": "netstat -a >/tmp/OS_netstat.txt 2>&1",
+        "OS_lspci.txt": "lspci >/tmp/OS_lspci.txt 2>&1",
+        "OS_lscpu.txt": "lscpu >/tmp/OS_lscpu.txt 2>&1",
+        "OS_lscfg.txt": "lscfg >/tmp/OS_lscfg.txt 2>&1",
+        "OS_journalctl_nopager.txt": "journalctl --no-pager -b "
+        + "> /tmp/OS_journalctl_nopager.txt  2>&1",
     },
 }
 # Add file name and corresponding command needed for Ubuntu Linux
 FFDC_OS_UBUNTU_FILE = {
-    'OS FILES':
-    {
+    "OS FILES": {
         # File Name         Command
-        'OS_isusb.txt': '{ lsusb -t ; lsusb -v ; } >/tmp/OS_isusb.txt 2>&1',
-        'OS_kern.txt': 'tail -n 50000 /var/log/kern.log >/tmp/OS_kern.txt 2>&1',
-        'OS_authlog.txt': '{ cat /var/log/auth.log; cat /var/log/auth.log.1 ; } '
-        + '>/tmp/OS_authlog.txt 2>&1',
-        'OS_syslog.txt': 'tail -n 200000 /var/log/syslog >/tmp/OS_syslog.txt 2>&1',
-        'OS_info.txt': '{ uname -a; dpkg -s opal-prd; dpkg -s ipmitool ; } '
-        + '>/tmp/OS_info.txt 2>&1',
-        'OS_sosreport.txt': '{ rm -rf /tmp/sosreport*FFDC* ; sosreport --batch --tmp-dir '
-        + '/tmp --ticket-number FFDC ; } >/tmp/OS_sosreport.txt 2>&1',
+        "OS_isusb.txt": "{ lsusb -t ; lsusb -v ; } >/tmp/OS_isusb.txt 2>&1",
+        "OS_kern.txt": (
+            "tail -n 50000 /var/log/kern.log >/tmp/OS_kern.txt 2>&1"
+        ),
+        "OS_authlog.txt": (
+            "{ cat /var/log/auth.log; cat /var/log/auth.log.1 ; } "
+        )
+        + ">/tmp/OS_authlog.txt 2>&1",
+        "OS_syslog.txt": (
+            "tail -n 200000 /var/log/syslog >/tmp/OS_syslog.txt 2>&1"
+        ),
+        "OS_info.txt": "{ uname -a; dpkg -s opal-prd; dpkg -s ipmitool ; } "
+        + ">/tmp/OS_info.txt 2>&1",
+        "OS_sosreport.txt": (
+            "{ rm -rf /tmp/sosreport*FFDC* ; sosreport --batch --tmp-dir "
+        )
+        + "/tmp --ticket-number FFDC ; } >/tmp/OS_sosreport.txt 2>&1",
     },
 }
 # Add file name and corresponding command needed for RHEL Linux
 FFDC_OS_RHEL_FILE = {
-    'OS FILES':
-    {
+    "OS FILES": {
         # File Name         Command
-        'OS_rsct.txt': '/usr/bin/ctversion -bv >/tmp/OS_rsct.txt 2>&1',
-        'OS_secure.txt': 'cat /var/log/secure >/tmp/OS_secure.txt 2>&1',
-        'OS_syslog.txt': 'tail -n 200000 /var/log/messages '
-        + '>/tmp/OS_syslog.txt 2>&1',
-        'OS_info.txt': '{ lsb_release -a; cat /etc/redhat-release; '
-        + 'uname -a; rpm -qa ; } >/tmp/OS_info.txt 2>&1',
-        'OS_sosreport.txt': '{ rm -rf /tmp/sosreport*FFDC* ; sosreport --batch --tmp-dir '
-        + '/tmp --label FFDC ; } >/tmp/OS_sosreport.txt 2>&1',
+        "OS_rsct.txt": "/usr/bin/ctversion -bv >/tmp/OS_rsct.txt 2>&1",
+        "OS_secure.txt": "cat /var/log/secure >/tmp/OS_secure.txt 2>&1",
+        "OS_syslog.txt": "tail -n 200000 /var/log/messages "
+        + ">/tmp/OS_syslog.txt 2>&1",
+        "OS_info.txt": "{ lsb_release -a; cat /etc/redhat-release; "
+        + "uname -a; rpm -qa ; } >/tmp/OS_info.txt 2>&1",
+        "OS_sosreport.txt": (
+            "{ rm -rf /tmp/sosreport*FFDC* ; sosreport --batch --tmp-dir "
+        )
+        + "/tmp --label FFDC ; } >/tmp/OS_sosreport.txt 2>&1",
     },
 }
 # Add file name and corresponding command needed for AIX.
 FFDC_OS_AIX_FILE = {
-    'OS FILES':
-    {
+    "OS FILES": {
         # File Name         Command
-        'OS_errpt.txt': 'errpt >/tmp/OS_errpt.txt 2>&1 ; errclear 0;',
-        'OS_processors.txt': 'bindprocessor -q >/tmp/OS_processors.txt 2>&1',
+        "OS_errpt.txt": "errpt >/tmp/OS_errpt.txt 2>&1 ; errclear 0;",
+        "OS_processors.txt": "bindprocessor -q >/tmp/OS_processors.txt 2>&1",
     },
 }
 
 try:
-    redfish_support_trans_state = os.environ.get('REDFISH_SUPPORT_TRANS_STATE', 0) or \
-        int(BuiltIn().get_variable_value("${REDFISH_SUPPORT_TRANS_STATE}", default=0))
+    redfish_support_trans_state = os.environ.get(
+        "REDFISH_SUPPORT_TRANS_STATE", 0
+    ) or int(
+        BuiltIn().get_variable_value(
+            "${REDFISH_SUPPORT_TRANS_STATE}", default=0
+        )
+    )
 except RobotNotRunningError:
     pass
 
-OPENBMC_BASE = '/xyz/openbmc_project/'
-OPENPOWER_BASE = '/org/open_power/'
-ENUMERATE_SENSORS = OPENBMC_BASE + 'sensors/enumerate'
-ENUMERATE_INVENTORY = OPENBMC_BASE + 'inventory/enumerate'
-ENUMERATE_ELOG = OPENBMC_BASE + 'logging/entry/enumerate'
-ENUMERATE_LED = OPENBMC_BASE + 'led/enumerate'
-ENUMERATE_SW = OPENBMC_BASE + 'software/enumerate'
-ENUMERATE_CONTROL = OPENBMC_BASE + 'control/enumerate'
-ENUMERATE_STATE = OPENBMC_BASE + 'state/enumerate'
-ENUMERATE_OCC = OPENPOWER_BASE + '/enumerate'
-ENUMERATE_DUMPS = OPENBMC_BASE + 'dumps/enumerate'
-ENUMERATE_USER = OPENBMC_BASE + 'user/enumerate'
+OPENBMC_BASE = "/xyz/openbmc_project/"
+OPENPOWER_BASE = "/org/open_power/"
+ENUMERATE_SENSORS = OPENBMC_BASE + "sensors/enumerate"
+ENUMERATE_INVENTORY = OPENBMC_BASE + "inventory/enumerate"
+ENUMERATE_ELOG = OPENBMC_BASE + "logging/entry/enumerate"
+ENUMERATE_LED = OPENBMC_BASE + "led/enumerate"
+ENUMERATE_SW = OPENBMC_BASE + "software/enumerate"
+ENUMERATE_CONTROL = OPENBMC_BASE + "control/enumerate"
+ENUMERATE_STATE = OPENBMC_BASE + "state/enumerate"
+ENUMERATE_OCC = OPENPOWER_BASE + "/enumerate"
+ENUMERATE_DUMPS = OPENBMC_BASE + "dumps/enumerate"
+ENUMERATE_USER = OPENBMC_BASE + "user/enumerate"
 
 # Add file name and corresponding Get Request
 FFDC_GET_REQUEST = {
-    'GET REQUESTS':
-    {
+    "GET REQUESTS": {
         # File Name         Command
-        'FIRMWARE_list.txt': ENUMERATE_SW,
-        'BMC_sensor_list.txt': ENUMERATE_SENSORS,
-        'BMC_control_list.txt': ENUMERATE_CONTROL,
-        'BMC_inventory.txt': ENUMERATE_INVENTORY,
-        'BMC_elog.txt': ENUMERATE_ELOG,
-        'BMC_led.txt': ENUMERATE_LED,
-        'BMC_state.txt': ENUMERATE_STATE,
-        'OCC_state.txt': ENUMERATE_OCC,
-        'BMC_dumps.txt': ENUMERATE_DUMPS,
-        'BMC_USER.txt': ENUMERATE_USER,
+        "FIRMWARE_list.txt": ENUMERATE_SW,
+        "BMC_sensor_list.txt": ENUMERATE_SENSORS,
+        "BMC_control_list.txt": ENUMERATE_CONTROL,
+        "BMC_inventory.txt": ENUMERATE_INVENTORY,
+        "BMC_elog.txt": ENUMERATE_ELOG,
+        "BMC_led.txt": ENUMERATE_LED,
+        "BMC_state.txt": ENUMERATE_STATE,
+        "OCC_state.txt": ENUMERATE_OCC,
+        "BMC_dumps.txt": ENUMERATE_DUMPS,
+        "BMC_USER.txt": ENUMERATE_USER,
     },
 }
 
@@ -178,61 +222,60 @@
     for key in list(FFDC_GET_REQUEST):
         del FFDC_GET_REQUEST[key]
 
-REDFISH_BASE = '/redfish/v1/'
-REDFISH_ELOG = REDFISH_BASE + 'Systems/system/LogServices/EventLog/Entries'
-REDFISH_FIRMWARE = REDFISH_BASE + 'UpdateService/FirmwareInventory'
+REDFISH_BASE = "/redfish/v1/"
+REDFISH_ELOG = REDFISH_BASE + "Systems/system/LogServices/EventLog/Entries"
+REDFISH_FIRMWARE = REDFISH_BASE + "UpdateService/FirmwareInventory"
 
 # Add file name and corresponding Get Request
 FFDC_GET_REDFISH_REQUEST = {
-    'GET REQUESTS':
-    {
+    "GET REQUESTS": {
         # File Name         Command
-        'BMC_redfish_elog.txt': REDFISH_ELOG,
+        "BMC_redfish_elog.txt": REDFISH_ELOG,
     },
 }
 
 # Define your keywords in method/utils and call here
 FFDC_METHOD_CALL = {
-    'BMC LOGS':
-    {
+    "BMC LOGS": {
         # Description               Keyword name
-        'Start ffdc cleanup': 'BMC FFDC Cleanup',
-        'FFDC Generic Report': 'BMC FFDC Manifest',
-        'BMC Specific Files': 'BMC FFDC Files',
-        'Get Request FFDC': 'BMC FFDC Get Requests',
-        'Get Redfish Request FFDC': 'BMC FFDC Get Redfish Requests',
-        'OS FFDC': 'OS FFDC Files',
-        'Core Files': 'SCP Coredump Files',
-        'SEL Log': 'Collect eSEL Log',
-        'Sys Inventory Files': 'System Inventory Files',
-        'Dump Files': 'SCP Dump Files',
-        'PEL Files': 'Collect PEL Log',
-        'Redfish Log': 'Enumerate Redfish Resources',
-        'Firmware Log': 'Enumerate Redfish Resources  '
-        + ' enum_uri=/redfish/v1/UpdateService/FirmwareInventory  '
-        + ' file_enum_name=redfish_FIRMWARE_list.txt',
-        'Redfish OEM Log': 'Enumerate Redfish OEM Resources',
-        'End ffdc cleanup': 'BMC FFDC Cleanup',
+        "Start ffdc cleanup": "BMC FFDC Cleanup",
+        "FFDC Generic Report": "BMC FFDC Manifest",
+        "BMC Specific Files": "BMC FFDC Files",
+        "Get Request FFDC": "BMC FFDC Get Requests",
+        "Get Redfish Request FFDC": "BMC FFDC Get Redfish Requests",
+        "OS FFDC": "OS FFDC Files",
+        "Core Files": "SCP Coredump Files",
+        "SEL Log": "Collect eSEL Log",
+        "Sys Inventory Files": "System Inventory Files",
+        "Dump Files": "SCP Dump Files",
+        "PEL Files": "Collect PEL Log",
+        "Redfish Log": "Enumerate Redfish Resources",
+        "Firmware Log": "Enumerate Redfish Resources  "
+        + " enum_uri=/redfish/v1/UpdateService/FirmwareInventory  "
+        + " file_enum_name=redfish_FIRMWARE_list.txt",
+        "Redfish OEM Log": "Enumerate Redfish OEM Resources",
+        "End ffdc cleanup": "BMC FFDC Cleanup",
     },
 }
 
 try:
-    platform_arch_type = os.environ.get('PLATFORM_ARCH_TYPE', '') or \
-        BuiltIn().get_variable_value("${PLATFORM_ARCH_TYPE}", default="power")
+    platform_arch_type = os.environ.get(
+        "PLATFORM_ARCH_TYPE", ""
+    ) or BuiltIn().get_variable_value("${PLATFORM_ARCH_TYPE}", default="power")
 except RobotNotRunningError:
     pass
 
 # Filter the logs based on platform type.
 if platform_arch_type == "x86":
-    del FFDC_BMC_FILE['BMC FILES']['PEL_logs_list.json']
-    del FFDC_BMC_FILE['BMC FILES']['PEL_logs_display.json']
-    del FFDC_METHOD_CALL['BMC LOGS']['PEL Files']
+    del FFDC_BMC_FILE["BMC FILES"]["PEL_logs_list.json"]
+    del FFDC_BMC_FILE["BMC FILES"]["PEL_logs_display.json"]
+    del FFDC_METHOD_CALL["BMC LOGS"]["PEL Files"]
 
 # -----------------------------------------------------------------
 # base class for FFDC default list
 
 
-class openbmc_ffdc_list():
+class openbmc_ffdc_list:
     def get_ffdc_bmc_cmd(self, i_type):
         r"""
         #######################################################################
@@ -318,8 +361,7 @@
         """
         return FFDC_METHOD_CALL.keys()
 
-    def get_ffdc_method_desc(self,
-                             index):
+    def get_ffdc_method_desc(self, index):
         r"""
         #######################################################################
         #   @brief   This method returns the just the keys from the dictionary.
@@ -383,7 +425,7 @@
         #   @return   Remove all special chars and return the string
         #######################################################################
         """
-        return ''.join(e for e in i_str if e.isalnum())
+        return "".join(e for e in i_str if e.isalnum())
 
     def get_esel_index(self, esel_list):
         r"""
@@ -393,7 +435,7 @@
         #   @return   Index of "ESEL=" in the list.
         #######################################################################
         """
-        index = [i for i, str in enumerate(esel_list) if 'ESEL=' in str]
+        index = [i for i, str in enumerate(esel_list) if "ESEL=" in str]
         return index[0]
 
     def get_dump_index(self, dump_list):
@@ -404,5 +446,5 @@
         #   @return   Index of "ESEL=" in the list.
         #######################################################################
         """
-        index = [i for i, str in enumerate(dump_list) if 'DUMP=' in str]
+        index = [i for i, str in enumerate(dump_list) if "DUMP=" in str]
         return index[0]
