Port to python 3
Port code to python 3 yet remain backward compatible to python 2.
This port is in preparation for yocto 2.4 upgrade.
Partially resolves openbmc/openbmc#2920
Change-Id: If174ce9444bde4e21fb086764f4def017e423201
Signed-off-by: CamVan Nguyen <ctnguyen@us.ibm.com>
diff --git a/pyinventorymgr/inventory_items.py b/pyinventorymgr/inventory_items.py
index 17b5eab..168e3d6 100644
--- a/pyinventorymgr/inventory_items.py
+++ b/pyinventorymgr/inventory_items.py
@@ -2,7 +2,11 @@
import os
import sys
-import gobject
+# TODO: openbmc/openbmc#2994 remove python 2 support
+try: # python 2
+ import gobject
+except ImportError: # python 3
+ from gi.repository import GObject as gobject
import dbus
import dbus.service
import dbus.mainloop.glib
@@ -88,7 +92,7 @@
try:
inv = json.load(f)
except ValueError:
- print "Invalid JSON detected in " + INVENTORY_FILE
+ print("Invalid JSON detected in " + INVENTORY_FILE)
else:
FRUS = inv
else:
@@ -98,7 +102,7 @@
except ImportError:
pass
- for f in FRUS.keys():
+ for f in list(FRUS.keys()):
import obmc.inventory
obj_path = f.replace("<inventory_root>", obmc.inventory.INVENTORY_ROOT)
obj = InventoryItem(bus, obj_path, FRUS[f])
@@ -112,7 +116,7 @@
obj_parent.unmask_signals()
name = dbus.service.BusName(DBUS_NAME, bus)
- print "Running Inventory Manager"
+ print("Running Inventory Manager")
mainloop.run()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4