__version__ = "0.1.0" __author__ = "Your Name " from visidata import Sheet, BaseSheet, vd @Sheet.api def hide_empty_and_superfluous_cols(sheet): """ Given a sheet, hides columns that are empty or superfluous (contain the same value in every row). """ # Create a dictionary to keep track of which columns to hide cols_to_hide = {} # Check each column for being empty or superfluous for col in sheet.visibleCols: # Check if the column is empty (all cells are empty or None) if all([col.getValue(row) in (None, "") for row in sheet.rows]): cols_to_hide[col] = True continue # Check if the column is superfluous (contains the same value in every row) values = set([col.getValue(row) for row in sheet.rows if col.getValue(row) not in (None, "", "null")]) if len(values) == 1: cols_to_hide[col] = True # Hide the columns that were flagged if cols_to_hide: for col in cols_to_hide: col.width=0 vd.status(f"Hid {len(cols_to_hide)} empty/superfluous columns.") else: vd.status("No empty/superfluous columns to hide.") Sheet.addCommand(None, "tke-hidecol", "sheet.hide_empty_and_superfluous_cols()")