return v, m
+ @staticmethod
+ def escape_string(s):
+ """
+ Will remove all non-printable characters from the given string
+ """
+ if s is None:
+ return
+
+ return filter(lambda x: x in string.printable, s)
+
@property
def vendor(self):
"""
for file in ("sys_vendor", "board_vendor", "chassis_vendor",):
ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
if ret:
- return ret
+ return self.escape_string(ret)
if os.path.exists("/proc/device-tree"):
ret = self.__cpuinfo.get("Hardware", None)
else:
ret, m = self.vendor_model_tuple()
- return ret
+ return self.escape_string(ret)
@property
def model(self):
for file in ("product_name", "board_model", "chassis_model",):
ret = read_from_file(os.path.join(SYS_CLASS_DMI, file))
if ret:
- return ret
+ return self.escape_string(ret)
# Read device-tree model if available
ret = read_from_file("/proc/device-tree/model")
if not ret:
v, ret = self.vendor_model_tuple()
- return ret
+ return self.escape_string(ret)
@property
def memory(self):