def set_pl_info(self, pl_info):
if isinstance(pl_info, list):
pl_info = pl_info[0]
+
+ # Convert any boolean strings to real bools
+ for key in pl_info:
+ if isinstance(pl_info[key], StringTypes):
+ if pl_info[key].lower() in ["true"]:
+ pl_info[key] = True
+ elif pl_info[key].lower() in ["false"]:
+ pl_info[key] = False
self.pl_info = pl_info
self.dirty = True
self.set_type(dict['type'])
self.set_pointer(dict['pointer'])
- if "pl_info" in dict:
+ if "pl_info" in dict and dict['pl_info']:
self.set_pl_info(dict["pl_info"])
- if "geni_info" in dict:
+ if "geni_info" in dict and dict['geni_info']:
self.set_geni_info(dict["geni_info"])
##
def getdict(self):
info = {'hrn': self.name, 'type': self.type, 'gid': self.gid}
- info.update(getattr(self, "geni_info", {}))
- info.update(getattr(self, "pl_info", {}))
+ geni_info = getattr(self, "geni_info", {})
+ pl_info = getattr(self, "pl_info", {})
+ if geni_info:
+ info.update(geni_info)
+ if pl_info:
+ info.update(pl_info)
return info