tksheet 7.4.5__py3-none-any.whl → 7.4.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tksheet/sheet.py CHANGED
@@ -9,7 +9,7 @@ from itertools import accumulate, chain, filterfalse, islice, product, repeat
9
9
  from operator import attrgetter
10
10
  from timeit import default_timer
11
11
  from tkinter import ttk
12
- from typing import Literal
12
+ from typing import Any, Literal
13
13
 
14
14
  from .column_headers import ColumnHeaders
15
15
  from .constants import (
@@ -77,7 +77,7 @@ from .themes import (
77
77
  theme_light_blue,
78
78
  theme_light_green,
79
79
  )
80
- from .tksheet_types import AnyIter, CellPropertyKey, CreateSpanTypes
80
+ from .tksheet_types import AnyIter, Binding, CellPropertyKey, CreateSpanTypes, ExtraBinding
81
81
  from .top_left_rectangle import TopLeftRectangle
82
82
 
83
83
 
@@ -94,14 +94,14 @@ class Sheet(tk.Frame):
94
94
  show_y_scrollbar: bool = True,
95
95
  width: int | None = None,
96
96
  height: int | None = None,
97
- headers: None | list[object] = None,
98
- header: None | list[object] = None,
99
- row_index: None | list[object] = None,
100
- index: None | list[object] = None,
97
+ headers: None | list[Any] = None,
98
+ header: None | list[Any] = None,
99
+ row_index: None | list[Any] = None,
100
+ index: None | list[Any] = None,
101
101
  default_header: Literal["letters", "numbers", "both"] | None = "letters",
102
102
  default_row_index: Literal["letters", "numbers", "both"] | None = "numbers",
103
- data_reference: None | Sequence[Sequence[object]] = None,
104
- data: None | Sequence[Sequence[object]] = None,
103
+ data_reference: None | Sequence[Sequence[Any]] = None,
104
+ data: None | Sequence[Sequence[Any]] = None,
105
105
  # either (start row, end row, "rows"), (start column, end column, "rows") or
106
106
  # (cells start row, cells start column, cells end row, cells end column, "cells") # noqa: E501
107
107
  startup_select: tuple[int, int, str] | tuple[int, int, int, int, str] = None,
@@ -531,7 +531,7 @@ class Sheet(tk.Frame):
531
531
 
532
532
  def set_header_data(
533
533
  self,
534
- value: object,
534
+ value: Any,
535
535
  c: int | None | AnyIter[int] = None,
536
536
  redraw: bool = True,
537
537
  ) -> Sheet:
@@ -550,12 +550,12 @@ class Sheet(tk.Frame):
550
550
 
551
551
  def headers(
552
552
  self,
553
- newheaders: object = None,
553
+ newheaders: Any = None,
554
554
  index: None | int = None,
555
555
  reset_col_positions: bool = False,
556
556
  show_headers_if_not_sheet: bool = True,
557
557
  redraw: bool = True,
558
- ) -> object:
558
+ ) -> Any:
559
559
  self.set_refresh_timer(redraw)
560
560
  return self.MT.headers(
561
561
  newheaders,
@@ -567,7 +567,7 @@ class Sheet(tk.Frame):
567
567
 
568
568
  def set_index_data(
569
569
  self,
570
- value: object,
570
+ value: Any,
571
571
  r: int | None | AnyIter[int] = None,
572
572
  redraw: bool = True,
573
573
  ) -> Sheet:
@@ -586,12 +586,12 @@ class Sheet(tk.Frame):
586
586
 
587
587
  def row_index(
588
588
  self,
589
- newindex: object = None,
589
+ newindex: Any = None,
590
590
  index: None | int = None,
591
591
  reset_row_positions: bool = False,
592
592
  show_index_if_not_sheet: bool = True,
593
593
  redraw: bool = True,
594
- ) -> object:
594
+ ) -> Any:
595
595
  self.set_refresh_timer(redraw)
596
596
  return self.MT.row_index(
597
597
  newindex,
@@ -603,7 +603,7 @@ class Sheet(tk.Frame):
603
603
 
604
604
  # Bindings and Functionality
605
605
 
606
- def enable_bindings(self, *bindings: str) -> Sheet:
606
+ def enable_bindings(self, *bindings: Binding) -> Sheet:
607
607
  """
608
608
  List of available bindings:
609
609
  - "all"
@@ -653,7 +653,7 @@ class Sheet(tk.Frame):
653
653
  self.MT.enable_bindings(bindings)
654
654
  return self
655
655
 
656
- def disable_bindings(self, *bindings: str) -> Sheet:
656
+ def disable_bindings(self, *bindings: Binding) -> Sheet:
657
657
  """
658
658
  List of available bindings:
659
659
  - "all"
@@ -700,7 +700,7 @@ class Sheet(tk.Frame):
700
700
 
701
701
  def extra_bindings(
702
702
  self,
703
- bindings: str | list | tuple | None = None,
703
+ bindings: ExtraBinding | Sequence[ExtraBinding] | None = None,
704
704
  func: Callable | None = None,
705
705
  ) -> Sheet:
706
706
  """
@@ -1260,27 +1260,25 @@ class Sheet(tk.Frame):
1260
1260
  canvas.basic_bindings(enable)
1261
1261
  return self
1262
1262
 
1263
- def cut(self, event: object = None, validation: bool = True) -> None | EventDataDict:
1263
+ def cut(self, event: Any = None, validation: bool = True) -> None | EventDataDict:
1264
1264
  return self.MT.ctrl_x(event, validation)
1265
1265
 
1266
- def copy(self, event: object = None) -> None | EventDataDict:
1266
+ def copy(self, event: Any = None) -> None | EventDataDict:
1267
1267
  return self.MT.ctrl_c(event)
1268
1268
 
1269
- def paste(self, event: object = None, validation: bool = True) -> None | EventDataDict:
1269
+ def paste(self, event: Any = None, validation: bool = True) -> None | EventDataDict:
1270
1270
  return self.MT.ctrl_v(event, validation)
1271
1271
 
1272
- def delete(self, event: object = None, validation: bool = True) -> None | EventDataDict:
1272
+ def delete(self, event: Any = None, validation: bool = True) -> None | EventDataDict:
1273
1273
  return self.MT.delete_key(event, validation)
1274
1274
 
1275
- def undo(self, event: object = None) -> None | EventDataDict:
1275
+ def undo(self, event: Any = None) -> None | EventDataDict:
1276
1276
  return self.MT.undo(event)
1277
1277
 
1278
- def redo(self, event: object = None) -> None | EventDataDict:
1278
+ def redo(self, event: Any = None) -> None | EventDataDict:
1279
1279
  return self.MT.redo(event)
1280
1280
 
1281
- def has_focus(
1282
- self,
1283
- ) -> bool:
1281
+ def has_focus(self) -> bool:
1284
1282
  """
1285
1283
  Check if any Sheet widgets have focus
1286
1284
  Includes child widgets such as scroll bars
@@ -1340,10 +1338,10 @@ class Sheet(tk.Frame):
1340
1338
  hdisp: bool = True,
1341
1339
  transposed: bool = False,
1342
1340
  ndim: int = 0,
1343
- convert: object = None,
1341
+ convert: Any = None,
1344
1342
  undo: bool = True,
1345
1343
  emit_event: bool = False,
1346
- widget: object = None,
1344
+ widget: Any = None,
1347
1345
  expand: None | str = None,
1348
1346
  formatter_options: dict | None = None,
1349
1347
  **kwargs,
@@ -1386,10 +1384,7 @@ class Sheet(tk.Frame):
1386
1384
 
1387
1385
  # Named Spans
1388
1386
 
1389
- def named_span(
1390
- self,
1391
- span: Span,
1392
- ) -> Span:
1387
+ def named_span(self, span: Span) -> Span:
1393
1388
  if span.name in self.MT.named_spans:
1394
1389
  raise ValueError(f"Span '{span.name}' already exists.")
1395
1390
  if not span.name:
@@ -1453,7 +1448,7 @@ class Sheet(tk.Frame):
1453
1448
  del self.MT.named_spans[name]
1454
1449
  return self
1455
1450
 
1456
- def set_named_spans(self, named_spans: None | dict = None) -> Sheet:
1451
+ def set_named_spans(self, named_spans: None | dict[str, Span] = None) -> Sheet:
1457
1452
  if named_spans is None:
1458
1453
  for name in self.MT.named_spans:
1459
1454
  self.del_named_span(name)
@@ -1461,10 +1456,10 @@ class Sheet(tk.Frame):
1461
1456
  self.MT.named_spans = named_spans
1462
1457
  return self
1463
1458
 
1464
- def get_named_span(self, name: str) -> dict:
1459
+ def get_named_span(self, name: str) -> dict[str, Span]:
1465
1460
  return self.MT.named_spans[name]
1466
1461
 
1467
- def get_named_spans(self) -> dict:
1462
+ def get_named_spans(self) -> dict[str, Span]:
1468
1463
  return self.MT.named_spans
1469
1464
 
1470
1465
  # Getting Sheet Data
@@ -1475,10 +1470,7 @@ class Sheet(tk.Frame):
1475
1470
  ) -> Span:
1476
1471
  return self.span_from_key(*key)
1477
1472
 
1478
- def span_from_key(
1479
- self,
1480
- *key: CreateSpanTypes,
1481
- ) -> None | Span:
1473
+ def span_from_key(self, *key: CreateSpanTypes) -> None | Span:
1482
1474
  if not key:
1483
1475
  key = (None, None, None, None)
1484
1476
  span = key_to_span(key if len(key) != 1 else key[0], self.MT.named_spans, self)
@@ -1493,10 +1485,7 @@ class Sheet(tk.Frame):
1493
1485
  totalcols=self.MT.total_data_cols,
1494
1486
  )
1495
1487
 
1496
- def get_data(
1497
- self,
1498
- *key: CreateSpanTypes,
1499
- ) -> object:
1488
+ def get_data(self, *key: CreateSpanTypes) -> Any:
1500
1489
  """
1501
1490
  e.g. retrieves entire table as pandas dataframe
1502
1491
  sheet["A1"].expand().options(pandas.DataFrame).data
@@ -1637,20 +1626,20 @@ class Sheet(tk.Frame):
1637
1626
  c: int,
1638
1627
  r_ops: bool = True,
1639
1628
  c_ops: bool = True,
1640
- ) -> object:
1629
+ ) -> Any:
1641
1630
  return self.MT.get_value_for_empty_cell(r, c, r_ops, c_ops)
1642
1631
 
1643
1632
  @property
1644
- def data(self):
1633
+ def data(self) -> Sequence[Sequence[Any]]:
1645
1634
  return self.MT.data
1646
1635
 
1647
- def __iter__(self) -> Iterator[list[object] | tuple[object]]:
1636
+ def __iter__(self) -> Iterator[list[Any] | tuple[Any]]:
1648
1637
  return self.MT.data.__iter__()
1649
1638
 
1650
- def __reversed__(self) -> Iterator[list[object] | tuple[object]]:
1639
+ def __reversed__(self) -> Iterator[list[Any] | tuple[Any]]:
1651
1640
  return reversed(self.MT.data)
1652
1641
 
1653
- def __contains__(self, key: object) -> bool:
1642
+ def __contains__(self, key: Any) -> bool:
1654
1643
  if isinstance(key, (list, tuple)):
1655
1644
  return key in self.MT.data
1656
1645
  return any(key in row for row in self.MT.data)
@@ -1722,7 +1711,7 @@ class Sheet(tk.Frame):
1722
1711
  reset_highlights: bool = False,
1723
1712
  keep_formatting: bool = True,
1724
1713
  delete_options: bool = False,
1725
- ) -> object:
1714
+ ) -> Any:
1726
1715
  if data is None:
1727
1716
  data = []
1728
1717
  if verify and (not isinstance(data, list) or not all(isinstance(row, list) for row in data)):
@@ -1741,7 +1730,7 @@ class Sheet(tk.Frame):
1741
1730
  )
1742
1731
 
1743
1732
  @data.setter
1744
- def data(self, value: list[list[object]]) -> None:
1733
+ def data(self, value: list[list[Any]]) -> None:
1745
1734
  self.data_reference(value)
1746
1735
 
1747
1736
  def new_tksheet_event(self) -> EventDataDict:
@@ -1755,7 +1744,7 @@ class Sheet(tk.Frame):
1755
1744
  def set_data(
1756
1745
  self,
1757
1746
  *key: CreateSpanTypes,
1758
- data: object = None,
1747
+ data: Any = None,
1759
1748
  undo: bool | None = None,
1760
1749
  emit_event: bool | None = None,
1761
1750
  redraw: bool = True,
@@ -2074,8 +2063,8 @@ class Sheet(tk.Frame):
2074
2063
  self,
2075
2064
  datarn: int,
2076
2065
  datacn: int,
2077
- value: object,
2078
- event_data: dict,
2066
+ value: Any,
2067
+ event_data: EventDataDict,
2079
2068
  fmt_kw: dict | None = None,
2080
2069
  check_readonly: bool = False,
2081
2070
  ) -> EventDataDict:
@@ -2087,8 +2076,8 @@ class Sheet(tk.Frame):
2087
2076
  def event_data_set_index_cell(
2088
2077
  self,
2089
2078
  datarn: int,
2090
- value: object,
2091
- event_data: dict,
2079
+ value: Any,
2080
+ event_data: EventDataDict,
2092
2081
  check_readonly: bool = False,
2093
2082
  ) -> EventDataDict:
2094
2083
  if self.RI.input_valid_for_cell(datarn, value, check_readonly=check_readonly):
@@ -2099,8 +2088,8 @@ class Sheet(tk.Frame):
2099
2088
  def event_data_set_header_cell(
2100
2089
  self,
2101
2090
  datacn: int,
2102
- value: object,
2103
- event_data: dict,
2091
+ value: Any,
2092
+ event_data: EventDataDict,
2104
2093
  check_readonly: bool = False,
2105
2094
  ) -> EventDataDict:
2106
2095
  if self.CH.input_valid_for_cell(datacn, value, check_readonly=check_readonly):
@@ -2110,7 +2099,7 @@ class Sheet(tk.Frame):
2110
2099
 
2111
2100
  def insert_row(
2112
2101
  self,
2113
- row: list[object] | tuple[object] | None = None,
2102
+ row: list[Any] | tuple[Any] | None = None,
2114
2103
  idx: str | int | None = None,
2115
2104
  height: int | None = None,
2116
2105
  row_index: bool = False,
@@ -2132,7 +2121,7 @@ class Sheet(tk.Frame):
2132
2121
 
2133
2122
  def insert_column(
2134
2123
  self,
2135
- column: list[object] | tuple[object] | None = None,
2124
+ column: list[Any] | tuple[Any] | None = None,
2136
2125
  idx: str | int | None = None,
2137
2126
  width: int | None = None,
2138
2127
  header: bool = False,
@@ -2154,7 +2143,7 @@ class Sheet(tk.Frame):
2154
2143
 
2155
2144
  def insert_rows(
2156
2145
  self,
2157
- rows: list[tuple[object] | list[object]] | tuple[tuple[object] | list[object]] | int = 1,
2146
+ rows: list[tuple[Any] | list[Any]] | tuple[tuple[Any] | list[Any]] | int = 1,
2158
2147
  idx: str | int | None = None,
2159
2148
  heights: list[int] | tuple[int] | None = None,
2160
2149
  row_index: bool = False,
@@ -2235,7 +2224,7 @@ class Sheet(tk.Frame):
2235
2224
 
2236
2225
  def insert_columns(
2237
2226
  self,
2238
- columns: list[tuple[object] | list[object]] | tuple[tuple[object] | list[object]] | int = 1,
2227
+ columns: list[tuple[Any] | list[Any]] | tuple[tuple[Any] | list[Any]] | int = 1,
2239
2228
  idx: str | int | None = None,
2240
2229
  widths: list[int] | tuple[int] | None = None,
2241
2230
  headers: bool = False,
@@ -2759,10 +2748,10 @@ class Sheet(tk.Frame):
2759
2748
  def dropdown(
2760
2749
  self,
2761
2750
  *key: CreateSpanTypes,
2762
- values: list[object] | None = None,
2751
+ values: list[Any] | None = None,
2763
2752
  edit_data: bool = True,
2764
- set_values: dict[tuple[int, int], object] | None = None,
2765
- set_value: object = None,
2753
+ set_values: dict[tuple[int, int], Any] | None = None,
2754
+ set_value: Any = None,
2766
2755
  state: Literal["normal", "readonly", "disabled"] = "normal",
2767
2756
  redraw: bool = True,
2768
2757
  selection_function: Callable | None = None,
@@ -3008,7 +2997,7 @@ class Sheet(tk.Frame):
3008
2997
  self,
3009
2998
  *key: CreateSpanTypes,
3010
2999
  formatter_options: dict | None = None,
3011
- formatter_class: object = None,
3000
+ formatter_class: Any = None,
3012
3001
  redraw: bool = True,
3013
3002
  **kwargs,
3014
3003
  ) -> Span:
@@ -3969,7 +3958,7 @@ class Sheet(tk.Frame):
3969
3958
 
3970
3959
  # Identifying Bound Event Mouse Position
3971
3960
 
3972
- def identify_region(self, event: object) -> Literal["table", "index", "header", "top left"]:
3961
+ def identify_region(self, event: Any) -> Literal["table", "index", "header", "top left"]:
3973
3962
  if event.widget == self.MT:
3974
3963
  return "table"
3975
3964
  elif event.widget == self.RI:
@@ -3981,7 +3970,7 @@ class Sheet(tk.Frame):
3981
3970
 
3982
3971
  def identify_row(
3983
3972
  self,
3984
- event: object,
3973
+ event: Any,
3985
3974
  exclude_index: bool = False,
3986
3975
  allow_end: bool = True,
3987
3976
  ) -> int | None:
@@ -3998,7 +3987,7 @@ class Sheet(tk.Frame):
3998
3987
 
3999
3988
  def identify_column(
4000
3989
  self,
4001
- event: object,
3990
+ event: Any,
4002
3991
  exclude_header: bool = False,
4003
3992
  allow_end: bool = True,
4004
3993
  ) -> int | None:
@@ -4015,7 +4004,7 @@ class Sheet(tk.Frame):
4015
4004
 
4016
4005
  # Scroll Positions and Cell Visibility
4017
4006
 
4018
- def sync_scroll(self, widget: object) -> Sheet:
4007
+ def sync_scroll(self, widget: Any) -> Sheet:
4019
4008
  if widget is self:
4020
4009
  return self
4021
4010
  self.MT.synced_scrolls.add(widget)
@@ -4023,7 +4012,7 @@ class Sheet(tk.Frame):
4023
4012
  widget.MT.synced_scrolls.add(self)
4024
4013
  return self
4025
4014
 
4026
- def unsync_scroll(self, widget: object = None) -> Sheet:
4015
+ def unsync_scroll(self, widget: Any = None) -> Sheet:
4027
4016
  if widget is None:
4028
4017
  for widget in self.MT.synced_scrolls:
4029
4018
  if isinstance(widget, Sheet):
@@ -4499,13 +4488,13 @@ class Sheet(tk.Frame):
4499
4488
  self.CH.text_editor.window.set_text(text)
4500
4489
  return self
4501
4490
 
4502
- def destroy_text_editor(self, event: object = None) -> Sheet:
4491
+ def destroy_text_editor(self, event: Any = None) -> Sheet:
4503
4492
  self.MT.hide_text_editor(reason=event)
4504
4493
  self.RI.hide_text_editor(reason=event)
4505
4494
  self.CH.hide_text_editor(reason=event)
4506
4495
  return self
4507
4496
 
4508
- def get_text_editor_widget(self, event: object = None) -> tk.Text | None:
4497
+ def get_text_editor_widget(self, event: Any = None) -> tk.Text | None:
4509
4498
  try:
4510
4499
  return self.MT.text_editor.tktext
4511
4500
  except Exception:
@@ -4639,7 +4628,7 @@ class Sheet(tk.Frame):
4639
4628
 
4640
4629
  def event_widget_is_sheet(
4641
4630
  self,
4642
- event: object,
4631
+ event: Any,
4643
4632
  table: bool = True,
4644
4633
  index: bool = True,
4645
4634
  header: bool = True,
@@ -4993,7 +4982,7 @@ class Sheet(tk.Frame):
4993
4982
 
4994
4983
  def tree_build(
4995
4984
  self,
4996
- data: list[list[object]],
4985
+ data: list[list[Any]],
4997
4986
  iid_column: int,
4998
4987
  parent_column: int,
4999
4988
  text_column: None | int | list[str] = None,
@@ -5121,7 +5110,7 @@ class Sheet(tk.Frame):
5121
5110
  index: None | int | Literal["end"] = None,
5122
5111
  iid: None | str = None,
5123
5112
  text: None | str = None,
5124
- values: None | list[object] = None,
5113
+ values: None | list[Any] = None,
5125
5114
  create_selections: bool = False,
5126
5115
  undo: bool = True,
5127
5116
  ) -> str:
@@ -5180,7 +5169,7 @@ class Sheet(tk.Frame):
5180
5169
 
5181
5170
  def bulk_insert(
5182
5171
  self,
5183
- data: list[list[object]],
5172
+ data: list[list[Any]],
5184
5173
  parent: str = "",
5185
5174
  index: None | int | Literal["end"] = None,
5186
5175
  iid_column: int | None = None,
@@ -5659,7 +5648,7 @@ class Sheet(tk.Frame):
5659
5648
 
5660
5649
  # ########## OLD FUNCTIONS ##########
5661
5650
 
5662
- def get_cell_data(self, r: int, c: int, get_displayed: bool = False) -> object:
5651
+ def get_cell_data(self, r: int, c: int, get_displayed: bool = False) -> Any:
5663
5652
  return self.MT.get_cell_data(r, c, get_displayed)
5664
5653
 
5665
5654
  def get_row_data(
@@ -5669,7 +5658,7 @@ class Sheet(tk.Frame):
5669
5658
  get_index: bool = False,
5670
5659
  get_index_displayed: bool = True,
5671
5660
  only_columns: int | AnyIter[int] | None = None,
5672
- ) -> list[object]:
5661
+ ) -> list[Any]:
5673
5662
  if only_columns is not None:
5674
5663
  if isinstance(only_columns, int):
5675
5664
  only_columns = (only_columns,)
@@ -5695,7 +5684,7 @@ class Sheet(tk.Frame):
5695
5684
  get_header: bool = False,
5696
5685
  get_header_displayed: bool = True,
5697
5686
  only_rows: int | AnyIter[int] | None = None,
5698
- ) -> list[object]:
5687
+ ) -> list[Any]:
5699
5688
  if only_rows is not None:
5700
5689
  if isinstance(only_rows, int):
5701
5690
  only_rows = (only_rows,)
@@ -5715,7 +5704,7 @@ class Sheet(tk.Frame):
5715
5704
  get_index_displayed: bool = True,
5716
5705
  only_rows: AnyIter[int] | int | None = None,
5717
5706
  only_columns: AnyIter[int] | int | None = None,
5718
- ) -> list[object]:
5707
+ ) -> list[Any]:
5719
5708
  if only_rows is not None:
5720
5709
  if isinstance(only_rows, int):
5721
5710
  only_rows = (only_rows,)
@@ -5764,7 +5753,7 @@ class Sheet(tk.Frame):
5764
5753
  get_header_displayed: bool = True,
5765
5754
  only_rows: int | AnyIter[int] | None = None,
5766
5755
  only_columns: int | AnyIter[int] | None = None,
5767
- ) -> Iterator[list[object]]:
5756
+ ) -> Iterator[list[Any]]:
5768
5757
  if only_rows is not None:
5769
5758
  if isinstance(only_rows, int):
5770
5759
  only_rows = (only_rows,)
@@ -5804,7 +5793,7 @@ class Sheet(tk.Frame):
5804
5793
  reset_col_positions: bool = True,
5805
5794
  reset_row_positions: bool = True,
5806
5795
  redraw: bool = True,
5807
- ) -> object:
5796
+ ) -> Any:
5808
5797
  self.set_refresh_timer(redraw)
5809
5798
  return self.MT.data_reference(newdataref, reset_col_positions, reset_row_positions)
5810
5799
 
@@ -5812,7 +5801,7 @@ class Sheet(tk.Frame):
5812
5801
  self,
5813
5802
  r: int,
5814
5803
  c: int,
5815
- value: object = "",
5804
+ value: Any = "",
5816
5805
  redraw: bool = True,
5817
5806
  keep_formatting: bool = True,
5818
5807
  ) -> Sheet:
@@ -5824,7 +5813,7 @@ class Sheet(tk.Frame):
5824
5813
  def set_row_data(
5825
5814
  self,
5826
5815
  r: int,
5827
- values: Sequence[object] = [],
5816
+ values: Sequence[Any] = [],
5828
5817
  add_columns: bool = True,
5829
5818
  redraw: bool = True,
5830
5819
  keep_formatting: bool = True,
@@ -5856,7 +5845,7 @@ class Sheet(tk.Frame):
5856
5845
  def set_column_data(
5857
5846
  self,
5858
5847
  c: int,
5859
- values: Sequence[object] = [],
5848
+ values: Sequence[Any] = [],
5860
5849
  add_rows: bool = True,
5861
5850
  redraw: bool = True,
5862
5851
  keep_formatting: bool = True,
@@ -6577,7 +6566,7 @@ class Sheet(tk.Frame):
6577
6566
  self._create_dropdown(r, c, v, d)
6578
6567
  return self.set_refresh_timer(kwargs["redraw"])
6579
6568
 
6580
- def _create_dropdown(self, r: int, c: int, v: object, d: dict) -> None:
6569
+ def _create_dropdown(self, r: int, c: int, v: Any, d: dict) -> None:
6581
6570
  self.del_cell_options_dropdown_and_checkbox(r, c)
6582
6571
  add_to_options(self.MT.cell_options, (r, c), "dropdown", d)
6583
6572
  self.MT.set_cell_data(r, c, v)
@@ -6610,7 +6599,7 @@ class Sheet(tk.Frame):
6610
6599
  self._dropdown_row(r_, v, d)
6611
6600
  return self.set_refresh_timer(kwargs["redraw"])
6612
6601
 
6613
- def _dropdown_row(self, r: int, v: object, d: dict) -> None:
6602
+ def _dropdown_row(self, r: int, v: Any, d: dict) -> None:
6614
6603
  self.del_row_options_dropdown_and_checkbox(r)
6615
6604
  add_to_options(self.MT.row_options, r, "dropdown", d)
6616
6605
  for c in range(self.MT.total_data_cols()):
@@ -6635,7 +6624,7 @@ class Sheet(tk.Frame):
6635
6624
  self._dropdown_column(c_, v, d)
6636
6625
  return self.set_refresh_timer(kwargs["redraw"])
6637
6626
 
6638
- def _dropdown_column(self, c: int, v: object, d: dict) -> None:
6627
+ def _dropdown_column(self, c: int, v: Any, d: dict) -> None:
6639
6628
  self.del_column_options_dropdown_and_checkbox(c)
6640
6629
  add_to_options(self.MT.col_options, c, "dropdown", d)
6641
6630
  for r in range(self.MT.total_data_rows()):
@@ -6660,7 +6649,7 @@ class Sheet(tk.Frame):
6660
6649
  self._create_header_dropdown(c_, v, d)
6661
6650
  return self.set_refresh_timer(kwargs["redraw"])
6662
6651
 
6663
- def _create_header_dropdown(self, c: int, v: object, d: dict) -> None:
6652
+ def _create_header_dropdown(self, c: int, v: Any, d: dict) -> None:
6664
6653
  self.del_header_cell_options_dropdown_and_checkbox(c)
6665
6654
  add_to_options(self.CH.cell_options, c, "dropdown", d)
6666
6655
  self.CH.set_cell_data(c, v)
@@ -6684,7 +6673,7 @@ class Sheet(tk.Frame):
6684
6673
  self._create_index_dropdown(r_, v, d)
6685
6674
  return self.set_refresh_timer(kwargs["redraw"])
6686
6675
 
6687
- def _create_index_dropdown(self, r: int, v: object, d: dict) -> None:
6676
+ def _create_index_dropdown(self, r: int, v: Any, d: dict) -> None:
6688
6677
  self.del_index_cell_options_dropdown_and_checkbox(r)
6689
6678
  add_to_options(self.RI.cell_options, r, "dropdown", d)
6690
6679
  self.RI.set_cell_data(r, v)
@@ -6793,8 +6782,8 @@ class Sheet(tk.Frame):
6793
6782
  r: int = 0,
6794
6783
  c: int = 0,
6795
6784
  set_existing_dropdown: bool = False,
6796
- values: list[object] | None = None,
6797
- set_value: object = None,
6785
+ values: list[Any] | None = None,
6786
+ set_value: Any = None,
6798
6787
  ) -> Sheet:
6799
6788
  if values is None:
6800
6789
  values = []
@@ -6820,8 +6809,8 @@ class Sheet(tk.Frame):
6820
6809
  self,
6821
6810
  c: int = 0,
6822
6811
  set_existing_dropdown: bool = False,
6823
- values: list[object] | None = None,
6824
- set_value: object = None,
6812
+ values: list[Any] | None = None,
6813
+ set_value: Any = None,
6825
6814
  ) -> Sheet:
6826
6815
  if values is None:
6827
6816
  values = []
@@ -6846,8 +6835,8 @@ class Sheet(tk.Frame):
6846
6835
  self,
6847
6836
  r: int = 0,
6848
6837
  set_existing_dropdown: bool = False,
6849
- values: list[object] | None = None,
6850
- set_value: object = None,
6838
+ values: list[Any] | None = None,
6839
+ set_value: Any = None,
6851
6840
  ) -> Sheet:
6852
6841
  if values is None:
6853
6842
  values = []
@@ -6923,15 +6912,15 @@ class Sheet(tk.Frame):
6923
6912
  kwargs["modified_function"] = modified_function
6924
6913
  return kwargs
6925
6914
 
6926
- def get_dropdown_value(self, r: int = 0, c: int = 0) -> object:
6915
+ def get_dropdown_value(self, r: int = 0, c: int = 0) -> Any:
6927
6916
  if self.MT.get_cell_kwargs(r, c, key="dropdown"):
6928
6917
  return self.get_cell_data(r, c)
6929
6918
 
6930
- def get_header_dropdown_value(self, c: int = 0) -> object:
6919
+ def get_header_dropdown_value(self, c: int = 0) -> Any:
6931
6920
  if self.CH.get_cell_kwargs(c, key="dropdown"):
6932
6921
  return self.MT._headers[c]
6933
6922
 
6934
- def get_index_dropdown_value(self, r: int = 0) -> object:
6923
+ def get_index_dropdown_value(self, r: int = 0) -> Any:
6935
6924
  if self.RI.get_cell_kwargs(r, key="dropdown"):
6936
6925
  return self.MT._row_index[r]
6937
6926
 
@@ -6940,7 +6929,7 @@ class Sheet(tk.Frame):
6940
6929
  r: int | Literal["all"],
6941
6930
  c: int | Literal["all"],
6942
6931
  formatter_options: dict | None = None,
6943
- formatter_class: object = None,
6932
+ formatter_class: Any = None,
6944
6933
  redraw: bool = True,
6945
6934
  **kwargs,
6946
6935
  ) -> Sheet:
@@ -6993,7 +6982,7 @@ class Sheet(tk.Frame):
6993
6982
  self,
6994
6983
  r: AnyIter[int] | int | Literal["all"],
6995
6984
  formatter_options: dict | None = None,
6996
- formatter_class: object = None,
6985
+ formatter_class: Any = None,
6997
6986
  redraw: bool = True,
6998
6987
  **kwargs,
6999
6988
  ) -> Sheet:
@@ -7037,7 +7026,7 @@ class Sheet(tk.Frame):
7037
7026
  self,
7038
7027
  c: AnyIter[int] | int | Literal["all"],
7039
7028
  formatter_options: dict | None = None,
7040
- formatter_class: object = None,
7029
+ formatter_class: Any = None,
7041
7030
  redraw: bool = True,
7042
7031
  **kwargs,
7043
7032
  ) -> Sheet:
@@ -7094,7 +7083,7 @@ class Dropdown(Sheet):
7094
7083
  height: int | None = None,
7095
7084
  font: None | tuple[str, int, str] = None,
7096
7085
  outline_thickness: int = 2,
7097
- values: list[object] | None = None,
7086
+ values: list[Any] | None = None,
7098
7087
  close_dropdown_window: Callable | None = None,
7099
7088
  search_function: Callable = dropdown_search_function,
7100
7089
  modified_function: None | Callable = None,
@@ -7171,7 +7160,7 @@ class Dropdown(Sheet):
7171
7160
  ops: DotDict,
7172
7161
  outline_color: str,
7173
7162
  align: str,
7174
- values: list[object] | None = None,
7163
+ values: list[Any] | None = None,
7175
7164
  search_function: Callable = dropdown_search_function,
7176
7165
  modified_function: None | Callable = None,
7177
7166
  ) -> None:
@@ -7201,7 +7190,7 @@ class Dropdown(Sheet):
7201
7190
  )
7202
7191
  self.values(values, width=width - self.yscroll.winfo_width() - 4)
7203
7192
 
7204
- def arrowkey_UP(self, event: object = None) -> None:
7193
+ def arrowkey_UP(self, event: Any = None) -> None:
7205
7194
  if self.row > 0:
7206
7195
  self.row -= 1
7207
7196
  else:
@@ -7209,13 +7198,13 @@ class Dropdown(Sheet):
7209
7198
  self.see(self.row, 0, redraw=False)
7210
7199
  self.select_row(self.row)
7211
7200
 
7212
- def arrowkey_DOWN(self, event: object = None) -> None:
7201
+ def arrowkey_DOWN(self, event: Any = None) -> None:
7213
7202
  if len(self.MT.data) - 1 > self.row:
7214
7203
  self.row += 1
7215
7204
  self.see(self.row, 0, redraw=False)
7216
7205
  self.select_row(self.row)
7217
7206
 
7218
- def search_and_see(self, event: object = None) -> str:
7207
+ def search_and_see(self, event: Any = None) -> str:
7219
7208
  if self.search_function is not None:
7220
7209
  rn = self.search_function(search_for=rf"{event['value']}", data=(r[0] for r in self.MT.data))
7221
7210
  if isinstance(rn, int):
@@ -7224,7 +7213,7 @@ class Dropdown(Sheet):
7224
7213
  self.select_row(self.row)
7225
7214
  return self.MT.data[rn][0]
7226
7215
 
7227
- def mouse_motion(self, event: object) -> None:
7216
+ def mouse_motion(self, event: Any) -> None:
7228
7217
  row = self.identify_row(event, exclude_index=True, allow_end=False)
7229
7218
  if row is not None and row != self.row:
7230
7219
  self.row = row
@@ -7235,7 +7224,7 @@ class Dropdown(Sheet):
7235
7224
  if rows:
7236
7225
  self.select_row(next(iter(rows)))
7237
7226
 
7238
- def b1(self, event: object = None) -> None:
7227
+ def b1(self, event: Any = None) -> None:
7239
7228
  if event is None:
7240
7229
  row = None
7241
7230
  elif event.keysym == "Return":
@@ -7266,7 +7255,7 @@ class Dropdown(Sheet):
7266
7255
 
7267
7256
  def values(
7268
7257
  self,
7269
- values: list[object] | None = None,
7258
+ values: list[Any] | None = None,
7270
7259
  redraw: bool = True,
7271
7260
  width: int | None = None,
7272
7261
  ) -> None: