diff --git a/pysystemmgr/obmc/system/__init__.py b/pysystemmgr/obmc/system/__init__.py
index ff6c537..03dc235 100644
--- a/pysystemmgr/obmc/system/__init__.py
+++ b/pysystemmgr/obmc/system/__init__.py
@@ -1,6 +1,7 @@
 from os.path import join
 from glob import glob
 
+
 def find_gpio_base(path="/sys/class/gpio/"):
     pattern = "gpiochip*"
     for gc in glob(join(path, pattern)):
@@ -12,8 +13,10 @@
     # trigger a file not found exception
     open(join(path, "gpiochip"))
 
+
 GPIO_BASE = find_gpio_base()
 
+
 def convertGpio(name):
     offset = int(filter(str.isdigit, name))
     port = filter(str.isalpha, name.upper())
diff --git a/pysystemmgr/system_manager.py b/pysystemmgr/system_manager.py
index 575304b..a36b7af 100644
--- a/pysystemmgr/system_manager.py
+++ b/pysystemmgr/system_manager.py
@@ -184,7 +184,7 @@
         return r
 
     @dbus.service.method(DBUS_NAME, in_signature='',
-            out_signature='ssa(sb)a(sb)a(sbb)ssssa(sb)')
+                         out_signature='ssa(sb)a(sb)a(sbb)ssssa(sb)')
     def getGpioConfiguration(self):
         power_config = System.GPIO_CONFIGS.get('power_config', {})
         power_good_in = power_config.get('power_good_in', '')
@@ -198,8 +198,9 @@
         fsi_enable = hostctl_config.get('fsi_enable', '')
         cronus_sel = hostctl_config.get('cronus_sel', '')
         optionals = hostctl_config.get('optionals', [])
-        r = [power_good_in, latch_out, power_up_outs, reset_outs, pci_reset_outs,\
-             fsi_data, fsi_clk, fsi_enable, cronus_sel, optionals]
+        r = [power_good_in, latch_out, power_up_outs, reset_outs,
+             pci_reset_outs, fsi_data, fsi_clk, fsi_enable, cronus_sel,
+             optionals]
         print "Power GPIO config: " + str(r)
         return r
 
