mitosheet 0.2.53__tar.gz → 0.2.55__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.
Files changed (376) hide show
  1. {mitosheet-0.2.53 → mitosheet-0.2.55}/PKG-INFO +5 -2
  2. mitosheet-0.2.55/mitosheet/dataframe_display_formatters.py +50 -0
  3. mitosheet-0.2.55/mitosheet/formatter/__init__.py +10 -0
  4. mitosheet-0.2.55/mitosheet/formatter/viewer.py +148 -0
  5. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/labextension/package.json +23 -7
  6. mitosheet-0.2.55/mitosheet/labextension/static/339.967abbd46339aee7868c.js +1 -0
  7. mitosheet-0.2.55/mitosheet/labextension/static/418.0ec6f919714352f77210.js +1 -0
  8. mitosheet-0.2.55/mitosheet/labextension/static/remoteEntry.b3dffe9fd1efc1d162d4.js +1 -0
  9. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/save_utils.py +1 -1
  10. mitosheet-0.2.55/mitosheet/tests/test_formatter.py +240 -0
  11. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/PKG-INFO +5 -2
  12. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/SOURCES.txt +6 -2
  13. {mitosheet-0.2.53 → mitosheet-0.2.55}/setup.py +6 -1
  14. mitosheet-0.2.53/mitosheet/dataframe_display_formatters.py +0 -83
  15. mitosheet-0.2.53/mitosheet/labextension/static/339.5f826c48e1170f2309de.js +0 -1
  16. mitosheet-0.2.53/mitosheet/labextension/static/remoteEntry.905183b0f55e620383e3.js +0 -1
  17. {mitosheet-0.2.53 → mitosheet-0.2.55}/LICENSE.txt +0 -0
  18. {mitosheet-0.2.53 → mitosheet-0.2.55}/README.md +0 -0
  19. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/__init__.py +0 -0
  20. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/__main__.py +0 -0
  21. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/_frontend.py +0 -0
  22. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/_version.py +0 -0
  23. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/ai/__init__.py +0 -0
  24. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/ai/ai_utils.py +0 -0
  25. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/ai/prompt.py +0 -0
  26. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/ai/recon.py +0 -0
  27. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/__init__.py +0 -0
  28. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/api.py +0 -0
  29. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_ai_completion.py +0 -0
  30. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_all_params_for_step_type.py +0 -0
  31. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_available_snowflake_options_and_defaults.py +0 -0
  32. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_code_snippets.py +0 -0
  33. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_column_describe.py +0 -0
  34. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_column_summary_graph.py +0 -0
  35. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_csv_files_metadata.py +0 -0
  36. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_dataframe_as_csv.py +0 -0
  37. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_dataframe_as_excel.py +0 -0
  38. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_defined_df_names.py +0 -0
  39. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_excel_file_metadata.py +0 -0
  40. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_imported_files_and_dataframes_from_analysis_name.py +0 -0
  41. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_imported_files_and_dataframes_from_current_steps.py +0 -0
  42. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_parameterizable_params.py +0 -0
  43. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_params.py +0 -0
  44. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_path_contents.py +0 -0
  45. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_path_join.py +0 -0
  46. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_pr_url_of_new_pr.py +0 -0
  47. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_render_count.py +0 -0
  48. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_saved_analysis_code.py +0 -0
  49. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_search_matches.py +0 -0
  50. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_split_text_to_columns_preview.py +0 -0
  51. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_test_imports.py +0 -0
  52. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_unique_value_counts.py +0 -0
  53. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/api/get_validate_snowflake_credentials.py +0 -0
  54. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/array_utils.py +0 -0
  55. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/__init__.py +0 -0
  56. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/add_column_set_formula_code_chunk.py +0 -0
  57. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/ai_transformation_code_chunk.py +0 -0
  58. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/code_chunk.py +0 -0
  59. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/code_chunk_utils.py +0 -0
  60. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/column_headers_transform_code_chunk.py +0 -0
  61. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/delete_row_code_chunk.py +0 -0
  62. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/empty_code_chunk.py +0 -0
  63. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/export_to_file_code_chunk.py +0 -0
  64. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/melt_code_chunk.py +0 -0
  65. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/no_op_code_chunk.py +0 -0
  66. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/one_hot_encoding_code_chunk.py +0 -0
  67. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/postprocessing/__init__.py +0 -0
  68. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/postprocessing/set_dataframe_format_code_chunk.py +0 -0
  69. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/promote_row_to_header_code_chunk.py +0 -0
  70. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/replace_code_chunk.py +0 -0
  71. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/reset_index_code_chunk.py +0 -0
  72. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/snowflake_import_code_chunk.py +0 -0
  73. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/__init__.py +0 -0
  74. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/bulk_old_rename/__init__.py +0 -0
  75. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/bulk_old_rename/bulk_old_rename_code_chunk.py +0 -0
  76. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/__init__.py +0 -0
  77. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/add_column_code_chunk.py +0 -0
  78. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/change_column_dtype_code_chunk.py +0 -0
  79. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/delete_column_code_chunk.py +0 -0
  80. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/rename_columns_code_chunk.py +0 -0
  81. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/reorder_column_code_chunk.py +0 -0
  82. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/set_column_formula_code_chunk.py +0 -0
  83. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/column_steps/split_text_to_columns_code_chunk.py +0 -0
  84. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/concat_code_chunk.py +0 -0
  85. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/dataframe_steps/__init__.py +0 -0
  86. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_delete_code_chunk.py +0 -0
  87. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_duplicate_code_chunk.py +0 -0
  88. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/dataframe_steps/dataframe_rename_code_chunk.py +0 -0
  89. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/drop_duplicates_code_chunk.py +0 -0
  90. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/fill_na_code_chunk.py +0 -0
  91. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/filter_code_chunk.py +0 -0
  92. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/import_steps/__init__.py +0 -0
  93. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/import_steps/dataframe_import_code_chunk.py +0 -0
  94. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/import_steps/excel_import_code_chunk.py +0 -0
  95. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/import_steps/excel_range_import_code_chunk.py +0 -0
  96. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/import_steps/simple_import_code_chunk.py +0 -0
  97. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/merge_code_chunk.py +0 -0
  98. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/pivot_code_chunk.py +0 -0
  99. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/set_cell_value_code_chunk.py +0 -0
  100. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/step_performers/sort_code_chunk.py +0 -0
  101. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/transpose_code_chunk.py +0 -0
  102. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/user_defined_edit_code_chunk.py +0 -0
  103. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/code_chunks/user_defined_import_code_chunk.py +0 -0
  104. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/column_headers.py +0 -0
  105. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/__init__.py +0 -0
  106. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/api/__init__.py +0 -0
  107. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/api/code_snippets_utils.py +0 -0
  108. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/license_key.py +0 -0
  109. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/mito_config.py +0 -0
  110. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/step_performers/__init__.py +0 -0
  111. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/step_performers/one_hot_encoding.py +0 -0
  112. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/telemetry/__init__.py +0 -0
  113. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/enterprise/telemetry/mito_log_uploader.py +0 -0
  114. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/errors.py +0 -0
  115. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/excel_utils.py +0 -0
  116. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/experiments/__init__.py +0 -0
  117. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/experiments/experiment_utils.py +0 -0
  118. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/extensions/__init__.py +0 -0
  119. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/extensions/v1/__init__.py +0 -0
  120. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/hello.py +0 -0
  121. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/is_type_utils.py +0 -0
  122. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/kernel_utils.py +0 -0
  123. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/labextension/static/405.4dea6fd8e64e4dc9015a.js +0 -0
  124. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/labextension/static/509.9cd86a57778b85719494.js +0 -0
  125. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/labextension/static/style.js +0 -0
  126. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/labextension/static/third-party-licenses.json +0 -0
  127. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_backend.py +0 -0
  128. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/__init__.py +0 -0
  129. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/__init__.py +0 -0
  130. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/__init__.py +0 -0
  131. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_code_display.py +0 -0
  132. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_data_change.py +0 -0
  133. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_dataframe_display.py +0 -0
  134. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_dynamic_num_spreadsheets.py +0 -0
  135. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_empty_spreadsheet.py +0 -0
  136. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_errors.py +0 -0
  137. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_timer_change.py +0 -0
  138. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/apps/app_track_selection.py +0 -0
  139. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/mitoBuild/__init__.py +0 -0
  140. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/mitoBuild/component.css +0 -0
  141. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/mitoBuild/component.js +0 -0
  142. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/mito_callback.py +0 -0
  143. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_dash/v1/spreadsheet.py +0 -0
  144. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_flask/__init__.py +0 -0
  145. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_flask/v1/__init__.py +0 -0
  146. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_flask/v1/flatten_utils.py +0 -0
  147. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_flask/v1/process_event.py +0 -0
  148. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_frontend.css +0 -0
  149. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/mito_frontend.js +0 -0
  150. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/parser.py +0 -0
  151. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/preprocessing/__init__.py +0 -0
  152. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/preprocessing/preprocess_check_args_type.py +0 -0
  153. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/preprocessing/preprocess_convert_to_dataframe.py +0 -0
  154. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/preprocessing/preprocess_copy.py +0 -0
  155. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/preprocessing/preprocess_step_performer.py +0 -0
  156. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/__init__.py +0 -0
  157. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/code_chunks/__init__.py +0 -0
  158. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/code_chunks/code_chunk_pro_utils.py +0 -0
  159. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/conditional_formatting_utils.py +0 -0
  160. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/download/__init__.py +0 -0
  161. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/step_performers/__init__.py +0 -0
  162. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/step_performers/set_dataframe_format.py +0 -0
  163. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/updates/__init__.py +0 -0
  164. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/pro/updates/undo_to_step_index.py +0 -0
  165. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/__init__.py +0 -0
  166. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/__init__.py +0 -0
  167. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/__init__.py +0 -0
  168. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/control_functions.py +0 -0
  169. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/date_functions.py +0 -0
  170. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/misc_functions.py +0 -0
  171. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/number_functions.py +0 -0
  172. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/sheet_function_utils.py +0 -0
  173. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/string_functions.py +0 -0
  174. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/__init__.py +0 -0
  175. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/decorators.py +0 -0
  176. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_boolean_series.py +0 -0
  177. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_datetime_series.py +0 -0
  178. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_float_series.py +0 -0
  179. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_int_series.py +0 -0
  180. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_string_series.py +0 -0
  181. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/to_timedelta_series.py +0 -0
  182. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/sheet_functions/types/utils.py +0 -0
  183. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v1/utils.py +0 -0
  184. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v2/__init__.py +0 -0
  185. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v2/excel_utils.py +0 -0
  186. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/__init__.py +0 -0
  187. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/errors.py +0 -0
  188. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/formatting.py +0 -0
  189. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/rolling_range.py +0 -0
  190. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/__init__.py +0 -0
  191. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/bool_functions.py +0 -0
  192. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/date_functions.py +0 -0
  193. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/misc_functions.py +0 -0
  194. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/number_functions.py +0 -0
  195. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/string_functions.py +0 -0
  196. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/sheet_functions/utils.py +0 -0
  197. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/__init__.py +0 -0
  198. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/bool.py +0 -0
  199. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/datetime.py +0 -0
  200. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/decorators.py +0 -0
  201. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/float.py +0 -0
  202. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/int.py +0 -0
  203. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/number.py +0 -0
  204. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/sheet_function_types.py +0 -0
  205. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/str.py +0 -0
  206. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/timedelta.py +0 -0
  207. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/public/v3/types/utils.py +0 -0
  208. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/save_paths.py +0 -0
  209. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/__init__.py +0 -0
  210. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/schema_utils.py +0 -0
  211. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/__init__.py +0 -0
  212. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/add_column.py +0 -0
  213. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/change_column_dtype.py +0 -0
  214. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/change_column_format.py +0 -0
  215. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/delete_column.py +0 -0
  216. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/excel_range_import.py +0 -0
  217. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/filter.py +0 -0
  218. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/graph.py +0 -0
  219. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/merge.py +0 -0
  220. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/pivot.py +0 -0
  221. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/rename_column.py +0 -0
  222. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/reorder_column.py +0 -0
  223. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/set_column_formula.py +0 -0
  224. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/set_dataframe_format.py +0 -0
  225. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/simple_import.py +0 -0
  226. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/snowflake_import.py +0 -0
  227. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/sort.py +0 -0
  228. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/utils_column_header_to_column_id.py +0 -0
  229. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/step_upgraders/utils_rename_column_headers.py +0 -0
  230. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/saved_analyses/upgrade.py +0 -0
  231. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/scheduling/__init__.py +0 -0
  232. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/scheduling/github.py +0 -0
  233. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/scheduling/schedule_utils.py +0 -0
  234. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/selection_utils.py +0 -0
  235. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/startup/__init__.py +0 -0
  236. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/startup/startup_utils.py +0 -0
  237. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/state.py +0 -0
  238. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step.py +0 -0
  239. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/__init__.py +0 -0
  240. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/ai_transformation.py +0 -0
  241. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/bulk_old_rename/__init__.py +0 -0
  242. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/bulk_old_rename/bulk_old_rename.py +0 -0
  243. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/bulk_old_rename/deprecated_utils.py +0 -0
  244. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_headers_transform.py +0 -0
  245. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/__init__.py +0 -0
  246. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/add_column.py +0 -0
  247. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/change_column_dtype.py +0 -0
  248. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/delete_column.py +0 -0
  249. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/rename_column.py +0 -0
  250. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/reorder_column.py +0 -0
  251. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/set_column_formula.py +0 -0
  252. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/column_steps/split_text_to_columns.py +0 -0
  253. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/concat.py +0 -0
  254. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/dataframe_steps/__init__.py +0 -0
  255. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/dataframe_steps/dataframe_delete.py +0 -0
  256. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/dataframe_steps/dataframe_duplicate.py +0 -0
  257. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/dataframe_steps/dataframe_rename.py +0 -0
  258. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/delete_row.py +0 -0
  259. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/drop_duplicates.py +0 -0
  260. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/export_to_file.py +0 -0
  261. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/fill_na.py +0 -0
  262. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/filter.py +0 -0
  263. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/__init.py +0 -0
  264. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/__init__.py +0 -0
  265. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/graph.py +0 -0
  266. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/graph_delete.py +0 -0
  267. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/graph_duplicate.py +0 -0
  268. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/graph_rename.py +0 -0
  269. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/graph_utils.py +0 -0
  270. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/graph_steps/plotly_express_graphs.py +0 -0
  271. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/__init__.py +0 -0
  272. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/dataframe_import.py +0 -0
  273. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/excel_import.py +0 -0
  274. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/excel_range_import.py +0 -0
  275. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/simple_import.py +0 -0
  276. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/import_steps/snowflake_import.py +0 -0
  277. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/melt.py +0 -0
  278. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/merge.py +0 -0
  279. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/pivot.py +0 -0
  280. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/promote_row_to_header.py +0 -0
  281. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/replace.py +0 -0
  282. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/reset_index.py +0 -0
  283. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/set_cell_value.py +0 -0
  284. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/sort.py +0 -0
  285. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/step_performer.py +0 -0
  286. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/transpose.py +0 -0
  287. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/user_defined_edit.py +0 -0
  288. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/user_defined_import.py +0 -0
  289. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/utils/__init__.py +0 -0
  290. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/utils/user_defined_function_utils.py +0 -0
  291. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/step_performers/utils/utils.py +0 -0
  292. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/steps_manager.py +0 -0
  293. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/__init__.py +0 -0
  294. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/__init__.py +0 -0
  295. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/messagingBuild/__init__.py +0 -0
  296. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/messagingBuild/component.js +0 -0
  297. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/messagingBuild/index.html +0 -0
  298. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/mitoBuild/__init__.py +0 -0
  299. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/mitoBuild/component.css +0 -0
  300. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/mitoBuild/component.js +0 -0
  301. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/mitoBuild/index.html +0 -0
  302. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/streamlit/v1/spreadsheet.py +0 -0
  303. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/telemetry/__init__.py +0 -0
  304. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/telemetry/anonymization_utils.py +0 -0
  305. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/telemetry/private_params_map.py +0 -0
  306. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/telemetry/telemetry_utils.py +0 -0
  307. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/__init__.py +0 -0
  308. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/conftest.py +0 -0
  309. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/dash/__init__.py +0 -0
  310. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/dash/test_dash.py +0 -0
  311. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/decorators.py +0 -0
  312. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/fuzz.py +0 -0
  313. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/mito_flask/__init__.py +0 -0
  314. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/mito_flask/test_flatten_utils.py +0 -0
  315. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/scheduling/__init__.py +0 -0
  316. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/scheduling/test_schedule_utils.py +0 -0
  317. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/startup/__init__.py +0 -0
  318. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/startup/test_startup.py +0 -0
  319. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/streamlit/__init__.py +0 -0
  320. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/streamlit/test_column_definitions.py +0 -0
  321. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/streamlit/test_hash.py +0 -0
  322. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/streamlit/test_runnable_analysis.py +0 -0
  323. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/streamlit/test_streamlit.py +0 -0
  324. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_execution_errors.py +0 -0
  325. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_format.py +0 -0
  326. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_mito_backend.py +0 -0
  327. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_mito_config.py +0 -0
  328. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_mito_frontend.py +0 -0
  329. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_mito_log_uploader.py +0 -0
  330. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_multi_threaded.py +0 -0
  331. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_parse.py +0 -0
  332. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_state.py +0 -0
  333. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_step_format.py +0 -0
  334. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_steps_manager.py +0 -0
  335. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_transpile.py +0 -0
  336. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_ts_types.py +0 -0
  337. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_user_functions.py +0 -0
  338. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/test_utils.py +0 -0
  339. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/user/__init__.py +0 -0
  340. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/user/conftest.py +0 -0
  341. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/user/test_user.py +0 -0
  342. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/tests/user/test_utils.py +0 -0
  343. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/transpiler/__init__.py +0 -0
  344. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/transpiler/transpile.py +0 -0
  345. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/transpiler/transpile_utils.py +0 -0
  346. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/types.py +0 -0
  347. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/__init__.py +0 -0
  348. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/append_user_field.py +0 -0
  349. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/args_update.py +0 -0
  350. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/checklist_update.py +0 -0
  351. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/checkout_step_by_idx.py +0 -0
  352. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/clear.py +0 -0
  353. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/code_options_update.py +0 -0
  354. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/go_pro.py +0 -0
  355. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/redo.py +0 -0
  356. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/render_count.py +0 -0
  357. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/replay_analysis.py +0 -0
  358. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/save_analysis.py +0 -0
  359. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/set_user_field_update.py +0 -0
  360. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/undo.py +0 -0
  361. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/update_existing_imports.py +0 -0
  362. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/updates/update_feedback_v2_object.py +0 -0
  363. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/__init__.py +0 -0
  364. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/create.py +0 -0
  365. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/db.py +0 -0
  366. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/location.py +0 -0
  367. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/schemas.py +0 -0
  368. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/upgrade.py +0 -0
  369. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/user/utils.py +0 -0
  370. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet/utils.py +0 -0
  371. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/dependency_links.txt +0 -0
  372. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/not-zip-safe +0 -0
  373. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/requires.txt +0 -0
  374. {mitosheet-0.2.53 → mitosheet-0.2.55}/mitosheet.egg-info/top_level.txt +0 -0
  375. {mitosheet-0.2.53 → mitosheet-0.2.55}/pyproject.toml +0 -0
  376. {mitosheet-0.2.53 → mitosheet-0.2.55}/setup.cfg +0 -0
@@ -1,11 +1,14 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mitosheet
3
- Version: 0.2.53
3
+ Version: 0.2.55
4
4
  Summary: The Mito Spreadsheet
5
- Home-page: https://trymito.io
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,10 @@
1
+ # Copyright (c) Saga Inc.
2
+ # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
+
4
+ from .viewer import (
5
+ register_ipython_formatter,
6
+ )
7
+
8
+ __all__ = [
9
+ "register_ipython_formatter",
10
+ ]
@@ -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.905183b0f55e620383e3.js",
14
- "extension": "./extension"
14
+ "load": "static/remoteEntry.b3dffe9fd1efc1d162d4.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/monorepo/issues"
26
+ "url": "https://github.com/mito-ds/mito/issues"
25
27
  },
26
28
  "repository": {
27
- "url": "https://github.com/mito-ds/monorepo",
29
+ "url": "https://github.com/mito-ds/mito",
28
30
  "type": "git"
29
31
  },
30
- "version": "0.2.53",
32
+ "version": "0.2.55",
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://trymito.io",
123
+ "homepage": "https://github.com/mito-ds/mito",
108
124
  "types": "./lib/index.d.ts",
109
125
  "description": "The Mito Spreadsheet",
110
126
  "resolutions": {