tksheet 7.1.4__py3-none-any.whl → 7.1.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
@@ -14,6 +14,7 @@ from .column_headers import ColumnHeaders
14
14
  from .functions import (
15
15
  add_highlight,
16
16
  add_to_options,
17
+ convert_align,
17
18
  data_to_displayed_idxs,
18
19
  del_from_options,
19
20
  del_named_span_options,
@@ -314,14 +315,14 @@ class Sheet(tk.Frame):
314
315
  self.RI = RowIndex(
315
316
  parent=self,
316
317
  row_index_align=(
317
- self.convert_align(row_index_align) if row_index_align is not None else self.convert_align(index_align)
318
+ convert_align(row_index_align) if row_index_align is not None else convert_align(index_align)
318
319
  ),
319
320
  default_row_index=default_row_index,
320
321
  )
321
322
  self.CH = ColumnHeaders(
322
323
  parent=self,
323
324
  default_header=default_header,
324
- header_align=self.convert_align(header_align),
325
+ header_align=convert_align(header_align),
325
326
  )
326
327
  self.MT = MainTable(
327
328
  parent=self,
@@ -341,7 +342,7 @@ class Sheet(tk.Frame):
341
342
  row_index=row_index,
342
343
  index=index,
343
344
  zoom=zoom,
344
- align=self.convert_align(align),
345
+ align=convert_align(align),
345
346
  displayed_columns=displayed_columns,
346
347
  all_columns_displayed=all_columns_displayed,
347
348
  displayed_rows=displayed_rows,
@@ -1091,6 +1092,14 @@ class Sheet(tk.Frame):
1091
1092
  self.TL.focus_set()
1092
1093
  return self
1093
1094
 
1095
+ def zoom_in(self) -> Sheet:
1096
+ self.MT.zoom_in()
1097
+ return self
1098
+
1099
+ def zoom_out(self) -> Sheet:
1100
+ self.MT.zoom_out()
1101
+ return self
1102
+
1094
1103
  @property
1095
1104
  def event(self) -> EventDataDict:
1096
1105
  return self.last_event_data
@@ -2796,21 +2805,6 @@ class Sheet(tk.Frame):
2796
2805
  def header_font(self, newfont: tuple[str, int, str] | None = None) -> tuple[str, int, str]:
2797
2806
  return self.MT.set_header_font(newfont)
2798
2807
 
2799
- def convert_align(self, align: str | None) -> str | None:
2800
- if isinstance(align, str):
2801
- a = align.lower()
2802
- if a == "global":
2803
- return None
2804
- elif a in ("c", "center", "centre"):
2805
- return "center"
2806
- elif a in ("w", "west", "left"):
2807
- return "w"
2808
- elif a in ("e", "east", "right"):
2809
- return "e"
2810
- elif align is None:
2811
- return None
2812
- raise ValueError("Align must be one of the following values: c, center, w, west, left, e, east, right")
2813
-
2814
2808
  def table_align(
2815
2809
  self,
2816
2810
  align: str = None,
@@ -2818,8 +2812,8 @@ class Sheet(tk.Frame):
2818
2812
  ) -> str | Sheet:
2819
2813
  if align is None:
2820
2814
  return self.MT.align
2821
- elif self.convert_align(align):
2822
- self.MT.align = self.convert_align(align)
2815
+ elif convert_align(align):
2816
+ self.MT.align = convert_align(align)
2823
2817
  else:
2824
2818
  raise ValueError("Align must be one of the following values: c, center, w, west, e, east")
2825
2819
  self.set_refresh_timer(redraw)
@@ -2832,8 +2826,8 @@ class Sheet(tk.Frame):
2832
2826
  ) -> str | Sheet:
2833
2827
  if align is None:
2834
2828
  return self.CH.align
2835
- elif self.convert_align(align):
2836
- self.CH.align = self.convert_align(align)
2829
+ elif convert_align(align):
2830
+ self.CH.align = convert_align(align)
2837
2831
  else:
2838
2832
  raise ValueError("Align must be one of the following values: c, center, w, west, e, east")
2839
2833
  self.set_refresh_timer(redraw)
@@ -2846,8 +2840,8 @@ class Sheet(tk.Frame):
2846
2840
  ) -> str | Sheet:
2847
2841
  if align is None:
2848
2842
  return self.RI.align
2849
- elif self.convert_align(align):
2850
- self.RI.align = self.convert_align(align)
2843
+ elif convert_align(align):
2844
+ self.RI.align = convert_align(align)
2851
2845
  else:
2852
2846
  raise ValueError("Align must be one of the following values: c, center, w, west, e, east")
2853
2847
  self.set_refresh_timer(redraw)
@@ -2869,7 +2863,7 @@ class Sheet(tk.Frame):
2869
2863
  span = self.span_from_key(*key)
2870
2864
  rows, cols = self.ranges_from_span(span)
2871
2865
  table, index, header = span.table, span.index, span.header
2872
- align = self.convert_align(align)
2866
+ align = convert_align(align)
2873
2867
  if span.kind == "cell":
2874
2868
  if header:
2875
2869
  for c in cols:
@@ -3169,7 +3163,7 @@ class Sheet(tk.Frame):
3169
3163
  c1: int,
3170
3164
  r2: int,
3171
3165
  c2: int,
3172
- type_: str = "cells",
3166
+ type_: Literal["cells", "rows", "columns", "cols"] = "cells",
3173
3167
  ) -> int:
3174
3168
  return self.MT.create_selection_box(r1=r1, c1=c1, r2=r2, c2=c2, type_="columns" if type_ == "cols" else type_)
3175
3169
 
@@ -3179,15 +3173,25 @@ class Sheet(tk.Frame):
3179
3173
 
3180
3174
  def deselect(
3181
3175
  self,
3182
- row: int | None | str = None,
3176
+ row: int | None | Literal["all"] = None,
3183
3177
  column: int | None = None,
3184
- cell: tuple | None = None,
3178
+ cell: tuple[int, int] | None = None,
3185
3179
  redraw: bool = True,
3186
3180
  ) -> Sheet:
3187
3181
  self.MT.deselect(r=row, c=column, cell=cell, redraw=False)
3188
3182
  self.set_refresh_timer(redraw)
3189
3183
  return self
3190
3184
 
3185
+ def deselect_any(
3186
+ self,
3187
+ rows: Iterator[int] | int | None,
3188
+ columns: Iterator[int] | int | None,
3189
+ redraw: bool = True,
3190
+ ) -> Sheet:
3191
+ self.MT.deselect_any(rows=rows, columns=columns, redraw=False)
3192
+ self.set_refresh_timer(redraw)
3193
+ return self
3194
+
3191
3195
  # Row Heights and Column Widths
3192
3196
 
3193
3197
  def default_column_width(self, width: int | None = None) -> int:
@@ -3216,8 +3220,12 @@ class Sheet(tk.Frame):
3216
3220
  self.set_refresh_timer(redraw)
3217
3221
  return self
3218
3222
 
3219
- def set_all_cell_sizes_to_text(self, redraw: bool = True) -> tuple[list[float], list[float]]:
3220
- self.MT.set_all_cell_sizes_to_text()
3223
+ def set_all_cell_sizes_to_text(
3224
+ self,
3225
+ redraw: bool = True,
3226
+ width: int | None = None,
3227
+ ) -> tuple[list[float], list[float]]:
3228
+ self.MT.set_all_cell_sizes_to_text(w=width)
3221
3229
  self.set_refresh_timer(redraw)
3222
3230
  return self.MT.row_positions, self.MT.col_positions
3223
3231
 
@@ -3787,6 +3795,8 @@ class Sheet(tk.Frame):
3787
3795
  )
3788
3796
  if deselect_all:
3789
3797
  self.MT.deselect(redraw=False)
3798
+ else:
3799
+ self.MT.deselect_any(rows=rows, redraw=False)
3790
3800
  self.set_refresh_timer(redraw)
3791
3801
  return self
3792
3802
 
@@ -4580,8 +4590,9 @@ class Sheet(tk.Frame):
4580
4590
  )
4581
4591
  else:
4582
4592
  self.RI.tree_open_ids.discard(item)
4593
+ rows = {self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True)}
4583
4594
  self.hide_rows(
4584
- (self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item)),
4595
+ rows,
4585
4596
  redraw=False,
4586
4597
  deselect_all=False,
4587
4598
  data_indexes=True,
@@ -5526,13 +5537,13 @@ class Sheet(tk.Frame):
5526
5537
  ) -> None:
5527
5538
  if isinstance(cells, dict):
5528
5539
  for k, v in cells.items():
5529
- set_align(self.MT.cell_options, k, self.convert_align(v))
5540
+ set_align(self.MT.cell_options, k, convert_align(v))
5530
5541
  elif cells:
5531
- align = self.convert_align(align)
5542
+ align = convert_align(align)
5532
5543
  for k in cells:
5533
5544
  set_align(self.MT.cell_options, k, align)
5534
5545
  else:
5535
- set_align(self.MT.cell_options, (row, column), self.convert_align(align))
5546
+ set_align(self.MT.cell_options, (row, column), convert_align(align))
5536
5547
  self.set_refresh_timer(redraw)
5537
5548
 
5538
5549
  def align_rows(
@@ -5544,18 +5555,18 @@ class Sheet(tk.Frame):
5544
5555
  ) -> None:
5545
5556
  if isinstance(rows, dict):
5546
5557
  for k, v in rows.items():
5547
- align = self.convert_align(v)
5558
+ align = convert_align(v)
5548
5559
  set_align(self.MT.row_options, k, align)
5549
5560
  if align_index:
5550
5561
  set_align(self.RI.cell_options, k, align)
5551
5562
  elif is_iterable(rows):
5552
- align = self.convert_align(align)
5563
+ align = convert_align(align)
5553
5564
  for k in rows:
5554
5565
  set_align(self.MT.row_options, k, align)
5555
5566
  if align_index:
5556
5567
  set_align(self.RI.cell_options, k, align)
5557
5568
  elif isinstance(rows, int):
5558
- set_align(self.MT.row_options, rows, self.convert_align(align))
5569
+ set_align(self.MT.row_options, rows, convert_align(align))
5559
5570
  if align_index:
5560
5571
  set_align(self.RI.cell_options, rows, align)
5561
5572
  self.set_refresh_timer(redraw)
@@ -5569,18 +5580,18 @@ class Sheet(tk.Frame):
5569
5580
  ) -> None:
5570
5581
  if isinstance(columns, dict):
5571
5582
  for k, v in columns.items():
5572
- align = self.convert_align(v)
5583
+ align = convert_align(v)
5573
5584
  set_align(self.MT.col_options, k, align)
5574
5585
  if align_header:
5575
5586
  set_align(self.CH.cell_options, k, align)
5576
5587
  elif is_iterable(columns):
5577
- align = self.convert_align(align)
5588
+ align = convert_align(align)
5578
5589
  for k in columns:
5579
5590
  set_align(self.MT.col_options, k, align)
5580
5591
  if align_header:
5581
5592
  set_align(self.CH.cell_options, k, align)
5582
5593
  elif isinstance(columns, int):
5583
- set_align(self.MT.col_options, columns, self.convert_align(align))
5594
+ set_align(self.MT.col_options, columns, convert_align(align))
5584
5595
  if align_header:
5585
5596
  set_align(self.CH.cell_options, columns, align)
5586
5597
  self.set_refresh_timer(redraw)
@@ -5593,13 +5604,13 @@ class Sheet(tk.Frame):
5593
5604
  ) -> None:
5594
5605
  if isinstance(columns, dict):
5595
5606
  for k, v in columns.items():
5596
- set_align(self.CH.cell_options, k, self.convert_align(v))
5607
+ set_align(self.CH.cell_options, k, convert_align(v))
5597
5608
  elif is_iterable(columns):
5598
- align = self.convert_align(align)
5609
+ align = convert_align(align)
5599
5610
  for k in columns:
5600
5611
  set_align(self.CH.cell_options, k, align)
5601
5612
  elif isinstance(columns, int):
5602
- set_align(self.CH.cell_options, columns, self.convert_align(align))
5613
+ set_align(self.CH.cell_options, columns, convert_align(align))
5603
5614
  self.set_refresh_timer(redraw)
5604
5615
 
5605
5616
  def align_index(
@@ -5610,13 +5621,13 @@ class Sheet(tk.Frame):
5610
5621
  ) -> None:
5611
5622
  if isinstance(rows, dict):
5612
5623
  for k, v in rows.items():
5613
- set_align(self.RI.cell_options, k, self.convert_align(v))
5624
+ set_align(self.RI.cell_options, k, convert_align(v))
5614
5625
  elif is_iterable(rows):
5615
- align = self.convert_align(align)
5626
+ align = convert_align(align)
5616
5627
  for k in rows:
5617
5628
  set_align(self.RI.cell_options, k, align)
5618
5629
  elif isinstance(rows, int):
5619
- set_align(self.RI.cell_options, rows, self.convert_align(align))
5630
+ set_align(self.RI.cell_options, rows, convert_align(align))
5620
5631
  self.set_refresh_timer(redraw)
5621
5632
 
5622
5633
  def get_cell_alignments(self) -> dict:
@@ -6381,7 +6392,7 @@ class Dropdown(Sheet):
6381
6392
  width: int | None = None,
6382
6393
  height: int | None = None,
6383
6394
  font: None | tuple[str, int, str] = None,
6384
- outline_thickness: int = 2,
6395
+ outline_thickness: int = 1,
6385
6396
  values: list[object] = [],
6386
6397
  close_dropdown_window: Callable | None = None,
6387
6398
  search_function: Callable = dropdown_search_function,
@@ -6391,47 +6402,29 @@ class Dropdown(Sheet):
6391
6402
  # False for using r, c
6392
6403
  # "r" for r
6393
6404
  # "c" for c
6394
- single_index: str | bool = False,
6405
+ single_index: Literal["r", "c"] | bool = False,
6395
6406
  ) -> None:
6396
6407
  Sheet.__init__(
6397
6408
  self,
6398
6409
  parent=parent,
6399
6410
  outline_thickness=outline_thickness,
6400
- outline_color=outline_color,
6401
- table_grid_fg=ops.popup_menu_fg,
6402
6411
  show_horizontal_grid=True,
6403
6412
  show_vertical_grid=False,
6404
6413
  show_header=False,
6405
6414
  show_row_index=False,
6406
6415
  show_top_left=False,
6407
- # alignments other than w for dropdown boxes are broken at the moment
6408
- align="w",
6409
6416
  empty_horizontal=0,
6410
6417
  empty_vertical=0,
6411
6418
  selected_rows_to_end_of_window=True,
6412
6419
  horizontal_grid_to_end_of_window=True,
6413
6420
  set_cell_sizes_on_zoom=True,
6414
6421
  show_selected_cells_border=False,
6415
- table_selected_cells_border_fg=ops.popup_menu_fg,
6416
- table_selected_cells_bg=ops.popup_menu_highlight_bg,
6417
- table_selected_rows_border_fg=ops.popup_menu_fg,
6418
- table_selected_rows_bg=ops.popup_menu_highlight_bg,
6419
- table_selected_rows_fg=ops.popup_menu_highlight_fg,
6420
- width=width,
6421
- height=height,
6422
- font=font if font else self.ops.table_font,
6423
- table_fg=ops.popup_menu_fg,
6424
- table_bg=ops.popup_menu_bg,
6425
- **{k: ops[k] for k in scrollbar_options_keys},
6426
6422
  )
6427
6423
  self.parent = parent
6428
6424
  self.close_dropdown_window = close_dropdown_window
6429
6425
  self.search_function = search_function
6430
6426
  self.arrowkey_RIGHT = arrowkey_RIGHT
6431
6427
  self.arrowkey_LEFT = arrowkey_LEFT
6432
- self.r = r
6433
- self.c = c
6434
- self.row = -1
6435
6428
  self.single_index = single_index
6436
6429
  self.bind("<Motion>", self.mouse_motion)
6437
6430
  self.bind("<ButtonPress-1>", self.b1)
@@ -6443,11 +6436,43 @@ class Dropdown(Sheet):
6443
6436
  self.bind("<Prior>", self.arrowkey_UP)
6444
6437
  self.bind("<Next>", self.arrowkey_DOWN)
6445
6438
  self.bind("<Return>", self.b1)
6446
- if values:
6447
- self.values(values)
6439
+ self.reset(r, c, width, height, font, ops, outline_color, align, values)
6440
+
6441
+ def reset(
6442
+ self,
6443
+ r: int,
6444
+ c: int,
6445
+ width: int,
6446
+ height: int,
6447
+ font: tuple[str, int, str],
6448
+ ops: DotDict,
6449
+ outline_color: str,
6450
+ align: str,
6451
+ values: list[object] | None = None,
6452
+ ) -> None:
6453
+ self.r = r
6454
+ self.c = c
6455
+ self.row = -1
6456
+ self.height_and_width(height=height, width=width)
6457
+ self.table_align(align)
6458
+ self.set_options(
6459
+ outline_color=outline_color,
6460
+ table_grid_fg=ops.popup_menu_fg,
6461
+ table_selected_cells_border_fg=ops.popup_menu_fg,
6462
+ table_selected_cells_bg=ops.popup_menu_highlight_bg,
6463
+ table_selected_rows_border_fg=ops.popup_menu_fg,
6464
+ table_selected_rows_bg=ops.popup_menu_highlight_bg,
6465
+ table_selected_rows_fg=ops.popup_menu_highlight_fg,
6466
+ table_selected_box_cells_fg=ops.popup_menu_highlight_bg,
6467
+ table_selected_box_rows_fg=ops.popup_menu_highlight_bg,
6468
+ font=font,
6469
+ table_fg=ops.popup_menu_fg,
6470
+ table_bg=ops.popup_menu_bg,
6471
+ **{k: ops[k] for k in scrollbar_options_keys},
6472
+ )
6473
+ self.values(values, width=width - self.yscroll.winfo_width() - 4)
6448
6474
 
6449
6475
  def arrowkey_UP(self, event: object = None) -> None:
6450
- self.deselect("all")
6451
6476
  if self.row > 0:
6452
6477
  self.row -= 1
6453
6478
  else:
@@ -6456,7 +6481,6 @@ class Dropdown(Sheet):
6456
6481
  self.select_row(self.row)
6457
6482
 
6458
6483
  def arrowkey_DOWN(self, event: object = None) -> None:
6459
- self.deselect("all")
6460
6484
  if len(self.MT.data) - 1 > self.row:
6461
6485
  self.row += 1
6462
6486
  self.see(self.row, 0, redraw=False)
@@ -6474,7 +6498,6 @@ class Dropdown(Sheet):
6474
6498
  row = self.identify_row(event, exclude_index=True, allow_end=False)
6475
6499
  if row is not None and row != self.row:
6476
6500
  self.row = row
6477
- self.deselect("all", redraw=False)
6478
6501
  self.select_row(self.row)
6479
6502
 
6480
6503
  def _reselect(self) -> None:
@@ -6514,7 +6537,12 @@ class Dropdown(Sheet):
6514
6537
  return self.c
6515
6538
  return self.r, self.c
6516
6539
 
6517
- def values(self, values: list = [], redraw: bool = True) -> None:
6540
+ def values(
6541
+ self,
6542
+ values: list = [],
6543
+ redraw: bool = True,
6544
+ width: int | None = None,
6545
+ ) -> None:
6518
6546
  self.set_sheet_data(
6519
6547
  [[v] for v in values],
6520
6548
  reset_col_positions=False,
@@ -6522,4 +6550,4 @@ class Dropdown(Sheet):
6522
6550
  redraw=False,
6523
6551
  verify=False,
6524
6552
  )
6525
- self.set_all_cell_sizes_to_text(redraw=redraw)
6553
+ self.set_all_cell_sizes_to_text(redraw=redraw, width=width)
tksheet/text_editor.py CHANGED
@@ -4,6 +4,9 @@ import tkinter as tk
4
4
  from collections.abc import Callable
5
5
  from typing import Literal
6
6
 
7
+ from .functions import (
8
+ convert_align,
9
+ )
7
10
  from .other_classes import (
8
11
  DotDict,
9
12
  )
@@ -91,16 +94,15 @@ class TextEditorTkText(tk.Text):
91
94
  command=self.undo,
92
95
  **menu_kwargs,
93
96
  )
94
- self.delete(1.0, "end")
95
- self.insert(1.0, text)
96
- self.yview_moveto(1)
97
- self.tag_configure("align", justify=self.align)
97
+ align = convert_align(align)
98
98
  if align == "w":
99
99
  self.align = "left"
100
- elif align == "center":
101
- self.align = "center"
102
100
  elif align == "e":
103
101
  self.align = "right"
102
+ self.delete(1.0, "end")
103
+ self.insert(1.0, text)
104
+ self.yview_moveto(1)
105
+ self.tag_configure("align", justify=self.align)
104
106
  self.tag_add("align", 1.0, "end")
105
107
 
106
108
  def _proxy(self, command: object, *args) -> object:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tksheet
3
- Version: 7.1.4
3
+ Version: 7.1.6
4
4
  Summary: Tkinter table / sheet widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
@@ -0,0 +1,20 @@
1
+ tksheet/__init__.py,sha256=95JUoulFU3M59S4BSLtmbHtdYN9bUTph238FEb2u0S8,1874
2
+ tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
3
+ tksheet/column_headers.py,sha256=2Y5QcT5WmxjXudPszKHcd7hHuTNRfxoRVyKx2bsBGZI,99449
4
+ tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
5
+ tksheet/functions.py,sha256=OZdcbYcKpiU_2YhwPWASZ8QfyF3tRhGiwY80sh5Rbx4,39610
6
+ tksheet/main_table.py,sha256=ThNsmwC_e2o5nEjB53RvIMLaj3rcWEfASeMtt2TTNl4,321201
7
+ tksheet/other_classes.py,sha256=Hjr7c0kD2_880xjtGuFn9gQ-7ED5kSiNahniBeXcf84,13604
8
+ tksheet/row_index.py,sha256=TsAYN0cBchH-diKzU3fuZXlgTOmrODq8EIeT2RcTblk,104750
9
+ tksheet/sheet.py,sha256=_VotKhIMM1aAUmDNPZC4h0_q6NP-sB4nGRRIZ-iggSc,257417
10
+ tksheet/sheet_options.py,sha256=Vcy4RxTKvf2HM-Yc53ex0lpBe6ATXc_pdx4oLhfjDgU,11906
11
+ tksheet/text_editor.py,sha256=81_IZKrTVa2KIx2cJ4n3cFvFMAwvbHIQYgqtyat-97I,6681
12
+ tksheet/themes.py,sha256=OwUe31NRbosjw3ZoZsMyB8lNVyYin9YcKLhCturi5q8,13398
13
+ tksheet/top_left_rectangle.py,sha256=-2u9GfOvcqhkKwHEtbqdFvXCY3RbvL5k2Sh9l3r_k04,8275
14
+ tksheet/types.py,sha256=IgoEHMbceKpakcZtanxKaKJ4RdCq7UW6EoEIIz5O59k,340
15
+ tksheet/vars.py,sha256=Iukk7-MMT9X7vv0m3nQPKzbp2Iw2Pg1wJEW7js919Mo,2092
16
+ tksheet-7.1.6.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
17
+ tksheet-7.1.6.dist-info/METADATA,sha256=2ZtrwFvnlwzpFt9hY_C_Mpf5ghtHjmRPz65pfc5N1xI,6013
18
+ tksheet-7.1.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
19
+ tksheet-7.1.6.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
20
+ tksheet-7.1.6.dist-info/RECORD,,
@@ -1,20 +0,0 @@
1
- tksheet/__init__.py,sha256=RGoRjwh2ab3cYtclDJ-EoW9W_wdDZ2jJhWKAeeS7dyQ,1874
2
- tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
3
- tksheet/column_headers.py,sha256=CPP2a7LM4KA43ATm997rt3YL-EIhaeUycpVe-ev2fbA,99158
4
- tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
5
- tksheet/functions.py,sha256=7S4cQDIQ-1JqwQCgJSeVUA6bui_CK09zTHrtg2H7UeU,38714
6
- tksheet/main_table.py,sha256=226s54StK5hBNpNigfO7R-DEuWdtdjCBRyqrJXecz3U,318142
7
- tksheet/other_classes.py,sha256=Hjr7c0kD2_880xjtGuFn9gQ-7ED5kSiNahniBeXcf84,13604
8
- tksheet/row_index.py,sha256=oov9iJmjONncmMnzV8dv23dgVKsBX0Fw4YWA28-Xl8o,104187
9
- tksheet/sheet.py,sha256=z5kW5gdBVQMlwV8G-LI4nknINpGqSbyQ5M9FwX-SUI8,256939
10
- tksheet/sheet_options.py,sha256=Vcy4RxTKvf2HM-Yc53ex0lpBe6ATXc_pdx4oLhfjDgU,11906
11
- tksheet/text_editor.py,sha256=7xsEbgIyAWHDBWroh2wk1VeoVftFALlPZC9OANgD6LA,6662
12
- tksheet/themes.py,sha256=OwUe31NRbosjw3ZoZsMyB8lNVyYin9YcKLhCturi5q8,13398
13
- tksheet/top_left_rectangle.py,sha256=-2u9GfOvcqhkKwHEtbqdFvXCY3RbvL5k2Sh9l3r_k04,8275
14
- tksheet/types.py,sha256=IgoEHMbceKpakcZtanxKaKJ4RdCq7UW6EoEIIz5O59k,340
15
- tksheet/vars.py,sha256=Iukk7-MMT9X7vv0m3nQPKzbp2Iw2Pg1wJEW7js919Mo,2092
16
- tksheet-7.1.4.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
17
- tksheet-7.1.4.dist-info/METADATA,sha256=1zV1Vq3e2BEnWQCfQ1I3tu45765I0R7NF88K4pd-2gQ,6013
18
- tksheet-7.1.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
19
- tksheet-7.1.4.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
20
- tksheet-7.1.4.dist-info/RECORD,,