from typing import List def ensure_has_columns(df: "pandas.DataFrame", columns: List[str]): # We don't want to import pandas too soon import pandas as pd all_columns = columns # print("all_columns={}".format(all_columns)) # print("df={}".format(df.columns.tolist())) for c in reversed(columns): if not c in df.columns.tolist(): df.insert(0, column=c, value=pd.Series()) # print("df={}".format(df.columns.tolist())) return df def run_filters(filters, obj): for f in filters: if not f(obj): return False return True def any(filters): def f(obj): for f in filters: if f(obj): return True return False return f def all(filters): def f(obj): for f in filters: if not f(obj): return False return True return f