def format_info(value, format, cols_width=None, dumper=None): if format in(INFO_FORMAT.DICT, INFO_FORMAT.JSON, INFO_FORMAT.YAML): value['component_details'] = json_loads(value['component_details']) if format == INFO_FORMAT.JSON: return json_dumps(value) elif format == INFO_FORMAT.YAML: buff = StringIO() yaml.dump_all([value], default_flow_style=False, indent=4, Dumper=dumper, stream=buff) value = buff.getvalue() buff.close() return value elif format == INFO_FORMAT.TEXT: cols_width = (elem.strip() for elem in cols_width.split(',')) cols_width = [int(elem) for elem in cols_width] table = Texttable() table.set_cols_width(cols_width) # Use text ('t') instead of auto so that boolean values don't get converted into ints table.set_cols_dtype(['t', 't']) rows = [['Key', 'Value']] rows.extend(sorted(value.items())) table.add_rows(rows) return table.draw() else: return value
def format_info(value, format, cols_width=None, dumper=None): if format in (INFO_FORMAT.DICT, INFO_FORMAT.JSON, INFO_FORMAT.YAML): value['component_details'] = json_loads(value['component_details']) if format == INFO_FORMAT.JSON: return json_dumps(value) elif format == INFO_FORMAT.YAML: buff = StringIO() yaml.dump_all([value], default_flow_style=False, indent=4, Dumper=dumper, stream=buff) value = buff.getvalue() buff.close() return value elif format == INFO_FORMAT.TEXT: cols_width = (elem.strip() for elem in cols_width.split(',')) cols_width = [int(elem) for elem in cols_width] table = Texttable() table.set_cols_width(cols_width) # Use text ('t') instead of auto so that boolean values don't get converted into ints table.set_cols_dtype(['t', 't']) rows = [['Key', 'Value']] rows.extend(sorted(value.items())) table.add_rows(rows) return table.draw() else: return value
def _loads(obj): if isinstance(obj, bytes_t): obj = obj.decode('utf-8') return json_loads(obj)
def _loads(data): if isinstance(data, bytes): data = data.decode('utf-8') return json_loads(data)