def on_update_store_original_update_columns_original_configuration_data( original_df_json, ): """Tab:Columns, Section: Original Configuration""" original_df = from_session(original_df_json) columns_data = get_dt_colunas_data(original_df) return get_table_dfcolumns(columns_data, id="origin", df=original_df)
def on_change_modified_df_update_columns_result_configuration(modified_df_json, data): """Show the modified columns in the Result configuration""" if not data: raise PreventUpdate modified_df = from_session(modified_df_json) return get_table_dfcolumns(data, id="new", df=modified_df)
def on_update_content_on_state_update_modified_df(original_df_json, data): """Change the data of the Store for modified df""" if not data: raise PreventUpdate original_df = from_session(original_df_json) modified_df = modify_original_df(original_df, data) return to_session(modified_df)
def on_add_filter_update_table_data(filter_data, modified_df_json): df = pd.DataFrame() if modified_df_json: df = from_session(modified_df_json) if not df.empty and filter_data: for filter_row in filter_data: print( f"FILTRANDO: {filter_row['field']}->{filter_row['comp']}->{filter_row['value']}" ) typed_value = value_as_type(df, filter_row["field"], filter_row["value"]) if filter_row["comp"] == "eq": df = df[df[filter_row["field"]] == typed_value] if filter_row["comp"] == "ne": df = df[df[filter_row["field"]] != typed_value] if filter_row["comp"] == "gt": df = df[df[filter_row["field"]] > typed_value] if filter_row["comp"] == "ge": df = df[df[filter_row["field"]] >= typed_value] if filter_row["comp"] == "lt": df = df[df[filter_row["field"]] < typed_value] if filter_row["comp"] == "le": df = df[df[filter_row["field"]] <= typed_value] if filter_row["comp"] == "isnull": df = df[df[filter_row["field"]].isna()] if filter_row["comp"] == "notnull": df = df[df[filter_row["field"]].notna()] if filter_row["comp"] == "between": if ";" in typed_value: start, end = typed_value.split(";") start = value_as_type(df, filter_row["field"], start) end = value_as_type(df, filter_row["field"], end) df = df[df[filter_row["field"]].between(start, end)] if filter_row["comp"] == "contains": try: df = df[df[filter_row["field"]].str.contains(typed_value)] except AttributeError: print("Error using contains in numeric column") return df.to_dict("records") if df is not None else []
def on_change_modified_df_state_update_information_columns(df_json, info_column): """Show information when column dropdown, in Information tab is changed.""" info_children = [] if df_json and info_column != "-": df = from_session(df_json) dados = df[info_column] if is_numeric_dtype(dados): info_children = get_numeric_information_gui(dados, info_column) elif is_string_dtype(dados): info_children = get_string_information_gui(dados, info_column) # TODO: Mostrar mais tipos # elif is_bool_dtype(dados): # info_children = get_bool_information_gui(dados, info_column) # elif is_datetime64_any_dtype(dados): # info_children = get_datetime_information_gui(dados, info_column) return info_children
def on_update_modified_df_update_update_filterdata_gui(original_df_json): """Tab:Filter Data, Section: Fields and Data""" modified_df = from_session(original_df_json) return get_tab_filtering_components(modified_df)
def on_update_modified_df_update_informations_fields(original_df_json): """Tab:Information, Section: Combobox of column""" modified_df = from_session(original_df_json) return get_information_components(modified_df)
def on_update_store_original_show_sample_data(original_df_json): """Tab:Colunas, Section: Deal with the dataframe columns""" original_df = from_session(original_df_json) return get_dt_colunas_data(original_df)
def on_load_sample_file_update_store_original(original_df_json): """Tab:Data, Section: Table with first rows""" original_df = from_session(original_df_json) return get_sample_df_data_children(original_df)