mitosheet 0.2.54__tar.gz → 0.2.56__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mitosheet-0.2.54 → mitosheet-0.2.56}/PKG-INFO +5 -2
- mitosheet-0.2.56/mitosheet/dataframe_display_formatters.py +50 -0
- mitosheet-0.2.56/mitosheet/formatter/__init__.py +10 -0
- mitosheet-0.2.56/mitosheet/formatter/viewer.py +148 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/labextension/package.json +23 -7
- mitosheet-0.2.56/mitosheet/labextension/static/339.967abbd46339aee7868c.js +1 -0
- mitosheet-0.2.56/mitosheet/labextension/static/418.0ec6f919714352f77210.js +1 -0
- mitosheet-0.2.56/mitosheet/labextension/static/remoteEntry.25a5fbf3d0f508ee1860.js +1 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/save_utils.py +1 -1
- mitosheet-0.2.56/mitosheet/tests/test_formatter.py +240 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/PKG-INFO +5 -2
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/SOURCES.txt +6 -2
- {mitosheet-0.2.54 → mitosheet-0.2.56}/setup.py +6 -1
- mitosheet-0.2.54/mitosheet/dataframe_display_formatters.py +0 -83
- mitosheet-0.2.54/mitosheet/labextension/static/339.5f826c48e1170f2309de.js +0 -1
- mitosheet-0.2.54/mitosheet/labextension/static/remoteEntry.ad0d7beec7bf313e216f.js +0 -1
- {mitosheet-0.2.54 → mitosheet-0.2.56}/LICENSE.txt +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/README.md +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/__main__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/_frontend.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/_version.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/ai/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/ai/ai_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/ai/prompt.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/ai/recon.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/api.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_ai_completion.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_all_params_for_step_type.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_available_snowflake_options_and_defaults.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_code_snippets.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_column_describe.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_column_summary_graph.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_csv_files_metadata.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_dataframe_as_csv.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_dataframe_as_excel.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_defined_df_names.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_excel_file_metadata.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_imported_files_and_dataframes_from_analysis_name.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_imported_files_and_dataframes_from_current_steps.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_parameterizable_params.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_params.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_path_contents.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_path_join.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_pr_url_of_new_pr.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_render_count.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_saved_analysis_code.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_search_matches.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_split_text_to_columns_preview.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_test_imports.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_unique_value_counts.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/api/get_validate_snowflake_credentials.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/array_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/add_column_set_formula_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/ai_transformation_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/code_chunk_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/column_headers_transform_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/delete_row_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/empty_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/export_to_file_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/melt_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/no_op_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/one_hot_encoding_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/postprocessing/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/postprocessing/set_dataframe_format_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/promote_row_to_header_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/replace_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/reset_index_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/snowflake_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/bulk_old_rename/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/bulk_old_rename/bulk_old_rename_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/add_column_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/change_column_dtype_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/delete_column_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/rename_columns_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/reorder_column_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/set_column_formula_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/column_steps/split_text_to_columns_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/concat_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/dataframe_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_delete_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_duplicate_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_rename_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/drop_duplicates_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/fill_na_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/filter_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/import_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/import_steps/dataframe_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/import_steps/excel_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/import_steps/excel_range_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/import_steps/simple_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/merge_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/pivot_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/set_cell_value_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/step_performers/sort_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/transpose_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/user_defined_edit_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/code_chunks/user_defined_import_code_chunk.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/column_headers.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/api/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/api/code_snippets_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/license_key.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/mito_config.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/step_performers/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/step_performers/one_hot_encoding.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/telemetry/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/enterprise/telemetry/mito_log_uploader.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/errors.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/excel_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/experiments/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/experiments/experiment_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/extensions/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/extensions/v1/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/hello.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/is_type_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/kernel_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/labextension/static/405.4dea6fd8e64e4dc9015a.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/labextension/static/509.9cd86a57778b85719494.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/labextension/static/style.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/labextension/static/third-party-licenses.json +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_backend.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_code_display.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_data_change.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_dataframe_display.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_dynamic_num_spreadsheets.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_empty_spreadsheet.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_errors.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_timer_change.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/apps/app_track_selection.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/mitoBuild/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/mitoBuild/component.css +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/mitoBuild/component.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/mito_callback.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_dash/v1/spreadsheet.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_flask/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_flask/v1/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_flask/v1/flatten_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_flask/v1/process_event.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_frontend.css +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/mito_frontend.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/parser.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/preprocessing/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/preprocessing/preprocess_check_args_type.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/preprocessing/preprocess_convert_to_dataframe.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/preprocessing/preprocess_copy.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/preprocessing/preprocess_step_performer.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/code_chunks/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/code_chunks/code_chunk_pro_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/conditional_formatting_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/download/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/step_performers/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/step_performers/set_dataframe_format.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/updates/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/pro/updates/undo_to_step_index.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/control_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/date_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/misc_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/number_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/sheet_function_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/string_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/decorators.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_boolean_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_datetime_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_float_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_int_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_string_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/to_timedelta_series.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/sheet_functions/types/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v1/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v2/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v2/excel_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/errors.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/formatting.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/rolling_range.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/bool_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/date_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/misc_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/number_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/string_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/sheet_functions/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/bool.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/datetime.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/decorators.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/float.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/int.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/number.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/sheet_function_types.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/str.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/timedelta.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/public/v3/types/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/save_paths.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/schema_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/add_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/change_column_dtype.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/change_column_format.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/delete_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/excel_range_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/filter.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/graph.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/merge.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/pivot.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/rename_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/reorder_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/set_column_formula.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/set_dataframe_format.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/simple_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/snowflake_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/sort.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/utils_column_header_to_column_id.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/step_upgraders/utils_rename_column_headers.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/saved_analyses/upgrade.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/scheduling/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/scheduling/github.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/scheduling/schedule_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/selection_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/startup/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/startup/startup_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/state.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/ai_transformation.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/bulk_old_rename/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/bulk_old_rename/bulk_old_rename.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/bulk_old_rename/deprecated_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_headers_transform.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/add_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/change_column_dtype.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/delete_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/rename_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/reorder_column.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/set_column_formula.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/column_steps/split_text_to_columns.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/concat.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/dataframe_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/dataframe_steps/dataframe_delete.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/dataframe_steps/dataframe_duplicate.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/dataframe_steps/dataframe_rename.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/delete_row.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/drop_duplicates.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/export_to_file.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/fill_na.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/filter.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/__init.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/graph.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/graph_delete.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/graph_duplicate.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/graph_rename.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/graph_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/graph_steps/plotly_express_graphs.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/dataframe_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/excel_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/excel_range_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/simple_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/import_steps/snowflake_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/melt.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/merge.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/pivot.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/promote_row_to_header.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/replace.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/reset_index.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/set_cell_value.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/sort.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/step_performer.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/transpose.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/user_defined_edit.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/user_defined_import.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/utils/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/utils/user_defined_function_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/step_performers/utils/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/steps_manager.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/messagingBuild/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/messagingBuild/component.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/messagingBuild/index.html +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/mitoBuild/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/mitoBuild/component.css +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/mitoBuild/component.js +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/mitoBuild/index.html +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/streamlit/v1/spreadsheet.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/telemetry/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/telemetry/anonymization_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/telemetry/private_params_map.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/telemetry/telemetry_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/conftest.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/dash/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/dash/test_dash.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/decorators.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/fuzz.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/mito_flask/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/mito_flask/test_flatten_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/scheduling/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/scheduling/test_schedule_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/startup/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/startup/test_startup.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/streamlit/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/streamlit/test_column_definitions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/streamlit/test_hash.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/streamlit/test_runnable_analysis.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/streamlit/test_streamlit.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_execution_errors.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_format.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_mito_backend.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_mito_config.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_mito_frontend.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_mito_log_uploader.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_multi_threaded.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_parse.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_state.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_step_format.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_steps_manager.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_transpile.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_ts_types.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_user_functions.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/test_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/user/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/user/conftest.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/user/test_user.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/tests/user/test_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/transpiler/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/transpiler/transpile.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/transpiler/transpile_utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/types.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/append_user_field.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/args_update.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/checklist_update.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/checkout_step_by_idx.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/clear.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/code_options_update.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/go_pro.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/redo.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/render_count.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/replay_analysis.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/save_analysis.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/set_user_field_update.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/undo.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/update_existing_imports.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/updates/update_feedback_v2_object.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/__init__.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/create.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/db.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/location.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/schemas.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/upgrade.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/user/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet/utils.py +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/dependency_links.txt +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/not-zip-safe +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/requires.txt +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/mitosheet.egg-info/top_level.txt +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/pyproject.toml +0 -0
- {mitosheet-0.2.54 → mitosheet-0.2.56}/setup.cfg +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mitosheet
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.56
|
|
4
4
|
Summary: The Mito Spreadsheet
|
|
5
|
-
Home-page: https://
|
|
5
|
+
Home-page: https://github.com/mito-ds/mito
|
|
6
6
|
Author: Mito Sheet
|
|
7
7
|
Author-email: aaron@sagacollab.com
|
|
8
8
|
License: GNU Affero General Public License v3
|
|
9
|
+
Project-URL: Homepage, https://github.com/mito-ds/mito
|
|
10
|
+
Project-URL: Repository, https://github.com/mito-ds/mito
|
|
11
|
+
Project-URL: Issues, https://github.com/mito-ds/mito/issues
|
|
9
12
|
Platform: Linux
|
|
10
13
|
Platform: Mac OS X
|
|
11
14
|
Platform: Windows
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Copyright (c) Saga Inc.
|
|
2
|
+
# Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
This code is responsible for making mitosheet the default dataframe display when Jupyter
|
|
6
|
+
is rendering a dataframe to the output cell.
|
|
7
|
+
|
|
8
|
+
The new approach add a new custom mimetype to hook a custom viewer. This allows to keep
|
|
9
|
+
the default view if the user prefers it.
|
|
10
|
+
|
|
11
|
+
_____
|
|
12
|
+
|
|
13
|
+
Previous approaches:
|
|
14
|
+
|
|
15
|
+
This approach works by overriding the default HTML and plain text formatters for pandas DataFrames in IPython.
|
|
16
|
+
When a DataFrame is displayed, the custom formatter functions are called, which in turn call mitosheet.sheet()
|
|
17
|
+
to render the DataFrame using mitosheet.
|
|
18
|
+
|
|
19
|
+
In order for the custom renderers to work, the mitosheet package must first be imported in the user's kernel.
|
|
20
|
+
To do so, when the Mito extension is activated, we register a kernel status listener that imports the mitosheet package
|
|
21
|
+
whenever the kernel changes.
|
|
22
|
+
|
|
23
|
+
This approach still fails the race condition caused when the user clicks "Restart Kernel and run all cells".
|
|
24
|
+
When doing so, the `import mitosheet` does not get executed until after all of the code cells have been executed.
|
|
25
|
+
Which means that the mitosheet package is not imported when rendering any dataframes in the notebook. In
|
|
26
|
+
this case, we just default to the pandas dataframe renderer. That is okay.
|
|
27
|
+
|
|
28
|
+
Before landing on this approach, we tried to create a custom dataframe mime renderer. Using the mime renderer
|
|
29
|
+
did not work because:
|
|
30
|
+
|
|
31
|
+
In order to create the mitosheet, we need to execute the mitosheet.sheet() function. To do so, we
|
|
32
|
+
had to send a new kernel message from the mimerender with the code mitosheet.sheet(df). However, becasue
|
|
33
|
+
the kernel message queue might have had additional messages already queued that edited the df, by the time
|
|
34
|
+
the mitosheet was rendered, it might have displayed a dataframe that reflected future code cell edits instead of the
|
|
35
|
+
current state of the dataframe at the time the code cell with the hanging df was executed. This is not what we want.
|
|
36
|
+
|
|
37
|
+
For a more thorough explanation of attempted solutions, see the comment here: https://github.com/mito-ds/mito/pull/1330#issuecomment-2386428760
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
from .formatter import register_ipython_formatter
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def set_dataframe_display_formatters() -> None:
|
|
44
|
+
"""
|
|
45
|
+
Deprecated
|
|
46
|
+
|
|
47
|
+
The registration of a custom formatter is now done automatically by the
|
|
48
|
+
mitosheet plugin.
|
|
49
|
+
"""
|
|
50
|
+
register_ipython_formatter()
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Copyright (c) Saga Inc.
|
|
2
|
+
# Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3
|
+
|
|
4
|
+
from typing import Dict, Optional
|
|
5
|
+
|
|
6
|
+
import pandas as pd
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _is_describe_output(df: pd.DataFrame) -> bool:
|
|
10
|
+
"""
|
|
11
|
+
Detect if DataFrame is the result of a describe() call.
|
|
12
|
+
|
|
13
|
+
describe() DataFrames have specific characteristics:
|
|
14
|
+
- Index contains statistical measures (count, mean, std, min, max)
|
|
15
|
+
"""
|
|
16
|
+
if df.empty or len(df.index) < 5:
|
|
17
|
+
return False
|
|
18
|
+
|
|
19
|
+
# Check if index contains typical describe() statistical measures
|
|
20
|
+
expected_stats = {"count", "mean", "std", "min", "max"}
|
|
21
|
+
index_values = set(str(idx).strip() for idx in df.index)
|
|
22
|
+
|
|
23
|
+
# If the expected stats are in the index, likely describe() output
|
|
24
|
+
matches = expected_stats.intersection(index_values)
|
|
25
|
+
return len(matches) == 5
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def register_ipython_formatter() -> None:
|
|
29
|
+
"""
|
|
30
|
+
Register custom formatter with IPython display system.
|
|
31
|
+
"""
|
|
32
|
+
try:
|
|
33
|
+
from IPython.core.getipython import get_ipython
|
|
34
|
+
|
|
35
|
+
ip = get_ipython() # type: ignore
|
|
36
|
+
if ip is None:
|
|
37
|
+
return
|
|
38
|
+
|
|
39
|
+
# Register formatter for pandas DataFrames with application/x.mito+json mimetype
|
|
40
|
+
if getattr(ip, "display_formatter", None) is not None:
|
|
41
|
+
formatter = getattr(ip.display_formatter, "formatters", None)
|
|
42
|
+
if formatter is not None:
|
|
43
|
+
# Try to register with existing mimetype formatter
|
|
44
|
+
if "application/x.mito+json" not in formatter:
|
|
45
|
+
# Create a new formatter for the custom mimetype
|
|
46
|
+
from IPython.core.formatters import BaseFormatter
|
|
47
|
+
|
|
48
|
+
class MitoJSONFormatter(BaseFormatter):
|
|
49
|
+
def __call__(self, obj):
|
|
50
|
+
if isinstance(obj, pd.DataFrame):
|
|
51
|
+
# Skip custom formatter for describe() output
|
|
52
|
+
if _is_describe_output(obj):
|
|
53
|
+
return None
|
|
54
|
+
return format_dataframe_mimetype(obj)
|
|
55
|
+
else:
|
|
56
|
+
return None
|
|
57
|
+
|
|
58
|
+
formatter["application/x.mito+json"] = MitoJSONFormatter()
|
|
59
|
+
|
|
60
|
+
except ImportError:
|
|
61
|
+
# IPython not available
|
|
62
|
+
pass
|
|
63
|
+
except Exception as e:
|
|
64
|
+
# Log error but don't fail
|
|
65
|
+
print(f"Warning: Could not register mito viewer formatter: {e}")
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def format_dataframe_mimetype(obj: pd.DataFrame) -> Optional[Dict]:
|
|
69
|
+
"""
|
|
70
|
+
Format a pandas DataFrame as a mimetype object for JupyterLab rendering.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
obj: pandas DataFrame to display
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
Dictionary with mimetype and data for JupyterLab renderer, or None if should skip formatting
|
|
77
|
+
"""
|
|
78
|
+
# Skip custom formatter for describe() output
|
|
79
|
+
if _is_describe_output(obj):
|
|
80
|
+
return None
|
|
81
|
+
|
|
82
|
+
# Get pandas display options
|
|
83
|
+
max_rows = pd.get_option("display.max_rows")
|
|
84
|
+
|
|
85
|
+
# Prepare data
|
|
86
|
+
total_rows = len(obj)
|
|
87
|
+
has_multi_columns = isinstance(obj.columns, pd.MultiIndex)
|
|
88
|
+
column_levels = obj.columns.nlevels if has_multi_columns else 1
|
|
89
|
+
columns = list(obj.columns)
|
|
90
|
+
|
|
91
|
+
# Get index information - handle MultiIndex
|
|
92
|
+
index_name = obj.index.name if obj.index.name is not None else "index"
|
|
93
|
+
index_dtype = str(obj.index.dtype)
|
|
94
|
+
|
|
95
|
+
# Check if we have a MultiIndex
|
|
96
|
+
has_multi_index = isinstance(obj.index, pd.MultiIndex)
|
|
97
|
+
if has_multi_index:
|
|
98
|
+
index_levels = obj.index.nlevels
|
|
99
|
+
index_names = [
|
|
100
|
+
name if name is not None else f"level_{i}"
|
|
101
|
+
for i, name in enumerate(obj.index.names)
|
|
102
|
+
]
|
|
103
|
+
else:
|
|
104
|
+
index_levels = 1
|
|
105
|
+
index_names = [index_name]
|
|
106
|
+
|
|
107
|
+
# Limit rows if necessary
|
|
108
|
+
if max_rows is not None and total_rows > max_rows:
|
|
109
|
+
display_df = obj.head(max_rows)
|
|
110
|
+
else:
|
|
111
|
+
display_df = obj
|
|
112
|
+
|
|
113
|
+
# Convert DataFrame to JSON-serializable format using pandas.to_json
|
|
114
|
+
try:
|
|
115
|
+
json_data = display_df.reset_index().to_json(orient="values", date_format="iso")
|
|
116
|
+
except Exception:
|
|
117
|
+
return None
|
|
118
|
+
|
|
119
|
+
# Prepare column metadata - include index as first column(s)
|
|
120
|
+
column_metadata = []
|
|
121
|
+
|
|
122
|
+
# Add index column(s) first
|
|
123
|
+
for i, name in enumerate(index_names):
|
|
124
|
+
column_metadata.append(
|
|
125
|
+
{
|
|
126
|
+
"name": [str(name)],
|
|
127
|
+
"dtype": f"level_{i + 1}" if has_multi_index else index_dtype,
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Add regular columns
|
|
132
|
+
for col in columns:
|
|
133
|
+
dtype = str(obj[col].dtype)
|
|
134
|
+
column_metadata.append(
|
|
135
|
+
{"name": list(col) if has_multi_columns else [str(col)], "dtype": dtype}
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# Prepare the data payload
|
|
139
|
+
payload = {
|
|
140
|
+
"columns": column_metadata,
|
|
141
|
+
"data": json_data,
|
|
142
|
+
"totalRows": total_rows,
|
|
143
|
+
"indexLevels": index_levels if has_multi_index else 1,
|
|
144
|
+
"columnLevels": column_levels,
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
# Return mimetype data for JupyterLab
|
|
148
|
+
return payload
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
"jupyterlab": {
|
|
10
10
|
"outputDir": "mitosheet/labextension",
|
|
11
11
|
"extension": "lib/plugin",
|
|
12
|
+
"mimeExtension": "lib/viewer/renderer",
|
|
12
13
|
"_build": {
|
|
13
|
-
"load": "static/remoteEntry.
|
|
14
|
-
"extension": "./extension"
|
|
14
|
+
"load": "static/remoteEntry.25a5fbf3d0f508ee1860.js",
|
|
15
|
+
"extension": "./extension",
|
|
16
|
+
"mimeExtension": "./mimeExtension"
|
|
15
17
|
}
|
|
16
18
|
},
|
|
17
19
|
"name": "mitosheet",
|
|
@@ -21,16 +23,18 @@
|
|
|
21
23
|
"email": "aaron@sagacollab.com"
|
|
22
24
|
},
|
|
23
25
|
"bugs": {
|
|
24
|
-
"url": "https://github.com/mito-ds/
|
|
26
|
+
"url": "https://github.com/mito-ds/mito/issues"
|
|
25
27
|
},
|
|
26
28
|
"repository": {
|
|
27
|
-
"url": "https://github.com/mito-ds/
|
|
29
|
+
"url": "https://github.com/mito-ds/mito",
|
|
28
30
|
"type": "git"
|
|
29
31
|
},
|
|
30
|
-
"version": "0.2.
|
|
32
|
+
"version": "0.2.56",
|
|
31
33
|
"dependencies": {
|
|
32
34
|
"@jupyterlab/application": "^4.0.0",
|
|
33
35
|
"@jupyterlab/notebook": "^4.2.4",
|
|
36
|
+
"@jupyterlab/rendermime-interfaces": "^3.0.0",
|
|
37
|
+
"@jupyterlab/ui-components": "^4.0.0",
|
|
34
38
|
"@types/fscreen": "^1.0.1",
|
|
35
39
|
"@types/react-dom": "^18.3.0",
|
|
36
40
|
"fscreen": "^1.1.0",
|
|
@@ -70,7 +74,10 @@
|
|
|
70
74
|
"lint": "eslint src/ --ext .ts,.tsx --fix",
|
|
71
75
|
"prepack": "jlpm run build:all",
|
|
72
76
|
"build:docs:update_frontend": "python docs/make_function_docs.py update_frontend",
|
|
73
|
-
"build:docs:generate_markdown": "python docs/make_function_docs.py generate_markdown"
|
|
77
|
+
"build:docs:generate_markdown": "python docs/make_function_docs.py generate_markdown",
|
|
78
|
+
"test": "jest",
|
|
79
|
+
"test:watch": "jest --watch",
|
|
80
|
+
"test:coverage": "jest --coverage"
|
|
74
81
|
},
|
|
75
82
|
"keywords": [
|
|
76
83
|
"jupyter",
|
|
@@ -82,7 +89,12 @@
|
|
|
82
89
|
],
|
|
83
90
|
"devDependencies": {
|
|
84
91
|
"@jupyterlab/builder": "^4.0.0",
|
|
92
|
+
"@testing-library/dom": "^10.4.1",
|
|
93
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
94
|
+
"@testing-library/react": "^16.3.0",
|
|
95
|
+
"@testing-library/user-event": "^14.6.1",
|
|
85
96
|
"@types/expect.js": "^0.3.29",
|
|
97
|
+
"@types/jest": "^30.0.0",
|
|
86
98
|
"@types/node": "^18.19.43",
|
|
87
99
|
"@types/react": "^18.3.3",
|
|
88
100
|
"@typescript-eslint/eslint-plugin": "^4.8.1",
|
|
@@ -96,15 +108,19 @@
|
|
|
96
108
|
"expect.js": "^0.3.1",
|
|
97
109
|
"file-loader": "^6.2.0",
|
|
98
110
|
"fs-extra": "^10.0.0",
|
|
111
|
+
"identity-obj-proxy": "^3.0.0",
|
|
112
|
+
"jest": "^30.2.0",
|
|
113
|
+
"jest-environment-jsdom": "^30.2.0",
|
|
99
114
|
"mkdirp": "^1.0.4",
|
|
100
115
|
"mocha": "^9.1.2",
|
|
101
116
|
"npm-run-all": "^4.1.5",
|
|
102
117
|
"prettier": "^2.1.1",
|
|
103
118
|
"rimraf": "^3.0.2",
|
|
119
|
+
"ts-jest": "^29.4.6",
|
|
104
120
|
"typescript": "^5.5.4"
|
|
105
121
|
},
|
|
106
122
|
"main": "lib/index.js",
|
|
107
|
-
"homepage": "https://
|
|
123
|
+
"homepage": "https://github.com/mito-ds/mito",
|
|
108
124
|
"types": "./lib/index.d.ts",
|
|
109
125
|
"description": "The Mito Spreadsheet",
|
|
110
126
|
"resolutions": {
|