Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| def load_excel(file): | |
| df = pd.read_excel(file) | |
| return file, df | |
| def run_code(file, code): | |
| scope = {'pd': pd} | |
| if file: | |
| print('file ok') | |
| df = pd.read_excel(file) | |
| scope['df'] = df | |
| try: | |
| exec(code, scope, scope) | |
| except Exception as e: | |
| scope['new_df'] = df | |
| return scope['new_df'], f"# ERROR: {str(e)}" | |
| # print(scope.keys()) | |
| if 'new_df' not in scope: | |
| print("new_df not defined") | |
| scope['new_df'] = df.copy() | |
| new_df = scope['new_df'] | |
| return new_df, "" | |
| else: | |
| print("No file provided") | |
| return pd.DataFrame(), "No file provided" | |
| # def run_code_and_update_ui(file, code): | |
| # df, error_msg = run_code(file, code) # This is your updated run_code function. | |
| # # Now, check if there's an error message and handle it appropriately. | |
| # if error_msg: | |
| # # You can update some error display component in Gradio here to show the error_msg. | |
| # # Assuming you have a gr.Textbox to display errors: | |
| # error_display.update(value=f"Error in code execution: {error_msg}") | |
| # # Ensure you still return the original DataFrame or an empty one to satisfy the expected output type. | |
| # return df | |
| # else: | |
| # # If no error, clear the error display and return the DataFrame as usual. | |
| # error_display.update(value="") | |
| # return df | |
| def export_df(df, filename): | |
| filename = filename.replace('.xlsx', '_coded.xlsx') | |
| df.to_excel(filename, index=False) | |
| return filename | |