diff --git a/docs/.buildinfo b/docs/.buildinfo index fa7a3af3..2ac10558 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e0e074627828417eb5b529163a3631a3 +config: 881986699d41314cb3f09650b1e5fa82 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.doctrees/apidoc/modules.doctree b/docs/.doctrees/apidoc/modules.doctree index 650db45f..f983f156 100644 Binary files a/docs/.doctrees/apidoc/modules.doctree and b/docs/.doctrees/apidoc/modules.doctree differ diff --git a/docs/.doctrees/apidoc/tabulous.commands.doctree b/docs/.doctrees/apidoc/tabulous.commands.doctree index 75a74ff9..a0e252e5 100644 Binary files a/docs/.doctrees/apidoc/tabulous.commands.doctree and b/docs/.doctrees/apidoc/tabulous.commands.doctree differ diff --git a/docs/.doctrees/apidoc/tabulous.doctree b/docs/.doctrees/apidoc/tabulous.doctree index 4f8111a2..02a4dec5 100644 Binary files a/docs/.doctrees/apidoc/tabulous.doctree and b/docs/.doctrees/apidoc/tabulous.doctree differ diff --git a/docs/.doctrees/apidoc/tabulous.style.doctree b/docs/.doctrees/apidoc/tabulous.style.doctree index b7747253..d463cb10 100644 Binary files a/docs/.doctrees/apidoc/tabulous.style.doctree and b/docs/.doctrees/apidoc/tabulous.style.doctree differ diff --git a/docs/.doctrees/apidoc/tabulous.widgets.doctree b/docs/.doctrees/apidoc/tabulous.widgets.doctree index 37ac3494..44edbde6 100644 Binary files a/docs/.doctrees/apidoc/tabulous.widgets.doctree and b/docs/.doctrees/apidoc/tabulous.widgets.doctree differ diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle index a2784e3f..c2509b73 100644 Binary files a/docs/.doctrees/environment.pickle and b/docs/.doctrees/environment.pickle differ diff --git a/docs/.doctrees/font.doctree b/docs/.doctrees/font.doctree index 50297650..112a441b 100644 Binary files a/docs/.doctrees/font.doctree and b/docs/.doctrees/font.doctree differ diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree index 870c207e..4ff2da6d 100644 Binary files a/docs/.doctrees/index.doctree and b/docs/.doctrees/index.doctree differ diff --git a/docs/.doctrees/main/cheat_sheet.doctree b/docs/.doctrees/main/cheat_sheet.doctree index 1c6a01a8..ed19007b 100644 Binary files a/docs/.doctrees/main/cheat_sheet.doctree and b/docs/.doctrees/main/cheat_sheet.doctree differ diff --git a/docs/.doctrees/main/columnwise_settings.doctree b/docs/.doctrees/main/columnwise_settings.doctree index b1dd2c51..6cb9d3d2 100644 Binary files a/docs/.doctrees/main/columnwise_settings.doctree and b/docs/.doctrees/main/columnwise_settings.doctree differ diff --git a/docs/.doctrees/main/customize.doctree b/docs/.doctrees/main/customize.doctree index 44e937ac..cd57f5bb 100644 Binary files a/docs/.doctrees/main/customize.doctree and b/docs/.doctrees/main/customize.doctree differ diff --git a/docs/.doctrees/main/integrate_custom_widgets.doctree b/docs/.doctrees/main/integrate_custom_widgets.doctree index f0a0da3f..7fc3e763 100644 Binary files a/docs/.doctrees/main/integrate_custom_widgets.doctree and b/docs/.doctrees/main/integrate_custom_widgets.doctree differ diff --git a/docs/.doctrees/main/non_mainwindow.doctree b/docs/.doctrees/main/non_mainwindow.doctree index 334dbd94..92bc5ad3 100644 Binary files a/docs/.doctrees/main/non_mainwindow.doctree and b/docs/.doctrees/main/non_mainwindow.doctree differ diff --git a/docs/.doctrees/main/quickstart.doctree b/docs/.doctrees/main/quickstart.doctree index e539312c..0b3c0d56 100644 Binary files a/docs/.doctrees/main/quickstart.doctree and b/docs/.doctrees/main/quickstart.doctree differ diff --git a/docs/.doctrees/main/register_action.doctree b/docs/.doctrees/main/register_action.doctree index 0bed0601..04b7b66c 100644 Binary files a/docs/.doctrees/main/register_action.doctree and b/docs/.doctrees/main/register_action.doctree differ diff --git a/docs/.doctrees/main/selections.doctree b/docs/.doctrees/main/selections.doctree index f6fff698..1b87ea9a 100644 Binary files a/docs/.doctrees/main/selections.doctree and b/docs/.doctrees/main/selections.doctree differ diff --git a/docs/.doctrees/main/sort_filter.doctree b/docs/.doctrees/main/sort_filter.doctree index d7107e9b..92f92e97 100644 Binary files a/docs/.doctrees/main/sort_filter.doctree and b/docs/.doctrees/main/sort_filter.doctree differ diff --git a/docs/.doctrees/main/table_fields.doctree b/docs/.doctrees/main/table_fields.doctree index d68a6362..6b6b123d 100644 Binary files a/docs/.doctrees/main/table_fields.doctree and b/docs/.doctrees/main/table_fields.doctree differ diff --git a/docs/.doctrees/main/table_view_mode.doctree b/docs/.doctrees/main/table_view_mode.doctree index 7ec9e10a..260fbd32 100644 Binary files a/docs/.doctrees/main/table_view_mode.doctree and b/docs/.doctrees/main/table_view_mode.doctree differ diff --git a/docs/.doctrees/main/user_interface.doctree b/docs/.doctrees/main/user_interface.doctree index 25a608d9..4f08a669 100644 Binary files a/docs/.doctrees/main/user_interface.doctree and b/docs/.doctrees/main/user_interface.doctree differ diff --git a/docs/_images/cell_labels.png b/docs/_images/cell_labels.png index bf1484c3..debe0590 100644 Binary files a/docs/_images/cell_labels.png and b/docs/_images/cell_labels.png differ diff --git a/docs/_images/colormap.png b/docs/_images/colormap.png index df9ea7f4..adeec67a 100644 Binary files a/docs/_images/colormap.png and b/docs/_images/colormap.png differ diff --git a/docs/_images/colormap_interpolate.png b/docs/_images/colormap_interpolate.png index 4834e950..dbe6f925 100644 Binary files a/docs/_images/colormap_interpolate.png and b/docs/_images/colormap_interpolate.png differ diff --git a/docs/_images/column_filter.png b/docs/_images/column_filter.png index 228d7f5f..f8078b07 100644 Binary files a/docs/_images/column_filter.png and b/docs/_images/column_filter.png differ diff --git a/docs/_images/command_palette.png b/docs/_images/command_palette.png index f2e9b08a..4666403a 100644 Binary files a/docs/_images/command_palette.png and b/docs/_images/command_palette.png differ diff --git a/docs/_images/dock_with_table_data_annotation.png b/docs/_images/dock_with_table_data_annotation.png index 3c3cdcdf..6e0a1141 100644 Binary files a/docs/_images/dock_with_table_data_annotation.png and b/docs/_images/dock_with_table_data_annotation.png differ diff --git a/docs/_images/edit_cell.png b/docs/_images/edit_cell.png index b7f0a334..752e56ae 100644 Binary files a/docs/_images/edit_cell.png and b/docs/_images/edit_cell.png differ diff --git a/docs/_images/formatter.png b/docs/_images/formatter.png index 5ab94815..e123446b 100644 Binary files a/docs/_images/formatter.png and b/docs/_images/formatter.png differ diff --git a/docs/_images/spreadsheet.png b/docs/_images/spreadsheet.png index 67242f72..99fbabce 100644 Binary files a/docs/_images/spreadsheet.png and b/docs/_images/spreadsheet.png differ diff --git a/docs/_images/table.png b/docs/_images/table.png index bea89640..77f185be 100644 Binary files a/docs/_images/table.png and b/docs/_images/table.png differ diff --git a/docs/_images/tile_tables.png b/docs/_images/tile_tables.png index 0ea67311..aa3f1892 100644 Binary files a/docs/_images/tile_tables.png and b/docs/_images/tile_tables.png differ diff --git a/docs/_images/validator.png b/docs/_images/validator.png index dfb2f3e1..2d92ec54 100644 Binary files a/docs/_images/validator.png and b/docs/_images/validator.png differ diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 2a9f8915..e6c380c6 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -3,7 +3,7 @@ - Overview: module code — tabulous 0.5.2 documentation + Overview: module code — tabulous 0.5.4 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.4
diff --git a/docs/_modules/tabulous/commands.html b/docs/_modules/tabulous/commands.html index 26819d2c..843e72ba 100644 --- a/docs/_modules/tabulous/commands.html +++ b/docs/_modules/tabulous/commands.html @@ -3,7 +3,7 @@ - tabulous.commands — tabulous 0.5.2 documentation + tabulous.commands — tabulous 0.5.3 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.3
@@ -194,6 +193,7 @@

Source code for tabulous.commands

     (table.redo_table, "Ctrl+Y"),
     (table.zoom_in, "Ctrl+Shift+>"),
     (table.zoom_out, "Ctrl+Shift+<"),
+    (table.jump_to_cell, "Ctrl+G"),
     (file.open_table, "Ctrl+O"),
     (file.open_spreadsheet, "Ctrl+K, Ctrl+O"),
     (file.save_table, "Ctrl+S"),
diff --git a/docs/_modules/tabulous/commands/selection.html b/docs/_modules/tabulous/commands/selection.html
index 79019e2d..200384ea 100644
--- a/docs/_modules/tabulous/commands/selection.html
+++ b/docs/_modules/tabulous/commands/selection.html
@@ -3,7 +3,7 @@
 
   
   
-  tabulous.commands.selection — tabulous 0.5.2 documentation
+  tabulous.commands.selection — tabulous 0.5.3 documentation
       
       
       
@@ -12,9 +12,8 @@
   
 
         
-        
-        
         
+        
     
     
     
@@ -32,7 +31,7 @@
             tabulous
           
               
- 0.5.2 + 0.5.3
@@ -91,8 +90,9 @@

Source code for tabulous.commands.selection

 from __future__ import annotations
+
 from typing import TYPE_CHECKING
-from magicgui import widgets as mwdg
+import re
 from . import _utils, _dialogs
 from tabulous._magicgui import ToggleSwitchSelect
 
@@ -189,31 +189,45 @@ 

Source code for tabulous.commands.selection

     _utils.get_mutable_table(viewer)._qwidget.pasteFromClipBoard(sep=",")
+
[docs]def paste_data_space_separated(viewer: TableViewerBase): + """Paste from space separated text""" + _utils.get_mutable_table(viewer)._qwidget.pasteFromClipBoard(sep=r"\s+")
+ +
[docs]def paste_data_from_numpy_string(viewer: TableViewerBase): """Paste from numpy-style text""" - # import re import numpy as np import pandas as pd - # TODO: use regex - # repr_pattern = re.compile(r"array\(.*\)") - # str_pattern = re.compile(r"\[.*\]") - table = _utils.get_mutable_table(viewer)._qwidget s = _utils.get_clipboard_text().strip() + # TODO: use regex _is_repr = s.startswith("array(") and s.endswith(")") _is_str = s.startswith("[") and s.endswith("]") if _is_repr: - arr = eval(f"np.{s}", {"np": np, "__builtins__": {}}, {}) + if s.endswith("dtype=object)"): + raise ValueError("Cannot paste object type array.") + glb = np.__dict__.copy() + glb["__builtins__"] = {} + arr = eval(s, glb, {}) if not isinstance(arr, np.ndarray): raise ValueError("Invalid numpy array representation.") if arr.ndim > 2: raise ValueError("Cannot paste array with dimension > 2.") return table._paste_data(pd.DataFrame(arr)) elif _is_str: - arr = np.asarray(eval(s.replace(" ", ", "), {"__builtins__": {}}, {})) + lit = r"('|\"|\.|\w|-|\+)" + ptn = rf"{lit}(\s+){lit}" + + def repl(m: re.Match): + g = m.groups() + return f"{g[0]}, {g[2]}" + + text = re.sub(ptn, repl, s).replace("]\n", "],\n") + list_ = eval(text, {"__builtins__": {}}, {}) + arr = np.asarray(list_) if arr.ndim > 2: raise ValueError("Cannot paste array with dimension > 2.") return table._paste_data(pd.DataFrame(arr)) @@ -223,7 +237,6 @@

Source code for tabulous.commands.selection

 
 
[docs]def paste_data_from_markdown(viewer: TableViewerBase): """Paste from Markdown text""" - import re import pandas as pd table = _utils.get_mutable_table(viewer) @@ -360,64 +373,64 @@

Source code for tabulous.commands.selection

 
 
[docs]def insert_row_above(viewer: TableViewerBase): """Insert a row above""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - row, _ = sheet._qtable_view._selection_model.current_index - return sheet.insertRows(row, 1)
+ row, _ = sheet.current_index + return sheet.native.insertRows(row, 1)
[docs]def insert_row_below(viewer: TableViewerBase): """Insert a row below""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - row, _ = sheet._qtable_view._selection_model.current_index - return sheet.insertRows(row + 1, 1)
+ row, _ = sheet.current_index + return sheet.native.insertRows(row + 1, 1)
[docs]def insert_column_left(viewer: TableViewerBase): """Insert a column left""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - _, col = sheet._qtable_view._selection_model.current_index - return sheet.insertColumns(col, 1)
+ _, col = sheet.current_index + return sheet.native.insertColumns(col, 1)
[docs]def insert_column_right(viewer: TableViewerBase): """Insert a column right""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - _, col = sheet._qtable_view._selection_model.current_index - return sheet.insertColumns(col + 1, 1)
+ _, col = sheet.current_index + return sheet.native.insertColumns(col + 1, 1)
[docs]def remove_selected_rows(viewer: TableViewerBase): """Remove selected rows""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - row, col = sheet._qtable_view._selection_model.current_index - _, rng = sheet._qtable_view._selection_model.range_under_index(row, col) + row, col = sheet.current_index + _, rng = sheet.native._qtable_view._selection_model.range_under_index(row, col) if rng is not None: row_range = rng[0] - sheet.removeRows(row_range.start, row_range.stop - row_range.start) + sheet.native.removeRows(row_range.start, row_range.stop - row_range.start) return None raise ValueError("No selection under cursor.")
[docs]def remove_selected_columns(viewer: TableViewerBase): """Remove selected columns""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - if not sheet.isEditable(): + sheet = _utils.get_spreadsheet(viewer) + if not sheet.editable: return _notify_editability() - row, col = sheet._qtable_view._selection_model.current_index - _, rng = sheet._qtable_view._selection_model.range_under_index(row, col) + row, col = sheet.current_index + _, rng = sheet.native._qtable_view._selection_model.range_under_index(row, col) if rng is not None: col_range = rng[1] - sheet.removeColumns(col_range.start, col_range.stop - col_range.start) + sheet.native.removeColumns(col_range.start, col_range.stop - col_range.start) return None raise ValueError("No selection under cursor.")
@@ -542,84 +555,6 @@

Source code for tabulous.commands.selection

     return None
-
[docs]def add_spinbox(viewer: TableViewerBase) -> None: - """Add Spinbox""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.spinbox(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.SpinBox(**kwargs)) - return None
- - -
[docs]def add_float_spinbox(viewer: TableViewerBase) -> None: - """Add FloatSpinBox""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.float_spinbox(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.FloatSpinBox(**kwargs)) - return None
- - -
[docs]def add_slider(viewer: TableViewerBase) -> None: - """Add Slider""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.slider(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.Slider(**kwargs)) - return None
- - -
[docs]def add_float_slider(viewer: TableViewerBase) -> None: - """Add FloatSlider""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.float_slider(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.FloatSlider(**kwargs)) - return None
- - -
[docs]def add_checkbox(viewer: TableViewerBase) -> None: - """Add CheckBox""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.checkbox(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.CheckBox(**kwargs)) - return None
- - -
[docs]def add_radio_button(viewer: TableViewerBase) -> None: - """Add RadioButton""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - kwargs = _dialogs.radio_button(parent=viewer.native) - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.RadioButton(**kwargs)) - return None
- - -
[docs]def add_line_edit(viewer: TableViewerBase) -> None: - """Add LineEdit""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, mwdg.LineEdit()) - return None
- - -
[docs]def remove_cell_widgets(viewer: TableViewerBase) -> None: - """Remove cell widgets""" - sheet = _utils.get_spreadsheet(viewer)._qwidget - with sheet._mgr.merging(): - for r, c in sheet._qtable_view._selection_model.iter_all_indices(): - sheet._set_widget_at_index(r, c, None) - return None
- -
[docs]def edit_current(viewer: TableViewerBase) -> None: """Edit current cell""" table = _utils.get_table(viewer)._qwidget diff --git a/docs/_modules/tabulous/commands/table.html b/docs/_modules/tabulous/commands/table.html index 0b827f63..951bf7ed 100644 --- a/docs/_modules/tabulous/commands/table.html +++ b/docs/_modules/tabulous/commands/table.html @@ -3,7 +3,7 @@ - tabulous.commands.table — tabulous 0.5.2 documentation + tabulous.commands.table — tabulous 0.5.3 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.3
@@ -103,7 +102,8 @@

Source code for tabulous.commands.table

 
 
[docs]def new_spreadsheet(viewer: TableViewerBase): """Add an empty spreadsheet.""" - viewer.add_spreadsheet()
+ viewer.add_spreadsheet() + viewer.native.setCellFocus()
[docs]def copy_as_table(viewer: TableViewerBase): @@ -389,13 +389,6 @@

Source code for tabulous.commands.table

         table.layout = "vertical"
-
[docs]def resize_cells_to_contents(viewer: TableViewerBase): - """Resize cells to contents""" - table = _utils.get_table(viewer) - table.native._qtable_view.resizeColumnsToContents() - table.native._qtable_view.resizeRowsToContents()
- -
[docs]def zoom_in(viewer: TableViewerBase): """Zoom in""" table = _utils.get_table(viewer) @@ -406,6 +399,16 @@

Source code for tabulous.commands.table

     """Zoom in"""
     table = _utils.get_table(viewer)
     table.native._qtable_view.zoomIn(-1)
+ + +
[docs]def jump_to_cell(viewer: TableViewerBase): + """Jump to a cell.""" + from tabulous._qt._jump import QJumpWidget + + if viewer.current_table is None: + return + jw = QJumpWidget(viewer.native) + jw.show()
diff --git a/docs/_modules/tabulous/commands/window.html b/docs/_modules/tabulous/commands/window.html index e853d498..b6cdc390 100644 --- a/docs/_modules/tabulous/commands/window.html +++ b/docs/_modules/tabulous/commands/window.html @@ -3,7 +3,7 @@ - tabulous.commands.window — tabulous 0.5.2 documentation + tabulous.commands.window — tabulous 0.5.3 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.3
@@ -104,7 +103,7 @@

Source code for tabulous.commands.window

 
 
[docs]def close_window(viewer: TableViewerBase): """Close window""" - viewer._qwidget.close()
+ viewer._qwidget.close(ask=None)
[docs]def new_window(viewer: TableViewerBase): diff --git a/docs/_modules/tabulous/core.html b/docs/_modules/tabulous/core.html index 2162e6fb..322328de 100644 --- a/docs/_modules/tabulous/core.html +++ b/docs/_modules/tabulous/core.html @@ -3,7 +3,7 @@ - tabulous.core — tabulous 0.5.2 documentation + tabulous.core — tabulous 0.5.3 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.3
@@ -127,6 +126,7 @@

Source code for tabulous.core

     name = Path(path).stem
     viewer = current_viewer()
     viewer.add_table(df, name=name)
+    viewer.show(run=False)
     return viewer
@@ -141,6 +141,7 @@

Source code for tabulous.core

     viewer = current_viewer()
     for sheet_name, df in df_dict.items():
         viewer.add_table(df, name=sheet_name)
+    viewer.show(run=False)
     return viewer
@@ -154,6 +155,7 @@

Source code for tabulous.core

     """View a table in the current viewer."""
     viewer = current_viewer()
     viewer.add_table(data, name=name, editable=editable, copy=copy)
+    viewer.show(run=False)
     return viewer
@@ -167,6 +169,7 @@

Source code for tabulous.core

     """View a table as a spreadsheet in the current viewer."""
     viewer = current_viewer()
     viewer.add_spreadsheet(data, name=name, editable=editable, copy=copy)
+    viewer.show(run=False)
     return viewer
@@ -177,6 +180,7 @@

Source code for tabulous.core

     """Open a sample data."""
     viewer = current_viewer()
     viewer.open_sample(sample_name, plugin_name)
+    viewer.show(run=False)
     return viewer
diff --git a/docs/_modules/tabulous/widgets/_mainwindow.html b/docs/_modules/tabulous/widgets/_mainwindow.html index b511892b..5d8c65d7 100644 --- a/docs/_modules/tabulous/widgets/_mainwindow.html +++ b/docs/_modules/tabulous/widgets/_mainwindow.html @@ -3,7 +3,7 @@ - tabulous.widgets._mainwindow — tabulous 0.5.2 documentation + tabulous.widgets._mainwindow — tabulous 0.5.3 documentation @@ -12,9 +12,8 @@ - - + @@ -32,7 +31,7 @@ tabulous
- 0.5.2 + 0.5.3
@@ -98,7 +97,7 @@

Source code for tabulous.widgets._mainwindow

import warnings
 import weakref
 from enum import Enum
-from typing import TYPE_CHECKING, Any, Callable, Union
+from typing import TYPE_CHECKING, Any, Callable, Generic, Union, TypeVar
 from psygnal import Signal, SignalGroup
 from superqt.utils import thread_worker
 
@@ -126,6 +125,7 @@ 

Source code for tabulous.widgets._mainwindow

import pandas as pd
 
 PathLike = Union[str, Path, bytes]
+_T = TypeVar("_T")
 
 
 class TableType(Enum):
@@ -190,6 +190,23 @@ 

Source code for tabulous.widgets._mainwindow

return self.current_table._qwidget.pasteFromClipBoard()
 
 
+class IPyProperty(Generic[_T]):
+    """
+    Essentially identical to the getter-only property.
+
+    IPython runtime auto-completion checks if the evaluation has any side effects.
+    If an attribute is a property, it immediately skips the auto-completion check.
+    """
+
+    def __init__(self, fget: Callable[[Any], _T]):
+        self.fget = fget
+
+    def __get__(self, instance, owner=None) -> _T:
+        if instance is None:
+            raise AttributeError("Can only be accessed via an instance.")
+        return self.fget(instance)
+
+
 
[docs]class TableViewerBase(_AbstractViewer, SupportKeyMap): """The base class of a table viewer widget.""" @@ -228,12 +245,7 @@

Source code for tabulous.widgets._mainwindow

def __repr__(self) -> str:
         return f"<{type(self).__name__} widget at {hex(id(self))}>"
 
-    @property
-    def tables(self) -> TableList:
-        """Return the table list object."""
-        return self._tablist
-
-    @property
+    @IPyProperty
     def current_table(self) -> TableBase | None:
         """Return the currently visible table."""
         if len(self.tables) > 0:
@@ -256,6 +268,11 @@ 

Source code for tabulous.widgets._mainwindow

index += len(self.tables)
         return self._qwidget._tablestack.setCurrentIndex(index)
 
+    @IPyProperty
+    def tables(self) -> TableList:
+        """Return the table list object."""
+        return self._tablist
+
     @property
     def native(self) -> _QtMainWidgetBase:
         """Return the native widget."""
@@ -420,6 +437,11 @@ 

Source code for tabulous.widgets._mainwindow

return self.add_layer(table, update=update)
[docs] def add_layer(self, input: TableBase, *, update: bool = False): + """Add any table object to the viewer.""" + if table := self.current_table: + table_has_focus = table.native._qtable_view.hasFocus() + else: + table_has_focus = False if ( update and (table := self.tables.get(input.name, None)) @@ -430,9 +452,10 @@

Source code for tabulous.widgets._mainwindow

self.tables.append(input)
         self.current_index = -1  # activate the last table
 
-        self._qwidget.setCellFocus()
         if self._table_initializer is not None:
             self._table_initializer.initialize_table(input)
+        if table_has_focus:
+            self._qwidget.setCellFocus()
         return input
[docs] def open(self, path: PathLike, *, type: TableType | str = TableType.table) -> None: @@ -480,7 +503,7 @@

Source code for tabulous.widgets._mainwindow

if path.is_dir():
             paths = [path / f"{table.name}.csv" for table in self.tables]
         elif path.name.count("*") == 1:
-            paths = [path.replace("*", table.name) for table in self.tables]
+            paths = [str(path).replace("*", table.name) for table in self.tables]
         elif path.suffix in (".xlsx", ".xls"):
             import pandas as pd
             from tabulous._pd_index import is_ranged
@@ -586,7 +609,7 @@ 

Source code for tabulous.widgets._mainwindow

return self._qwidget.resize(int(w), int(h))
 
     def _link_events(self):
-        _tablist = self._tablist
+        _tablist = self.tables
         _qtablist = self._qwidget._tablestack
 
         @_tablist.events.inserted.connect
@@ -621,17 +644,17 @@ 

Source code for tabulous.widgets._mainwindow

            """Move evented list when list is moved in GUI."""
             if src < dst:
                 dst += 1
-            with self._tablist.events.blocked():
-                self._tablist.move(src, dst)
+            with self.tables.events.blocked():
+                self.tables.move(src, dst)
 
         @_qtablist.tableRenamed.connect
         def _rename_pytable(index: int, name: str):
-            self._tablist.rename(index, name)
+            self.tables.rename(index, name)
 
         @_qtablist.tableRemoved.connect
         def _remove_pytable(index: int):
-            with self._tablist.events.blocked():
-                del self._tablist[index]
+            with self.tables.events.blocked():
+                del self.tables[index]
 
         @_qtablist.tablePassed.connect
         def _pass_pytable(src, index: int, dst):
diff --git a/docs/_modules/tabulous/widgets/_table.html b/docs/_modules/tabulous/widgets/_table.html
index ad2a70d4..71850595 100644
--- a/docs/_modules/tabulous/widgets/_table.html
+++ b/docs/_modules/tabulous/widgets/_table.html
@@ -3,7 +3,7 @@
 
   
   
-  tabulous.widgets._table — tabulous 0.5.2 documentation
+  tabulous.widgets._table — tabulous 0.5.3 documentation
       
       
       
@@ -12,9 +12,8 @@
   
 
         
-        
-        
         
+        
     
     
     
@@ -32,7 +31,7 @@
             tabulous
           
               
- 0.5.2 + 0.5.3
@@ -93,9 +92,10 @@

Source code for tabulous.widgets._table

 
 import logging
 from abc import abstractmethod, abstractstaticmethod
+import ast
 from enum import Enum
 from pathlib import Path
-from typing import Any, Callable, Hashable, TYPE_CHECKING, overload
+from typing import Any, Callable, Hashable, TYPE_CHECKING, Mapping, overload
 import warnings
 import weakref
 from psygnal import SignalGroup, Signal
@@ -170,6 +170,42 @@ 

Source code for tabulous.widgets._table

         return f"<{type(self).__name__}.{self.name}>"
 
 
+# #####################################################################
+#   Property-like
+# #####################################################################
+
+
+class DataProperty:
+    """Internal data of the table."""
+
+    def __get__(self, instance: TableBase, owner) -> pd.DataFrame:
+        if instance is None:
+            raise AttributeError("Cannot access property without instance.")
+        return instance._qwidget.getDataFrame()
+
+    def __set__(self, instance: TableBase, value: Any):
+        if instance is None:
+            raise AttributeError("Cannot access property without instance.")
+        _data = instance._normalize_data(value)
+        instance._qwidget.setDataFrame(_data)
+
+
+class MetadataProperty:
+    """Metadata dictionary of the table."""
+
+    def __get__(self, instance: TableBase, owner) -> dict[str, Any]:
+        if instance is None:
+            raise AttributeError("Cannot access property without instance.")
+        return instance._metadata
+
+    def __set__(self, instance: TableBase, value: dict[str, Any]):
+        if instance is None:
+            raise AttributeError("Cannot access property without instance.")
+        if not isinstance(value, dict):
+            raise TypeError("metadata must be a dict")
+        instance._metadata = value
+
+
 # #####################################################################
 #   The abstract base class of tables.
 # #####################################################################
@@ -237,6 +273,9 @@ 

Source code for tabulous.widgets._table

     def __repr__(self) -> str:
         return f"{self.__class__.__name__}<{self.name!r}>"
 
+    def _ipython_key_completions_(self):
+        return [name for name in self.columns]
+
     # fmt: off
     @overload
     def __getitem__(self, key: str) -> _comp.TableSeries: ...
@@ -264,6 +303,16 @@ 

Source code for tabulous.widgets._table

         """The source of the table."""
         return self._source
 
+    @property
+    def current_index(self) -> tuple[int, int]:
+        """The current index of the table."""
+        return self._qwidget._qtable_view._selection_model.current_index
+
+    @current_index.setter
+    def current_index(self, index: tuple[int, int]) -> None:
+        r, c = index
+        return self.move_iloc(r, c)
+
     def _emit_data_changed_signal(self, info: ItemInfo) -> None:
         r, c = info.row, info.column
         if info.value is info.DELETED or info.old_value is info.INSERTED:
@@ -307,16 +356,7 @@ 

Source code for tabulous.widgets._table

         """Return the table type in string."""
         return type(self).__name__
 
-    @property
-    def data(self) -> pd.DataFrame:
-        """Table data."""
-        return self._qwidget.getDataFrame()
-
-    @data.setter
-    def data(self, value: Any):
-        """Set table data."""
-        _data = self._normalize_data(value)
-        self._qwidget.setDataFrame(_data)
+    data = DataProperty()
 
     @property
     def data_shown(self) -> pd.DataFrame:
@@ -347,6 +387,8 @@ 

Source code for tabulous.widgets._table

             raise TypeError("metadata must be a dict")
         self._metadata = value
 
+    metadata = MetadataProperty()
+
     @property
     def zoom(self) -> float:
         """Zoom factor of table."""
@@ -707,26 +749,14 @@ 

Source code for tabulous.widgets._table

         import pandas as pd
 
         if not isinstance(data, pd.DataFrame):
-            try:
-                mod = type(data).__module__.split(".", 1)[0]
-            except AttributeError:
-                mod = ""
-            if mod == "polars":
-                import polars as pl
-
-                if isinstance(data, pl.DataFrame):
-                    data = data.to_pandas()
-                elif isinstance(data, pl.Series):
-                    data = pd.DataFrame(data.to_pandas())
-                else:
-                    raise TypeError(f"{type(data)} cannot be converted.")
-            elif mod == "xarray" and hasattr(data, "to_dataframe"):
-                import xarray as xr
-
-                if isinstance(data, xr.DataArray):
-                    data = data.to_dataframe("val").reset_index()
-                else:
-                    raise TypeError(f"{type(data)} cannot be converted.")
+            if isinstance(data, (Mapping, pd.Series, list)):
+                data = pd.DataFrame(data)
+            if is_polars_data_frame(data):
+                data = data.to_pandas()
+            elif is_polars_series(data):
+                data = pd.DataFrame(data.to_pandas())
+            elif is_xarray_data_array(data):
+                data = data.to_dataframe("val").reset_index()
             else:
                 data = pd.DataFrame(data)
         return data
@@ -759,6 +789,59 @@ 

Source code for tabulous.widgets._table

             self._qwidget.assignColumns(serieses)
         return self
 
+    def query(self, text: str):
+        df = self.data.eval(text, inplace=False, global_dict={"df": self.data})
+        parsed = ast.parse(text.replace("@", "")).body[0]
+        if type(parsed) is not ast.Assign:
+            self._qwidget.parentViewer()._table_viewer.add_table(df, name=self.name)
+        else:
+            obj = parsed.targets[0]
+            if type(obj) is not ast.Name:
+                raise ValueError("Only simple assignment is supported.")
+            name = obj.id
+            new_ds = df[name]
+            self.assign({name: new_ds})
+        return None
+
+    def append(self, row: Any) -> Self:
+        """Append a row to the table."""
+        import pandas as pd
+        from tabulous._pd_index import is_ranged
+
+        columns = self.columns.data
+        if isinstance(row, pd.Series):
+            _df = row.to_frame().T
+        elif isinstance(row, (Mapping, pd.DataFrame)):
+            _df = pd.DataFrame(row, copy=False, index=[0])
+        elif is_polars_data_frame(row):
+            _df = pd.DataFrame(row)
+        else:
+            _df = pd.DataFrame([list(row)])
+        if is_ranged(_df.columns):
+            if _df.columns.size < columns.size:
+                n_more = columns.size - _df.columns.size
+                _df = pd.concat(
+                    [_df, pd.DataFrame([[self.native.NaN] * n_more])],
+                    axis=1,
+                    columns=columns,
+                    ignore_index=True,
+                )
+            elif _df.columns.size == columns.size:
+                _df = _df.rename(columns=dict(zip(_df.columns, columns)))
+            else:
+                raise ValueError("Too many columns.")
+
+        else:
+            not_exist = _df.columns.difference(self.columns.data)
+            if not_exist.size > 0:
+                raise ValueError(f"Columns {list(not_exist)} does not exist.")
+        if self.table_type == "SpreadSheet":
+            with self._qwidget._anim_row.using_animation(False):
+                self.native.insertRows(self.table_shape[0], 1, row)
+        else:
+            self.data = pd.concat([self.data, _df], axis=0)
+        return self
+
 
 
[docs]@_doc.update_doc class Table(_DataFrameTableLayer): @@ -806,6 +889,11 @@

Source code for tabulous.widgets._table

 
 
[docs] def add_item_widget(self, row: int, column: int, widget): """Add a widget to a cell.""" + warnings.warn( + "`add_item_widget` is deprecated because its behavior is not stable. " + "Will be removed in the future. Use side area or dock widget instead.", + DeprecationWarning, + ) return self._qwidget._set_widget_at_index(row, column, widget)
def _install_actions(self): @@ -839,16 +927,6 @@

Source code for tabulous.widgets._table

 
         super()._install_actions()
 
-        _cell_register("Cell widget > SpinBox", _wrap(cmds.selection.add_spinbox))
-        _cell_register("Cell widget > Slider", _wrap(cmds.selection.add_slider))
-        _cell_register("Cell widget > FloatSpinBox", _wrap(cmds.selection.add_float_spinbox))  # noqa: E501
-        _cell_register("Cell widget > FloatSlider", _wrap(cmds.selection.add_float_slider))  # noqa: E501
-        _cell_register("Cell widget > CheckBox", _wrap(cmds.selection.add_checkbox))
-        _cell_register("Cell widget > RadioButton", _wrap(cmds.selection.add_radio_button))  # noqa: E501
-        _cell_register("Cell widget > LineEdit", _wrap(cmds.selection.add_line_edit))
-        self._qwidget.addSeparator("Cell widget ")
-        _cell_register("Cell widget > Remove", _wrap(cmds.selection.remove_cell_widgets))  # noqa: E501
-
         # fmt: on
         return None
@@ -991,6 +1069,38 @@

Source code for tabulous.widgets._table

 
 TableBase.foreground_colormap = foreground_colormap
 TableBase.background_colormap = background_colormap
+
+
+def is_polars_data_frame(data):
+    if _get_module(data) == "polars":
+        import polars as pl
+
+        return isinstance(data, pl.DataFrame)
+    return False
+
+
+def is_polars_series(data):
+    if _get_module(data) == "polars":
+        import polars as pl
+
+        return isinstance(data, pl.Series)
+    return False
+
+
+def is_xarray_data_array(data):
+    if _get_module(data) == "xarray":
+        import xarray as xr
+
+        return isinstance(data, xr.DataArray)
+    return False
+
+
+def _get_module(data) -> str:
+    try:
+        mod = type(data).__module__.split(".", 1)[0]
+    except AttributeError:
+        mod = ""
+    return mod
 
diff --git a/docs/_static/basic.css b/docs/_static/basic.css index 1c769a56..92f0788d 100644 --- a/docs/_static/basic.css +++ b/docs/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -335,12 +325,16 @@ p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; @@ -379,6 +373,8 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +382,8 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +426,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,19 +609,26 @@ ul.simple p { margin-bottom: 0; } -dl.footnote > dt, -dl.citation > dt { +aside.footnote > span, +div.citation > span { float: left; - margin-right: 0.5em; } - -dl.footnote > dd, -dl.citation > dd { +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { margin-bottom: 0em; } - -dl.footnote > dd:after, -dl.citation > dd:after { +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { content: ""; clear: both; } @@ -644,10 +645,6 @@ dl.field-list > dt { padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; diff --git a/docs/_static/doctools.js b/docs/_static/doctools.js index e1bfd708..d06a71d7 100644 --- a/docs/_static/doctools.js +++ b/docs/_static/doctools.js @@ -2,357 +2,155 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return result; }; -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists } }, - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; - - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; - - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 44a0e66d..c58d96dc 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.5.2', - LANGUAGE: 'None', + VERSION: '0.5.4', + LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', diff --git a/docs/_static/language_data.js b/docs/_static/language_data.js index 7dbd6587..68b9e83a 100644 --- a/docs/_static/language_data.js +++ b/docs/_static/language_data.js @@ -5,12 +5,12 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ -var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; /* Non-minified version is copied as a separate JS file, is available */ @@ -196,100 +196,3 @@ var Stemmer = function() { return w; } } - - - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - -function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; -} diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js index 0a44e858..97d56a74 100644 --- a/docs/_static/searchtools.js +++ b/docs/_static/searchtools.js @@ -4,22 +4,24 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -if (!Scorer) { - /** - * Simple result scoring code. - */ +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { var Scorer = { // Implement the following function to further tweak the score for each result - // The function takes a result array [filename, title, anchor, descr, score] + // The function takes a result array [docname, title, anchor, descr, score, filename] // and returns the new score. /* - score: function(result) { - return result[4]; + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,495 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { - - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

' + _('Searching') + '

').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

 

').appendTo(this.out); - this.output = $('
  • Submodules
  • -
  • tabulous.color module
  • -
  • tabulous.core module
  • -
  • tabulous.exceptions module
  • -
  • tabulous.post_init module
  • -
  • tabulous.threading module
  • -
  • tabulous.types module
  • -
  • Module contents
  • +
  • tabulous.color module +
  • +
  • tabulous.core module +
  • +
  • tabulous.exceptions module +
  • +
  • tabulous.post_init module +
  • +
  • tabulous.threading module +
  • +
  • tabulous.types module +
  • +
  • Module contents +
  • @@ -112,48 +163,343 @@
    -

    tabulous package

    +

    tabulous package

    -

    Subpackages

    +

    Subpackages

    -

    Submodules

    +

    Submodules

    -

    tabulous.color module

    +

    tabulous.color module

    -class tabulous.color.BrightenedColormap(func: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]], factor: float)[source]
    -

    Bases: tabulous.color.ConvertedColormap

    +class tabulous.color.BrightenedColormap(func: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]], factor: float)[source] +

    Bases: ConvertedColormap

    -classmethod from_colormap(cmap: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]], factor: float) Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]][source]
    +classmethod from_colormap(cmap: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]], factor: float) Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]][source]

    Convert a colormap into an new one with given brightening factor.

    @@ -178,7 +524,7 @@

    Submodules
    -brighten(ratio: float) tabulous.color.ColorTuple[source]
    +brighten(ratio: float) ColorTuple[source]

    Set the saturation of the color.

    @@ -189,19 +535,19 @@

    Submodules
    -classmethod from_hlsa(*hlsa) tabulous.color.ColorTuple[source]
    +classmethod from_hlsa(*hlsa) ColorTuple[source]

    Create a ColorTuple from HSLA.

    -classmethod from_hsva(*hsva) tabulous.color.ColorTuple[source]
    +classmethod from_hsva(*hsva) ColorTuple[source]

    Create a ColorTuple from HSVA.

    -classmethod from_html(html: str) tabulous.color.ColorTuple[source]
    +classmethod from_html(html: str) ColorTuple[source]

    Create a ColorTuple from a HTML color string.

    @@ -231,7 +577,7 @@

    Submodules
    -mix(other, ratio: float = 0.5, alpha: bool = False) tabulous.color.ColorTuple[source]
    +mix(other, ratio: float = 0.5, alpha: bool = False) ColorTuple[source]

    Mix the color with another color.

    @@ -251,17 +597,17 @@

    Submodules
    -class tabulous.color.ConvertedColormap(func: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]])[source]
    +class tabulous.color.ConvertedColormap(func: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]])[source]

    Bases: object

    -class tabulous.color.InvertedColormap(func: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]])[source]
    -

    Bases: tabulous.color.ConvertedColormap

    +class tabulous.color.InvertedColormap(func: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]])[source] +

    Bases: ConvertedColormap

    -classmethod from_colormap(cmap: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]]) Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]][source]
    +classmethod from_colormap(cmap: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]]) Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]][source]

    Convert a colormap into return an inverted one.

    @@ -269,11 +615,11 @@

    Submodules
    -class tabulous.color.OpacityColormap(func: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]], opacity: float)[source]
    -

    Bases: tabulous.color.ConvertedColormap

    +class tabulous.color.OpacityColormap(func: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]], opacity: float)[source] +

    Bases: ConvertedColormap

    -classmethod from_colormap(cmap: Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]], opacity: float) Union[Callable[[Any], Union[str, Iterable[int]]], Mapping[str, Union[str, Iterable[int]]]][source]
    +classmethod from_colormap(cmap: Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]], opacity: float) Callable[[Any], str | Iterable[int]] | Mapping[str, str | Iterable[int]][source]

    Convert a colormap into an new one with given alpha channel.

    @@ -281,7 +627,7 @@

    Submodules
    -tabulous.color.normalize_color(color: Union[str, Iterable[int]]) tabulous.color.ColorTuple[source]
    +tabulous.color.normalize_color(color: str | Iterable[int]) ColorTuple[source]

    Normalize a color-like object to a ColorTuple.

    @@ -292,7 +638,7 @@

    Submodules -

    tabulous.core module

    +

    tabulous.core module

    tabulous.core.current_viewer() TableViewerBase[source]
    @@ -337,10 +683,10 @@

    Submodules -

    tabulous.exceptions module

    +

    tabulous.exceptions module

    -class tabulous.exceptions.ExceptionHandler(hook: Callable[[type[Exception], Exception, types.TracebackType], Any])[source]
    +class tabulous.exceptions.ExceptionHandler(hook: Callable[[type[Exception], Exception, TracebackType], Any])[source]

    Bases: object

    Handle exceptions in the GUI thread.

    @@ -354,18 +700,18 @@

    Submodules -

    tabulous.post_init module

    +

    tabulous.post_init module

    class tabulous.post_init.CellNamespaceMock(name: str = '')[source]
    -

    Bases: tabulous.post_init._Updatable

    +

    Bases: _Updatable

    A mock for the cell_namespace attribute of a table viewer instance.

    class tabulous.post_init.CommandPaletteMock(name: str = '')[source]
    -

    Bases: tabulous.post_init._Registerable

    +

    Bases: _Registerable

    register(command: Callable[[TableViewerBase], Any], title: str, desc: str | None, key: str | None)[source]
    @@ -378,20 +724,20 @@

    Submodules
    class tabulous.post_init.ConsoleMock(name: str = '')[source]
    -

    Bases: tabulous.post_init._Updatable

    +

    Bases: _Updatable

    A mock for the console attribute of a table viewer instance.

    class tabulous.post_init.ContextRegisterable(name: str = '')[source]
    -

    Bases: tabulous.post_init._Registerable, Generic[tabulous.post_init._T]

    +

    Bases: _Registerable, Generic[_T]

    A mock for the register method.

    -register(loc: str, func: Literal[None] = None) Callable[[Callable[[tabulous.post_init._T, Any], None]], Callable[[tabulous.post_init._T, Any], None]][source]
    +register(loc: str, func: Literal[None] = None) Callable[[Callable[[_T, Any], None]], Callable[[_T, Any], None]][source]
    -register(loc: str, func: Callable[[tabulous.post_init._T, Any], None]) Callable[[tabulous.post_init._T, Any], None]
    +register(loc: str, func: Callable[[_T, Any], None]) Callable[[_T, Any], None]
    @@ -402,7 +748,7 @@

    Submodulesobject

    -join(other: tabulous.post_init.Initializer)[source]
    +join(other: Initializer)[source]

    Join initializers together.

    @@ -411,7 +757,7 @@

    Submodules
    class tabulous.post_init.KeyMapMock(name: str = '')[source]
    -

    Bases: tabulous.post_init._Registerable

    +

    Bases: _Registerable

    A mock for the keymap attribute of a table viewer instance.

    @@ -425,7 +771,7 @@

    Submodules
    class tabulous.post_init.TableInitializer[source]
    -

    Bases: tabulous.post_init.Initializer

    +

    Bases: Initializer

    cell: ContextRegisterable[TableBase]
    @@ -460,7 +806,7 @@

    Submodules
    class tabulous.post_init.ViewerInitializer[source]
    -

    Bases: tabulous.post_init.Initializer

    +

    Bases: Initializer

    cell_namespace: CellNamespaceMock[TableViewerBase]
    @@ -505,14 +851,14 @@

    Submodules -

    tabulous.threading module

    +

    tabulous.threading module

    -tabulous.threading.thread_worker(function: Callable[[_P], Generator[tabulous.threading._Y, tabulous.threading._S, tabulous.threading._R]], *, desc: str | None = 'None', total: int = '0') Callable[[_P], superqt.utils._qthreading.GeneratorWorker[tabulous.threading._Y, tabulous.threading._S, tabulous.threading._R]][source]
    +tabulous.threading.thread_worker(function: Callable[[_P], Generator[_Y, _S, _R]], *, desc: str | None = None, total: int = 0) Callable[[_P], GeneratorWorker[_Y, _S, _R]][source]

    -tabulous.threading.thread_worker(function: Callable[[_P], tabulous.threading._R], *, desc: str | None = 'None', total: int = '0') Callable[[_P], superqt.utils._qthreading.FunctionWorker[tabulous.threading._R]]
    +tabulous.threading.thread_worker(function: Callable[[_P], _R], *, desc: str | None = None, total: int = 0) Callable[[_P], FunctionWorker[_R]]
    -tabulous.threading.thread_worker(function: None = None, *, desc: str | None = 'None', total: int = '0') Callable[[Callable[[_P], tabulous.threading._R]], Callable[[_P], Union[superqt.utils._qthreading.FunctionWorker[tabulous.threading._R], superqt.utils._qthreading.GeneratorWorker[Any, Any, tabulous.threading._R]]]]
    +tabulous.threading.thread_worker(function: None = None, *, desc: str | None = None, total: int = 0) Callable[[Callable[[_P], _R]], Callable[[_P], FunctionWorker[_R] | GeneratorWorker[Any, Any, _R]]]

    Convert the returned value of a function into a worker.

    >>> from tabulous.threading import thread_worker
     >>> @thread_worker
    @@ -521,7 +867,7 @@ 

    Submodules -
    Parameters
    +
    Parameters:
    - - +
    • ContextRegisterable (class in tabulous.post_init)
    • ConvertedColormap (class in tabulous.color) @@ -321,9 +306,13 @@

      C

    • current_group (tabulous.widgets.GroupBy property)
    • -
    • current_index (tabulous.widgets.TableViewerBase property) +
    • current_index (tabulous.widgets.TableBase property) + +
    • +
    • current_table (tabulous.widgets.TableViewerBase attribute)
    • current_viewer() (in module tabulous) @@ -339,7 +328,7 @@

      C

      D

    • register_command() (in module tabulous.commands) -
    • -
    • remove_cell_widgets() (in module tabulous.commands.selection)
    • remove_dock_widget() (tabulous.TableViewer method) @@ -803,8 +796,6 @@

      R

    • reset_view_mode() (in module tabulous.commands.view)
    • resize() (tabulous.widgets.TableViewerBase method) -
    • -
    • resize_cells_to_contents() (in module tabulous.commands.table)
    • rgba_to_str() (in module tabulous.color)
    • @@ -961,7 +952,7 @@

      T

    • tables (tabulous.post_init.ViewerInitializer attribute)
    • TableViewer (class in tabulous) diff --git a/docs/index.html b/docs/index.html index 4216be1c..a9f4dcff 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,10 +1,10 @@ - + - tabulous — tabulous 0.5.2 documentation + tabulous — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -34,7 +33,7 @@ tabulous
      - 0.5.2 + 0.5.4
      @@ -91,7 +90,7 @@
      -

      tabulous

      +

      tabulous

      tabulous is a Qt based table data viewer for Python.

      This package is strongly inspired by napari in the design and API. Accordingly, custom widget creation is easily achievable @@ -104,7 +103,7 @@

      tabulous -

      Tables

      +

      Tables

      • Table Selections and Highlights
      • @@ -116,7 +115,7 @@

        Tables -

        Cooperate with Other Widgets

        +

        Cooperate with Other Widgets

        • Integrate Custom Widgets
        • @@ -125,7 +124,7 @@

          Cooperate with Other Widgets -

          Other Contents

          +

          Other Contents

          • Customize Viewer Actions
          • @@ -135,7 +134,7 @@

            Other Contents -

            Indices and tables

            +

            Indices and tables

            • Index

            • Module Index

            • diff --git a/docs/main/cheat_sheet.html b/docs/main/cheat_sheet.html index 1255f6cb..b0dea69e 100644 --- a/docs/main/cheat_sheet.html +++ b/docs/main/cheat_sheet.html @@ -1,10 +1,10 @@ - + - Cheat Sheet for Napari Users — tabulous 0.5.2 documentation + Cheat Sheet for Napari Users — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
              - 0.5.2 + 0.5.4
              @@ -109,8 +108,8 @@
              -

              Cheat Sheet for Napari Users

              -
              +

              Cheat Sheet for Napari Users

              +

              Each column-specific setting is stored as a dict like field.

              -

              Colormap

              +

              Colormap

              A “colormap” is a function that maps a value to a color. All the colormaps are stored in text_color / background_color fields.

              -

              Use Colormap Functions

              +

              Use Colormap Functions

              The text color and the background color can be set for each column. You can provide a custom colormap function to do this by set() method of fields. A colormap function must return a RGBA array (0-255) or a standard color name.

              @@ -188,7 +187,7 @@

              Use Colormap Functions -

              Use Dictionaries

              +

              Use Dictionaries

              For categorical data, you can also use dictionaries to set the colors.

              cmap = {
                   "setosa": "red",
              @@ -203,7 +202,7 @@ 

              Use Dictionaries

              -

              Use matplotlib Colormaps

              +

              Use matplotlib Colormaps

              The colormap names defined in matplotlib are available. Limits of the contrast will be defined by the mininum/maximum values of the column.

              table.text_color["sepal_length"] = "inferno"
              @@ -216,7 +215,7 @@ 

              Use -

              Interpolate Colors to Define Colormaps

              +

              Interpolate Colors to Define Colormaps

              In many cases, you’ll want to define your own colormap by supplying colors that represent the minimum/maximum values, or several colors with their corresponding values.

              @@ -246,12 +245,12 @@

              Interpolate Colors to Define Colormaps

              -

              Set Colormaps in GUI

              +

              Set Colormaps in GUI

              Some basic colormaps are available in the right-click context menu of the columns, such as Color > Set background colormap.

              -

              Update Colormaps

              +

              Update Colormaps

              There are several ways to update the existing colormap.

              1. Update opacity

                @@ -285,11 +284,11 @@

                Update Colormaps

              -

              Validator

              +

              Validator

              Simple data type conversion is sometimes not enough. To make editing data safer, you can customize the validator for each column.

              -

              Set validator Functions

              +

              Set validator Functions

              A validator function doesn’t care about the returned value. It should raise an exception if the input value is invalid. In following example, negative value is interpreted as invalid and the editor becomes red.

              @@ -319,7 +318,7 @@

              Set validator Functions -

              Text Formatter

              +

              Text Formatter

              Text formatters are used to convert the values to strings without changing the data itself. This is useful for displaying data in a more readable format.

              @@ -328,7 +327,7 @@

              Text Formatter

              -

              Set formatter function

              +

              Set formatter function

              As usual in this chapter, you can use functions that convert a value into a string as formatter function.

              -

              Set formatter string

              +

              Set formatter string

              Instead of passing a function, you can also use a ready-to-be-formatted strings.

              table.formatter.set("sepal_length", "{:.2f} cm")
               
              @@ -358,14 +357,14 @@ 

              Set formatter string"{:.2f} cm".format.

              -

              Set Formatter in GUI

              +

              Set Formatter in GUI

              Some basic formatters are available in the right-click context menu of the columns, such as Formatter > Set text formatter. You’ll see a preview of the column in the dialog.

              -

              Typing Spreadsheet

              +

              Typing Spreadsheet

              In a spreadsheet, data types are determined for each column based on its content because a spreadsheet is a string-based table data in general. This characteristic raises a problem of data type. This drawback is especially important when you want @@ -400,7 +399,7 @@

              Typing SpreadsheetColumn dtype.

              -

              Use Syntax of Table Subset

              +

              Use Syntax of Table Subset

              A pd.Series-like table subset, TableSeries can be obtained by indexing a table.

              sheet = viewer.open_sample("iris")
              diff --git a/docs/main/customize.html b/docs/main/customize.html
              index 8b6c619e..e424c7e8 100644
              --- a/docs/main/customize.html
              +++ b/docs/main/customize.html
              @@ -1,10 +1,10 @@
               
               
               
              -  
              +  
               
                 
              -  Customize Viewer Actions — tabulous 0.5.2 documentation
              +  Customize Viewer Actions — tabulous 0.5.4 documentation
                     
                     
                     
              @@ -13,9 +13,8 @@
                 
               
                       
              -        
              -        
                       
              +        
                   
                   
                   
              @@ -35,7 +34,7 @@
                           tabulous
                         
                             
              - 0.5.2 + 0.5.4
              @@ -100,7 +99,7 @@
              -

              Customize Viewer Actions

              +

              Customize Viewer Actions

              tabulous settings and configuration are stored in the user directory. Configuration files will be created automatically when the viewer is launched for the first time.

              @@ -110,7 +109,7 @@

              Customize Viewer Actions -

              Edit config.toml

              +

              Edit config.toml

              The “config.toml” file describes the basic settings of the viewer.

              [console_namespace]
               tabulous = ...  # default identifier of the tabulous module
              @@ -145,7 +144,7 @@ 

              Edit config.toml -

              Edit post_init.py

              +

              Edit post_init.py

              New in version 0.4.1.

              @@ -187,7 +186,7 @@

              Edit post_init.py -

              Register actions using register() method

              +

              Register actions using register() method

              Contextmenu, keybindings and commands can be registered using the register() method are also available for initialization.

              # post_init.py
              @@ -208,7 +207,7 @@ 

              Register actions using -

              Update namespaces

              +

              Update namespaces

              viewer.cell_namespace and viewer.console supports update() and add() methods to update the namespace.

              # post_init.py
              diff --git a/docs/main/integrate_custom_widgets.html b/docs/main/integrate_custom_widgets.html
              index c7945910..2fb3bb58 100644
              --- a/docs/main/integrate_custom_widgets.html
              +++ b/docs/main/integrate_custom_widgets.html
              @@ -1,10 +1,10 @@
               
               
               
              -  
              +  
               
                 
              -  Integrate Custom Widgets — tabulous 0.5.2 documentation
              +  Integrate Custom Widgets — tabulous 0.5.4 documentation
                     
                     
                     
              @@ -13,9 +13,8 @@
                 
               
                       
              -        
              -        
                       
              +        
                   
                   
                   
              @@ -35,7 +34,7 @@
                           tabulous
                         
                             
              - 0.5.2 + 0.5.4
              @@ -108,22 +107,22 @@
              -

              Integrate Custom Widgets

              -
              +

              Integrate Custom Widgets

              +
              +

              There are several places to integrate your custom widgets to tabulous viewer.

              -

              Dock Widget Area

              +

              Dock Widget Area

              Dock widget areas are located outside the central table stack area. Widgets docked in this area are always visible in the same place no matter which table is activated.

              -

              Add Qt Widgets

              +

              Add Qt Widgets

              from qtpy.QtWidgets import QWidget
               
               class MyWidget(QWidget):
              @@ -137,9 +136,9 @@ 

              Add Qt Widgets -

              Use Magicgui Widget

              +

              Use Magicgui Widget

              -

              Basic usage

              +

              Basic usage

              from magicgui import magicgui
               
               @magicgui
              @@ -151,7 +150,7 @@ 

              Basic usage -

              tabulous type annotations

              +

              tabulous type annotations

              Note

              In napari`, you can use such as ImageData as an alias for np.ndarray type, @@ -180,7 +179,7 @@

              -

              Table Side Area

              +

              Table Side Area

              Every table has a side area that can be used to add table-specific widgets or show table-specific information.

              Custom Qt widgets or magicgui widgets can be added to the side area using @@ -201,7 +200,7 @@

              Table Side Area

              -

              Built-in Widgets

              +

              Built-in Widgets

              There are built-in widgets that uses the table side area by default.

              1. Undo stack widget

                @@ -220,7 +219,7 @@

                Built-in Widgets -

                Table Overlay Widget

                +

                Table Overlay Widget

                Instead of the side area, you can also add widgets as an overlay over the table. An overlay widget is similar to the overlay charts in Excel.

                table = viewer.tables[0]
                diff --git a/docs/main/non_mainwindow.html b/docs/main/non_mainwindow.html
                index 2a8529f0..bda593af 100644
                --- a/docs/main/non_mainwindow.html
                +++ b/docs/main/non_mainwindow.html
                @@ -1,10 +1,10 @@
                 
                 
                 
                -  
                +  
                 
                   
                -  Use Non-main Window Table Viewers — tabulous 0.5.2 documentation
                +  Use Non-main Window Table Viewers — tabulous 0.5.4 documentation
                       
                       
                       
                @@ -13,9 +13,8 @@
                   
                 
                         
                -        
                -        
                         
                +        
                     
                     
                     
                @@ -35,7 +34,7 @@
                             tabulous
                           
                               
                - 0.5.2 + 0.5.4
                @@ -97,19 +96,19 @@
                -

                Use Non-main Window Table Viewers

                +

                Use Non-main Window Table Viewers

                Aiming at better extensibility, tabulous is designed to allow many different types of integration to external packages.

                - +
                -

                Use TableViewer in Your Qt Widget

                +

                Use TableViewer in Your Qt Widget

                If you plan to use a table viewer as a child of another QWidget, you can use a non-main window version of it. The native property returns the Qt backend widget.

                from tabulous import TableViewerWidget
                @@ -136,7 +135,7 @@ 

                Use TableViewer in Your Qt Widget

                -

                Use TableViewer with magicgui

                +

                Use TableViewer with magicgui

                If you want to use a magicgui version of it, you can use MagicTableViewer. MagicTableViewer` is a subclass of TableViewerWidget and magicgui.widgets.Widget so it is compatible with @@ -175,7 +174,7 @@

                Use TableViewer with magicgui

                -

                Use Tables in Your Widget

                +

                Use Tables in Your Widget

                All the tables can also be used in other widgets. For instance, following example shows how to use a spreadsheet in your widget.

                from tabulous.widgets import SpreadSheet
                diff --git a/docs/main/quickstart.html b/docs/main/quickstart.html
                index 032a4d3b..3c42a172 100644
                --- a/docs/main/quickstart.html
                +++ b/docs/main/quickstart.html
                @@ -1,10 +1,10 @@
                 
                 
                 
                -  
                +  
                 
                   
                -  Quickstart — tabulous 0.5.2 documentation
                +  Quickstart — tabulous 0.5.4 documentation
                       
                       
                       
                @@ -13,9 +13,8 @@
                   
                 
                         
                -        
                -        
                         
                +        
                     
                     
                     
                @@ -35,7 +34,7 @@
                             tabulous
                           
                               
                - 0.5.2 + 0.5.4
                @@ -105,8 +104,8 @@
                -

                Quickstart

                -
                +

                Quickstart

                +
                +
                -

                Open A Table Viewer

                +

                Open A Table Viewer

                The main window of tabulous is a TableViewer instance.

                from tabulous import TableViewer
                 
                @@ -144,7 +143,7 @@ 

                Open A Table Viewer -

                Open an Interpreter

                +

                Open an Interpreter

                tabulous viewer has an embedded Python interpreter console. It is not visible by default but you can show it in several ways.

                  @@ -160,7 +159,7 @@

                  Open an Interpreter -

                  Use Tables

                  +

                  Use Tables

                  In tabulous, table data is handled based on pandas. A TableViewer instance has several methods that add DataFrame to the viewer.

                    @@ -168,7 +167,7 @@

                    Use Tables

                    add_spreadsheet() … add a table data as a SpreadSheet object.

                  -

                  Table

                  +

                  Table

                  A Table is the most simple interface with DataFrame.

                  -

                  SpreadSheet

                  +

                  SpreadSheet

                  A SpreadSheet behaves more like Excel or Google Spreadsheet.

                  -

                  Key combo

                  +

                  Key combo

                  tabulous supports many keyboard shortcuts including key combo.

                  All the global key map is listed in a widget that will be shown when you press Ctrl KShift ? key combo.

                  @@ -316,7 +315,7 @@

                  Key combo -

                  Command palette

                  +

                  Command palette

                  New in version 0.4.0.

                  diff --git a/docs/main/register_action.html b/docs/main/register_action.html index 43e9ae75..30415641 100644 --- a/docs/main/register_action.html +++ b/docs/main/register_action.html @@ -1,10 +1,10 @@ - + - Register Custom Actions — tabulous 0.5.2 documentation + Register Custom Actions — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                  - 0.5.2 + 0.5.4
                  @@ -102,7 +101,7 @@
                  -

                  Register Custom Actions

                  +

                  Register Custom Actions

                  Tabulous viewer has several components that support custom action registration using method register(). All the register() methods will be used as following syntax.

                  # viewer specific actions
                  @@ -116,7 +115,7 @@ 

                  Register Custom Actions...

                  - +
                  -

                  Custom Contextmenu Actions

                  +

                  Custom Contextmenu Actions

                  Currently there are four components that support custom action registration.

                  1. Tab bar

                  2. @@ -157,7 +156,7 @@

                    Custom Contextmenu Actionsregister_action() is deprecated version of register() until 0.4.0.

                  -

                  Register actions to the tab bar

                  +

                  Register actions to the tab bar

                  Action for viewer.tables.register() must have signature (viewer, index: int) or its shorter version such as (viewer). viewer is the viewer object to which the action is registered and index is the index of the right-clicked tab.

                  @@ -177,7 +176,7 @@

                  Register actions to the tab bar

                  -

                  Register actions to the headers

                  +

                  Register actions to the headers

                  Other register() method works similarly. In the case of headers, the signature for the action is (table, index: int) or its shorter version such as (table). Here, table is the table object to which action is registered and index is @@ -195,7 +194,7 @@

                  Register actions to the headers

                  -

                  Register actions to the cells

                  +

                  Register actions to the cells

                  The register() method for cells also work in a similar way, but has signature (table, index: tuple[int, int]) or its shorter version such as (table). Here, table is the table object to which action is registered index is a @@ -208,7 +207,7 @@

                  Register actions to the cells

                  -

                  Custom Command in Command Palette

                  +

                  Custom Command in Command Palette

                  tabulous provides a command palette for executing actions. You can register your own actions to the command palette using register() method.

                  from tabulous import TableViewer
                  @@ -229,7 +228,7 @@ 

                  Custom Command in Command Palette

                  -

                  Custom Keybindings

                  +

                  Custom Keybindings

                  Both viewers and tables have keymap attribute for keymap registration.

                  1. viewer.keymap.register() … register keybindings to the viewer.

                  2. diff --git a/docs/main/selections.html b/docs/main/selections.html index 73f4332e..eb29027f 100644 --- a/docs/main/selections.html +++ b/docs/main/selections.html @@ -1,10 +1,10 @@ - + - Table Selections and Highlights — tabulous 0.5.2 documentation + Table Selections and Highlights — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                    - 0.5.2 + 0.5.4
                    @@ -97,17 +96,17 @@
                    -

                    Table Selections and Highlights

                    - +
                    -

                    Data Type of Table Selections

                    +

                    Data Type of Table Selections

                    You’ll get table selections using selections property as a SelectionRanges object. For instance, you opened a sample data

                    viewer.open_sample("iris")
                    @@ -164,7 +163,7 @@ 

                    Data Type of Table Selections

                    -

                    Catch Changes in Table Selections

                    +

                    Catch Changes in Table Selections

                    You can bind a callback function that will get called on every selection change event. The events attribute is a SignalGroup object of psygnal. @@ -176,7 +175,7 @@

                    Catch Changes in Table Selections

                    -

                    Set Highlights

                    +

                    Set Highlights

                    “Highlight” is another feature of a table. Similar to a selection, a highlight is also represented as a tuple of slices. Highlightened cells in a table are always painted.

                    Differences between a selection and a highlight are:

                    diff --git a/docs/main/sort_filter.html b/docs/main/sort_filter.html index 5cd7a8d3..ef053713 100644 --- a/docs/main/sort_filter.html +++ b/docs/main/sort_filter.html @@ -1,10 +1,10 @@ - + - Sort/Filter Table Data — tabulous 0.5.2 documentation + Sort/Filter Table Data — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                    - 0.5.2 + 0.5.4
                    @@ -108,22 +107,22 @@
                    -

                    Sort/Filter Table Data

                    +

                    Sort/Filter Table Data

                    Sorting and filtering is a common way to manage and inspect table data. These operations are collectively called “proxy” because both of them intermediary map the original data to new indices.

                    - +
                    -

                    Filtering

                    +

                    Filtering

                    -

                    Use filter functions

                    +

                    Use filter functions

                    You can set a function that maps a DataFrame to a 1-D boolean array as a filter function. This is a most straightforward way.

                    def filter_func(df):
                    @@ -140,11 +139,6 @@ 

                    Use filter functionsThis example is essentially equivalent to slicing a DataFrame by df[df["label"] == "A"].

                    If the table is

                    ----- @@ -172,11 +166,6 @@

                    Use filter functions

                    then it looks like following after applying the filter.

                    A

                    ----- @@ -196,14 +185,14 @@

                    Use filter functions
                    -

                    Simple filtering in GUI

                    +

                    Simple filtering in GUI

                    In right-click contextmenu, you can select Filter to filter the table by the column. Filter buttons filter will be anchored at the corner of the column section during the table being filtered. You can update or remove the filter by clicking the button.

                    ../_images/column_filter.png
                    -

                    Use query-style expression

                    +

                    Use query-style expression

                    Instead of a function, you can also set a query-style expression as a filter.

                    table.proxy.filter("label == 'A'")
                     
                    @@ -214,7 +203,7 @@

                    Use query-style expression -

                    Query-style filtering in GUI

                    +

                    Query-style filtering in GUI

                    You can also open a overlay dialog to filter the table data from the filter button in the toolbar.

                    The line edit for filter expression supports auto-completion (Tab) and history browsing @@ -222,9 +211,9 @@

                    Query-style filtering in GUI -

                    Sorting

                    +

                    Sorting

                    -

                    Use sorting functions

                    +

                    Use sorting functions

                    Similar to filtering, you can also set a function for sorting. In this case, the function should map a DataFrame to a 1-D interger array, just like argsort().

                    def sort_func(df):
                    @@ -240,11 +229,6 @@ 

                    Use sorting functions

                    If the table is

                    A

                    ----- @@ -272,11 +256,6 @@

                    Use sorting functions

                    then it looks like following after sorting.

                    x

                    ----- @@ -312,7 +291,7 @@

                    Use sorting functions
                    -

                    Sort by a column

                    +

                    Sort by a column

                    In most cases, you’d like to sort a table by a column, in ascending or descending order. The sort() method also supports this use case, by passing by argument.

                    table.proxy.sort(by="x")  # ascending order by default
                    @@ -325,19 +304,15 @@ 

                    Sort by a column -

                    Sort in GUI

                    +

                    Sort in GUI

                    You can sort selected column(s) by clicking sort button in the toolbar.

                    -

                    Edit Cells during Proxy

                    +

                    Edit Cells during Proxy

                    You can edit cells while the table is sorted/filtered.

                    Suppose you have a table like below

                    x

                    ---- @@ -381,10 +356,6 @@

                    Edit Cells during Proxy -

                    --- @@ -410,10 +381,6 @@

                    Edit Cells during Proxy -

                    --- @@ -440,10 +407,6 @@

                    Edit Cells during Proxyviewer.current_table.proxy.reset()), you’ll see the cells are properly edited.

                    A

                    B

                    A

                    B

                    A

                    B

                    ---- diff --git a/docs/main/table_fields.html b/docs/main/table_fields.html index b04d647a..a637c7da 100644 --- a/docs/main/table_fields.html +++ b/docs/main/table_fields.html @@ -1,10 +1,10 @@ - + - Field Attributes of Tables — tabulous 0.5.2 documentation + Field Attributes of Tables — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                    - 0.5.2 + 0.5.4
                    @@ -108,8 +107,8 @@
                    -

                    Field Attributes of Tables

                    -
                    +

                    Field Attributes of Tables

                    +
                    +

                    Table operations are very complicated. Providing all the programmatic operations to interact with table state and data as table methods is confusing. Thus, in tabulous, these operations are well organized with fields and sub-fields @@ -128,7 +127,7 @@

                    Field Attributes of Tables -

                    cell field

                    +

                    cell field

                    The cell field provides several methods to get access to table cells.

                    table.cell[1, 2] = -1
                     table.cell[1, 0:5] = [1, 2, 3, 4, 5]
                    @@ -152,7 +151,7 @@ 

                    cell field has several sub-fields.

                    -

                    cell.ref

                    +

                    cell.ref

                    All the in-cell functions with cell references are accessible via ref sub-field.

                    table = viewer.add_spreadsheet(np.arange(10))
                     table.cell[0, 1] = "&=np.mean(df.iloc[:, 0])"
                    @@ -162,7 +161,7 @@ 

                    cell.ref

                    -

                    cell.label

                    +

                    cell.label

                    Cell labels can be edited programmatically using this sub-field.

                    print(table.cell.label[0, 1])
                     table.cell.label[0, 1] = "mean:"
                    @@ -170,21 +169,21 @@ 

                    cell.label

                    -

                    cell.text

                    +

                    cell.text

                    Displayed (formatted) text in cells can be obtained using this sub-field.

                    print(table.cell.text[0, 1])
                     
                    -

                    cell.text_color

                    +

                    cell.text_color

                    Displayed text color (8-bit RGBA) in cells can be obtained using this sub-field.

                    print(table.cell.text_color[0, 1])
                     
                    -

                    cell.background_color

                    +

                    cell.background_color

                    Displayed background color (8-bit RGBA) in cells can be obtained using this sub-field.

                    print(table.cell.text_color[0, 1])
                     
                    @@ -192,7 +191,7 @@

                    cell.background

                    -

                    plt field

                    +

                    plt field

                    Since plotting is a common use case for table data analysis, plot canvases are implemented by default. The basic plot functions are available in plt field with the similar API as matplotlib.pyplot module.

                    @@ -208,7 +207,7 @@

                    -

                    index / columns field

                    +

                    index / columns field

                    index and column behaves very similar to index and column of pandas.DataFrame.

                    # get header data
                    @@ -228,7 +227,7 @@ 

                    Register Custom Actions for more detail.

                    -

                    proxy field

                    +

                    proxy field

                    Proxy includes sorting and filtering, that is, deciding which rows to be shown and which not to be.

                    table.proxy.filter("label == 'A'")  # filter by 'label' column
                    @@ -239,7 +238,7 @@ 

                    Sort/Filter Table Data for more details.

                    -

                    text_color / background_color field

                    +

                    text_color / background_color field

                    text_color and background_color stores all the column-specific colormaps.

                    table.text_color["A"]  # get the colormap of column "A"
                     table.text_color["A"] = cmap  # set a colormap to column "A"
                    @@ -255,7 +254,7 @@ 

                    Column-wise Settings for more details.

                    -

                    formatter / validator field

                    +

                    formatter / validator field

                    formatter and validator stores all the column-specific text formatter and data validator functions.

                    table.formatter["A"]  # get the formatter of column "A"
                    @@ -272,7 +271,7 @@ 

                    Column-wise Settings for more details.

                    -

                    dtypes field

                    +

                    dtypes field

                    dtypes is a SpreadSheet-specific field. Since a spreadsheet has to determine the data type of each column, you may occasionally want to tell which data type it should be. This is especially important when a column should be diff --git a/docs/main/table_view_mode.html b/docs/main/table_view_mode.html index 1b7055df..b56464d8 100644 --- a/docs/main/table_view_mode.html +++ b/docs/main/table_view_mode.html @@ -1,10 +1,10 @@ - + - View Tables in Different Modes — tabulous 0.5.2 documentation + View Tables in Different Modes — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous

                    - 0.5.2 + 0.5.4
                    @@ -101,18 +100,18 @@
                    -

                    View Tables in Different Modes

                    -
                    +

                    View Tables in Different Modes

                    +
                    +

                    To efficiently inspect table data, it is very useful to change table view modes.

                    -

                    Dual View

                    +

                    Dual View

                    In dual view mode, table is split into two part and each part can be scrolled and zoomed independently. This mode is useful to inspect large data.

                    Dual view is enabled by setting table.view_mode = "horizontal" for horizontal @@ -129,7 +128,7 @@

                    Dual ViewCtrl KV (vertical). Reset it by key combo Ctrl KN.

                    -

                    Tile View

                    +

                    Tile View

                    Tile view is a mode that shows different tables in a same window, while the structure of table list and tabs are not affected.

                    -

                    How tiling works

                    +

                    How tiling works

                    For instance, if you tiled tables “A” and “B”, they will appear in the same window, but tabs named “A” and “B” still exist in the tab bar. viewer.tables[i] also returns the same table as before. When tab “A” or “B” is clicked, the tiled @@ -160,7 +159,7 @@

                    How tiling works

                    -

                    Untiling

                    +

                    Untiling

                    Untiling is also well-defined operation. Let’s say tabs “A”, “B” and “C” is tiled so these tabs show tiled view A|B|C. If you untiled “B”, “A” and “C” are re-tiled while “B” returns the original state. Therefore, tabs “A” and “C” shows A|C and diff --git a/docs/main/user_interface.html b/docs/main/user_interface.html index 8ebccdc8..0b7a0f6a 100644 --- a/docs/main/user_interface.html +++ b/docs/main/user_interface.html @@ -1,10 +1,10 @@ - + - User Interface — tabulous 0.5.2 documentation + User Interface — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous

                    - 0.5.2 + 0.5.4
                    @@ -120,8 +119,8 @@
                    -

                    User Interface

                    -
                    +

                    User Interface

                    +
                    -

                    Scalar value

                    +

                    Scalar value

                    If the evaluation result is a scalar value,

                    A

                    B

                    ----- @@ -231,11 +225,6 @@

                    Scalar value -

                    ---- @@ -259,14 +248,9 @@

                    Scalar value -

                    Column vector

                    +

                    Column vector

                    If the evaluation result is an array such as pd.Series,

                    col-0

                    col-0

                    ----- @@ -290,11 +274,6 @@

                    Column vector -

                    ---- @@ -319,11 +298,6 @@

                    Column vector -

                    ---- @@ -347,14 +321,9 @@

                    Column vector -

                    Row vector

                    +

                    Row vector

                    An row will be updated if the result should be interpreted as a row vector.

                    col-0

                    col-0

                    col-0

                    ----- @@ -382,11 +351,6 @@

                    Row vectorpd.Series([20, 40]), which will update the table to

                    col-0

                    ----- @@ -414,14 +378,9 @@

                    Row vector -

                    Evaluate with references

                    +

                    Evaluate with references

                    To use cell references like Excel, use “&=” instead of “=”.

                    col-0

                    ----- @@ -444,11 +403,6 @@

                    Evaluate with references -

                    ---- @@ -474,7 +428,7 @@

                    Evaluate with references(0, "col-1") to be updated to 30.

                    -

                    User-defined namespace

                    +

                    User-defined namespace

                    As stated above, the default namespace of cell evaluation is df, np and pd. If you want to add more variables or functions, there are two ways to do it.

                      @@ -519,15 +473,11 @@

                      User-defined namespace

                    -

                    Add cell labels

                    +

                    Add cell labels

                    People using spreadsheets usually want to name some of the cells. For instance, when you calculated the mean of a column, you want to name the cell as “mean”. Usually, it is done by editing one of the adjacent cells.

                    col-0

                    col-0

                    ---- @@ -554,7 +504,7 @@

                    Add cell labels
                    -

                    Table Tabs

                    +

                    Table Tabs

                    All the tables are managed by the table tabs.

                    • You can double-click to rename the tab. The name property of the table will also be @@ -564,7 +514,7 @@

                      Table Tabs

                    -

                    Toolbar

                    +

                    Toolbar

                    Toolbar contains many functions that help you with analyzing the table data.

                    Note

                    @@ -574,7 +524,7 @@

                    Toolbar -

                    Home menu

                    +

                    Home menu

                    • open_table … Open a table data as a Table from a file using a file dialog.

                    • @@ -587,7 +537,7 @@

                      Home menu

                    -

                    Edit menu

                    +

                    Edit menu

                    • copy … Copy the selected cells to the clipboard.

                    • paste … Paste the clipboard data to the selected cells.

                    • @@ -597,7 +547,7 @@

                      Edit menu

                    -

                    Table menu

                    +

                    Table menu

                    • copy_as_table … Make a copy of the active table as a Table.

                    • copy_as_spreadsheet … Make a copy of the active table as a SpreadSheet.

                    • @@ -608,7 +558,7 @@

                      Table menu

                    -

                    Analyze menu

                    +

                    Analyze menu

                    • summarize_table … Summarize table data by mean, standard deviation etc.

                    • eval … Evaluate a string expression on the table data. Essentially equivalent @@ -623,7 +573,7 @@

                      Analyze menu

                    -

                    View menu

                    +

                    View menu

                    • view_popup … Popup current active table.

                    • view_dual_h … Activate dual view mode (horizontal).

                    • @@ -635,7 +585,7 @@

                      View menu

                    -

                    Plot menu

                    +

                    Plot menu

                    • plot … Plot table data by plt.plot().

                    • scatter … Plot table data by plt.scatter().

                    • diff --git a/docs/objects.inv b/docs/objects.inv index 1e3754c7..bdb8556f 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 3cf8f0cc..50d4a574 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — tabulous 0.5.2 documentation + Python Module Index — tabulous 0.5.4 documentation @@ -12,9 +12,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                      - 0.5.2 + 0.5.4
                      diff --git a/docs/search.html b/docs/search.html index a952e448..bec12ec7 100644 --- a/docs/search.html +++ b/docs/search.html @@ -3,7 +3,7 @@ - Search — tabulous 0.5.2 documentation + Search — tabulous 0.5.4 documentation @@ -13,9 +13,8 @@ - - + @@ -35,7 +34,7 @@ tabulous
                      - 0.5.2 + 0.5.4
                      diff --git a/docs/searchindex.js b/docs/searchindex.js index 1d48a529..b2dceae7 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["apidoc/modules","apidoc/tabulous","apidoc/tabulous.commands","apidoc/tabulous.style","apidoc/tabulous.widgets","font","index","main/cheat_sheet","main/columnwise_settings","main/customize","main/integrate_custom_widgets","main/non_mainwindow","main/quickstart","main/register_action","main/selections","main/sort_filter","main/table_fields","main/table_view_mode","main/user_interface"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc\\modules.rst","apidoc\\tabulous.rst","apidoc\\tabulous.commands.rst","apidoc\\tabulous.style.rst","apidoc\\tabulous.widgets.rst","font.rst","index.rst","main\\cheat_sheet.rst","main\\columnwise_settings.rst","main\\customize.rst","main\\integrate_custom_widgets.rst","main\\non_mainwindow.rst","main\\quickstart.rst","main\\register_action.rst","main\\selections.rst","main\\sort_filter.rst","main\\table_fields.rst","main\\table_view_mode.rst","main\\user_interface.rst"],objects:{"":[[1,0,0,"-","tabulous"]],"tabulous.MagicTableViewer":[[1,2,1,"","native"]],"tabulous.TableViewer":[[1,3,1,"","add_dock_widget"],[1,2,1,"","config"],[1,4,1,"","events"],[1,3,1,"","remove_dock_widget"],[1,3,1,"","reset_choices"]],"tabulous.TableViewerWidget":[[1,3,1,"","add_widget"],[1,4,1,"","events"]],"tabulous.color":[[1,1,1,"","BrightenedColormap"],[1,1,1,"","ColorTuple"],[1,1,1,"","ConvertedColormap"],[1,1,1,"","InvertedColormap"],[1,1,1,"","OpacityColormap"],[1,5,1,"","normalize_color"],[1,5,1,"","rgba_to_str"]],"tabulous.color.BrightenedColormap":[[1,3,1,"","from_colormap"]],"tabulous.color.ColorTuple":[[1,4,1,"","a"],[1,4,1,"","b"],[1,3,1,"","brighten"],[1,3,1,"","equals"],[1,3,1,"","from_hlsa"],[1,3,1,"","from_hsva"],[1,3,1,"","from_html"],[1,4,1,"","g"],[1,2,1,"","hlsa"],[1,2,1,"","hsva"],[1,2,1,"","html"],[1,3,1,"","mix"],[1,2,1,"","opacity"],[1,4,1,"","r"]],"tabulous.color.InvertedColormap":[[1,3,1,"","from_colormap"]],"tabulous.color.OpacityColormap":[[1,3,1,"","from_colormap"]],"tabulous.commands":[[2,0,0,"-","analysis"],[2,0,0,"-","column"],[2,0,0,"-","file"],[2,5,1,"","iter_commands"],[2,0,0,"-","plot"],[2,5,1,"","register_command"],[2,0,0,"-","selection"],[2,0,0,"-","tab"],[2,0,0,"-","table"],[2,0,0,"-","view"],[2,0,0,"-","window"]],"tabulous.commands.analysis":[[2,5,1,"","polynomial_fit"],[2,5,1,"","show_eval_widget"],[2,5,1,"","show_filter_widget"],[2,5,1,"","show_optimizer_widget"],[2,5,1,"","show_scipy_stats_widget"],[2,5,1,"","show_sklearn_widget"],[2,5,1,"","show_stats_widget"],[2,5,1,"","summarize_table"]],"tabulous.commands.column":[[2,5,1,"","adjust_brightness_background_colormap"],[2,5,1,"","adjust_brightness_text_colormap"],[2,5,1,"","invert_background_colormap"],[2,5,1,"","invert_text_colormap"],[2,5,1,"","reset_background_colormap"],[2,5,1,"","reset_text_colormap"],[2,5,1,"","reset_text_formatter"],[2,5,1,"","run_cut"],[2,5,1,"","run_groupby"],[2,5,1,"","set_background_colormap"],[2,5,1,"","set_background_colormap_opacity"],[2,5,1,"","set_text_colormap"],[2,5,1,"","set_text_colormap_opacity"],[2,5,1,"","set_text_formatter"]],"tabulous.commands.file":[[2,5,1,"","open_sample"],[2,5,1,"","open_spreadsheet"],[2,5,1,"","open_table"],[2,5,1,"","save_as_xlsx"],[2,5,1,"","save_table"],[2,5,1,"","save_table_to_source"]],"tabulous.commands.plot":[[2,1,1,"","PlotInfo"],[2,5,1,"","bar"],[2,5,1,"","barplot"],[2,5,1,"","boxenplot"],[2,5,1,"","boxplot"],[2,5,1,"","errorbar"],[2,5,1,"","fill_between"],[2,5,1,"","fill_betweenx"],[2,5,1,"","hist"],[2,5,1,"","new_figure"],[2,5,1,"","plot"],[2,5,1,"","scatter"],[2,5,1,"","stripplot"],[2,5,1,"","swarmplot"],[2,5,1,"","violinplot"]],"tabulous.commands.plot.PlotInfo":[[2,4,1,"","columns"],[2,4,1,"","names"]],"tabulous.commands.selection":[[2,5,1,"","add_checkbox"],[2,5,1,"","add_float_slider"],[2,5,1,"","add_float_spinbox"],[2,5,1,"","add_highlight"],[2,5,1,"","add_line_edit"],[2,5,1,"","add_radio_button"],[2,5,1,"","add_slider"],[2,5,1,"","add_spinbox"],[2,5,1,"","copy_as_html"],[2,5,1,"","copy_as_latex"],[2,5,1,"","copy_as_literal"],[2,5,1,"","copy_as_markdown"],[2,5,1,"","copy_as_new_spreadsheet"],[2,5,1,"","copy_as_new_table"],[2,5,1,"","copy_as_rst_grid"],[2,5,1,"","copy_as_rst_simple"],[2,5,1,"","copy_data_comma_separated"],[2,5,1,"","copy_data_tab_separated"],[2,5,1,"","copy_data_with_header_comma_separated"],[2,5,1,"","copy_data_with_header_tab_separated"],[2,5,1,"","cut_data"],[2,5,1,"","delete_selected_highlight"],[2,5,1,"","delete_values"],[2,5,1,"","edit_current"],[2,5,1,"","filter_by_columns"],[2,5,1,"","insert_column_left"],[2,5,1,"","insert_column_right"],[2,5,1,"","insert_row_above"],[2,5,1,"","insert_row_below"],[2,5,1,"","paste_data_comma_separated"],[2,5,1,"","paste_data_from_markdown"],[2,5,1,"","paste_data_from_numpy_string"],[2,5,1,"","paste_data_from_rst"],[2,5,1,"","paste_data_tab_separated"],[2,5,1,"","raise_slot_error"],[2,5,1,"","remove_cell_widgets"],[2,5,1,"","remove_selected_columns"],[2,5,1,"","remove_selected_rows"],[2,5,1,"","select_all"],[2,5,1,"","set_column_dtype"],[2,5,1,"","show_context_menu"],[2,5,1,"","shuffle_data_column_wise"],[2,5,1,"","sort_by_columns"],[2,5,1,"","sort_inplace"],[2,5,1,"","write_data_reference_in_console"],[2,5,1,"","write_data_signal_in_console"],[2,5,1,"","write_slice_in_console"]],"tabulous.commands.tab":[[2,5,1,"","activate_left"],[2,5,1,"","activate_right"],[2,5,1,"","delete_tab"],[2,5,1,"","rename_tab"],[2,5,1,"","swap_tab_with_left"],[2,5,1,"","swap_tab_with_right"],[2,5,1,"","tile_tables"],[2,5,1,"","tile_with_adjacent_table"],[2,5,1,"","untile_table"]],"tabulous.commands.table":[[2,5,1,"","concat"],[2,5,1,"","copy_as_spreadsheet"],[2,5,1,"","copy_as_table"],[2,5,1,"","copy_to_clipboard"],[2,5,1,"","date_range"],[2,5,1,"","dropna"],[2,5,1,"","fillna"],[2,5,1,"","interval_range"],[2,5,1,"","melt"],[2,5,1,"","merge"],[2,5,1,"","new_spreadsheet"],[2,5,1,"","period_range"],[2,5,1,"","pivot"],[2,5,1,"","random"],[2,5,1,"","redo_table"],[2,5,1,"","reset_proxy"],[2,5,1,"","resize_cells_to_contents"],[2,5,1,"","round"],[2,5,1,"","show_finder_widget"],[2,5,1,"","show_undo_stack_view"],[2,5,1,"","switch_columns"],[2,5,1,"","switch_index"],[2,5,1,"","switch_layout"],[2,5,1,"","timedelta_range"],[2,5,1,"","toggle_editability"],[2,5,1,"","transpose"],[2,5,1,"","undo_table"],[2,5,1,"","zoom_in"],[2,5,1,"","zoom_out"]],"tabulous.commands.view":[[2,5,1,"","reset_view_mode"],[2,5,1,"","set_dual_h_mode"],[2,5,1,"","set_dual_v_mode"],[2,5,1,"","set_popup_mode"]],"tabulous.commands.window":[[2,5,1,"","add_file_explorer"],[2,5,1,"","add_text_edit"],[2,5,1,"","close_window"],[2,5,1,"","focus_table"],[2,5,1,"","new_window"],[2,5,1,"","show_command_palette"],[2,5,1,"","show_keymap"],[2,5,1,"","show_preference"],[2,5,1,"","toggle_console"],[2,5,1,"","toggle_focus"],[2,5,1,"","toggle_fullscreen"],[2,5,1,"","toggle_toolbar"]],"tabulous.core":[[1,5,1,"","current_viewer"],[1,5,1,"","open_sample"],[1,5,1,"","read_csv"],[1,5,1,"","read_excel"],[1,5,1,"","set_current_viewer"],[1,5,1,"","view_spreadsheet"],[1,5,1,"","view_table"]],"tabulous.exceptions":[[1,1,1,"","ExceptionHandler"],[1,6,1,"","SelectionRangeError"]],"tabulous.post_init":[[1,1,1,"","CellNamespaceMock"],[1,1,1,"","CommandPaletteMock"],[1,1,1,"","ConsoleMock"],[1,1,1,"","ContextRegisterable"],[1,1,1,"","Initializer"],[1,1,1,"","KeyMapMock"],[1,1,1,"","TableInitializer"],[1,1,1,"","ViewerInitializer"],[1,5,1,"","get_initializers"]],"tabulous.post_init.CommandPaletteMock":[[1,3,1,"","register"]],"tabulous.post_init.ContextRegisterable":[[1,3,1,"","register"]],"tabulous.post_init.Initializer":[[1,3,1,"","join"]],"tabulous.post_init.KeyMapMock":[[1,3,1,"","register"]],"tabulous.post_init.TableInitializer":[[1,4,1,"","cell"],[1,4,1,"","columns"],[1,4,1,"","index"],[1,3,1,"","initialize_table"],[1,4,1,"","keymap"]],"tabulous.post_init.ViewerInitializer":[[1,4,1,"","cell_namespace"],[1,4,1,"","command_palette"],[1,4,1,"","console"],[1,3,1,"","initialize_viewer"],[1,4,1,"","keymap"],[1,4,1,"","tables"]],"tabulous.style":[[3,1,1,"","Style"]],"tabulous.style.Style":[[3,4,1,"","background"],[3,4,1,"","background0"],[3,4,1,"","background1"],[3,4,1,"","base_color"],[3,4,1,"","cell_highlight"],[3,4,1,"","cell_selection"],[3,4,1,"","foreground"],[3,3,1,"","format_file"],[3,3,1,"","format_text"],[3,3,1,"","from_global"],[3,4,1,"","highlight0"],[3,4,1,"","highlight1"],[3,4,1,"","inv_color"]],"tabulous.threading":[[1,5,1,"","thread_worker"]],"tabulous.types":[[1,1,1,"","HeaderInfo"],[1,1,1,"","ItemInfo"],[1,1,1,"","TableInfo"]],"tabulous.types.HeaderInfo":[[1,4,1,"","index"],[1,4,1,"","old_value"],[1,4,1,"","value"]],"tabulous.types.ItemInfo":[[1,4,1,"","DELETED"],[1,4,1,"","INSERTED"],[1,2,1,"","col"],[1,4,1,"","column"],[1,4,1,"","old_value"],[1,4,1,"","row"],[1,4,1,"","value"]],"tabulous.widgets":[[4,1,1,"","GroupBy"],[4,1,1,"","MagicSpreadSheet"],[4,1,1,"","MagicTable"],[4,1,1,"","SpreadSheet"],[4,1,1,"","Table"],[4,1,1,"","TableBase"],[4,1,1,"","TableDisplay"],[4,1,1,"","TableViewer"],[4,1,1,"","TableViewerBase"],[4,1,1,"","TableViewerWidget"]],"tabulous.widgets.GroupBy":[[4,2,1,"","current_group"]],"tabulous.widgets.MagicSpreadSheet":[[4,2,1,"","native"]],"tabulous.widgets.MagicTable":[[4,2,1,"","native"]],"tabulous.widgets.SpreadSheet":[[4,3,1,"","add_item_widget"],[4,4,1,"","dtypes"]],"tabulous.widgets.TableBase":[[4,3,1,"","add_overlay_widget"],[4,3,1,"","add_side_widget"],[4,4,1,"","background_color"],[4,3,1,"","background_colormap"],[4,4,1,"","cell"],[4,2,1,"","cellref"],[4,4,1,"","columns"],[4,2,1,"","data"],[4,2,1,"","data_shown"],[4,2,1,"","editable"],[4,3,1,"","foreground_colormap"],[4,4,1,"","formatter"],[4,4,1,"","highlights"],[4,4,1,"","iloc"],[4,4,1,"","index"],[4,2,1,"","layout"],[4,4,1,"","loc"],[4,2,1,"","metadata"],[4,3,1,"","move_iloc"],[4,3,1,"","move_loc"],[4,2,1,"","mutable"],[4,2,1,"","name"],[4,2,1,"","native"],[4,4,1,"","plt"],[4,4,1,"","proxy"],[4,3,1,"","refresh"],[4,3,1,"","save"],[4,3,1,"","save_screenshot"],[4,3,1,"","screenshot"],[4,4,1,"","selections"],[4,2,1,"","source"],[4,2,1,"","table_shape"],[4,2,1,"","table_type"],[4,4,1,"","text_color"],[4,4,1,"","text_formatter"],[4,2,1,"","undo_manager"],[4,4,1,"","validator"],[4,2,1,"","view_mode"],[4,2,1,"","zoom"]],"tabulous.widgets.TableDisplay":[[4,2,1,"","interval"],[4,2,1,"","loader"],[4,2,1,"","running"]],"tabulous.widgets.TableViewer":[[4,3,1,"","add_dock_widget"],[4,2,1,"","config"],[4,4,1,"","events"],[4,3,1,"","remove_dock_widget"],[4,3,1,"","reset_choices"]],"tabulous.widgets.TableViewerBase":[[4,3,1,"","add_groupby"],[4,3,1,"","add_layer"],[4,3,1,"","add_loader"],[4,3,1,"","add_spreadsheet"],[4,3,1,"","add_table"],[4,2,1,"","cell_namespace"],[4,3,1,"","close"],[4,4,1,"","command_palette"],[4,4,1,"","console"],[4,3,1,"","copy_data"],[4,2,1,"","current_index"],[4,2,1,"","current_table"],[4,4,1,"","events"],[4,2,1,"","history_manager"],[4,2,1,"","native"],[4,3,1,"","open"],[4,3,1,"","open_sample"],[4,3,1,"","paste_data"],[4,3,1,"","resize"],[4,3,1,"","save"],[4,3,1,"","save_all"],[4,3,1,"","save_screenshot"],[4,3,1,"","screenshot"],[4,3,1,"","show"],[4,2,1,"","size"],[4,2,1,"","status"],[4,2,1,"","tables"],[4,2,1,"","theme"],[4,4,1,"","toolbar"]],"tabulous.widgets.TableViewerWidget":[[4,3,1,"","add_widget"],[4,4,1,"","events"]],tabulous:[[1,1,1,"","MagicTableViewer"],[1,1,1,"","TableViewer"],[1,1,1,"","TableViewerWidget"],[1,0,0,"-","color"],[2,0,0,"-","commands"],[1,0,0,"-","core"],[1,5,1,"","current_viewer"],[1,0,0,"-","exceptions"],[1,5,1,"","open_sample"],[1,0,0,"-","post_init"],[1,5,1,"","read_csv"],[1,5,1,"","read_excel"],[3,0,0,"-","style"],[1,0,0,"-","threading"],[1,0,0,"-","types"],[1,5,1,"","view_spreadsheet"],[1,5,1,"","view_table"],[4,0,0,"-","widgets"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","property","Python property"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"],"6":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:property","3":"py:method","4":"py:attribute","5":"py:function","6":"py:exception"},terms:{"0":[1,2,4,7,8,9,10,12,13,14,15,16,17,18],"0th":17,"1":[1,2,4,8,9,12,13,14,15,16,17,18],"10":[4,12,14,15,16,18],"100":14,"14159265359":9,"1d":2,"1st":17,"2":[1,4,8,12,13,14,15,16,17,18],"20":[12,18],"255":[1,8],"2f":[8,16],"3":[1,4,8,9,12,14,15,16,17,18],"30":18,"4":[4,9,12,13,14,15,16,18],"40":18,"5":[1,4,8,10,12,14,15,16,18],"6":[4,8,12,14,15],"60":18,"7":[14,15],"8":[1,4,8,15,16,18],"9":[14,15,18],"95":14,"96":14,"97":14,"98":14,"99":14,"boolean":[4,15],"break":8,"byte":4,"case":[8,13,15,16],"class":[1,2,3,4,9,10,11,18],"default":[1,4,8,9,10,12,15,16,18],"do":[4,8,12,14,18],"float":[1,4,8,12,16],"function":[1,2,4,9,11,12,13,14,16,18],"import":[1,8,9,10,11,12,13,16,18],"int":[1,4,8,13],"long":18,"new":[1,2,8,9,10,12,15,16,18],"return":[1,4,8,9,10,11,15,16,17,18],"super":[10,11],"switch":[2,18],"true":[1,4,8,11,12],"while":[10,15,17],A:[1,4,8,11,14,15,16,17,18],As:[8,18],By:18,For:[8,11,14,16,17,18],If:[1,4,11,12,13,15,17,18],In:[8,10,11,12,13,15,17,18],It:[4,8,12],Its:18,NOT:[8,18],One:18,The:[1,4,8,9,11,12,13,14,15,16,18],There:[8,10],These:15,To:[4,8,9,11,14,16,17,18],_:[1,4,8,18],__all__:18,__init__:[10,11],__setitem__:8,_abstractview:4,_dataframetablelay:4,_keymap_abc:4,_mainwindow:[1,4],_on_chang:14,_p:1,_qthread:1,_qtmainwidgetbas:4,_r:1,_register:1,_s:1,_sourc:4,_style:3,_t:1,_tabl:4,_tablelist:4,_updat:1,_widget:[1,4],_y:1,a0:15,a1:[15,18],a2:15,a3:15,a4:18,about:8,abov:[2,8,11,18],access:[4,16],accordingli:[6,12],achiev:6,acit:12,action:[4,6,16,18],activ:[2,4,10,12,18],activate_left:2,activate_right:2,actual:9,ad:[4,9,10,12,15,18],add:[1,2,4,9,12],add_checkbox:2,add_dock_widget:[1,4,7,10],add_file_explor:2,add_float_slid:2,add_float_spinbox:2,add_groupbi:4,add_highlight:2,add_imag:7,add_item_widget:4,add_lay:4,add_line_edit:2,add_load:4,add_overlay_widget:[4,10],add_radio_button:2,add_side_widget:[4,10],add_slid:2,add_spinbox:2,add_spreadsheet:[4,8,12,16],add_tabl:[4,7,8,12,13,17],add_text_edit:2,add_widget:[1,4],addit:[1,12],addwidget:11,adjac:[2,18],adjust:[2,8],adjust_bright:8,adjust_brightness_background_colormap:2,adjust_brightness_text_colormap:2,affect:[8,17,18],after:[8,15],aim:11,alia:[1,2,10],all:[1,2,4,8,11,12,13,16,18],allow:[1,4,9,11,18],allowed_area:[1,4],alpha:[1,8],also:[4,8,9,10,11,12,13,14,15,16,17,18],alt:18,alwai:[10,14,15,18],an:[1,2,4,8,10,13,18],analysi:[0,1,16,18],analyz:2,anchor:15,ani:[1,2,4,6,8,18],anoth:[1,11,14],api:[6,15,16],appear:17,append:[10,11,14],appli:[8,10,15],applic:9,appropri:[8,18],ar:[4,8,9,10,11,12,13,14,15,16,17,18],arang:16,area:[1,4,18],arg:[1,4],argsort:15,argument:[8,10,15],arrai:[4,8,10,15,18],arrow:18,ascend:[4,15],ask:9,ask_on_clos:9,asynchron:4,attribut:[1,4,6,9,12,13,14],auto:15,automat:[9,18],avail:[4,8,9,10,11,12,16,18],avoid:[4,11],axi:4,b:[1,4,8,12,15,16,17,18],backend:[1,4,11],background0:3,background1:3,background:[2,3,8,16],background_color:[4,8],background_colormap:4,bar:[1,2,4,9,17,18],barplot:2,base:[1,2,3,4,6,8,12],base_color:3,basic:[8,9,16],becaus:[8,15],becom:8,befor:[4,9,17],beginn:6,behav:[4,12,16],behavior:18,being:15,below:[2,15],benefit:11,besid:1,better:[8,11],between:[1,2,8,14,18],bin:2,bind:[12,14],bit:[1,16],blue:8,book:2,bool:[1,4,10],border:18,both:[13,15],bottom:4,box:[1,4],boxenplot:2,boxplot:2,bright:[2,8],brighten:1,brightenedcolormap:1,brighter:8,brows:15,button:[12,15,18],c:[4,8,11,12,17],calcul:18,call:[1,8,14,15,17,18],callabl:[1,2,4],callback:14,can:[1,4,8,9,10,11,12,13,14,15,16,17,18],cannot:14,canva:[2,10,16,18],canvas:16,care:8,categor:8,categori:[8,16],caus:[1,18],cell:[1,2,4,8,9,12,14],cell_highlight:3,cell_namespac:[1,4,9,18],cell_select:3,cellnamespacemock:1,cellref:4,central:10,chang:[8,11,17,18],channel:[1,8],chapter:8,charact:18,characterist:8,chart:[4,10],cheat:6,check:[4,9,10,12,16,18],checkbox:2,child:[1,4,11],classmethod:[1,3],click:[8,9,12,13,14,15,17,18],clipboard:[4,18],close:[2,4,9],close_window:2,cluster:18,cm:[8,16],cmap:[1,8,16],col:[1,18],collect:15,color:[0,16,18],colormap:[1,2,16],colortupl:1,column:[0,1,4,6,9,12,13,14],column_nam:16,column_s:9,columndtypeinterfac:16,columnwis:2,combo:[1,4,13,17,18],combobox:10,comma:2,command:[0,1,4,9,18],command_palett:[1,4,9,13],commandpalettemock:1,common:[15,16],compat:[1,11],complet:15,complic:16,compon:[9,13],compos:8,concat:2,concaten:2,conda:12,config:[1,4],configur:9,conflict:11,confus:16,connect:[2,11,14],conosol:12,consid:[4,8,18],consol:[1,2,4,9,11,12,18],console_namespac:9,consolemock:1,construct:1,contain:[1,4,11,18],content:0,context:[2,8,13,14],contextmenu:[4,9,12,15,16],contextregister:1,continu:[4,8],contrast:8,convers:[2,8],convert:[1,8,12,14],convertedcolormap:1,coordin:10,copi:[1,2,4,11,12,16,18],copy_as_html:2,copy_as_latex:2,copy_as_liter:2,copy_as_markdown:2,copy_as_new_spreadsheet:2,copy_as_new_t:2,copy_as_rst_grid:2,copy_as_rst_simpl:2,copy_as_spreadsheet:2,copy_as_t:2,copy_data:4,copy_data_comma_separ:2,copy_data_tab_separ:2,copy_data_with_header_comma_separ:2,copy_data_with_header_tab_separ:2,copy_to_clipboard:2,core:0,corner:15,correspond:[8,14],count:4,creat:[1,2,9,12,18],creation:6,csv:[1,12],ctrl:[9,10,11,12,13,17,18],cumsum:18,current:[1,2,4,8,12,13,17,18],current_group:4,current_index:[4,12],current_t:[4,12,13,15],current_view:1,custom:[4,6,8,12,16],cut:[2,18],cut_data:2,d:15,darker:8,data:[1,2,4,6,8,10,11,12,13,16,17],data_shown:4,datafram:[1,4,10,12,14,15,16],dataframegroupbi:4,date:2,date_rang:2,datetim:[8,16],datetime64:8,decid:16,decomposit:18,decor:[9,15,16],def:[1,4,8,9,10,11,12,13,14,15,16,18],defin:[2,13,16,17],del:[4,8,12,16],delet:[1,2,4,12,16],delete_selected_highlight:2,delete_tab:2,delete_valu:2,deprec:[4,13],desc:[1,2],descend:15,describ:[1,4,9],descript:13,design:[6,11],desir:18,destin:18,detail:[11,15,16],determin:[8,16],deviat:18,df2:12,df:[4,7,12,14,15,16,18],dialog:[2,8,15,18],dict:[4,8,9,16,18],differ:[6,8,11,12,14,18],dir:9,direct:18,directli:[12,14,15,16,18],directori:[9,18],discret:8,displai:[4,8,16],distribut:2,divid:8,dock:[1,2,4,12,17],doe:[11,16,18],doesn:[8,15],don:18,done:18,doubl:18,drag:18,drawback:8,drop:[2,18],dropna:2,dtype:[2,4,8,12],dual:[2,18],duplic:18,dure:18,dynam:14,e:[1,4,15],each:[8,9,10,14,16,17],easiest:18,easili:[6,11,12],edit:[1,2,4,8,12,16,17],edit_curr:2,editor:[4,8,18],effici:17,els:8,embed:[11,12,18],emit:14,empti:[2,12],emul:4,enabl:[1,4,17],enough:8,environ:12,equal:[1,8],equival:[1,15,16,18],errorbar:2,especi:[8,16,18],essenti:[15,18],etc:18,eval:[15,18],eval_prefix:9,evalu:[2,4,9],event:[1,4,14],everi:[8,10,14],exampl:[8,10,11,15],excel:[1,2,4,10,12],except:[0,8],exceptionhandl:1,execut:[2,13,18],exist:[2,4,8,12,17],expect:18,explor:2,express:[2,18],extend:12,extens:11,extern:11,f1:12,f2:18,f3:18,f:[8,10,16],factor:[1,4],fals:[1,4,15],famili:9,far:12,featur:14,field:[1,2,6,8,10,11,12],figur:[2,18],file:[0,1,3,4,9,11,12,18],file_edit:11,fileedit:11,fill:2,fill_between:2,fill_betweenx:2,fillna:2,filter:[2,4,6,16,18],filter_by_column:2,filter_func:15,find:18,finder:[2,18],first:[9,18],fit:2,fix:12,flexibl:4,float64:16,floatslid:2,floatspinbox:2,fmt:16,focu:[2,17,18],focus_t:2,follow:[8,9,11,12,13,14,15,16,18],font:9,font_siz:9,foo:4,forc:4,foreground:3,foreground_colormap:4,format:[8,9,16],format_fil:3,format_text:3,formatt:[2,4],four:13,frame:4,from:[1,2,4,8,9,10,11,12,13,14,15,16,18],from_colormap:1,from_glob:3,from_hlsa:1,from_hsva:1,from_html:1,fulli:12,fullscreen:2,func:[1,2,10,13,18],functionwork:1,futur:18,g:[1,4],gener:[1,2,8],generatorwork:1,get:[1,4,8,12,14,16,18],get_initi:[1,9],get_loc:[4,16],give:10,given:[1,4],global:12,good:4,googl:[12,18],grai:8,green:8,grid:2,grip:4,group:[2,4],groupbi:[2,4,18],gui:[1,12],gui_onli:4,h:[10,17],ha:[9,10,11,12,13,16],handl:[1,12],hashabl:[2,4],have:[11,12,13,14,15,18],header:[1,2,4,8,9,16],headerinfo:1,height:[4,9],help:18,here:[13,15],highlight0:3,highlight1:3,highlight:[2,4,6,12,15],highlighten:14,hist:[2,16,18],histogram:18,histori:[4,15],history_manag:4,hlsa:1,hook:1,horizont:[2,9,13,17,18],hotli:4,how:11,howev:18,hsla:1,hsva:1,html:[1,2],i:[4,13,15,17],id:4,ident:8,identifi:9,iloc:[4,12,13,14,16],imag:[7,10],imagedata:10,immedi:16,implement:[4,8,10,16],includ:[8,12,16],independ:17,index:[1,2,4,6,8,9,12,13],index_nam:16,indic:[1,4,15,17],individu:8,infer:12,inferno:8,info:[1,4],inform:[1,10],init:9,initi:[1,4,9],initialize_t:1,initialize_view:1,inplac:2,input:[4,8,12,18],insert:[1,2,4,12,18],insert_column_left:2,insert_column_right:2,insert_row_abov:2,insert_row_below:2,insid:[17,18],inspect:[15,17],inspir:6,instanc:[1,9,11,12,14,16,17,18],instead:[8,10,15,18],int64:[8,12],integ:4,integr:[6,11],interact:[10,16,18],interfac:[4,6,12],interg:15,intermediari:15,interp_from:8,interpret:[8,10,15,16,18],interv:[2,4],interval_rang:2,inv_color:3,invalid:[8,18],invert:[1,2,8],invert_background_colormap:2,invert_text_colormap:2,invertedcolormap:1,ipython:9,iri:[8,14],isin:4,item:[1,16,18],iteminfo:1,iter:[1,2],iter_command:2,its:[1,2,8,12,13,18],itself:8,j:4,join:1,just:[4,8,12,15],k:[12,13,17],kei:[1,2,13,17,18],keybind:[9,12,18],keyboard:[12,14,18],keycombo:13,keyerror:16,keymap:[1,9,12,13],keymapmock:1,kwarg:[1,4],label:[1,4,8,10,15],larg:[12,17],last:18,latex:2,launch:[9,12],layer:[4,10],layout:[1,2,4,11,18],layoutstr:4,learn:[2,18],left:[2,4,10],length:[4,8],less:4,let:17,like:[1,4,8,9,12,14,15,16,18],limit:8,line:[15,18],linearli:8,lineedit:2,list:[1,2,4,8,10,14,17],liter:[1,2,18],ll:[8,12,14,15],lmax:8,lmin:8,load:[4,9,11],load_data:11,load_startup_fil:9,loader:4,loc:[1,4,16,18],locat:[4,9,10,13],look:15,loss:18,lrang:8,mac:18,magic:[1,4,11],magicclass:11,magicgui:[1,4,6],magicspreadsheet:4,magict:4,magictableview:[1,11],mai:[16,18],main:[1,4,6,12],make:[8,12,18],manag:[4,15,18],mani:[4,8,11,12,18],manner:9,manual:12,map:[1,2,8,12,15,16],mappingproxi:[1,4],markdown:2,match:18,matplotlib:[10,16,18],matter:10,max:[8,10],max_column_count:9,max_row_count:9,maximum:[8,9],mean:[4,10,16,18],melt:[2,18],menu:[2,8,13,14],merg:2,metadata:4,method:[1,4,8,10,12,13,14,15,16],microsoft:18,might:8,min:[8,10],minim:18,minimum:8,mininum:8,mix:1,mock:1,mode:[2,4,6,11,12,18],modifi:18,modul:[0,6,9,16,18],more:[6,8,11,14,16,18],most:[12,15,18],mous:[14,18],move:[2,4,12],move_iloc:4,move_loc:4,much:[8,11],multi:[12,15],must:[4,8,13],mutabl:4,my:[4,10],my_act:4,my_filter_func:4,my_func:9,my_var:9,myclass:9,myqwidget:11,mywidget:[10,11],n:17,name:[1,2,3,4,7,8,9,10,12,13,16,17,18],name_or_widget:[1,4],namedtupl:[1,2],namespac:4,nan:2,napari:[1,6,10],nativ:[1,4,11],ndarrai:[4,10],necessari:8,neg:8,new_cmap:8,new_data:12,new_figur:2,new_label:4,new_spreadsheet:2,new_window:2,newli:12,next:17,non:[1,4,6],none:[1,2,3,4,10,12,14,18],normal:[1,17],normalize_color:1,note:[1,2,4],now:18,np:[4,8,9,10,16,18],number:[1,2,4,8,9],numpi:[2,9,18],o:4,object:[1,3,4,8,9,12,13,14,16,18],obtain:[8,12,16],occasion:16,offic:18,old:1,old_valu:1,one:[1,2,4,10,11,17,18],ones:8,onli:[4,15],opac:[1,2,8],opacitycolormap:1,open:[1,2,4,10,11,14,15,18],open_sampl:[1,2,4,8,14],open_spreadsheet:2,open_t:2,oper:[2,10,14,15,16,17],optim:[2,18],option:[1,4,8,12],order:15,organ:16,origin:[4,15,17],other:[1,4,8,11,12,13,17],out:18,output:8,outsid:10,over:[4,10],overlai:[4,15],overlaid:4,overwrit:[4,12],own:[8,13],p:[12,17],packag:[0,6,11],page:6,paint:[8,14],palett:[2,9,18],panda:[4,8,9,12,15,16,18],paramet:[1,4],parent:[1,4,10],part:17,partial:[8,18],pass:[8,9,12,15],past:[2,4,11,15,18],paste_data:4,paste_data_comma_separ:2,paste_data_from_markdown:2,paste_data_from_numpy_str:2,paste_data_from_rst:2,paste_data_tab_separ:2,path:[1,3,4,11,12],pathlib:[3,4,11],pd:[1,2,4,8,10,12,18],peopl:18,perform:18,period:2,period_rang:2,pi:9,pivot:[2,18],pixel:9,place:[4,10],plan:11,plot:[0,1,4,10,16],plotinfo:2,plt:[2,4,10,18],plugin:4,plugin_nam:1,point:9,polynomi:2,polynomial_fit:2,pop:14,popup:[2,11,18],posit:[4,8,12,13],post_init:0,prefer:2,prefix:9,press:[10,12,13],preview:8,print:[4,8,9,10,12,13,14,16],problem:[8,11],profil:18,programat:14,programmat:[11,12,16,17],progress:1,properli:15,properti:[1,4,11,12,14,17,18],provid:[1,8,13,16],proxi:[2,4],psygnal:14,purpos:8,push:18,py:18,pyplot:16,python:[2,6,12,18],q:12,qbaset:4,qmainwindow:11,qoverlayfram:4,qt:[1,4,6],qtconsol:[2,4],qtpy:[10,11],qtw:[4,11],qtwidget:[10,11],quickstart:6,qvboxlayout:11,qwidget:[1,4,10,11],r:1,radiobutton:2,rais:[1,8],raise_slot_error:2,random:2,rang:[1,2,4,12,14,18],ratio:1,re:17,read:[1,4,12],read_csv:[1,12],read_excel:[1,12],readabl:8,readi:[8,13],real:8,reason:[12,16],recov:10,recoveri:4,red:[8,15,18],redo:[2,10,11,18],redo_t:2,ref_prefix:9,refer:[2,8,9,15,16],refresh:4,regist:[1,4,6,10,12,14,16],register_act:13,register_command:2,registr:[9,13,16],registri:12,regress:18,regular:18,reject:12,relat:16,relev:18,reload:4,remov:[1,2,4,12,15],remove_cell_widget:2,remove_dock_widget:[1,4],remove_selected_column:2,remove_selected_row:2,renam:[2,12,18],rename_tab:2,repres:[8,14],reset:[1,2,4,8,9,15,16,17,18],reset_background_colormap:2,reset_choic:[1,4],reset_proxi:2,reset_text_colormap:2,reset_text_formatt:2,reset_view_mod:2,resiz:[2,4],resize_cells_to_cont:2,respect:9,restrict:[11,18],restructuredtext:2,result:18,rgb:8,rgba:[1,8,16],rgba_to_str:1,right:[1,2,4,8,12,13,14,15,18],round:2,row:[1,2,4,9,12,13,14,15,16],row_siz:9,rst:2,rule:[8,18],run:[2,4,8,9,18],run_cut:2,run_groupbi:2,s:[1,2,15,17],safe:[8,16],safer:[4,8],safeti:8,sai:[17,18],same:[4,10,17,18],sampl:[1,2,4,8,14,18],sample_nam:[1,4],satisfi:8,satur:1,save:[2,4,18],save_al:4,save_as_xlsx:2,save_screenshot:4,save_t:2,save_table_to_sourc:2,scatter:[2,16,18],scikit:[2,18],scipi:[2,18],screenshot:4,script:18,scroll:[1,4,17],seaborn:[1,4,18],search:[6,12],section:[15,18],see:[8,9,10,11,12,15,16,17,18],segment:8,sel:[12,14],select:[0,1,4,6,8,12,15,18],select_al:2,selectionrang:14,selectionrangeerror:1,self:[10,11],send:10,sep:4,sepal_length:[8,14],sepal_width:8,separ:[2,13],seri:[8,18],set:[1,2,4,6,9,12,15,16,17,18],set_background_colormap:2,set_background_colormap_opac:2,set_column_dtyp:2,set_current_view:1,set_dual_h_mod:2,set_dual_v_mod:2,set_opac:8,set_popup_mod:2,set_text_colormap:2,set_text_colormap_opac:2,set_text_formatt:2,setcentralwidget:11,setlayout:11,setobjectnam:10,setosa:8,sever:[8,10,12,13,16,18],shape:[4,12],sheet:[1,4,6,8,12],shift:[11,12,18],shortcut:[11,12,17],shorter:13,should:[8,10,15,16,18],show:[1,2,4,9,10,11,12,17],show_command_palett:2,show_consol:9,show_context_menu:2,show_eval_widget:2,show_filter_widget:2,show_finder_widget:2,show_keymap:2,show_optimizer_widget:2,show_prefer:2,show_scipy_stats_widget:2,show_sklearn_widget:2,show_stats_widget:2,show_undo_stack_view:2,shown:[1,4,12,16,17,18],shuffl:2,shuffle_data_column_wis:2,side:[4,18],signal:[2,14],signalgroup:14,signatur:13,similar:[4,9,10,11,13,14,15,16,17,18],similarli:[13,15],simpl:[2,8,11,12,18],simplest:8,simpli:[14,16,18],sinc:[8,12,16],size:[4,9],sleep:1,slicabl:12,slice:[1,2,4,12,14,15],slider:2,slot:16,small:17,sn:2,so:[1,11,17,18],solv:[8,11],some:[8,11,12,18],someth:[4,12],sometim:8,sort:[2,4,6,16,18],sort_by_column:2,sort_func:15,sort_inplac:2,sourc:[1,2,3,4,15,18],space:11,speci:8,specif:[2,4,8,10,11,13,16,18],spinbox:2,split:17,spreadsheet:[1,2,4,11,16,18],stack:[2,10],standard:[8,18],start:18,startup:[9,18],stat:[2,18],state:[16,17,18],statist:[2,18],statu:[4,10],statup:4,std:10,step:1,still:17,store:[8,9,10,12,16],str:[1,2,3,4,10],straightforward:15,strategi:10,string:[1,4,9,12,18],stripplot:2,strongli:6,structur:[12,17],style:[0,1,2],sub:16,subclass:[1,11],submenu:13,submodul:0,subpackag:0,subset:15,sum:[9,18],summar:[2,18],summarize_t:2,superqt:1,suppli:8,support:[8,9,12,13,15,16],supportkeymap:4,supportsindex:4,suppos:[13,15],surject:15,swap:2,swap_tab_with_left:2,swap_tab_with_right:2,swarmplot:2,switch_column:2,switch_index:2,switch_layout:2,syntax:[13,15],system:8,t:[4,8,12,15,18],tab:[0,1,9,12,15,16,17],tab_posit:[1,4],tabl:[0,1,4,7,9,13],table_shap:4,table_typ:4,table_view:11,tablebas:[1,4,13],tabledata:10,tabledisplai:4,tableinfo:1,tableiniti:1,tablelist:4,tableseri:8,tabletyp:4,tableview:[1,4,7,8,9,12,13,18],tableviewerbas:[1,2,4,13],tableviewersign:[1,4],tableviewerwidget:[1,4,11],tabposit:[1,4],tabul:[7,9,11,12,13,16,18],tag:8,take:[1,8,11,12],task:4,tbl:12,teal:8,tell:16,test:[2,9,18],text:[2,3,4,18],text_color:[4,8],text_formatt:4,th:12,thei:[8,17],them:[14,15],theme:4,therefor:17,thi:[1,4,6,8,10,11,12,13,15,16,17,18],thing:11,thread:0,thread_work:1,thu:[4,14,16],tile:[2,18],tile_t:2,tile_with_adjacent_t:2,time:[1,8,9],timedelta:[2,8],timedelta_rang:2,tip:[4,10],titl:[1,2],togeth:1,toggl:[2,18],toggle_consol:2,toggle_edit:2,toggle_focu:2,toggle_fullscreen:2,toggle_toolbar:2,too:[8,11,12],tool:[10,12],toolbar:[2,4,12,15,16],tooltip:[1,4,18],top:[1,2,4,10,15,18],topleft:[4,10],total:1,traceback:2,tracebacktyp:1,train:6,transpos:2,tupl:[1,2,4,13,14],turn:17,two:[2,8,9,17,18],type:[0,4,11,12,16,18],u:[9,12,13],ui:[4,11],uint8:8,under:13,undo:[2,4,10,11,18],undo_manag:4,undo_t:2,undomanag:4,union:[1,4],unless:12,unlik:8,unlimit:12,unpivot:2,until:[2,13,18],untile_t:2,updat:[1,4,12,14,15,16,18],us:[1,4,6,13,14,16,17,18],user:[2,6,9,13],usual:[8,11,18],util:1,v:17,valid:[2,4,18],valu:[1,2,4,8,12,13,14,16],valueerror:[1,8],vanish:14,variabl:[9,18],varieti:12,veri:[16,17],versicolor:8,version:[9,11,12,13],vertic:[2,9,13,17,18],via:[4,12,16],view:[0,1,4,6,10,11,12],view_imag:7,view_mod:[4,17],view_spreadsheet:1,view_tabl:[1,7],viewer:[1,2,4,6,8,10,13,14,15,16,17,18],vieweriniti:1,viewmod:4,violet:8,violinplot:2,virginica:8,virtual:12,visibl:[1,2,4,10,11,12,18],visual:8,volum:8,wai:[1,8,12,13,15,16,18],want:[8,10,11,13,16,17,18],well:[16,17],what:9,wheel:18,when:[1,4,8,9,12,16,17,18],whenev:18,where:[1,18],whether:4,which:[8,10,13,16,18],widget:[0,1,2,12,13,16,17,18],width:[4,9,18],window:[0,1,6,7,9,12,17],wip:18,wise:[6,15,16,18],without:8,work:[13,18],worker:1,write:2,write_data_reference_in_consol:2,write_data_signal_in_consol:2,write_slice_in_consol:2,wrong:[1,12],x:[1,8,9,14,15,16],xlsx:12,xxx:13,y:[1,15,16],you:[4,8,9,10,11,12,13,14,15,16,17,18],your:[8,10,13],zero:4,zoom:[2,4,17],zoom_in:2,zoom_out:2},titles:["tabulous","tabulous package","tabulous.commands package","tabulous.style package","tabulous.widgets package","<no title>","tabulous","Cheat Sheet for Napari Users","Column-wise Settings","Customize Viewer Actions","Integrate Custom Widgets","Use Non-main Window Table Viewers","Quickstart","Register Custom Actions","Table Selections and Highlights","Sort/Filter Table Data","Field Attributes of Tables","View Tables in Different Modes","User Interface"],titleterms:{"catch":14,"function":[8,15],A:12,For:12,action:[9,13],add:[7,10,18],an:12,analysi:2,analyz:18,annot:10,area:10,attribut:16,background_color:16,bar:13,basic:10,built:10,cell:[13,15,16,18],chang:14,cheat:7,color:[1,8],colormap:8,column:[2,8,15,16,18],combo:12,command:[2,12,13],config:9,content:[1,2,3,4,6,7,8,10,11,12,13,14,15,16,17,18],contextmenu:13,cooper:6,core:1,custom:[9,10,13],data:[7,14,15,18],defin:[8,18],detail:12,dictionari:8,differ:17,dock:[7,10],dtype:16,dual:17,dure:15,edit:[9,15,18],evalu:18,excel:18,except:1,express:15,field:16,file:2,filter:15,formatt:[8,16],get:7,gui:[8,15],header:[13,18],highlight:14,home:18,how:17,index:16,indic:6,integr:10,interfac:18,interpol:8,interpret:12,just:7,kei:12,keybind:13,label:[16,18],layer:7,list:[7,12],magicgui:[10,11],main:11,matplotlib:8,menu:18,method:9,mode:17,modul:[1,2,3,4],more:12,move:18,namespac:[9,18],napari:7,non:11,open:[7,12],other:6,overlai:10,packag:[1,2,3,4],palett:[12,13],plot:[2,18],plt:16,popup:17,post_init:[1,9],proxi:[15,16],py:9,qt:[10,11],queri:15,quickstart:12,read:7,ref:16,refer:18,regist:[9,13],resiz:18,row:18,scalar:18,scroll:18,select:[2,14],set:[7,8,14],sheet:7,side:10,simpl:15,sort:15,spreadsheet:[8,12],string:8,style:[3,15,18],submodul:[1,2],subpackag:1,subset:8,syntax:8,tab:[2,13,18],tabl:[2,6,8,10,11,12,14,15,16,17,18],tableview:11,tabul:[0,1,2,3,4,6,10],text:[8,16],text_color:16,thread:1,tile:17,toml:9,toolbar:18,type:[1,8,10,14],until:17,updat:[8,9],us:[8,9,10,11,12,15],usag:10,user:[7,18],valid:[8,16],valu:18,vector:18,view:[2,17,18],viewer:[7,9,11,12],widget:[4,6,7,10,11],window:[2,11],wise:8,work:17,your:11,zoom:18}}) +Search.setIndex({"docnames": ["apidoc/modules", "apidoc/tabulous", "apidoc/tabulous.commands", "apidoc/tabulous.style", "apidoc/tabulous.widgets", "font", "index", "main/cheat_sheet", "main/columnwise_settings", "main/customize", "main/integrate_custom_widgets", "main/non_mainwindow", "main/quickstart", "main/register_action", "main/selections", "main/sort_filter", "main/table_fields", "main/table_view_mode", "main/user_interface"], "filenames": ["apidoc\\modules.rst", "apidoc\\tabulous.rst", "apidoc\\tabulous.commands.rst", "apidoc\\tabulous.style.rst", "apidoc\\tabulous.widgets.rst", "font.rst", "index.rst", "main\\cheat_sheet.rst", "main\\columnwise_settings.rst", "main\\customize.rst", "main\\integrate_custom_widgets.rst", "main\\non_mainwindow.rst", "main\\quickstart.rst", "main\\register_action.rst", "main\\selections.rst", "main\\sort_filter.rst", "main\\table_fields.rst", "main\\table_view_mode.rst", "main\\user_interface.rst"], "titles": ["tabulous", "tabulous package", "tabulous.commands package", "tabulous.style package", "tabulous.widgets package", "<no title>", "tabulous", "Cheat Sheet for Napari Users", "Column-wise Settings", "Customize Viewer Actions", "Integrate Custom Widgets", "Use Non-main Window Table Viewers", "Quickstart", "Register Custom Actions", "Table Selections and Highlights", "Sort/Filter Table Data", "Field Attributes of Tables", "View Tables in Different Modes", "User Interface"], "terms": {"packag": [0, 6, 11], "subpackag": 0, "command": [0, 1, 4, 9, 18], "submodul": 0, "analysi": [0, 1, 16, 18], "modul": [0, 6, 9, 16, 18], "column": [0, 1, 4, 6, 9, 12, 13, 14], "file": [0, 1, 3, 4, 9, 11, 12, 18], "plot": [0, 1, 4, 10, 16], "select": [0, 1, 4, 6, 8, 12, 15, 18], "tab": [0, 1, 9, 12, 15, 16, 17], "tabl": [0, 1, 4, 7, 9, 13], "view": [0, 1, 4, 6, 10, 11, 12], "window": [0, 1, 6, 7, 9, 12, 17], "content": 0, "style": [0, 1, 2], "widget": [0, 1, 2, 12, 13, 16, 17, 18], "color": [0, 16, 18], "brightenedcolormap": [0, 1], "from_colormap": [0, 1], "colortupl": [0, 1], "b": [0, 1, 4, 8, 12, 15, 16, 17, 18], "brighten": [0, 1], "equal": [0, 1, 8], "from_hlsa": [0, 1], "from_hsva": [0, 1], "from_html": [0, 1], "g": [0, 1, 4], "hlsa": [0, 1], "hsva": [0, 1], "html": [0, 1, 2], "mix": [0, 1], "opac": [0, 1, 2, 8], "r": [0, 1], "convertedcolormap": [0, 1], "invertedcolormap": [0, 1], "opacitycolormap": [0, 1], "normalize_color": [0, 1], "rgba_to_str": [0, 1], "core": 0, "current_view": [0, 1], "open_sampl": [0, 1, 2, 4, 8, 14], "read_csv": [0, 1, 12], "read_excel": [0, 1, 12], "set_current_view": [0, 1], "view_spreadsheet": [0, 1], "view_tabl": [0, 1, 7], "except": [0, 8], "exceptionhandl": [0, 1], "selectionrangeerror": [0, 1], "post_init": 0, "cellnamespacemock": [0, 1], "commandpalettemock": [0, 1], "regist": [0, 1, 4, 6, 10, 12, 14, 16], "consolemock": [0, 1], "contextregister": [0, 1], "initi": [0, 1, 4, 9], "join": [0, 1], "keymapmock": [0, 1], "tableiniti": [0, 1], "cell": [0, 1, 2, 4, 8, 9, 12, 14], "index": [0, 1, 2, 4, 6, 8, 9, 12, 13], "initialize_t": [0, 1], "keymap": [0, 1, 9, 12, 13], "vieweriniti": [0, 1], "cell_namespac": [0, 1, 4, 9, 18], "command_palett": [0, 1, 4, 9, 13], "consol": [0, 1, 2, 4, 9, 11, 12, 18], "initialize_view": [0, 1], "get_initi": [0, 1, 9], "thread": 0, "thread_work": [0, 1], "type": [0, 4, 11, 12, 16, 18], "headerinfo": [0, 1], "old_valu": [0, 1], "valu": [0, 1, 2, 4, 8, 12, 13, 14, 16], "iteminfo": [0, 1], "delet": [0, 1, 2, 4, 12, 16], "insert": [0, 1, 2, 4, 12, 18], "col": [0, 1, 18], "row": [0, 1, 2, 4, 9, 12, 13, 14, 15, 16], "tableinfo": [0, 1], "magictableview": [0, 1, 11], "nativ": [0, 1, 4, 11], "tableview": [0, 1, 4, 7, 8, 9, 12, 13, 18], "add_dock_widget": [0, 1, 4, 7, 10], "config": [0, 1, 4], "event": [0, 1, 4, 14], "remove_dock_widget": [0, 1, 4], "reset_choic": [0, 1, 4], "tableviewerwidget": [0, 1, 4, 11], "add_widget": [0, 1, 4], "polynomial_fit": [1, 2], "show_eval_widget": [1, 2], "show_filter_widget": [1, 2], "show_optimizer_widget": [1, 2], "show_scipy_stats_widget": [1, 2], "show_sklearn_widget": [1, 2], "show_stats_widget": [1, 2], "summarize_t": [1, 2], "adjust_brightness_background_colormap": [1, 2], "adjust_brightness_text_colormap": [1, 2], "invert_background_colormap": [1, 2], "invert_text_colormap": [1, 2], "reset_background_colormap": [1, 2], "reset_text_colormap": [1, 2], "reset_text_formatt": [1, 2], "run_cut": [1, 2], "run_groupbi": [1, 2], "set_background_colormap": [1, 2], "set_background_colormap_opac": [1, 2], "set_text_colormap": [1, 2], "set_text_colormap_opac": [1, 2], "set_text_formatt": [1, 2], "open_spreadsheet": [1, 2], "open_t": [1, 2], "save_as_xlsx": [1, 2], "save_t": [1, 2], "save_table_to_sourc": [1, 2], "plotinfo": [1, 2], "name": [1, 2, 3, 4, 7, 8, 9, 10, 12, 13, 16, 17, 18], "bar": [1, 2, 4, 9, 17, 18], "barplot": [1, 2], "boxenplot": [1, 2], "boxplot": [1, 2], "errorbar": [1, 2], "fill_between": [1, 2], "fill_betweenx": [1, 2], "hist": [1, 2, 16, 18], "new_figur": [1, 2], "scatter": [1, 2, 16, 18], "stripplot": [1, 2], "swarmplot": [1, 2], "violinplot": [1, 2], "add_highlight": [1, 2], "copy_as_html": [1, 2], "copy_as_latex": [1, 2], "copy_as_liter": [1, 2], "copy_as_markdown": [1, 2], "copy_as_new_spreadsheet": [1, 2], "copy_as_new_t": [1, 2], "copy_as_rst_grid": [1, 2], "copy_as_rst_simpl": [1, 2], "copy_data_comma_separ": [1, 2], "copy_data_tab_separ": [1, 2], "copy_data_with_header_comma_separ": [1, 2], "copy_data_with_header_tab_separ": [1, 2], "cut_data": [1, 2], "delete_selected_highlight": [1, 2], "delete_valu": [1, 2], "edit_curr": [1, 2], "filter_by_column": [1, 2], "insert_column_left": [1, 2], "insert_column_right": [1, 2], "insert_row_abov": [1, 2], "insert_row_below": [1, 2], "paste_data_comma_separ": [1, 2], "paste_data_from_markdown": [1, 2], "paste_data_from_numpy_str": [1, 2], "paste_data_from_rst": [1, 2], "paste_data_space_separ": [1, 2], "paste_data_tab_separ": [1, 2], "raise_slot_error": [1, 2], "remove_selected_column": [1, 2], "remove_selected_row": [1, 2], "select_al": [1, 2], "set_column_dtyp": [1, 2], "show_context_menu": [1, 2], "shuffle_data_column_wis": [1, 2], "sort_by_column": [1, 2], "sort_inplac": [1, 2], "write_data_reference_in_consol": [1, 2], "write_data_signal_in_consol": [1, 2], "write_slice_in_consol": [1, 2], "activate_left": [1, 2], "activate_right": [1, 2], "delete_tab": [1, 2], "rename_tab": [1, 2], "swap_tab_with_left": [1, 2], "swap_tab_with_right": [1, 2], "tile_t": [1, 2], "tile_with_adjacent_t": [1, 2], "untile_t": [1, 2], "concat": [1, 2], "copy_as_spreadsheet": [1, 2], "copy_as_t": [1, 2], "copy_to_clipboard": [1, 2], "date_rang": [1, 2], "dropna": [1, 2], "fillna": [1, 2], "interval_rang": [1, 2], "jump_to_cel": [1, 2], "melt": [1, 2, 18], "merg": [1, 2], "new_spreadsheet": [1, 2], "period_rang": [1, 2], "pivot": [1, 2, 18], "random": [1, 2], "redo_t": [1, 2], "reset_proxi": [1, 2], "round": [1, 2], "show_finder_widget": [1, 2], "show_undo_stack_view": [1, 2], "switch_column": [1, 2], "switch_index": [1, 2], "switch_layout": [1, 2], "timedelta_rang": [1, 2], "toggle_edit": [1, 2], "transpos": [1, 2], "undo_t": [1, 2], "zoom_in": [1, 2], "zoom_out": [1, 2], "reset_view_mod": [1, 2], "set_dual_h_mod": [1, 2], "set_dual_v_mod": [1, 2], "set_popup_mod": [1, 2], "add_file_explor": [1, 2], "add_text_edit": [1, 2], "close_window": [1, 2], "focus_t": [1, 2], "new_window": [1, 2], "show_command_palett": [1, 2], "show_keymap": [1, 2], "show_prefer": [1, 2], "toggle_consol": [1, 2], "toggle_focu": [1, 2], "toggle_fullscreen": [1, 2], "toggle_toolbar": [1, 2], "iter_command": [1, 2], "register_command": [1, 2], "background": [1, 2, 3, 8, 16], "background0": [1, 3], "background1": [1, 3], "base_color": [1, 3], "cell_highlight": [1, 3], "cell_select": [1, 3], "foreground": [1, 3], "format_fil": [1, 3], "format_text": [1, 3], "from_glob": [1, 3], "highlight0": [1, 3], "highlight1": [1, 3], "inv_color": [1, 3], "groupbi": [1, 2, 4, 18], "current_group": [1, 4], "magicspreadsheet": [1, 4], "magict": [1, 4], "spreadsheet": [1, 2, 4, 11, 16, 18], "add_item_widget": [1, 4], "dtype": [1, 2, 4, 8, 12], "tablebas": [1, 4, 13], "add_overlay_widget": [1, 4, 10], "add_side_widget": [1, 4, 10], "background_color": [1, 4, 8], "background_colormap": [1, 4], "cellref": [1, 4], "current_index": [1, 4, 12], "data": [1, 2, 4, 6, 8, 10, 11, 12, 13, 16, 17], "data_shown": [1, 4], "edit": [1, 2, 4, 8, 12, 16, 17], "foreground_colormap": [1, 4], "formatt": [1, 2, 4], "highlight": [1, 2, 4, 6, 12, 15], "iloc": [1, 4, 12, 13, 14, 16], "layout": [1, 2, 4, 11, 18], "loc": [1, 4, 16, 18], "metadata": [1, 4], "move_iloc": [1, 4], "move_loc": [1, 4], "mutabl": [1, 4], "plt": [1, 2, 4, 10, 18], "proxi": [1, 2, 4], "refresh": [1, 4], "save": [1, 2, 4, 18], "save_screenshot": [1, 4], "screenshot": [1, 4], "sourc": [1, 2, 3, 4, 15, 18], "table_shap": [1, 4], "table_typ": [1, 4], "text_color": [1, 4, 8], "text_formatt": [1, 4], "undo_manag": [1, 4], "valid": [1, 2, 4, 18], "view_mod": [1, 4, 17], "zoom": [1, 2, 4, 17], "tabledisplai": [1, 4], "interv": [1, 2, 4], "loader": [1, 4], "run": [1, 2, 4, 8, 9, 18], "tableviewerbas": [1, 2, 4, 13], "add_groupbi": [1, 4], "add_lay": [1, 4], "add_load": [1, 4], "add_spreadsheet": [1, 4, 8, 12, 16], "add_tabl": [1, 4, 7, 8, 12, 13, 17], "close": [1, 2, 4, 9], "copy_data": [1, 4], "current_t": [1, 4, 12, 13, 15], "history_manag": [1, 4], "open": [1, 2, 4, 10, 11, 14, 15, 18], "paste_data": [1, 4], "resiz": [1, 4], "save_al": [1, 4], "show": [1, 2, 4, 9, 10, 11, 12, 17], "size": [1, 4, 9], "statu": [1, 4, 10], "theme": [1, 4], "toolbar": [1, 2, 4, 12, 15, 16], "class": [1, 2, 3, 4, 9, 10, 11, 18], "func": [1, 2, 10, 13, 18], "callabl": [1, 2, 4], "ani": [1, 2, 4, 6, 8, 18], "str": [1, 2, 3, 4, 10], "iter": [1, 2], "int": [1, 4, 8, 13], "map": [1, 2, 8, 12, 15, 16], "factor": [1, 4], "float": [1, 4, 8, 12, 16], "base": [1, 2, 3, 4, 6, 8, 12], "classmethod": [1, 3], "cmap": [1, 8, 16], "convert": [1, 8, 12, 14], "colormap": [1, 2, 16], "an": [1, 2, 4, 8, 10, 13, 18], "new": [1, 2, 8, 9, 10, 12, 15, 16, 18], "one": [1, 2, 4, 10, 11, 17, 18], "given": [1, 4], "255": [1, 8], "namedtupl": [1, 2], "8": [1, 4, 8, 15, 16, 18], "bit": [1, 16], "tupl": [1, 2, 4, 13, 14], "alia": [1, 2, 10], "field": [1, 2, 6, 8, 10, 11, 12], "number": [1, 2, 4, 8, 9], "3": [1, 4, 8, 9, 12, 14, 15, 16, 17, 18], "2": [1, 4, 8, 12, 13, 14, 15, 16, 17, 18], "ratio": 1, "set": [1, 2, 4, 6, 9, 12, 15, 16, 17, 18], "satur": 1, "other": [1, 4, 8, 11, 12, 13, 17], "creat": [1, 2, 9, 12, 18], "from": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "hsla": 1, "string": [1, 4, 9, 12, 18], "1": [1, 2, 4, 8, 9, 12, 13, 14, 15, 16, 17, 18], "properti": [1, 4, 11, 12, 14, 17, 18], "return": [1, 4, 8, 9, 10, 11, 15, 16, 17, 18], "0": [1, 2, 4, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18], "5": [1, 4, 8, 10, 12, 14, 15, 16, 18], "alpha": [1, 8], "bool": [1, 4, 10], "fals": [1, 4, 15], "anoth": [1, 11, 14], "between": [1, 2, 8, 14, 18], "object": [1, 3, 4, 8, 9, 12, 13, 14, 16, 18], "invert": [1, 2, 8], "channel": [1, 8], "normal": [1, 17], "like": [1, 4, 8, 9, 12, 14, 15, 16, 18], "rgba": [1, 8, 16], "get": [1, 4, 8, 12, 14, 16, 18], "current": [1, 2, 4, 8, 12, 13, 17, 18], "viewer": [1, 2, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18], "sample_nam": [1, 4], "plugin_nam": 1, "seaborn": [1, 4, 18], "sampl": [1, 2, 4, 8, 14, 18], "path": [1, 3, 4, 11, 12], "arg": [1, 4], "kwarg": [1, 4], "read": [1, 4, 12], "csv": [1, 12], "add": [1, 2, 4, 9, 12], "excel": [1, 2, 4, 10, 12], "all": [1, 2, 4, 8, 11, 12, 13, 16, 18], "sheet": [1, 4, 6, 8, 12], "none": [1, 2, 3, 4, 10, 12, 14, 18], "true": [1, 4, 8, 11, 12], "copi": [1, 2, 4, 11, 12, 16, 18], "hook": 1, "tracebacktyp": 1, "handl": [1, 12], "gui": [1, 12], "valueerror": [1, 8], "rais": [1, 8], "when": [1, 4, 8, 9, 12, 16, 17, 18], "i": [1, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "caus": [1, 18], "wrong": [1, 12], "rang": [1, 2, 4, 12, 14, 18], "": [1, 2, 15, 17], "_updat": 1, "A": [1, 4, 8, 11, 14, 15, 16, 17, 18], "mock": 1, "attribut": [1, 4, 6, 9, 12, 13, 14], "instanc": [1, 9, 11, 12, 14, 16, 17, 18], "_register": 1, "titl": [1, 2], "desc": [1, 2], "kei": [1, 2, 13, 17, 18], "liter": [1, 2, 18], "gener": [1, 2, 8], "_t": 1, "method": [1, 4, 8, 10, 12, 13, 14, 15, 16], "togeth": 1, "function": [1, 2, 4, 9, 11, 12, 13, 14, 16, 18], "_p": 1, "_y": 1, "_": [1, 4, 8, 18], "_r": 1, "total": 1, "generatorwork": 1, "functionwork": 1, "worker": 1, "import": [1, 8, 9, 10, 11, 12, 13, 16, 18], "def": [1, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "time": [1, 8, 9], "sleep": 1, "paramet": [1, 4], "call": [1, 8, 14, 15, 17, 18], "option": [1, 4, 8, 12], "label": [1, 4, 8, 10, 15], "shown": [1, 4, 12, 16, 17, 18], "besid": 1, "progress": 1, "indic": [1, 4, 15, 17], "The": [1, 4, 8, 9, 11, 12, 13, 14, 15, 16, 18], "us": [1, 4, 6, 13, 14, 16, 17, 18], "provid": [1, 8, 13, 16], "default": [1, 4, 8, 9, 10, 12, 15, 16, 18], "step": 1, "header": [1, 2, 4, 8, 9, 16], "updat": [1, 4, 12, 14, 15, 16, 18], "take": [1, 8, 11, 12], "where": [1, 18], "item": [1, 16, 18], "old": 1, "slice": [1, 2, 4, 12, 14, 15], "If": [1, 4, 11, 12, 13, 15, 17, 18], "describ": [1, 4, 9], "datafram": [1, 4, 10, 12, 14, 15, 16], "its": [1, 2, 8, 12, 13, 18], "x": [1, 8, 9, 14, 15, 16], "y": [1, 15, 16], "equival": [1, 15, 16, 18], "pd": [1, 2, 4, 8, 10, 12, 18], "addit": [1, 12], "inform": [1, 10], "magicgui": [1, 4, 6], "construct": 1, "tab_posit": [1, 4], "tabposit": [1, 4], "top": [1, 2, 4, 10, 15, 18], "tooltip": [1, 4, 18], "visibl": [1, 2, 4, 10, 11, 12, 18], "enabl": [1, 4, 17], "thi": [1, 4, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18], "subclass": [1, 11], "so": [1, 11, 17, 18], "can": [1, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "compat": [1, 11], "wai": [1, 8, 12, 13, 15, 16, 18], "napari": [1, 6, 10], "list": [1, 2, 4, 8, 10, 14, 17], "backend": [1, 4, 11], "note": [1, 2, 4], "contain": [1, 4, 11, 18], "parent": [1, 4, 10], "e": [1, 4, 15], "scroll": [1, 4, 17], "main": [1, 4, 6, 12], "qwidget": [1, 4, 10, 11], "area": [1, 4, 18], "right": [1, 2, 4, 8, 12, 13, 14, 15, 18], "allowed_area": [1, 4], "qt": [1, 4, 6], "magic": [1, 4, 11], "dock": [1, 2, 4, 12, 17], "allow": [1, 4, 9, 11, 18], "mappingproxi": [1, 4], "info": [1, 4], "tableviewersign": [1, 4], "name_or_widget": [1, 4], "remov": [1, 2, 4, 12, 15], "reset": [1, 2, 4, 8, 9, 15, 16, 17, 18], "combo": [1, 4, 13, 17, 18], "box": [1, 4], "non": [1, 4, 6], "child": [1, 4, 11], "polynomi": 2, "fit": 2, "1d": 2, "evalu": [2, 4, 9], "python": [2, 6, 12, 18], "express": [2, 18], "filter": [2, 4, 6, 16, 18], "optim": [2, 18], "analyz": 2, "distribut": 2, "scipi": [2, 18], "stat": [2, 18], "scikit": [2, 18], "learn": [2, 18], "statist": [2, 18], "test": [2, 9, 18], "summar": [2, 18], "adjust": [2, 8], "bright": [2, 8], "text": [2, 3, 4, 18], "cut": [2, 18], "bin": 2, "group": [2, 4], "book": 2, "exist": [2, 4, 8, 12, 17], "hashabl": [2, 4], "sn": 2, "figur": [2, 18], "canva": [2, 10, 16, 18], "latex": 2, "markdown": 2, "restructuredtext": 2, "rst": 2, "grid": 2, "simpl": [2, 8, 11, 12, 18], "comma": 2, "separ": [2, 13], "left": [2, 4, 10], "abov": [2, 8, 11, 18], "below": [2, 15], "past": [2, 4, 11, 15, 18], "numpi": [2, 9, 18], "space": [2, 11], "traceback": 2, "specif": [2, 4, 8, 10, 11, 13, 16, 18], "convers": [2, 8], "execut": [2, 13, 18], "context": [2, 8, 13, 14], "menu": [2, 8, 13, 14], "shuffl": 2, "columnwis": 2, "sort": [2, 4, 6, 16, 18], "inplac": 2, "write": 2, "refer": [2, 8, 9, 15, 16], "signal": [2, 14], "connect": [2, 11, 14], "activ": [2, 4, 10, 12, 18], "renam": [2, 12, 18], "swap": 2, "tile": [2, 18], "adjac": [2, 18], "until": [2, 13, 18], "concaten": 2, "date": 2, "drop": [2, 18], "nan": 2, "fill": 2, "jump": 2, "unpivot": 2, "two": [2, 8, 9, 17, 18], "empti": [2, 12], "period": 2, "redo": [2, 10, 11, 18], "oper": [2, 10, 14, 15, 16, 17], "toggl": [2, 18], "finder": [2, 18], "undo": [2, 4, 10, 11, 18], "stack": [2, 10], "switch": [2, 18], "timedelta": [2, 8], "mode": [2, 4, 6, 11, 12, 18], "horizont": [2, 9, 13, 17, 18], "dual": [2, 18], "vertic": [2, 9, 13, 17, 18], "popup": [2, 11, 18], "explor": 2, "move": [2, 4, 12], "focu": [2, 17, 18], "palett": [2, 9, 18], "prefer": 2, "dialog": [2, 8, 15, 18], "qtconsol": [2, 4], "fullscreen": 2, "user": [2, 6, 9, 13], "defin": [2, 13, 16, 17], "dict": [4, 8, 9, 16, 18], "dataframegroupbi": 4, "same": [4, 10, 17, 18], "id": 4, "gui_onli": 4, "_dataframetablelay": 4, "behav": [4, 12, 16], "whether": 4, "via": [4, 12, 16], "ui": [4, 11], "implement": [4, 8, 10, 16], "check": [4, 9, 10, 12, 16, 18], "supportkeymap": 4, "layer": [4, 10], "qtw": [4, 11], "topleft": [4, 10], "grip": 4, "qoverlayfram": 4, "overlaid": 4, "over": [4, 10], "overlai": [4, 15], "just": [4, 8, 12, 15], "chart": [4, 10], "bottom": 4, "posit": [4, 8, 12, 13], "side": [4, 18], "It": [4, 8, 12], "onli": [4, 15], "thu": [4, 14, 16], "good": 4, "place": [4, 10], "input": [4, 8, 12, 18], "deprec": [4, 13], "interfac": [4, 6, 12], "emul": 4, "j": 4, "np": [4, 8, 9, 10, 16, 18], "mean": [4, 10, 16, 18], "df": [4, 7, 12, 14, 15, 16, 18], "del": [4, 8, 12, 16], "access": [4, 16], "contextmenu": [4, 9, 12, 15, 16], "my": [4, 10], "action": [4, 6, 16, 18], "my_act": 4, "do": [4, 8, 12, 14, 18], "someth": [4, 12], "similar": [4, 9, 10, 11, 13, 14, 15, 16, 17, 18], "panda": [4, 8, 9, 12, 15, 16, 18], "you": [4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "print": [4, 8, 9, 10, 12, 13, 14, 16], "new_label": 4, "6": [4, 8, 12, 14, 15], "count": 4, "mani": [4, 8, 11, 12, 18], "ar": [4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "also": [4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "avail": [4, 8, 9, 10, 11, 12, 16, 18], "foo": 4, "isin": 4, "get_loc": [4, 16], "intern": 4, "consid": [4, 8, 18], "zero": 4, "10": [4, 12, 14, 15, 16, 18], "layoutstr": 4, "c": [4, 8, 11, 12, 17], "dictionari": 4, "locat": [4, 9, 10, 13], "4": [4, 9, 12, 13, 14, 15, 16, 18], "axi": 4, "qbaset": 4, "To": [4, 8, 9, 11, 14, 16, 17, 18], "ascend": [4, 15], "custom": [4, 6, 8, 12, 16], "must": [4, 8, 13], "boolean": [4, 15], "arrai": [4, 8, 10, 15, 18], "integ": 4, "length": [4, 8], "my_filter_func": 4, "forc": 4, "ndarrai": [4, 10], "shape": [4, 12], "undomanag": 4, "manag": [4, 15, 18], "viewmod": 4, "hotli": 4, "reload": 4, "load": [4, 9, 11], "task": 4, "_abstractview": 4, "frame": 4, "continu": [4, 8], "displai": [4, 8, 16], "safer": [4, 8], "recoveri": 4, "less": 4, "flexibl": 4, "ad": [4, 9, 10, 12, 15, 18], "befor": [4, 9, 17], "avoid": [4, 11], "overwrit": [4, 12], "origin": [4, 15, 17], "namespac": 4, "editor": [4, 8, 18], "supportsindex": 4, "sep": 4, "t": [4, 8, 12, 15, 18], "clipboard": [4, 18], "essenti": [4, 15, 18], "ident": [4, 8], "getter": 4, "ipython": [4, 9], "runtim": 4, "auto": [4, 15], "complet": [4, 15], "ha": [4, 9, 10, 11, 12, 13, 16], "effect": 4, "immedi": [4, 16], "skip": 4, "o": 4, "histori": [4, 15], "_qtmainwidgetbas": 4, "byte": 4, "tabletyp": 4, "plugin": 4, "asynchron": 4, "width": [4, 9, 18], "height": [4, 9], "statup": 4, "tip": [4, 10], "strongli": 6, "inspir": 6, "design": [6, 11], "api": [6, 15, 16], "accordingli": [6, 12], "creation": 6, "easili": [6, 11, 12], "achiev": 6, "beginn": 6, "more": [6, 8, 11, 14, 16, 18], "train": 6, "quickstart": 6, "wise": [6, 15, 16, 18], "differ": [6, 8, 11, 12, 14, 18], "integr": [6, 11], "cheat": 6, "search": [6, 12], "page": 6, "tabul": [7, 9, 11, 12, 13, 16, 18], "view_imag": 7, "imag": [7, 10], "add_imag": 7, "compos": 8, "sever": [8, 10, 12, 13, 16, 18], "There": [8, 10], "some": [8, 11, 12, 18], "appli": [8, 10, 15], "each": [8, 9, 10, 14, 16, 17], "individu": 8, "better": [8, 11], "visual": 8, "safe": [8, 16], "store": [8, 9, 10, 12, 16], "standard": [8, 18], "iri": [8, 14], "lmin": 8, "sepal_length": [8, 14], "min": [8, 10], "lmax": 8, "max": [8, 10], "lrang": 8, "red": [8, 15, 18], "uint8": 8, "blue": 8, "discret": 8, "sepal_width": 8, "green": 8, "els": 8, "violet": 8, "sinc": [8, 12, 16], "ones": 8, "new_cmap": 8, "For": [8, 11, 14, 16, 17, 18], "categor": 8, "setosa": 8, "versicolor": 8, "virginica": 8, "speci": 8, "limit": 8, "contrast": 8, "mininum": 8, "maximum": [8, 9], "inferno": 8, "datetim": [8, 16], "In": [8, 10, 11, 12, 13, 15, 17, 18], "case": [8, 13, 15, 16], "ll": [8, 12, 14, 15], "want": [8, 10, 11, 13, 16, 17, 18], "your": [8, 10, 13], "own": [8, 13], "suppli": 8, "repres": [8, 14], "minimum": 8, "correspond": [8, 14], "interp_from": 8, "argument": [8, 10, 15], "purpos": 8, "linearli": 8, "segment": 8, "grai": 8, "pass": [8, 9, 12, 15], "divid": 8, "simplest": 8, "which": [8, 10, 13, 16, 18], "basic": [8, 9, 16], "click": [8, 9, 12, 13, 14, 15, 17, 18], "set_opac": 8, "chang": [8, 11, 17, 18], "output": 8, "rgb": 8, "adjust_bright": 8, "brighter": 8, "darker": 8, "sometim": 8, "enough": 8, "make": [8, 12, 18], "doesn": [8, 15], "care": 8, "about": 8, "should": [8, 10, 15, 16, 18], "invalid": [8, 18], "follow": [8, 9, 11, 12, 13, 14, 15, 16, 18], "exampl": [8, 10, 11, 15], "neg": 8, "interpret": [8, 10, 15, 16, 18], "becom": 8, "volum": 8, "after": [8, 15], "unlik": 8, "NOT": [8, 18], "becaus": [8, 15], "rule": [8, 18], "might": 8, "break": 8, "safeti": 8, "without": 8, "itself": 8, "readabl": 8, "format": [8, 9, 16], "everi": [8, 10, 14], "paint": [8, 14], "too": [8, 11, 12], "much": [8, 11], "As": [8, 18], "usual": [8, 11, 18], "chapter": 8, "affect": [8, 17, 18], "real": 8, "necessari": 8, "satisfi": 8, "includ": [8, 12, 16], "f": [8, 10, 16], "2f": [8, 16], "cm": [8, 16], "instead": [8, 10, 15, 18], "readi": [8, 13], "__setitem__": 8, "see": [8, 9, 10, 11, 12, 15, 16, 17, 18], "preview": 8, "determin": [8, 16], "characterist": 8, "problem": [8, 11], "drawback": 8, "especi": [8, 16, 18], "datetime64": 8, "categori": [8, 16], "solv": [8, 11], "system": 8, "tag": 8, "support": [8, 9, 12, 13, 15, 16], "appropri": [8, 18], "int64": [8, 12], "seri": [8, 18], "tableseri": 8, "obtain": [8, 12, 16], "thei": [8, 17], "partial": [8, 18], "teal": 8, "configur": 9, "directori": [9, 18], "automat": [9, 18], "launch": [9, 12], "first": [9, 18], "dir": 9, "console_namespac": 9, "identifi": 9, "load_startup_fil": 9, "startup": [9, 18], "max_row_count": 9, "max_column_count": 9, "font": 9, "famili": 9, "font_siz": 9, "point": 9, "row_siz": 9, "pixel": 9, "column_s": 9, "eval_prefix": 9, "prefix": 9, "ref_prefix": 9, "ask_on_clos": 9, "ask": 9, "show_consol": 9, "init": 9, "version": [9, 11, 12, 13], "keybind": [9, 12, 18], "variabl": [9, 18], "applic": 9, "actual": 9, "respect": 9, "registr": [9, 13, 16], "what": 9, "compon": [9, 13], "ctrl": [9, 10, 11, 12, 13, 17, 18], "u": [9, 12, 13], "my_func": 9, "manner": 9, "my_var": 9, "pi": 9, "14159265359": 9, "decor": [9, 15, 16], "sum": [9, 18], "myclass": 9, "outsid": 10, "central": 10, "alwai": [10, 14, 15, 18], "matter": 10, "qtpy": [10, 11], "qtwidget": [10, 11], "mywidget": [10, 11], "__init__": [10, 11], "self": [10, 11], "super": [10, 11], "setobjectnam": 10, "imagedata": 10, "while": [10, 15, 17], "strategi": 10, "recov": 10, "send": 10, "tabledata": 10, "combobox": 10, "std": 10, "append": [10, 11, 14], "give": 10, "press": [10, 12, 13], "h": [10, 17], "interact": [10, 16, 18], "matplotlib": [10, 16, 18], "tool": [10, 12], "coordin": 10, "aim": 11, "extens": 11, "extern": 11, "plan": 11, "myqwidget": 11, "qmainwindow": 11, "setcentralwidget": 11, "benefit": 11, "detail": [11, 15, 16], "conflict": 11, "restrict": [11, 18], "embed": [11, 12, 18], "doe": [11, 16, 18], "shortcut": [11, 12, 17], "shift": [11, 12, 18], "have": [11, 12, 13, 14, 15, 18], "programmat": [11, 12, 16, 17], "fileedit": 11, "file_edit": 11, "thing": 11, "pathlib": 11, "magicclass": 11, "table_view": 11, "load_data": 11, "how": 11, "qvboxlayout": 11, "setlayout": 11, "addwidget": 11, "tbl": 12, "xlsx": 12, "virtual": 12, "environ": 12, "conda": 12, "conosol": 12, "keyboard": [12, 14, 18], "button": [12, 15, 18], "most": [12, 15, 18], "fix": 12, "unless": 12, "fulli": 12, "new_data": 12, "reject": 12, "newli": 12, "structur": [12, 17], "th": 12, "directli": [12, 14, 15, 16, 18], "df2": 12, "multi": [12, 15], "slicabl": 12, "sel": [12, 14], "20": [12, 18], "googl": [12, 18], "unlimit": 12, "far": 12, "larg": [12, 17], "infer": 12, "manual": 12, "reason": [12, 16], "extend": 12, "acit": 12, "global": 12, "k": [12, 13, 17], "registri": 12, "bind": [12, 14], "p": [12, 17], "q": 12, "f1": 12, "varieti": 12, "syntax": [13, 15], "xxx": 13, "descript": 13, "four": 13, "suppos": [13, 15], "register_act": 13, "signatur": 13, "shorter": 13, "submenu": 13, "work": [13, 18], "similarli": [13, 15], "here": [13, 15], "under": 13, "both": [13, 15], "keycombo": 13, "selectionrang": 14, "100": 14, "them": [14, 15], "simpli": [14, 16, 18], "9": [14, 15, 18], "7": [14, 15], "95": 14, "96": 14, "97": 14, "98": 14, "99": 14, "pop": 14, "callback": 14, "signalgroup": 14, "psygnal": 14, "_on_chang": 14, "featur": 14, "highlighten": 14, "cannot": 14, "dynam": 14, "programat": 14, "vanish": 14, "mous": [14, 18], "emit": 14, "common": [15, 16], "inspect": [15, 17], "These": 15, "collect": 15, "intermediari": 15, "d": 15, "straightforward": 15, "filter_func": 15, "look": 15, "anchor": 15, "corner": 15, "section": [15, 18], "being": 15, "eval": [15, 18], "line": [15, 18], "brows": 15, "interg": 15, "argsort": 15, "sort_func": 15, "a0": 15, "a1": [15, 18], "a2": 15, "a3": 15, "surject": 15, "subset": 15, "descend": 15, "order": 15, "properli": 15, "veri": [16, 17], "complic": 16, "state": [16, 17, 18], "confus": 16, "well": [16, 17], "organ": 16, "sub": 16, "relat": 16, "arang": 16, "slot": 16, "keyerror": 16, "canvas": 16, "pyplot": 16, "index_nam": 16, "column_nam": 16, "decid": 16, "fmt": 16, "mai": [16, 18], "occasion": 16, "tell": 16, "columndtypeinterfac": 16, "float64": 16, "effici": 17, "split": 17, "part": 17, "independ": 17, "turn": 17, "v": 17, "n": 17, "appear": 17, "insid": [17, 18], "small": 17, "still": 17, "next": 17, "0th": 17, "1st": 17, "let": 17, "sai": [17, 18], "re": 17, "therefor": 17, "arrow": 18, "mac": 18, "modifi": 18, "expect": 18, "alt": 18, "desir": 18, "direct": 18, "drag": 18, "wheel": 18, "out": 18, "border": 18, "doubl": 18, "f2": 18, "charact": 18, "dure": 18, "duplic": 18, "done": 18, "a4": 18, "calcul": 18, "start": 18, "By": 18, "One": 18, "destin": 18, "result": 18, "30": 18, "60": 18, "cumsum": 18, "relev": 18, "don": 18, "long": 18, "40": 18, "easiest": 18, "script": 18, "whenev": 18, "profil": 18, "py": 18, "__all__": 18, "peopl": 18, "howev": 18, "f3": 18, "help": 18, "push": 18, "find": 18, "microsoft": 18, "offic": 18, "last": 18, "deviat": 18, "etc": 18, "match": 18, "regular": 18, "minim": 18, "loss": 18, "perform": 18, "cluster": 18, "regress": 18, "decomposit": 18, "histogram": 18, "wip": 18, "now": 18, "Its": 18, "behavior": 18, "futur": 18}, "objects": {"": [[1, 0, 0, "-", "tabulous"]], "tabulous": [[1, 1, 1, "", "MagicTableViewer"], [1, 1, 1, "", "TableViewer"], [1, 1, 1, "", "TableViewerWidget"], [1, 0, 0, "-", "color"], [2, 0, 0, "-", "commands"], [1, 0, 0, "-", "core"], [1, 5, 1, "", "current_viewer"], [1, 0, 0, "-", "exceptions"], [1, 5, 1, "", "open_sample"], [1, 0, 0, "-", "post_init"], [1, 5, 1, "", "read_csv"], [1, 5, 1, "", "read_excel"], [3, 0, 0, "-", "style"], [1, 0, 0, "-", "threading"], [1, 0, 0, "-", "types"], [1, 5, 1, "", "view_spreadsheet"], [1, 5, 1, "", "view_table"], [4, 0, 0, "-", "widgets"]], "tabulous.MagicTableViewer": [[1, 2, 1, "", "native"]], "tabulous.TableViewer": [[1, 3, 1, "", "add_dock_widget"], [1, 2, 1, "", "config"], [1, 4, 1, "", "events"], [1, 3, 1, "", "remove_dock_widget"], [1, 3, 1, "", "reset_choices"]], "tabulous.TableViewerWidget": [[1, 3, 1, "", "add_widget"], [1, 4, 1, "", "events"]], "tabulous.color": [[1, 1, 1, "", "BrightenedColormap"], [1, 1, 1, "", "ColorTuple"], [1, 1, 1, "", "ConvertedColormap"], [1, 1, 1, "", "InvertedColormap"], [1, 1, 1, "", "OpacityColormap"], [1, 5, 1, "", "normalize_color"], [1, 5, 1, "", "rgba_to_str"]], "tabulous.color.BrightenedColormap": [[1, 3, 1, "", "from_colormap"]], "tabulous.color.ColorTuple": [[1, 4, 1, "", "a"], [1, 4, 1, "", "b"], [1, 3, 1, "", "brighten"], [1, 3, 1, "", "equals"], [1, 3, 1, "", "from_hlsa"], [1, 3, 1, "", "from_hsva"], [1, 3, 1, "", "from_html"], [1, 4, 1, "", "g"], [1, 2, 1, "", "hlsa"], [1, 2, 1, "", "hsva"], [1, 2, 1, "", "html"], [1, 3, 1, "", "mix"], [1, 2, 1, "", "opacity"], [1, 4, 1, "", "r"]], "tabulous.color.InvertedColormap": [[1, 3, 1, "", "from_colormap"]], "tabulous.color.OpacityColormap": [[1, 3, 1, "", "from_colormap"]], "tabulous.commands": [[2, 0, 0, "-", "analysis"], [2, 0, 0, "-", "column"], [2, 0, 0, "-", "file"], [2, 5, 1, "", "iter_commands"], [2, 0, 0, "-", "plot"], [2, 5, 1, "", "register_command"], [2, 0, 0, "-", "selection"], [2, 0, 0, "-", "tab"], [2, 0, 0, "-", "table"], [2, 0, 0, "-", "view"], [2, 0, 0, "-", "window"]], "tabulous.commands.analysis": [[2, 5, 1, "", "polynomial_fit"], [2, 5, 1, "", "show_eval_widget"], [2, 5, 1, "", "show_filter_widget"], [2, 5, 1, "", "show_optimizer_widget"], [2, 5, 1, "", "show_scipy_stats_widget"], [2, 5, 1, "", "show_sklearn_widget"], [2, 5, 1, "", "show_stats_widget"], [2, 5, 1, "", "summarize_table"]], "tabulous.commands.column": [[2, 5, 1, "", "adjust_brightness_background_colormap"], [2, 5, 1, "", "adjust_brightness_text_colormap"], [2, 5, 1, "", "invert_background_colormap"], [2, 5, 1, "", "invert_text_colormap"], [2, 5, 1, "", "reset_background_colormap"], [2, 5, 1, "", "reset_text_colormap"], [2, 5, 1, "", "reset_text_formatter"], [2, 5, 1, "", "run_cut"], [2, 5, 1, "", "run_groupby"], [2, 5, 1, "", "set_background_colormap"], [2, 5, 1, "", "set_background_colormap_opacity"], [2, 5, 1, "", "set_text_colormap"], [2, 5, 1, "", "set_text_colormap_opacity"], [2, 5, 1, "", "set_text_formatter"]], "tabulous.commands.file": [[2, 5, 1, "", "open_sample"], [2, 5, 1, "", "open_spreadsheet"], [2, 5, 1, "", "open_table"], [2, 5, 1, "", "save_as_xlsx"], [2, 5, 1, "", "save_table"], [2, 5, 1, "", "save_table_to_source"]], "tabulous.commands.plot": [[2, 1, 1, "", "PlotInfo"], [2, 5, 1, "", "bar"], [2, 5, 1, "", "barplot"], [2, 5, 1, "", "boxenplot"], [2, 5, 1, "", "boxplot"], [2, 5, 1, "", "errorbar"], [2, 5, 1, "", "fill_between"], [2, 5, 1, "", "fill_betweenx"], [2, 5, 1, "", "hist"], [2, 5, 1, "", "new_figure"], [2, 5, 1, "", "plot"], [2, 5, 1, "", "scatter"], [2, 5, 1, "", "stripplot"], [2, 5, 1, "", "swarmplot"], [2, 5, 1, "", "violinplot"]], "tabulous.commands.plot.PlotInfo": [[2, 4, 1, "", "columns"], [2, 4, 1, "", "names"]], "tabulous.commands.selection": [[2, 5, 1, "", "add_highlight"], [2, 5, 1, "", "copy_as_html"], [2, 5, 1, "", "copy_as_latex"], [2, 5, 1, "", "copy_as_literal"], [2, 5, 1, "", "copy_as_markdown"], [2, 5, 1, "", "copy_as_new_spreadsheet"], [2, 5, 1, "", "copy_as_new_table"], [2, 5, 1, "", "copy_as_rst_grid"], [2, 5, 1, "", "copy_as_rst_simple"], [2, 5, 1, "", "copy_data_comma_separated"], [2, 5, 1, "", "copy_data_tab_separated"], [2, 5, 1, "", "copy_data_with_header_comma_separated"], [2, 5, 1, "", "copy_data_with_header_tab_separated"], [2, 5, 1, "", "cut_data"], [2, 5, 1, "", "delete_selected_highlight"], [2, 5, 1, "", "delete_values"], [2, 5, 1, "", "edit_current"], [2, 5, 1, "", "filter_by_columns"], [2, 5, 1, "", "insert_column_left"], [2, 5, 1, "", "insert_column_right"], [2, 5, 1, "", "insert_row_above"], [2, 5, 1, "", "insert_row_below"], [2, 5, 1, "", "paste_data_comma_separated"], [2, 5, 1, "", "paste_data_from_markdown"], [2, 5, 1, "", "paste_data_from_numpy_string"], [2, 5, 1, "", "paste_data_from_rst"], [2, 5, 1, "", "paste_data_space_separated"], [2, 5, 1, "", "paste_data_tab_separated"], [2, 5, 1, "", "raise_slot_error"], [2, 5, 1, "", "remove_selected_columns"], [2, 5, 1, "", "remove_selected_rows"], [2, 5, 1, "", "select_all"], [2, 5, 1, "", "set_column_dtype"], [2, 5, 1, "", "show_context_menu"], [2, 5, 1, "", "shuffle_data_column_wise"], [2, 5, 1, "", "sort_by_columns"], [2, 5, 1, "", "sort_inplace"], [2, 5, 1, "", "write_data_reference_in_console"], [2, 5, 1, "", "write_data_signal_in_console"], [2, 5, 1, "", "write_slice_in_console"]], "tabulous.commands.tab": [[2, 5, 1, "", "activate_left"], [2, 5, 1, "", "activate_right"], [2, 5, 1, "", "delete_tab"], [2, 5, 1, "", "rename_tab"], [2, 5, 1, "", "swap_tab_with_left"], [2, 5, 1, "", "swap_tab_with_right"], [2, 5, 1, "", "tile_tables"], [2, 5, 1, "", "tile_with_adjacent_table"], [2, 5, 1, "", "untile_table"]], "tabulous.commands.table": [[2, 5, 1, "", "concat"], [2, 5, 1, "", "copy_as_spreadsheet"], [2, 5, 1, "", "copy_as_table"], [2, 5, 1, "", "copy_to_clipboard"], [2, 5, 1, "", "date_range"], [2, 5, 1, "", "dropna"], [2, 5, 1, "", "fillna"], [2, 5, 1, "", "interval_range"], [2, 5, 1, "", "jump_to_cell"], [2, 5, 1, "", "melt"], [2, 5, 1, "", "merge"], [2, 5, 1, "", "new_spreadsheet"], [2, 5, 1, "", "period_range"], [2, 5, 1, "", "pivot"], [2, 5, 1, "", "random"], [2, 5, 1, "", "redo_table"], [2, 5, 1, "", "reset_proxy"], [2, 5, 1, "", "round"], [2, 5, 1, "", "show_finder_widget"], [2, 5, 1, "", "show_undo_stack_view"], [2, 5, 1, "", "switch_columns"], [2, 5, 1, "", "switch_index"], [2, 5, 1, "", "switch_layout"], [2, 5, 1, "", "timedelta_range"], [2, 5, 1, "", "toggle_editability"], [2, 5, 1, "", "transpose"], [2, 5, 1, "", "undo_table"], [2, 5, 1, "", "zoom_in"], [2, 5, 1, "", "zoom_out"]], "tabulous.commands.view": [[2, 5, 1, "", "reset_view_mode"], [2, 5, 1, "", "set_dual_h_mode"], [2, 5, 1, "", "set_dual_v_mode"], [2, 5, 1, "", "set_popup_mode"]], "tabulous.commands.window": [[2, 5, 1, "", "add_file_explorer"], [2, 5, 1, "", "add_text_edit"], [2, 5, 1, "", "close_window"], [2, 5, 1, "", "focus_table"], [2, 5, 1, "", "new_window"], [2, 5, 1, "", "show_command_palette"], [2, 5, 1, "", "show_keymap"], [2, 5, 1, "", "show_preference"], [2, 5, 1, "", "toggle_console"], [2, 5, 1, "", "toggle_focus"], [2, 5, 1, "", "toggle_fullscreen"], [2, 5, 1, "", "toggle_toolbar"]], "tabulous.core": [[1, 5, 1, "", "current_viewer"], [1, 5, 1, "", "open_sample"], [1, 5, 1, "", "read_csv"], [1, 5, 1, "", "read_excel"], [1, 5, 1, "", "set_current_viewer"], [1, 5, 1, "", "view_spreadsheet"], [1, 5, 1, "", "view_table"]], "tabulous.exceptions": [[1, 1, 1, "", "ExceptionHandler"], [1, 6, 1, "", "SelectionRangeError"]], "tabulous.post_init": [[1, 1, 1, "", "CellNamespaceMock"], [1, 1, 1, "", "CommandPaletteMock"], [1, 1, 1, "", "ConsoleMock"], [1, 1, 1, "", "ContextRegisterable"], [1, 1, 1, "", "Initializer"], [1, 1, 1, "", "KeyMapMock"], [1, 1, 1, "", "TableInitializer"], [1, 1, 1, "", "ViewerInitializer"], [1, 5, 1, "", "get_initializers"]], "tabulous.post_init.CommandPaletteMock": [[1, 3, 1, "", "register"]], "tabulous.post_init.ContextRegisterable": [[1, 3, 1, "", "register"]], "tabulous.post_init.Initializer": [[1, 3, 1, "", "join"]], "tabulous.post_init.KeyMapMock": [[1, 3, 1, "", "register"]], "tabulous.post_init.TableInitializer": [[1, 4, 1, "", "cell"], [1, 4, 1, "", "columns"], [1, 4, 1, "", "index"], [1, 3, 1, "", "initialize_table"], [1, 4, 1, "", "keymap"]], "tabulous.post_init.ViewerInitializer": [[1, 4, 1, "", "cell_namespace"], [1, 4, 1, "", "command_palette"], [1, 4, 1, "", "console"], [1, 3, 1, "", "initialize_viewer"], [1, 4, 1, "", "keymap"], [1, 4, 1, "", "tables"]], "tabulous.style": [[3, 1, 1, "", "Style"]], "tabulous.style.Style": [[3, 4, 1, "", "background"], [3, 4, 1, "", "background0"], [3, 4, 1, "", "background1"], [3, 4, 1, "", "base_color"], [3, 4, 1, "", "cell_highlight"], [3, 4, 1, "", "cell_selection"], [3, 4, 1, "", "foreground"], [3, 3, 1, "", "format_file"], [3, 3, 1, "", "format_text"], [3, 3, 1, "", "from_global"], [3, 4, 1, "", "highlight0"], [3, 4, 1, "", "highlight1"], [3, 4, 1, "", "inv_color"]], "tabulous.threading": [[1, 5, 1, "", "thread_worker"]], "tabulous.types": [[1, 1, 1, "", "HeaderInfo"], [1, 1, 1, "", "ItemInfo"], [1, 1, 1, "", "TableInfo"]], "tabulous.types.HeaderInfo": [[1, 4, 1, "", "index"], [1, 4, 1, "", "old_value"], [1, 4, 1, "", "value"]], "tabulous.types.ItemInfo": [[1, 4, 1, "", "DELETED"], [1, 4, 1, "", "INSERTED"], [1, 2, 1, "", "col"], [1, 4, 1, "", "column"], [1, 4, 1, "", "old_value"], [1, 4, 1, "", "row"], [1, 4, 1, "", "value"]], "tabulous.widgets": [[4, 1, 1, "", "GroupBy"], [4, 1, 1, "", "MagicSpreadSheet"], [4, 1, 1, "", "MagicTable"], [4, 1, 1, "", "SpreadSheet"], [4, 1, 1, "", "Table"], [4, 1, 1, "", "TableBase"], [4, 1, 1, "", "TableDisplay"], [4, 1, 1, "", "TableViewer"], [4, 1, 1, "", "TableViewerBase"], [4, 1, 1, "", "TableViewerWidget"]], "tabulous.widgets.GroupBy": [[4, 2, 1, "", "current_group"]], "tabulous.widgets.MagicSpreadSheet": [[4, 2, 1, "", "native"]], "tabulous.widgets.MagicTable": [[4, 2, 1, "", "native"]], "tabulous.widgets.SpreadSheet": [[4, 3, 1, "", "add_item_widget"], [4, 4, 1, "", "dtypes"]], "tabulous.widgets.TableBase": [[4, 3, 1, "", "add_overlay_widget"], [4, 3, 1, "", "add_side_widget"], [4, 4, 1, "", "background_color"], [4, 3, 1, "", "background_colormap"], [4, 4, 1, "", "cell"], [4, 2, 1, "", "cellref"], [4, 4, 1, "", "columns"], [4, 2, 1, "", "current_index"], [4, 4, 1, "", "data"], [4, 2, 1, "", "data_shown"], [4, 2, 1, "", "editable"], [4, 3, 1, "", "foreground_colormap"], [4, 4, 1, "", "formatter"], [4, 4, 1, "", "highlights"], [4, 4, 1, "", "iloc"], [4, 4, 1, "", "index"], [4, 2, 1, "", "layout"], [4, 4, 1, "", "loc"], [4, 4, 1, "", "metadata"], [4, 3, 1, "", "move_iloc"], [4, 3, 1, "", "move_loc"], [4, 2, 1, "", "mutable"], [4, 2, 1, "", "name"], [4, 2, 1, "", "native"], [4, 4, 1, "", "plt"], [4, 4, 1, "", "proxy"], [4, 3, 1, "", "refresh"], [4, 3, 1, "", "save"], [4, 3, 1, "", "save_screenshot"], [4, 3, 1, "", "screenshot"], [4, 4, 1, "", "selections"], [4, 2, 1, "", "source"], [4, 2, 1, "", "table_shape"], [4, 2, 1, "", "table_type"], [4, 4, 1, "", "text_color"], [4, 4, 1, "", "text_formatter"], [4, 2, 1, "", "undo_manager"], [4, 4, 1, "", "validator"], [4, 2, 1, "", "view_mode"], [4, 2, 1, "", "zoom"]], "tabulous.widgets.TableDisplay": [[4, 2, 1, "", "interval"], [4, 2, 1, "", "loader"], [4, 2, 1, "", "running"]], "tabulous.widgets.TableViewer": [[4, 3, 1, "", "add_dock_widget"], [4, 2, 1, "", "config"], [4, 4, 1, "", "events"], [4, 3, 1, "", "remove_dock_widget"], [4, 3, 1, "", "reset_choices"]], "tabulous.widgets.TableViewerBase": [[4, 3, 1, "", "add_groupby"], [4, 3, 1, "", "add_layer"], [4, 3, 1, "", "add_loader"], [4, 3, 1, "", "add_spreadsheet"], [4, 3, 1, "", "add_table"], [4, 2, 1, "", "cell_namespace"], [4, 3, 1, "", "close"], [4, 4, 1, "", "command_palette"], [4, 4, 1, "", "console"], [4, 3, 1, "", "copy_data"], [4, 2, 1, "", "current_index"], [4, 4, 1, "", "current_table"], [4, 4, 1, "", "events"], [4, 2, 1, "", "history_manager"], [4, 2, 1, "", "native"], [4, 3, 1, "", "open"], [4, 3, 1, "", "open_sample"], [4, 3, 1, "", "paste_data"], [4, 3, 1, "", "resize"], [4, 3, 1, "", "save"], [4, 3, 1, "", "save_all"], [4, 3, 1, "", "save_screenshot"], [4, 3, 1, "", "screenshot"], [4, 3, 1, "", "show"], [4, 2, 1, "", "size"], [4, 2, 1, "", "status"], [4, 4, 1, "", "tables"], [4, 2, 1, "", "theme"], [4, 4, 1, "", "toolbar"]], "tabulous.widgets.TableViewerWidget": [[4, 3, 1, "", "add_widget"], [4, 4, 1, "", "events"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:attribute", "5": "py:function", "6": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"], "6": ["py", "exception", "Python exception"]}, "titleterms": {"tabul": [0, 1, 2, 3, 4, 6, 10], "packag": [1, 2, 3, 4], "subpackag": 1, "submodul": [1, 2], "color": [1, 8], "modul": [1, 2, 3, 4], "core": 1, "except": 1, "post_init": [1, 9], "thread": 1, "type": [1, 8, 10, 14], "content": [1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18], "command": [2, 12, 13], "analysi": 2, "column": [2, 8, 15, 16, 18], "file": 2, "plot": [2, 18], "select": [2, 14], "tab": [2, 13, 18], "tabl": [2, 6, 8, 10, 11, 12, 14, 15, 16, 17, 18], "view": [2, 17, 18], "window": [2, 11], "style": [3, 15, 18], "widget": [4, 6, 7, 10, 11], "cooper": 6, "other": 6, "indic": 6, "cheat": 7, "sheet": 7, "napari": 7, "user": [7, 18], "open": [7, 12], "viewer": [7, 9, 11, 12], "just": 7, "read": 7, "data": [7, 14, 15, 18], "layer": 7, "list": [7, 12], "add": [7, 10, 18], "get": 7, "set": [7, 8, 14], "dock": [7, 10], "wise": 8, "colormap": 8, "us": [8, 9, 10, 11, 12, 15], "function": [8, 15], "dictionari": 8, "matplotlib": 8, "interpol": 8, "defin": [8, 18], "gui": [8, 15], "updat": [8, 9], "valid": [8, 16], "text": [8, 16], "formatt": [8, 16], "string": 8, "spreadsheet": [8, 12], "syntax": 8, "subset": 8, "custom": [9, 10, 13], "action": [9, 13], "edit": [9, 15, 18], "config": 9, "toml": 9, "py": 9, "regist": [9, 13], "method": 9, "namespac": [9, 18], "integr": 10, "area": 10, "qt": [10, 11], "magicgui": [10, 11], "basic": 10, "usag": 10, "annot": 10, "side": 10, "built": 10, "overlai": 10, "non": 11, "main": 11, "tableview": 11, "your": 11, "quickstart": 12, "A": 12, "an": 12, "interpret": 12, "For": 12, "more": 12, "detail": 12, "kei": 12, "combo": 12, "palett": [12, 13], "contextmenu": 13, "bar": 13, "header": [13, 18], "cell": [13, 15, 16, 18], "keybind": 13, "highlight": 14, "catch": 14, "chang": 14, "sort": 15, "filter": 15, "simpl": 15, "queri": 15, "express": 15, "dure": 15, "proxi": [15, 16], "field": 16, "attribut": 16, "ref": 16, "label": [16, 18], "text_color": 16, "background_color": 16, "plt": 16, "index": 16, "dtype": 16, "differ": 17, "mode": 17, "dual": 17, "popup": 17, "tile": 17, "how": 17, "work": 17, "until": 17, "interfac": 18, "move": 18, "scroll": 18, "zoom": 18, "resiz": 18, "excel": 18, "evalu": 18, "scalar": 18, "valu": 18, "vector": 18, "row": 18, "refer": 18, "toolbar": 18, "home": 18, "menu": 18, "analyz": 18}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"tabulous": [[0, "tabulous"], [6, "tabulous"]], "tabulous package": [[1, "tabulous-package"]], "Subpackages": [[1, "subpackages"]], "Submodules": [[1, "submodules"], [2, "submodules"]], "tabulous.color module": [[1, "module-tabulous.color"]], "tabulous.core module": [[1, "module-tabulous.core"]], "tabulous.exceptions module": [[1, "module-tabulous.exceptions"]], "tabulous.post_init module": [[1, "module-tabulous.post_init"]], "tabulous.threading module": [[1, "module-tabulous.threading"]], "tabulous.types module": [[1, "module-tabulous.types"]], "Module contents": [[1, "module-tabulous"], [2, "module-tabulous.commands"], [3, "module-tabulous.style"], [4, "module-tabulous.widgets"]], "tabulous.commands package": [[2, "tabulous-commands-package"]], "tabulous.commands.analysis module": [[2, "module-tabulous.commands.analysis"]], "tabulous.commands.column module": [[2, "module-tabulous.commands.column"]], "tabulous.commands.file module": [[2, "module-tabulous.commands.file"]], "tabulous.commands.plot module": [[2, "module-tabulous.commands.plot"]], "tabulous.commands.selection module": [[2, "module-tabulous.commands.selection"]], "tabulous.commands.tab module": [[2, "module-tabulous.commands.tab"]], "tabulous.commands.table module": [[2, "module-tabulous.commands.table"]], "tabulous.commands.view module": [[2, "module-tabulous.commands.view"]], "tabulous.commands.window module": [[2, "module-tabulous.commands.window"]], "tabulous.style package": [[3, "tabulous-style-package"]], "tabulous.widgets package": [[4, "tabulous-widgets-package"]], "Tables": [[6, "tables"], [18, "tables"]], "Cooperate with Other Widgets": [[6, "cooperate-with-other-widgets"]], "Other Contents": [[6, "other-contents"]], "Indices and tables": [[6, "indices-and-tables"]], "Cheat Sheet for Napari Users": [[7, "cheat-sheet-for-napari-users"]], "Contents": [[7, "contents"], [8, "contents"], [10, "contents"], [11, "contents"], [12, "contents"], [13, "contents"], [14, "contents"], [15, "contents"], [16, "contents"], [17, "contents"], [18, "contents"]], "Open a Viewer": [[7, "open-a-viewer"]], "Just open a viewer": [[7, "just-open-a-viewer"]], "Open and read data": [[7, "open-and-read-data"]], "Layers": [[7, "layers"]], "List of layers": [[7, "list-of-layers"]], "Add data": [[7, "add-data"]], "Get and set data": [[7, "get-and-set-data"]], "Dock widgets": [[7, "dock-widgets"]], "Add a dock widget": [[7, "add-a-dock-widget"]], "Column-wise Settings": [[8, "column-wise-settings"]], "Colormap": [[8, "colormap"]], "Use Colormap Functions": [[8, "use-colormap-functions"]], "Use Dictionaries": [[8, "use-dictionaries"]], "Use matplotlib Colormaps": [[8, "use-matplotlib-colormaps"]], "Interpolate Colors to Define Colormaps": [[8, "interpolate-colors-to-define-colormaps"]], "Set Colormaps in GUI": [[8, "set-colormaps-in-gui"]], "Update Colormaps": [[8, "update-colormaps"]], "Validator": [[8, "validator"]], "Set validator Functions": [[8, "set-validator-functions"]], "Text Formatter": [[8, "text-formatter"]], "Set formatter function": [[8, "set-formatter-function"]], "Set formatter string": [[8, "set-formatter-string"]], "Set Formatter in GUI": [[8, "set-formatter-in-gui"]], "Typing Spreadsheet": [[8, "typing-spreadsheet"]], "Use Syntax of Table Subset": [[8, "use-syntax-of-table-subset"]], "Customize Viewer Actions": [[9, "customize-viewer-actions"]], "Edit config.toml": [[9, "edit-config-toml"]], "Edit post_init.py": [[9, "edit-post-init-py"]], "Register actions using register() method": [[9, "register-actions-using-register-method"]], "Update namespaces": [[9, "update-namespaces"]], "Integrate Custom Widgets": [[10, "integrate-custom-widgets"]], "Dock Widget Area": [[10, "dock-widget-area"]], "Add Qt Widgets": [[10, "add-qt-widgets"]], "Use Magicgui Widget": [[10, "use-magicgui-widget"]], "Basic usage": [[10, "basic-usage"]], "tabulous type annotations": [[10, "tabulous-type-annotations"]], "Table Side Area": [[10, "table-side-area"]], "Built-in Widgets": [[10, "built-in-widgets"]], "Table Overlay Widget": [[10, "table-overlay-widget"]], "Use Non-main Window Table Viewers": [[11, "use-non-main-window-table-viewers"]], "Use TableViewer in Your Qt Widget": [[11, "use-tableviewer-in-your-qt-widget"]], "Use TableViewer with magicgui": [[11, "use-tableviewer-with-magicgui"]], "Use Tables in Your Widget": [[11, "use-tables-in-your-widget"]], "Quickstart": [[12, "quickstart"]], "Open A Table Viewer": [[12, "open-a-table-viewer"]], "Open an Interpreter": [[12, "open-an-interpreter"]], "Use Tables": [[12, "use-tables"]], "Table": [[12, "table"]], "SpreadSheet": [[12, "spreadsheet"]], "For more details \u2026": [[12, "for-more-details"]], "Table List": [[12, "table-list"]], "Key combo": [[12, "key-combo"]], "Command palette": [[12, "command-palette"]], "Register Custom Actions": [[13, "register-custom-actions"]], "Custom Contextmenu Actions": [[13, "custom-contextmenu-actions"]], "Register actions to the tab bar": [[13, "register-actions-to-the-tab-bar"]], "Register actions to the headers": [[13, "register-actions-to-the-headers"]], "Register actions to the cells": [[13, "register-actions-to-the-cells"]], "Custom Command in Command Palette": [[13, "custom-command-in-command-palette"]], "Custom Keybindings": [[13, "custom-keybindings"]], "Table Selections and Highlights": [[14, "table-selections-and-highlights"]], "Data Type of Table Selections": [[14, "data-type-of-table-selections"]], "Catch Changes in Table Selections": [[14, "catch-changes-in-table-selections"]], "Set Highlights": [[14, "set-highlights"]], "Sort/Filter Table Data": [[15, "sort-filter-table-data"]], "Filtering": [[15, "filtering"]], "Use filter functions": [[15, "use-filter-functions"]], "Simple filtering in GUI": [[15, "simple-filtering-in-gui"]], "Use query-style expression": [[15, "use-query-style-expression"]], "Query-style filtering in GUI": [[15, "query-style-filtering-in-gui"]], "Sorting": [[15, "sorting"]], "Use sorting functions": [[15, "use-sorting-functions"]], "Sort by a column": [[15, "sort-by-a-column"]], "Sort in GUI": [[15, "sort-in-gui"]], "Edit Cells during Proxy": [[15, "edit-cells-during-proxy"]], "Field Attributes of Tables": [[16, "field-attributes-of-tables"]], "cell field": [[16, "cell-field"]], "cell.ref": [[16, "cell-ref"]], "cell.label": [[16, "cell-label"]], "cell.text": [[16, "cell-text"]], "cell.text_color": [[16, "cell-text-color"]], "cell.background_color": [[16, "cell-background-color"]], "plt field": [[16, "plt-field"]], "index / columns field": [[16, "index-columns-field"]], "proxy field": [[16, "proxy-field"]], "text_color / background_color field": [[16, "text-color-background-color-field"]], "formatter / validator field": [[16, "formatter-validator-field"]], "dtypes field": [[16, "dtypes-field"]], "View Tables in Different Modes": [[17, "view-tables-in-different-modes"]], "Dual View": [[17, "dual-view"]], "Popup View": [[17, "popup-view"]], "Tile View": [[17, "tile-view"]], "How tiling works": [[17, "how-tiling-works"]], "Untiling": [[17, "untiling"]], "User Interface": [[18, "user-interface"]], "Move and scroll": [[18, "move-and-scroll"]], "Zoom": [[18, "zoom"]], "Resize": [[18, "resize"]], "Edit cells and headers": [[18, "edit-cells-and-headers"]], "Excel-style data evaluation": [[18, "excel-style-data-evaluation"]], "Scalar value": [[18, "scalar-value"]], "Column vector": [[18, "column-vector"]], "Row vector": [[18, "row-vector"]], "Evaluate with references": [[18, "evaluate-with-references"]], "User-defined namespace": [[18, "user-defined-namespace"]], "Add cell labels": [[18, "add-cell-labels"]], "Table Tabs": [[18, "table-tabs"]], "Toolbar": [[18, "toolbar"]], "Home menu": [[18, "home-menu"]], "Edit menu": [[18, "edit-menu"]], "Table menu": [[18, "table-menu"]], "Analyze menu": [[18, "analyze-menu"]], "View menu": [[18, "view-menu"]], "Plot menu": [[18, "plot-menu"]]}, "indexentries": {"brightenedcolormap (class in tabulous.color)": [[1, "tabulous.color.BrightenedColormap"]], "cellnamespacemock (class in tabulous.post_init)": [[1, "tabulous.post_init.CellNamespaceMock"]], "colortuple (class in tabulous.color)": [[1, "tabulous.color.ColorTuple"]], "commandpalettemock (class in tabulous.post_init)": [[1, "tabulous.post_init.CommandPaletteMock"]], "consolemock (class in tabulous.post_init)": [[1, "tabulous.post_init.ConsoleMock"]], "contextregisterable (class in tabulous.post_init)": [[1, "tabulous.post_init.ContextRegisterable"]], "convertedcolormap (class in tabulous.color)": [[1, "tabulous.color.ConvertedColormap"]], "deleted (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.DELETED"]], "exceptionhandler (class in tabulous.exceptions)": [[1, "tabulous.exceptions.ExceptionHandler"]], "headerinfo (class in tabulous.types)": [[1, "tabulous.types.HeaderInfo"]], "inserted (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.INSERTED"]], "initializer (class in tabulous.post_init)": [[1, "tabulous.post_init.Initializer"]], "invertedcolormap (class in tabulous.color)": [[1, "tabulous.color.InvertedColormap"]], "iteminfo (class in tabulous.types)": [[1, "tabulous.types.ItemInfo"]], "keymapmock (class in tabulous.post_init)": [[1, "tabulous.post_init.KeyMapMock"]], "magictableviewer (class in tabulous)": [[1, "tabulous.MagicTableViewer"]], "opacitycolormap (class in tabulous.color)": [[1, "tabulous.color.OpacityColormap"]], "selectionrangeerror": [[1, "tabulous.exceptions.SelectionRangeError"]], "tableinfo (class in tabulous.types)": [[1, "tabulous.types.TableInfo"]], "tableinitializer (class in tabulous.post_init)": [[1, "tabulous.post_init.TableInitializer"]], "tableviewer (class in tabulous)": [[1, "tabulous.TableViewer"]], "tableviewerwidget (class in tabulous)": [[1, "tabulous.TableViewerWidget"]], "viewerinitializer (class in tabulous.post_init)": [[1, "tabulous.post_init.ViewerInitializer"]], "a (tabulous.color.colortuple attribute)": [[1, "tabulous.color.ColorTuple.a"]], "add_dock_widget() (tabulous.tableviewer method)": [[1, "tabulous.TableViewer.add_dock_widget"]], "add_widget() (tabulous.tableviewerwidget method)": [[1, "tabulous.TableViewerWidget.add_widget"]], "b (tabulous.color.colortuple attribute)": [[1, "tabulous.color.ColorTuple.b"]], "brighten() (tabulous.color.colortuple method)": [[1, "tabulous.color.ColorTuple.brighten"]], "cell (tabulous.post_init.tableinitializer attribute)": [[1, "tabulous.post_init.TableInitializer.cell"]], "cell_namespace (tabulous.post_init.viewerinitializer attribute)": [[1, "tabulous.post_init.ViewerInitializer.cell_namespace"]], "col (tabulous.types.iteminfo property)": [[1, "tabulous.types.ItemInfo.col"]], "column (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.column"]], "columns (tabulous.post_init.tableinitializer attribute)": [[1, "tabulous.post_init.TableInitializer.columns"]], "command_palette (tabulous.post_init.viewerinitializer attribute)": [[1, "tabulous.post_init.ViewerInitializer.command_palette"]], "config (tabulous.tableviewer property)": [[1, "tabulous.TableViewer.config"]], "console (tabulous.post_init.viewerinitializer attribute)": [[1, "tabulous.post_init.ViewerInitializer.console"]], "current_viewer() (in module tabulous)": [[1, "tabulous.current_viewer"]], "current_viewer() (in module tabulous.core)": [[1, "tabulous.core.current_viewer"]], "equals() (tabulous.color.colortuple method)": [[1, "tabulous.color.ColorTuple.equals"]], "events (tabulous.tableviewer attribute)": [[1, "tabulous.TableViewer.events"]], "events (tabulous.tableviewerwidget attribute)": [[1, "tabulous.TableViewerWidget.events"]], "from_colormap() (tabulous.color.brightenedcolormap class method)": [[1, "tabulous.color.BrightenedColormap.from_colormap"]], "from_colormap() (tabulous.color.invertedcolormap class method)": [[1, "tabulous.color.InvertedColormap.from_colormap"]], "from_colormap() (tabulous.color.opacitycolormap class method)": [[1, "tabulous.color.OpacityColormap.from_colormap"]], "from_hlsa() (tabulous.color.colortuple class method)": [[1, "tabulous.color.ColorTuple.from_hlsa"]], "from_hsva() (tabulous.color.colortuple class method)": [[1, "tabulous.color.ColorTuple.from_hsva"]], "from_html() (tabulous.color.colortuple class method)": [[1, "tabulous.color.ColorTuple.from_html"]], "g (tabulous.color.colortuple attribute)": [[1, "tabulous.color.ColorTuple.g"]], "get_initializers() (in module tabulous.post_init)": [[1, "tabulous.post_init.get_initializers"]], "hlsa (tabulous.color.colortuple property)": [[1, "tabulous.color.ColorTuple.hlsa"]], "hsva (tabulous.color.colortuple property)": [[1, "tabulous.color.ColorTuple.hsva"]], "html (tabulous.color.colortuple property)": [[1, "tabulous.color.ColorTuple.html"]], "index (tabulous.post_init.tableinitializer attribute)": [[1, "tabulous.post_init.TableInitializer.index"]], "index (tabulous.types.headerinfo attribute)": [[1, "tabulous.types.HeaderInfo.index"]], "initialize_table() (tabulous.post_init.tableinitializer method)": [[1, "tabulous.post_init.TableInitializer.initialize_table"]], "initialize_viewer() (tabulous.post_init.viewerinitializer method)": [[1, "tabulous.post_init.ViewerInitializer.initialize_viewer"]], "join() (tabulous.post_init.initializer method)": [[1, "tabulous.post_init.Initializer.join"]], "keymap (tabulous.post_init.tableinitializer attribute)": [[1, "tabulous.post_init.TableInitializer.keymap"]], "keymap (tabulous.post_init.viewerinitializer attribute)": [[1, "tabulous.post_init.ViewerInitializer.keymap"]], "mix() (tabulous.color.colortuple method)": [[1, "tabulous.color.ColorTuple.mix"]], "module": [[1, "module-tabulous"], [1, "module-tabulous.color"], [1, "module-tabulous.core"], [1, "module-tabulous.exceptions"], [1, "module-tabulous.post_init"], [1, "module-tabulous.threading"], [1, "module-tabulous.types"], [2, "module-tabulous.commands"], [2, "module-tabulous.commands.analysis"], [2, "module-tabulous.commands.column"], [2, "module-tabulous.commands.file"], [2, "module-tabulous.commands.plot"], [2, "module-tabulous.commands.selection"], [2, "module-tabulous.commands.tab"], [2, "module-tabulous.commands.table"], [2, "module-tabulous.commands.view"], [2, "module-tabulous.commands.window"], [3, "module-tabulous.style"], [4, "module-tabulous.widgets"]], "native (tabulous.magictableviewer property)": [[1, "tabulous.MagicTableViewer.native"]], "normalize_color() (in module tabulous.color)": [[1, "tabulous.color.normalize_color"]], "old_value (tabulous.types.headerinfo attribute)": [[1, "tabulous.types.HeaderInfo.old_value"]], "old_value (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.old_value"]], "opacity (tabulous.color.colortuple property)": [[1, "tabulous.color.ColorTuple.opacity"]], "open_sample() (in module tabulous)": [[1, "tabulous.open_sample"]], "open_sample() (in module tabulous.core)": [[1, "tabulous.core.open_sample"]], "r (tabulous.color.colortuple attribute)": [[1, "tabulous.color.ColorTuple.r"]], "read_csv() (in module tabulous)": [[1, "tabulous.read_csv"]], "read_csv() (in module tabulous.core)": [[1, "tabulous.core.read_csv"]], "read_excel() (in module tabulous)": [[1, "tabulous.read_excel"]], "read_excel() (in module tabulous.core)": [[1, "tabulous.core.read_excel"]], "register() (tabulous.post_init.commandpalettemock method)": [[1, "tabulous.post_init.CommandPaletteMock.register"]], "register() (tabulous.post_init.contextregisterable method)": [[1, "tabulous.post_init.ContextRegisterable.register"]], "register() (tabulous.post_init.keymapmock method)": [[1, "tabulous.post_init.KeyMapMock.register"]], "remove_dock_widget() (tabulous.tableviewer method)": [[1, "tabulous.TableViewer.remove_dock_widget"]], "reset_choices() (tabulous.tableviewer method)": [[1, "tabulous.TableViewer.reset_choices"]], "rgba_to_str() (in module tabulous.color)": [[1, "tabulous.color.rgba_to_str"]], "row (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.row"]], "set_current_viewer() (in module tabulous.core)": [[1, "tabulous.core.set_current_viewer"]], "tables (tabulous.post_init.viewerinitializer attribute)": [[1, "tabulous.post_init.ViewerInitializer.tables"]], "tabulous": [[1, "module-tabulous"]], "tabulous.color": [[1, "module-tabulous.color"]], "tabulous.core": [[1, "module-tabulous.core"]], "tabulous.exceptions": [[1, "module-tabulous.exceptions"]], "tabulous.post_init": [[1, "module-tabulous.post_init"]], "tabulous.threading": [[1, "module-tabulous.threading"]], "tabulous.types": [[1, "module-tabulous.types"]], "thread_worker() (in module tabulous.threading)": [[1, "tabulous.threading.thread_worker"]], "value (tabulous.types.headerinfo attribute)": [[1, "tabulous.types.HeaderInfo.value"]], "value (tabulous.types.iteminfo attribute)": [[1, "tabulous.types.ItemInfo.value"]], "view_spreadsheet() (in module tabulous)": [[1, "tabulous.view_spreadsheet"]], "view_spreadsheet() (in module tabulous.core)": [[1, "tabulous.core.view_spreadsheet"]], "view_table() (in module tabulous)": [[1, "tabulous.view_table"]], "view_table() (in module tabulous.core)": [[1, "tabulous.core.view_table"]], "plotinfo (class in tabulous.commands.plot)": [[2, "tabulous.commands.plot.PlotInfo"]], "activate_left() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.activate_left"]], "activate_right() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.activate_right"]], "add_file_explorer() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.add_file_explorer"]], "add_highlight() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.add_highlight"]], "add_text_edit() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.add_text_edit"]], "adjust_brightness_background_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.adjust_brightness_background_colormap"]], "adjust_brightness_text_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.adjust_brightness_text_colormap"]], "bar() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.bar"]], "barplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.barplot"]], "boxenplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.boxenplot"]], "boxplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.boxplot"]], "close_window() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.close_window"]], "columns (tabulous.commands.plot.plotinfo attribute)": [[2, "tabulous.commands.plot.PlotInfo.columns"]], "concat() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.concat"]], "copy_as_html() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_html"]], "copy_as_latex() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_latex"]], "copy_as_literal() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_literal"]], "copy_as_markdown() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_markdown"]], "copy_as_new_spreadsheet() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_new_spreadsheet"]], "copy_as_new_table() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_new_table"]], "copy_as_rst_grid() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_rst_grid"]], "copy_as_rst_simple() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_as_rst_simple"]], "copy_as_spreadsheet() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.copy_as_spreadsheet"]], "copy_as_table() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.copy_as_table"]], "copy_data_comma_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_data_comma_separated"]], "copy_data_tab_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_data_tab_separated"]], "copy_data_with_header_comma_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_data_with_header_comma_separated"]], "copy_data_with_header_tab_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.copy_data_with_header_tab_separated"]], "copy_to_clipboard() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.copy_to_clipboard"]], "cut_data() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.cut_data"]], "date_range() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.date_range"]], "delete_selected_highlight() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.delete_selected_highlight"]], "delete_tab() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.delete_tab"]], "delete_values() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.delete_values"]], "dropna() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.dropna"]], "edit_current() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.edit_current"]], "errorbar() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.errorbar"]], "fill_between() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.fill_between"]], "fill_betweenx() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.fill_betweenx"]], "fillna() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.fillna"]], "filter_by_columns() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.filter_by_columns"]], "focus_table() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.focus_table"]], "hist() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.hist"]], "insert_column_left() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.insert_column_left"]], "insert_column_right() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.insert_column_right"]], "insert_row_above() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.insert_row_above"]], "insert_row_below() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.insert_row_below"]], "interval_range() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.interval_range"]], "invert_background_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.invert_background_colormap"]], "invert_text_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.invert_text_colormap"]], "iter_commands() (in module tabulous.commands)": [[2, "tabulous.commands.iter_commands"]], "jump_to_cell() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.jump_to_cell"]], "melt() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.melt"]], "merge() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.merge"]], "names (tabulous.commands.plot.plotinfo attribute)": [[2, "tabulous.commands.plot.PlotInfo.names"]], "new_figure() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.new_figure"]], "new_spreadsheet() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.new_spreadsheet"]], "new_window() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.new_window"]], "open_sample() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.open_sample"]], "open_spreadsheet() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.open_spreadsheet"]], "open_table() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.open_table"]], "paste_data_comma_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_comma_separated"]], "paste_data_from_markdown() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_from_markdown"]], "paste_data_from_numpy_string() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_from_numpy_string"]], "paste_data_from_rst() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_from_rst"]], "paste_data_space_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_space_separated"]], "paste_data_tab_separated() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.paste_data_tab_separated"]], "period_range() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.period_range"]], "pivot() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.pivot"]], "plot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.plot"]], "polynomial_fit() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.polynomial_fit"]], "raise_slot_error() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.raise_slot_error"]], "random() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.random"]], "redo_table() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.redo_table"]], "register_command() (in module tabulous.commands)": [[2, "tabulous.commands.register_command"]], "remove_selected_columns() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.remove_selected_columns"]], "remove_selected_rows() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.remove_selected_rows"]], "rename_tab() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.rename_tab"]], "reset_background_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.reset_background_colormap"]], "reset_proxy() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.reset_proxy"]], "reset_text_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.reset_text_colormap"]], "reset_text_formatter() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.reset_text_formatter"]], "reset_view_mode() (in module tabulous.commands.view)": [[2, "tabulous.commands.view.reset_view_mode"]], "round() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.round"]], "run_cut() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.run_cut"]], "run_groupby() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.run_groupby"]], "save_as_xlsx() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.save_as_xlsx"]], "save_table() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.save_table"]], "save_table_to_source() (in module tabulous.commands.file)": [[2, "tabulous.commands.file.save_table_to_source"]], "scatter() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.scatter"]], "select_all() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.select_all"]], "set_background_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.set_background_colormap"]], "set_background_colormap_opacity() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.set_background_colormap_opacity"]], "set_column_dtype() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.set_column_dtype"]], "set_dual_h_mode() (in module tabulous.commands.view)": [[2, "tabulous.commands.view.set_dual_h_mode"]], "set_dual_v_mode() (in module tabulous.commands.view)": [[2, "tabulous.commands.view.set_dual_v_mode"]], "set_popup_mode() (in module tabulous.commands.view)": [[2, "tabulous.commands.view.set_popup_mode"]], "set_text_colormap() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.set_text_colormap"]], "set_text_colormap_opacity() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.set_text_colormap_opacity"]], "set_text_formatter() (in module tabulous.commands.column)": [[2, "tabulous.commands.column.set_text_formatter"]], "show_command_palette() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.show_command_palette"]], "show_context_menu() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.show_context_menu"]], "show_eval_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_eval_widget"]], "show_filter_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_filter_widget"]], "show_finder_widget() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.show_finder_widget"]], "show_keymap() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.show_keymap"]], "show_optimizer_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_optimizer_widget"]], "show_preference() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.show_preference"]], "show_scipy_stats_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_scipy_stats_widget"]], "show_sklearn_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_sklearn_widget"]], "show_stats_widget() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.show_stats_widget"]], "show_undo_stack_view() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.show_undo_stack_view"]], "shuffle_data_column_wise() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.shuffle_data_column_wise"]], "sort_by_columns() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.sort_by_columns"]], "sort_inplace() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.sort_inplace"]], "stripplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.stripplot"]], "summarize_table() (in module tabulous.commands.analysis)": [[2, "tabulous.commands.analysis.summarize_table"]], "swap_tab_with_left() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.swap_tab_with_left"]], "swap_tab_with_right() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.swap_tab_with_right"]], "swarmplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.swarmplot"]], "switch_columns() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.switch_columns"]], "switch_index() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.switch_index"]], "switch_layout() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.switch_layout"]], "tabulous.commands": [[2, "module-tabulous.commands"]], "tabulous.commands.analysis": [[2, "module-tabulous.commands.analysis"]], "tabulous.commands.column": [[2, "module-tabulous.commands.column"]], "tabulous.commands.file": [[2, "module-tabulous.commands.file"]], "tabulous.commands.plot": [[2, "module-tabulous.commands.plot"]], "tabulous.commands.selection": [[2, "module-tabulous.commands.selection"]], "tabulous.commands.tab": [[2, "module-tabulous.commands.tab"]], "tabulous.commands.table": [[2, "module-tabulous.commands.table"]], "tabulous.commands.view": [[2, "module-tabulous.commands.view"]], "tabulous.commands.window": [[2, "module-tabulous.commands.window"]], "tile_tables() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.tile_tables"]], "tile_with_adjacent_table() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.tile_with_adjacent_table"]], "timedelta_range() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.timedelta_range"]], "toggle_console() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.toggle_console"]], "toggle_editability() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.toggle_editability"]], "toggle_focus() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.toggle_focus"]], "toggle_fullscreen() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.toggle_fullscreen"]], "toggle_toolbar() (in module tabulous.commands.window)": [[2, "tabulous.commands.window.toggle_toolbar"]], "transpose() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.transpose"]], "undo_table() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.undo_table"]], "untile_table() (in module tabulous.commands.tab)": [[2, "tabulous.commands.tab.untile_table"]], "violinplot() (in module tabulous.commands.plot)": [[2, "tabulous.commands.plot.violinplot"]], "write_data_reference_in_console() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.write_data_reference_in_console"]], "write_data_signal_in_console() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.write_data_signal_in_console"]], "write_slice_in_console() (in module tabulous.commands.selection)": [[2, "tabulous.commands.selection.write_slice_in_console"]], "zoom_in() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.zoom_in"]], "zoom_out() (in module tabulous.commands.table)": [[2, "tabulous.commands.table.zoom_out"]], "style (class in tabulous.style)": [[3, "tabulous.style.Style"]], "background (tabulous.style.style attribute)": [[3, "tabulous.style.Style.background"]], "background0 (tabulous.style.style attribute)": [[3, "tabulous.style.Style.background0"]], "background1 (tabulous.style.style attribute)": [[3, "tabulous.style.Style.background1"]], "base_color (tabulous.style.style attribute)": [[3, "tabulous.style.Style.base_color"]], "cell_highlight (tabulous.style.style attribute)": [[3, "tabulous.style.Style.cell_highlight"]], "cell_selection (tabulous.style.style attribute)": [[3, "tabulous.style.Style.cell_selection"]], "foreground (tabulous.style.style attribute)": [[3, "tabulous.style.Style.foreground"]], "format_file() (tabulous.style.style method)": [[3, "tabulous.style.Style.format_file"]], "format_text() (tabulous.style.style method)": [[3, "tabulous.style.Style.format_text"]], "from_global() (tabulous.style.style class method)": [[3, "tabulous.style.Style.from_global"]], "highlight0 (tabulous.style.style attribute)": [[3, "tabulous.style.Style.highlight0"]], "highlight1 (tabulous.style.style attribute)": [[3, "tabulous.style.Style.highlight1"]], "inv_color (tabulous.style.style attribute)": [[3, "tabulous.style.Style.inv_color"]], "tabulous.style": [[3, "module-tabulous.style"]], "groupby (class in tabulous.widgets)": [[4, "tabulous.widgets.GroupBy"]], "magicspreadsheet (class in tabulous.widgets)": [[4, "tabulous.widgets.MagicSpreadSheet"]], "magictable (class in tabulous.widgets)": [[4, "tabulous.widgets.MagicTable"]], "spreadsheet (class in tabulous.widgets)": [[4, "tabulous.widgets.SpreadSheet"]], "table (class in tabulous.widgets)": [[4, "tabulous.widgets.Table"]], "tablebase (class in tabulous.widgets)": [[4, "tabulous.widgets.TableBase"]], "tabledisplay (class in tabulous.widgets)": [[4, "tabulous.widgets.TableDisplay"]], "tableviewer (class in tabulous.widgets)": [[4, "tabulous.widgets.TableViewer"]], "tableviewerbase (class in tabulous.widgets)": [[4, "tabulous.widgets.TableViewerBase"]], "tableviewerwidget (class in tabulous.widgets)": [[4, "tabulous.widgets.TableViewerWidget"]], "add_dock_widget() (tabulous.widgets.tableviewer method)": [[4, "tabulous.widgets.TableViewer.add_dock_widget"]], "add_groupby() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.add_groupby"]], "add_item_widget() (tabulous.widgets.spreadsheet method)": [[4, "tabulous.widgets.SpreadSheet.add_item_widget"]], "add_layer() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.add_layer"]], "add_loader() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.add_loader"]], "add_overlay_widget() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.add_overlay_widget"]], "add_side_widget() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.add_side_widget"]], "add_spreadsheet() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.add_spreadsheet"]], "add_table() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.add_table"]], "add_widget() (tabulous.widgets.tableviewerwidget method)": [[4, "tabulous.widgets.TableViewerWidget.add_widget"]], "background_color (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.background_color"]], "background_colormap() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.background_colormap"]], "cell (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.cell"]], "cell_namespace (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.cell_namespace"]], "cellref (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.cellref"]], "close() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.close"]], "columns (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.columns"]], "command_palette (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.command_palette"]], "config (tabulous.widgets.tableviewer property)": [[4, "tabulous.widgets.TableViewer.config"]], "console (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.console"]], "copy_data() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.copy_data"]], "current_group (tabulous.widgets.groupby property)": [[4, "tabulous.widgets.GroupBy.current_group"]], "current_index (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.current_index"]], "current_index (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.current_index"]], "current_table (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.current_table"]], "data (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.data"]], "data_shown (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.data_shown"]], "dtypes (tabulous.widgets.spreadsheet attribute)": [[4, "tabulous.widgets.SpreadSheet.dtypes"]], "editable (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.editable"]], "events (tabulous.widgets.tableviewer attribute)": [[4, "tabulous.widgets.TableViewer.events"]], "events (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.events"]], "events (tabulous.widgets.tableviewerwidget attribute)": [[4, "tabulous.widgets.TableViewerWidget.events"]], "foreground_colormap() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.foreground_colormap"]], "formatter (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.formatter"]], "highlights (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.highlights"]], "history_manager (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.history_manager"]], "iloc (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.iloc"]], "index (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.index"]], "interval (tabulous.widgets.tabledisplay property)": [[4, "tabulous.widgets.TableDisplay.interval"]], "layout (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.layout"]], "loader (tabulous.widgets.tabledisplay property)": [[4, "tabulous.widgets.TableDisplay.loader"]], "loc (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.loc"]], "metadata (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.metadata"]], "move_iloc() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.move_iloc"]], "move_loc() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.move_loc"]], "mutable (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.mutable"]], "name (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.name"]], "native (tabulous.widgets.magicspreadsheet property)": [[4, "tabulous.widgets.MagicSpreadSheet.native"]], "native (tabulous.widgets.magictable property)": [[4, "tabulous.widgets.MagicTable.native"]], "native (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.native"]], "native (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.native"]], "open() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.open"]], "open_sample() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.open_sample"]], "paste_data() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.paste_data"]], "plt (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.plt"]], "proxy (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.proxy"]], "refresh() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.refresh"]], "remove_dock_widget() (tabulous.widgets.tableviewer method)": [[4, "tabulous.widgets.TableViewer.remove_dock_widget"]], "reset_choices() (tabulous.widgets.tableviewer method)": [[4, "tabulous.widgets.TableViewer.reset_choices"]], "resize() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.resize"]], "running (tabulous.widgets.tabledisplay property)": [[4, "tabulous.widgets.TableDisplay.running"]], "save() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.save"]], "save() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.save"]], "save_all() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.save_all"]], "save_screenshot() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.save_screenshot"]], "save_screenshot() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.save_screenshot"]], "screenshot() (tabulous.widgets.tablebase method)": [[4, "tabulous.widgets.TableBase.screenshot"]], "screenshot() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.screenshot"]], "selections (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.selections"]], "show() (tabulous.widgets.tableviewerbase method)": [[4, "tabulous.widgets.TableViewerBase.show"]], "size (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.size"]], "source (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.source"]], "status (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.status"]], "table_shape (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.table_shape"]], "table_type (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.table_type"]], "tables (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.tables"]], "tabulous.widgets": [[4, "module-tabulous.widgets"]], "text_color (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.text_color"]], "text_formatter (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.text_formatter"]], "theme (tabulous.widgets.tableviewerbase property)": [[4, "tabulous.widgets.TableViewerBase.theme"]], "toolbar (tabulous.widgets.tableviewerbase attribute)": [[4, "tabulous.widgets.TableViewerBase.toolbar"]], "undo_manager (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.undo_manager"]], "validator (tabulous.widgets.tablebase attribute)": [[4, "tabulous.widgets.TableBase.validator"]], "view_mode (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.view_mode"]], "zoom (tabulous.widgets.tablebase property)": [[4, "tabulous.widgets.TableBase.zoom"]]}}) diff --git a/image/colormap_example.png b/image/colormap_example.png index 6c3572e4..534d6a6b 100644 Binary files a/image/colormap_example.png and b/image/colormap_example.png differ diff --git a/image/command_palette_example.png b/image/command_palette_example.png index b8882bf3..d3e3e5f5 100644 Binary files a/image/command_palette_example.png and b/image/command_palette_example.png differ diff --git a/image/custom_widget_example.png b/image/custom_widget_example.png index 10ab7839..6414c31b 100644 Binary files a/image/custom_widget_example.png and b/image/custom_widget_example.png differ diff --git a/image/eval_example.png b/image/eval_example.png index a9a1ac5a..bfe32a3a 100644 Binary files a/image/eval_example.png and b/image/eval_example.png differ diff --git a/image/filter_example.png b/image/filter_example.png index 0182bb2e..93e05ee2 100644 Binary files a/image/filter_example.png and b/image/filter_example.png differ diff --git a/image/sort_example.png b/image/sort_example.png index 2a4da207..44dfc7f6 100644 Binary files a/image/sort_example.png and b/image/sort_example.png differ diff --git a/image/viewer_example.png b/image/viewer_example.png index b5c303b2..2e89d757 100644 Binary files a/image/viewer_example.png and b/image/viewer_example.png differ diff --git a/rst/fig/cell_labels.png b/rst/fig/cell_labels.png index bf1484c3..debe0590 100644 Binary files a/rst/fig/cell_labels.png and b/rst/fig/cell_labels.png differ diff --git a/rst/fig/colormap.png b/rst/fig/colormap.png index df9ea7f4..adeec67a 100644 Binary files a/rst/fig/colormap.png and b/rst/fig/colormap.png differ diff --git a/rst/fig/colormap_interpolate.png b/rst/fig/colormap_interpolate.png index 4834e950..dbe6f925 100644 Binary files a/rst/fig/colormap_interpolate.png and b/rst/fig/colormap_interpolate.png differ diff --git a/rst/fig/column_filter.png b/rst/fig/column_filter.png index 228d7f5f..f8078b07 100644 Binary files a/rst/fig/column_filter.png and b/rst/fig/column_filter.png differ diff --git a/rst/fig/command_palette.png b/rst/fig/command_palette.png index f2e9b08a..4666403a 100644 Binary files a/rst/fig/command_palette.png and b/rst/fig/command_palette.png differ diff --git a/rst/fig/dock_with_table_data_annotation.png b/rst/fig/dock_with_table_data_annotation.png index 3c3cdcdf..6e0a1141 100644 Binary files a/rst/fig/dock_with_table_data_annotation.png and b/rst/fig/dock_with_table_data_annotation.png differ diff --git a/rst/fig/edit_cell.png b/rst/fig/edit_cell.png index b7f0a334..752e56ae 100644 Binary files a/rst/fig/edit_cell.png and b/rst/fig/edit_cell.png differ diff --git a/rst/fig/formatter.png b/rst/fig/formatter.png index 5ab94815..e123446b 100644 Binary files a/rst/fig/formatter.png and b/rst/fig/formatter.png differ diff --git a/rst/fig/spreadsheet.png b/rst/fig/spreadsheet.png index 67242f72..99fbabce 100644 Binary files a/rst/fig/spreadsheet.png and b/rst/fig/spreadsheet.png differ diff --git a/rst/fig/table.png b/rst/fig/table.png index bea89640..77f185be 100644 Binary files a/rst/fig/table.png and b/rst/fig/table.png differ diff --git a/rst/fig/tile_tables.png b/rst/fig/tile_tables.png index 0ea67311..aa3f1892 100644 Binary files a/rst/fig/tile_tables.png and b/rst/fig/tile_tables.png differ diff --git a/rst/fig/validator.png b/rst/fig/validator.png index dfb2f3e1..2d92ec54 100644 Binary files a/rst/fig/validator.png and b/rst/fig/validator.png differ diff --git a/tabulous/__init__.py b/tabulous/__init__.py index bb71f595..d172bb8c 100644 --- a/tabulous/__init__.py +++ b/tabulous/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.5.3" +__version__ = "0.5.4" from tabulous.widgets import TableViewer, TableViewerWidget from tabulous.core import ( diff --git a/tabulous/_qt/_table/_base/_table_base.py b/tabulous/_qt/_table/_base/_table_base.py index 331b2e2f..9675f991 100644 --- a/tabulous/_qt/_table/_base/_table_base.py +++ b/tabulous/_qt/_table/_base/_table_base.py @@ -713,8 +713,8 @@ def addOverlayWidget( index_br = self._qtable_view.model().index(bottom_int, right_int) rect_br = self._qtable_view.visualRect(index_br) - _w = rect_br.width() * right_res - _h = rect_br.height() * bottom_res + _w = int(rect_br.width() * right_res) + _h = int(rect_br.height() * bottom_res) rect_br.setBottom(rect_br.bottom() + _h) rect_br.setRight(rect_br.right() + _w) rect = rect_tl.united(rect_br)

                    A

                    B