tksheet 7.1.9__py3-none-any.whl → 7.1.10__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/__init__.py +2 -1
- tksheet/column_headers.py +11 -8
- tksheet/main_table.py +133 -161
- tksheet/row_index.py +24 -19
- tksheet/sheet.py +36 -25
- {tksheet-7.1.9.dist-info → tksheet-7.1.10.dist-info}/METADATA +1 -1
- tksheet-7.1.10.dist-info/RECORD +20 -0
- tksheet-7.1.9.dist-info/RECORD +0 -20
- {tksheet-7.1.9.dist-info → tksheet-7.1.10.dist-info}/LICENSE.txt +0 -0
- {tksheet-7.1.9.dist-info → tksheet-7.1.10.dist-info}/WHEEL +0 -0
- {tksheet-7.1.9.dist-info → tksheet-7.1.10.dist-info}/top_level.txt +0 -0
tksheet/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
tksheet - A Python tkinter table widget
|
5
5
|
"""
|
6
6
|
|
7
|
-
__version__ = "7.1.
|
7
|
+
__version__ = "7.1.10"
|
8
8
|
|
9
9
|
from .colors import (
|
10
10
|
color_map,
|
@@ -49,6 +49,7 @@ from .functions import (
|
|
49
49
|
get_n2a,
|
50
50
|
get_new_indexes,
|
51
51
|
get_seq_without_gaps_at_index,
|
52
|
+
insert_items,
|
52
53
|
is_iterable,
|
53
54
|
move_elements_by_mapping,
|
54
55
|
move_elements_to,
|
tksheet/column_headers.py
CHANGED
@@ -1320,6 +1320,16 @@ class ColumnHeaders(tk.Canvas):
|
|
1320
1320
|
t = self.create_polygon(points, fill=fill, outline=outline, tag=tag, smooth=True)
|
1321
1321
|
self.disp_checkbox[t] = True
|
1322
1322
|
|
1323
|
+
def configure_scrollregion(self, last_col_line_pos: float) -> None:
|
1324
|
+
self.configure(
|
1325
|
+
scrollregion=(
|
1326
|
+
0,
|
1327
|
+
0,
|
1328
|
+
last_col_line_pos + self.PAR.ops.empty_horizontal + 2,
|
1329
|
+
self.current_height,
|
1330
|
+
)
|
1331
|
+
)
|
1332
|
+
|
1323
1333
|
def redraw_grid_and_text(
|
1324
1334
|
self,
|
1325
1335
|
last_col_line_pos,
|
@@ -1331,14 +1341,7 @@ class ColumnHeaders(tk.Canvas):
|
|
1331
1341
|
col_pos_exists,
|
1332
1342
|
):
|
1333
1343
|
try:
|
1334
|
-
self.
|
1335
|
-
scrollregion=(
|
1336
|
-
0,
|
1337
|
-
0,
|
1338
|
-
last_col_line_pos + self.PAR.ops.empty_horizontal + 2,
|
1339
|
-
self.current_height,
|
1340
|
-
)
|
1341
|
-
)
|
1344
|
+
self.configure_scrollregion(last_col_line_pos=last_col_line_pos)
|
1342
1345
|
except Exception:
|
1343
1346
|
return
|
1344
1347
|
self.hidd_text.update(self.disp_text)
|
tksheet/main_table.py
CHANGED
@@ -2203,98 +2203,6 @@ class MainTable(tk.Canvas):
|
|
2203
2203
|
check_cell_visibility=False,
|
2204
2204
|
)
|
2205
2205
|
|
2206
|
-
def key_bindings(self) -> None:
|
2207
|
-
for widget in (self, self.RI, self.CH, self.TL):
|
2208
|
-
for binding in self.PAR.ops.copy_bindings:
|
2209
|
-
if self.copy_enabled:
|
2210
|
-
widget.bind(binding, self.ctrl_c)
|
2211
|
-
else:
|
2212
|
-
widget.unbind(binding)
|
2213
|
-
|
2214
|
-
for binding in self.PAR.ops.cut_bindings:
|
2215
|
-
if self.cut_enabled:
|
2216
|
-
widget.bind(binding, self.ctrl_x)
|
2217
|
-
else:
|
2218
|
-
widget.unbind(binding)
|
2219
|
-
|
2220
|
-
for binding in self.PAR.ops.paste_bindings:
|
2221
|
-
if self.paste_enabled:
|
2222
|
-
widget.bind(binding, self.ctrl_v)
|
2223
|
-
else:
|
2224
|
-
widget.unbind(binding)
|
2225
|
-
|
2226
|
-
if self.undo_enabled:
|
2227
|
-
for binding in self.PAR.ops.undo_bindings:
|
2228
|
-
widget.bind(binding, self.undo)
|
2229
|
-
for binding in self.PAR.ops.redo_bindings:
|
2230
|
-
widget.bind(binding, self.redo)
|
2231
|
-
else:
|
2232
|
-
for binding in self.PAR.ops.undo_bindings:
|
2233
|
-
widget.unbind(binding)
|
2234
|
-
for binding in self.PAR.ops.redo_bindings:
|
2235
|
-
widget.unbind(binding)
|
2236
|
-
|
2237
|
-
for binding in self.PAR.ops.delete_bindings:
|
2238
|
-
if self.delete_key_enabled:
|
2239
|
-
widget.bind(binding, self.delete_key)
|
2240
|
-
else:
|
2241
|
-
widget.unbind(binding)
|
2242
|
-
|
2243
|
-
for binding in self.PAR.ops.select_all_bindings:
|
2244
|
-
if self.select_all_enabled:
|
2245
|
-
widget.bind(binding, self.select_all)
|
2246
|
-
else:
|
2247
|
-
widget.unbind(binding)
|
2248
|
-
|
2249
|
-
for binding in self.PAR.ops.tab_bindings:
|
2250
|
-
if self.tab_enabled:
|
2251
|
-
widget.bind(binding, self.tab_key)
|
2252
|
-
else:
|
2253
|
-
widget.unbind(binding)
|
2254
|
-
|
2255
|
-
for binding in self.PAR.ops.up_bindings:
|
2256
|
-
if self.up_enabled:
|
2257
|
-
widget.bind(binding, self.arrowkey_UP)
|
2258
|
-
else:
|
2259
|
-
widget.unbind(binding)
|
2260
|
-
|
2261
|
-
for binding in self.PAR.ops.right_bindings:
|
2262
|
-
if self.right_enabled:
|
2263
|
-
widget.bind(binding, self.arrowkey_RIGHT)
|
2264
|
-
else:
|
2265
|
-
widget.unbind(binding)
|
2266
|
-
|
2267
|
-
for binding in self.PAR.ops.down_bindings:
|
2268
|
-
if self.down_enabled:
|
2269
|
-
widget.bind(binding, self.arrowkey_DOWN)
|
2270
|
-
else:
|
2271
|
-
widget.unbind(binding)
|
2272
|
-
|
2273
|
-
for binding in self.PAR.ops.left_bindings:
|
2274
|
-
if self.left_enabled:
|
2275
|
-
widget.bind(binding, self.arrowkey_LEFT)
|
2276
|
-
else:
|
2277
|
-
widget.unbind(binding)
|
2278
|
-
|
2279
|
-
for binding in self.PAR.ops.prior_bindings:
|
2280
|
-
if self.prior_enabled:
|
2281
|
-
widget.bind(binding, self.page_UP)
|
2282
|
-
else:
|
2283
|
-
widget.unbind(binding)
|
2284
|
-
|
2285
|
-
for binding in self.PAR.ops.next_bindings:
|
2286
|
-
if self.next_enabled:
|
2287
|
-
widget.bind(binding, self.page_DOWN)
|
2288
|
-
else:
|
2289
|
-
widget.unbind(binding)
|
2290
|
-
|
2291
|
-
if self.edit_cell_enabled:
|
2292
|
-
for w in (self, self.RI, self.CH):
|
2293
|
-
w.bind("<Key>", self.open_cell)
|
2294
|
-
else:
|
2295
|
-
for w in (self, self.RI, self.CH):
|
2296
|
-
w.unbind("<Key>")
|
2297
|
-
|
2298
2206
|
def menu_add_command(self, menu: tk.Menu, **kwargs) -> None:
|
2299
2207
|
if "label" not in kwargs:
|
2300
2208
|
return
|
@@ -2528,35 +2436,33 @@ class MainTable(tk.Canvas):
|
|
2528
2436
|
|
2529
2437
|
def enable_bindings(self, bindings):
|
2530
2438
|
if not bindings:
|
2531
|
-
self.
|
2439
|
+
self._enable_binding("all")
|
2532
2440
|
elif isinstance(bindings, (list, tuple)):
|
2533
2441
|
for binding in bindings:
|
2534
2442
|
if isinstance(binding, (list, tuple)):
|
2535
2443
|
for bind in binding:
|
2536
|
-
self.
|
2444
|
+
self._enable_binding(bind.lower())
|
2537
2445
|
elif isinstance(binding, str):
|
2538
|
-
self.
|
2446
|
+
self._enable_binding(binding.lower())
|
2539
2447
|
elif isinstance(bindings, str):
|
2540
|
-
self.
|
2448
|
+
self._enable_binding(bindings.lower())
|
2541
2449
|
self.create_rc_menus()
|
2542
|
-
self.key_bindings()
|
2543
2450
|
|
2544
2451
|
def disable_bindings(self, bindings):
|
2545
2452
|
if not bindings:
|
2546
|
-
self.
|
2453
|
+
self._disable_binding("all")
|
2547
2454
|
elif isinstance(bindings, (list, tuple)):
|
2548
2455
|
for binding in bindings:
|
2549
2456
|
if isinstance(binding, (list, tuple)):
|
2550
2457
|
for bind in binding:
|
2551
|
-
self.
|
2458
|
+
self._disable_binding(bind.lower())
|
2552
2459
|
elif isinstance(binding, str):
|
2553
|
-
self.
|
2460
|
+
self._disable_binding(binding.lower())
|
2554
2461
|
elif isinstance(bindings, str):
|
2555
|
-
self.
|
2462
|
+
self._disable_binding(bindings)
|
2556
2463
|
self.create_rc_menus()
|
2557
|
-
self.key_bindings()
|
2558
2464
|
|
2559
|
-
def
|
2465
|
+
def _enable_binding(self, binding):
|
2560
2466
|
if binding == "enable_all":
|
2561
2467
|
binding = "all"
|
2562
2468
|
if binding in ("all", "single", "single_selection_mode", "single_select"):
|
@@ -2567,9 +2473,6 @@ class MainTable(tk.Canvas):
|
|
2567
2473
|
self.single_selection_enabled = False
|
2568
2474
|
if binding in ("all", "drag_select"):
|
2569
2475
|
self.drag_selection_enabled = True
|
2570
|
-
if binding in ("all", "select_all"):
|
2571
|
-
self.select_all_enabled = True
|
2572
|
-
self.TL.sa_state()
|
2573
2476
|
if binding in ("all", "column_width_resize"):
|
2574
2477
|
self.CH.width_resizing_enabled = True
|
2575
2478
|
if binding in ("all", "column_select"):
|
@@ -2592,20 +2495,47 @@ class MainTable(tk.Canvas):
|
|
2592
2495
|
self.RI.row_selection_enabled = True
|
2593
2496
|
if binding in ("all", "row_drag_and_drop", "move_rows"):
|
2594
2497
|
self.RI.drag_and_drop_enabled = True
|
2498
|
+
if binding in ("all", "select_all"):
|
2499
|
+
self.select_all_enabled = True
|
2500
|
+
self.TL.sa_state()
|
2501
|
+
self._tksheet_bind("select_all_bindings", self.select_all)
|
2595
2502
|
if binding in ("all", "arrowkeys", "tab"):
|
2596
2503
|
self.tab_enabled = True
|
2504
|
+
self._tksheet_bind("tab_bindings", self.tab_key)
|
2597
2505
|
if binding in ("all", "arrowkeys", "up"):
|
2598
2506
|
self.up_enabled = True
|
2507
|
+
self._tksheet_bind("up_bindings", self.arrowkey_UP)
|
2599
2508
|
if binding in ("all", "arrowkeys", "right"):
|
2600
2509
|
self.right_enabled = True
|
2510
|
+
self._tksheet_bind("right_bindings", self.arrowkey_RIGHT)
|
2601
2511
|
if binding in ("all", "arrowkeys", "down"):
|
2602
2512
|
self.down_enabled = True
|
2513
|
+
self._tksheet_bind("down_bindings", self.arrowkey_DOWN)
|
2603
2514
|
if binding in ("all", "arrowkeys", "left"):
|
2604
2515
|
self.left_enabled = True
|
2516
|
+
self._tksheet_bind("left_bindings", self.arrowkey_LEFT)
|
2605
2517
|
if binding in ("all", "arrowkeys", "prior"):
|
2606
2518
|
self.prior_enabled = True
|
2519
|
+
self._tksheet_bind("prior_bindings", self.page_UP)
|
2607
2520
|
if binding in ("all", "arrowkeys", "next"):
|
2608
2521
|
self.next_enabled = True
|
2522
|
+
self._tksheet_bind("next_bindings", self.page_DOWN)
|
2523
|
+
if binding in ("all", "copy", "edit_bindings", "edit"):
|
2524
|
+
self.copy_enabled = True
|
2525
|
+
self._tksheet_bind("copy_bindings", self.ctrl_c)
|
2526
|
+
if binding in ("all", "cut", "edit_bindings", "edit"):
|
2527
|
+
self.cut_enabled = True
|
2528
|
+
self._tksheet_bind("cut_bindings", self.ctrl_x)
|
2529
|
+
if binding in ("all", "paste", "edit_bindings", "edit"):
|
2530
|
+
self.paste_enabled = True
|
2531
|
+
self._tksheet_bind("paste_bindings", self.ctrl_v)
|
2532
|
+
if binding in ("all", "delete", "edit_bindings", "edit"):
|
2533
|
+
self.delete_key_enabled = True
|
2534
|
+
self._tksheet_bind("delete_bindings", self.delete_key)
|
2535
|
+
if binding in ("all", "undo", "redo", "edit_bindings", "edit"):
|
2536
|
+
self.undo_enabled = True
|
2537
|
+
self._tksheet_bind("undo_bindings", self.undo)
|
2538
|
+
self._tksheet_bind("redo_bindings", self.redo)
|
2609
2539
|
if binding in ("all", "rc_delete_column"):
|
2610
2540
|
self.rc_delete_column_enabled = True
|
2611
2541
|
self.rc_popup_menus_enabled = True
|
@@ -2622,23 +2552,15 @@ class MainTable(tk.Canvas):
|
|
2622
2552
|
self.rc_insert_row_enabled = True
|
2623
2553
|
self.rc_popup_menus_enabled = True
|
2624
2554
|
self.rc_select_enabled = True
|
2625
|
-
if binding in ("all", "copy", "edit_bindings"):
|
2626
|
-
self.copy_enabled = True
|
2627
|
-
if binding in ("all", "cut", "edit_bindings"):
|
2628
|
-
self.cut_enabled = True
|
2629
|
-
if binding in ("all", "paste", "edit_bindings"):
|
2630
|
-
self.paste_enabled = True
|
2631
|
-
if binding in ("all", "delete", "edit_bindings"):
|
2632
|
-
self.delete_key_enabled = True
|
2633
2555
|
if binding in ("all", "right_click_popup_menu", "rc_popup_menu"):
|
2634
2556
|
self.rc_popup_menus_enabled = True
|
2635
2557
|
self.rc_select_enabled = True
|
2636
2558
|
if binding in ("all", "right_click_select", "rc_select"):
|
2637
2559
|
self.rc_select_enabled = True
|
2638
|
-
if binding in ("all", "
|
2639
|
-
self.undo_enabled = True
|
2640
|
-
if binding in ("all", "edit_cell", "edit_bindings"):
|
2560
|
+
if binding in ("all", "edit_cell", "edit_bindings", "edit"):
|
2641
2561
|
self.edit_cell_enabled = True
|
2562
|
+
for w in (self, self.RI, self.CH):
|
2563
|
+
w.bind("<Key>", self.open_cell)
|
2642
2564
|
if binding in ("edit_header"):
|
2643
2565
|
self.CH.edit_cell_enabled = True
|
2644
2566
|
if binding in ("edit_index"):
|
@@ -2647,7 +2569,12 @@ class MainTable(tk.Canvas):
|
|
2647
2569
|
if binding in ("ctrl_click_select", "ctrl_select"):
|
2648
2570
|
self.ctrl_select_enabled = True
|
2649
2571
|
|
2650
|
-
def
|
2572
|
+
def _tksheet_bind(self, bindings_key: str, func: Callable) -> None:
|
2573
|
+
for widget in (self, self.RI, self.CH, self.TL):
|
2574
|
+
for binding in self.PAR.ops[bindings_key]:
|
2575
|
+
widget.bind(binding, func)
|
2576
|
+
|
2577
|
+
def _disable_binding(self, binding):
|
2651
2578
|
if binding == "disable_all":
|
2652
2579
|
binding = "all"
|
2653
2580
|
if binding in ("all", "single", "single_selection_mode", "single_select"):
|
@@ -2658,9 +2585,6 @@ class MainTable(tk.Canvas):
|
|
2658
2585
|
self.single_selection_enabled = False
|
2659
2586
|
if binding in ("all", "drag_select"):
|
2660
2587
|
self.drag_selection_enabled = False
|
2661
|
-
if binding in ("all", "select_all"):
|
2662
|
-
self.select_all_enabled = False
|
2663
|
-
self.TL.sa_state("hidden")
|
2664
2588
|
if binding in ("all", "column_width_resize"):
|
2665
2589
|
self.CH.width_resizing_enabled = False
|
2666
2590
|
if binding in ("all", "column_select"):
|
@@ -2683,20 +2607,6 @@ class MainTable(tk.Canvas):
|
|
2683
2607
|
self.RI.row_selection_enabled = False
|
2684
2608
|
if binding in ("all", "row_drag_and_drop", "move_rows"):
|
2685
2609
|
self.RI.drag_and_drop_enabled = False
|
2686
|
-
if binding in ("all", "arrowkeys", "tab"):
|
2687
|
-
self.tab_enabled = False
|
2688
|
-
if binding in ("all", "arrowkeys", "up"):
|
2689
|
-
self.up_enabled = False
|
2690
|
-
if binding in ("all", "arrowkeys", "right"):
|
2691
|
-
self.right_enabled = False
|
2692
|
-
if binding in ("all", "arrowkeys", "down"):
|
2693
|
-
self.down_enabled = False
|
2694
|
-
if binding in ("all", "arrowkeys", "left"):
|
2695
|
-
self.left_enabled = False
|
2696
|
-
if binding in ("all", "arrowkeys", "prior"):
|
2697
|
-
self.prior_enabled = False
|
2698
|
-
if binding in ("all", "arrowkeys", "next"):
|
2699
|
-
self.next_enabled = False
|
2700
2610
|
if binding in ("all", "rc_delete_column"):
|
2701
2611
|
self.rc_delete_column_enabled = False
|
2702
2612
|
self.rc_popup_menus_enabled = False
|
@@ -2713,29 +2623,67 @@ class MainTable(tk.Canvas):
|
|
2713
2623
|
self.rc_insert_row_enabled = False
|
2714
2624
|
self.rc_popup_menus_enabled = False
|
2715
2625
|
self.rc_select_enabled = False
|
2716
|
-
if binding in ("all", "copy", "edit_bindings"):
|
2717
|
-
self.copy_enabled = False
|
2718
|
-
if binding in ("all", "cut", "edit_bindings"):
|
2719
|
-
self.cut_enabled = False
|
2720
|
-
if binding in ("all", "paste", "edit_bindings"):
|
2721
|
-
self.paste_enabled = False
|
2722
|
-
if binding in ("all", "delete", "edit_bindings"):
|
2723
|
-
self.delete_key_enabled = False
|
2724
2626
|
if binding in ("all", "right_click_popup_menu", "rc_popup_menu"):
|
2725
2627
|
self.rc_popup_menus_enabled = False
|
2726
2628
|
self.rc_select_enabled = False
|
2727
2629
|
if binding in ("all", "right_click_select", "rc_select"):
|
2728
2630
|
self.rc_select_enabled = False
|
2729
|
-
if binding in ("all", "
|
2730
|
-
self.undo_enabled = False
|
2731
|
-
if binding in ("all", "edit_cell", "edit_bindings"):
|
2631
|
+
if binding in ("all", "edit_cell", "edit_bindings", "edit"):
|
2732
2632
|
self.edit_cell_enabled = False
|
2733
|
-
|
2633
|
+
for w in (self, self.RI, self.CH):
|
2634
|
+
w.unbind("<Key>")
|
2635
|
+
if binding in ("all", "edit_header", "edit_bindings", "edit"):
|
2734
2636
|
self.CH.edit_cell_enabled = False
|
2735
|
-
if binding in ("all", "edit_index", "edit_bindings"):
|
2637
|
+
if binding in ("all", "edit_index", "edit_bindings", "edit"):
|
2736
2638
|
self.RI.edit_cell_enabled = False
|
2737
2639
|
if binding in ("all", "ctrl_click_select", "ctrl_select"):
|
2738
2640
|
self.ctrl_select_enabled = False
|
2641
|
+
if binding in ("all", "select_all"):
|
2642
|
+
self.select_all_enabled = False
|
2643
|
+
self.TL.sa_state("hidden")
|
2644
|
+
self._tksheet_unbind("select_all_bindings")
|
2645
|
+
if binding in ("all", "copy", "edit_bindings", "edit"):
|
2646
|
+
self.copy_enabled = False
|
2647
|
+
self._tksheet_unbind("copy_bindings")
|
2648
|
+
if binding in ("all", "cut", "edit_bindings", "edit"):
|
2649
|
+
self.cut_enabled = False
|
2650
|
+
self._tksheet_unbind("cut_bindings")
|
2651
|
+
if binding in ("all", "paste", "edit_bindings", "edit"):
|
2652
|
+
self.paste_enabled = False
|
2653
|
+
self._tksheet_unbind("paste_bindings")
|
2654
|
+
if binding in ("all", "delete", "edit_bindings", "edit"):
|
2655
|
+
self.delete_key_enabled = False
|
2656
|
+
self._tksheet_unbind("delete_bindings")
|
2657
|
+
if binding in ("all", "arrowkeys", "tab"):
|
2658
|
+
self.tab_enabled = False
|
2659
|
+
self._tksheet_unbind("tab_bindings")
|
2660
|
+
if binding in ("all", "arrowkeys", "up"):
|
2661
|
+
self.up_enabled = False
|
2662
|
+
self._tksheet_unbind("up_bindings")
|
2663
|
+
if binding in ("all", "arrowkeys", "right"):
|
2664
|
+
self.right_enabled = False
|
2665
|
+
self._tksheet_unbind("right_bindings")
|
2666
|
+
if binding in ("all", "arrowkeys", "down"):
|
2667
|
+
self.down_enabled = False
|
2668
|
+
self._tksheet_unbind("down_bindings")
|
2669
|
+
if binding in ("all", "arrowkeys", "left"):
|
2670
|
+
self.left_enabled = False
|
2671
|
+
self._tksheet_unbind("left_bindings")
|
2672
|
+
if binding in ("all", "arrowkeys", "prior"):
|
2673
|
+
self.prior_enabled = False
|
2674
|
+
self._tksheet_unbind("prior_bindings")
|
2675
|
+
if binding in ("all", "arrowkeys", "next"):
|
2676
|
+
self.next_enabled = False
|
2677
|
+
self._tksheet_unbind("next_bindings")
|
2678
|
+
if binding in ("all", "undo", "redo", "edit_bindings", "edit"):
|
2679
|
+
self.undo_enabled = False
|
2680
|
+
self._tksheet_unbind("undo_bindings", "redo_bindings")
|
2681
|
+
|
2682
|
+
def _tksheet_unbind(self, *keys) -> None:
|
2683
|
+
for widget in (self, self.RI, self.CH, self.TL):
|
2684
|
+
for bindings_key in keys:
|
2685
|
+
for binding in self.PAR.ops[bindings_key]:
|
2686
|
+
widget.unbind(binding)
|
2739
2687
|
|
2740
2688
|
def reset_mouse_motion_creations(self) -> None:
|
2741
2689
|
if self.current_cursor != "":
|
@@ -3196,47 +3144,71 @@ class MainTable(tk.Canvas):
|
|
3196
3144
|
self.y_move_synced_scrolls("moveto", self.yview()[0])
|
3197
3145
|
return need_redraw
|
3198
3146
|
|
3199
|
-
def x_move_synced_scrolls(self, *args, redraw: bool = True):
|
3147
|
+
def x_move_synced_scrolls(self, *args, redraw: bool = True, use_scrollbar: bool = False):
|
3200
3148
|
for widget in self.synced_scrolls:
|
3201
3149
|
# try:
|
3202
3150
|
if hasattr(widget, "MT"):
|
3203
|
-
|
3151
|
+
if use_scrollbar:
|
3152
|
+
widget.MT._xscrollbar(*args, move_synced=False)
|
3153
|
+
else:
|
3154
|
+
widget.MT.set_xviews(*args, move_synced=False, redraw=redraw)
|
3204
3155
|
else:
|
3205
3156
|
widget.xview(*args)
|
3206
3157
|
# except Exception:
|
3207
3158
|
# continue
|
3208
3159
|
|
3209
|
-
def y_move_synced_scrolls(self, *args, redraw: bool = True):
|
3160
|
+
def y_move_synced_scrolls(self, *args, redraw: bool = True, use_scrollbar: bool = False):
|
3210
3161
|
for widget in self.synced_scrolls:
|
3211
3162
|
# try:
|
3212
3163
|
if hasattr(widget, "MT"):
|
3213
|
-
|
3164
|
+
if use_scrollbar:
|
3165
|
+
widget.MT._yscrollbar(*args, move_synced=False)
|
3166
|
+
else:
|
3167
|
+
widget.MT.set_yviews(*args, move_synced=False, redraw=redraw)
|
3214
3168
|
else:
|
3215
3169
|
widget.yview(*args)
|
3216
3170
|
# except Exception:
|
3217
3171
|
# continue
|
3218
3172
|
|
3173
|
+
def _xscrollbar(self, *args, move_synced: bool = True):
|
3174
|
+
self.xview(*args)
|
3175
|
+
if self.show_header:
|
3176
|
+
self.CH.xview(*args)
|
3177
|
+
self.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=False)
|
3178
|
+
if move_synced:
|
3179
|
+
self.x_move_synced_scrolls(*args, use_scrollbar=True)
|
3180
|
+
|
3181
|
+
def _yscrollbar(self, *args, move_synced: bool = True):
|
3182
|
+
self.yview(*args)
|
3183
|
+
if self.show_index:
|
3184
|
+
self.RI.yview(*args)
|
3185
|
+
self.main_table_redraw_grid_and_text(redraw_header=False, redraw_row_index=True)
|
3186
|
+
if move_synced:
|
3187
|
+
self.y_move_synced_scrolls(*args, use_scrollbar=True)
|
3188
|
+
|
3219
3189
|
def set_xviews(self, *args, move_synced: bool = True, redraw: bool = True) -> None:
|
3220
3190
|
self.main_table_redraw_grid_and_text(setting_views=True)
|
3221
3191
|
self.update_idletasks()
|
3222
3192
|
self.xview(*args)
|
3223
3193
|
if self.show_header:
|
3194
|
+
self.CH.update_idletasks()
|
3224
3195
|
self.CH.xview(*args)
|
3196
|
+
self.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=False)
|
3225
3197
|
if move_synced:
|
3226
3198
|
self.x_move_synced_scrolls(*args)
|
3227
3199
|
self.fix_views()
|
3228
|
-
self.PAR.set_refresh_timer(redraw)
|
3229
3200
|
|
3230
3201
|
def set_yviews(self, *args, move_synced: bool = True, redraw: bool = True) -> None:
|
3231
3202
|
self.main_table_redraw_grid_and_text(setting_views=True)
|
3232
3203
|
self.update_idletasks()
|
3233
3204
|
self.yview(*args)
|
3234
3205
|
if self.show_index:
|
3206
|
+
self.RI.update_idletasks()
|
3235
3207
|
self.RI.yview(*args)
|
3208
|
+
self.main_table_redraw_grid_and_text(redraw_header=False, redraw_row_index=True)
|
3236
3209
|
if move_synced:
|
3237
3210
|
self.y_move_synced_scrolls(*args)
|
3238
3211
|
self.fix_views()
|
3239
|
-
self.PAR.set_refresh_timer(redraw)
|
3240
3212
|
|
3241
3213
|
def set_view(self, x_args: list[str, float], y_args: list[str, float]) -> None:
|
3242
3214
|
self.set_xviews(*x_args)
|
@@ -5194,8 +5166,7 @@ class MainTable(tk.Canvas):
|
|
5194
5166
|
resized_cols = False
|
5195
5167
|
resized_rows = False
|
5196
5168
|
if self.PAR.ops.auto_resize_columns and self.allow_auto_resize_columns and col_pos_exists:
|
5197
|
-
max_w =
|
5198
|
-
max_w -= self.PAR.ops.empty_horizontal
|
5169
|
+
max_w = can_width - self.PAR.ops.empty_horizontal
|
5199
5170
|
if self.PAR.ops.auto_resize_columns < self.min_column_width:
|
5200
5171
|
min_column_width = self.column_width
|
5201
5172
|
else:
|
@@ -5219,8 +5190,7 @@ class MainTable(tk.Canvas):
|
|
5219
5190
|
widths[i] -= change
|
5220
5191
|
self.set_col_positions(itr=widths)
|
5221
5192
|
if self.PAR.ops.auto_resize_rows and self.allow_auto_resize_rows and row_pos_exists:
|
5222
|
-
max_h =
|
5223
|
-
max_h -= self.PAR.ops.empty_vertical
|
5193
|
+
max_h = can_height - self.PAR.ops.empty_vertical
|
5224
5194
|
if self.PAR.ops.auto_resize_rows < self.min_row_height:
|
5225
5195
|
min_row_height = self.min_row_height
|
5226
5196
|
else:
|
@@ -5273,11 +5243,13 @@ class MainTable(tk.Canvas):
|
|
5273
5243
|
last_col_line_pos + self.PAR.ops.empty_horizontal + 2,
|
5274
5244
|
last_row_line_pos + self.PAR.ops.empty_vertical + 2,
|
5275
5245
|
)
|
5276
|
-
if scrollregion != self.scrollregion:
|
5246
|
+
if setting_views or scrollregion != self.scrollregion:
|
5277
5247
|
self.configure(scrollregion=scrollregion)
|
5278
5248
|
self.scrollregion = scrollregion
|
5279
|
-
|
5280
|
-
|
5249
|
+
self.CH.configure_scrollregion(last_col_line_pos)
|
5250
|
+
self.RI.configure_scrollregion(last_row_line_pos)
|
5251
|
+
if setting_views:
|
5252
|
+
return False
|
5281
5253
|
scrollpos_bot = self.canvasy(can_height)
|
5282
5254
|
end_row = bisect_right(self.row_positions, scrollpos_bot)
|
5283
5255
|
if not scrollpos_bot >= self.row_positions[-1]:
|
tksheet/row_index.py
CHANGED
@@ -391,13 +391,15 @@ class RowIndex(tk.Canvas):
|
|
391
391
|
)
|
392
392
|
elif self.width_resizing_enabled and self.rsz_h is None and self.rsz_w is True:
|
393
393
|
self.set_width_of_index_to_text()
|
394
|
-
elif self.row_selection_enabled and self.rsz_h is None and self.rsz_w is None:
|
394
|
+
elif (self.row_selection_enabled or self.PAR.ops.treeview) and self.rsz_h is None and self.rsz_w is None:
|
395
395
|
r = self.MT.identify_row(y=event.y)
|
396
396
|
if r < len(self.MT.row_positions) - 1:
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
397
|
+
iid = self.event_over_tree_arrow(r, self.canvasy(event.y), event.x)
|
398
|
+
if self.row_selection_enabled:
|
399
|
+
if self.MT.single_selection_enabled:
|
400
|
+
self.select_row(r, redraw=iid is None)
|
401
|
+
elif self.MT.toggle_selection_enabled:
|
402
|
+
self.toggle_select_row(r, redraw=iid is None)
|
401
403
|
datarn = r if self.MT.all_rows_displayed else self.MT.displayed_rows[r]
|
402
404
|
if (
|
403
405
|
self.get_cell_kwargs(datarn, key="dropdown")
|
@@ -405,8 +407,8 @@ class RowIndex(tk.Canvas):
|
|
405
407
|
or self.edit_cell_enabled
|
406
408
|
):
|
407
409
|
self.open_cell(event)
|
408
|
-
elif
|
409
|
-
self.PAR.item(iid, open_=iid not in self.tree_open_ids
|
410
|
+
elif iid is not None:
|
411
|
+
self.PAR.item(iid, open_=iid not in self.tree_open_ids)
|
410
412
|
self.rsz_h = None
|
411
413
|
self.mouse_motion(event)
|
412
414
|
try_binding(self.extra_double_b1_func, event)
|
@@ -870,7 +872,7 @@ class RowIndex(tk.Canvas):
|
|
870
872
|
elif (iid := self.event_over_tree_arrow(r, canvasy, event.x)) is not None:
|
871
873
|
if self.MT.selection_boxes:
|
872
874
|
self.select_row(r, redraw=False)
|
873
|
-
self.PAR.item(iid, open_=iid not in self.tree_open_ids
|
875
|
+
self.PAR.item(iid, open_=iid not in self.tree_open_ids)
|
874
876
|
else:
|
875
877
|
self.mouseclick_outside_editor_or_dropdown_all_canvases(inside=True)
|
876
878
|
self.b1_pressed_loc = None
|
@@ -1189,8 +1191,8 @@ class RowIndex(tk.Canvas):
|
|
1189
1191
|
new_w = self.set_width_of_index_to_text(only_rows=only_rows, set_width=False)
|
1190
1192
|
else:
|
1191
1193
|
new_w = None
|
1192
|
-
if new_w is not None and (
|
1193
|
-
new_w =
|
1194
|
+
if new_w is not None and (sheet_w_x := floor(self.PAR.winfo_width() * 0.8)) < new_w:
|
1195
|
+
new_w = sheet_w_x
|
1194
1196
|
if new_w and (self.current_width - new_w > 15 or new_w - self.current_width > 5):
|
1195
1197
|
self.set_width(new_w, set_TL=True)
|
1196
1198
|
return True
|
@@ -1392,9 +1394,19 @@ class RowIndex(tk.Canvas):
|
|
1392
1394
|
t = self.create_polygon(points, fill=fill, outline=outline, tag=tag, smooth=True)
|
1393
1395
|
self.disp_checkbox[t] = True
|
1394
1396
|
|
1397
|
+
def configure_scrollregion(self, last_row_line_pos: float) -> None:
|
1398
|
+
self.configure(
|
1399
|
+
scrollregion=(
|
1400
|
+
0,
|
1401
|
+
0,
|
1402
|
+
self.current_width,
|
1403
|
+
last_row_line_pos + self.PAR.ops.empty_vertical + 2,
|
1404
|
+
)
|
1405
|
+
)
|
1406
|
+
|
1395
1407
|
def redraw_grid_and_text(
|
1396
1408
|
self,
|
1397
|
-
last_row_line_pos:
|
1409
|
+
last_row_line_pos: float,
|
1398
1410
|
scrollpos_top: int,
|
1399
1411
|
y_stop: int,
|
1400
1412
|
start_row: int,
|
@@ -1403,14 +1415,7 @@ class RowIndex(tk.Canvas):
|
|
1403
1415
|
row_pos_exists: bool,
|
1404
1416
|
) -> None:
|
1405
1417
|
try:
|
1406
|
-
self.
|
1407
|
-
scrollregion=(
|
1408
|
-
0,
|
1409
|
-
0,
|
1410
|
-
self.current_width,
|
1411
|
-
last_row_line_pos + self.PAR.ops.empty_vertical + 2,
|
1412
|
-
)
|
1413
|
-
)
|
1418
|
+
self.configure_scrollregion(last_row_line_pos=last_row_line_pos)
|
1414
1419
|
except Exception:
|
1415
1420
|
return
|
1416
1421
|
self.hidd_text.update(self.disp_text)
|
tksheet/sheet.py
CHANGED
@@ -402,13 +402,13 @@ class Sheet(tk.Frame):
|
|
402
402
|
self.set_scrollbar_options()
|
403
403
|
self.yscroll = ttk.Scrollbar(
|
404
404
|
self,
|
405
|
-
command=self.MT.
|
405
|
+
command=self.MT._yscrollbar,
|
406
406
|
orient="vertical",
|
407
407
|
style=f"Sheet{self.unique_id}.Vertical.TScrollbar",
|
408
408
|
)
|
409
409
|
self.xscroll = ttk.Scrollbar(
|
410
410
|
self,
|
411
|
-
command=self.MT.
|
411
|
+
command=self.MT._xscrollbar,
|
412
412
|
orient="horizontal",
|
413
413
|
style=f"Sheet{self.unique_id}.Horizontal.TScrollbar",
|
414
414
|
)
|
@@ -593,9 +593,12 @@ class Sheet(tk.Frame):
|
|
593
593
|
|
594
594
|
def extra_bindings(
|
595
595
|
self,
|
596
|
-
bindings: str | list | tuple,
|
596
|
+
bindings: str | list | tuple | None = None,
|
597
597
|
func: Callable | None = None,
|
598
598
|
) -> Sheet:
|
599
|
+
# bindings is None, unbind all
|
600
|
+
if bindings is None:
|
601
|
+
bindings = "all"
|
599
602
|
# bindings is str, func arg is None or Callable
|
600
603
|
if isinstance(bindings, str):
|
601
604
|
iterable = [(bindings, func)]
|
@@ -1935,6 +1938,7 @@ class Sheet(tk.Frame):
|
|
1935
1938
|
undo: bool = False,
|
1936
1939
|
emit_event: bool = False,
|
1937
1940
|
create_selections: bool = True,
|
1941
|
+
add_column_widths: bool = True,
|
1938
1942
|
redraw: bool = True,
|
1939
1943
|
) -> EventDataDict:
|
1940
1944
|
total_cols = None
|
@@ -1993,6 +1997,7 @@ class Sheet(tk.Frame):
|
|
1993
1997
|
heights=heights,
|
1994
1998
|
row_index=row_index,
|
1995
1999
|
),
|
2000
|
+
add_col_positions=add_column_widths,
|
1996
2001
|
event_data=event_dict(
|
1997
2002
|
name="add_rows",
|
1998
2003
|
sheet=self.name,
|
@@ -2018,6 +2023,7 @@ class Sheet(tk.Frame):
|
|
2018
2023
|
undo: bool = False,
|
2019
2024
|
emit_event: bool = False,
|
2020
2025
|
create_selections: bool = True,
|
2026
|
+
add_row_heights: bool = True,
|
2021
2027
|
redraw: bool = True,
|
2022
2028
|
) -> EventDataDict:
|
2023
2029
|
old_total = self.MT.equalize_data_row_lengths()
|
@@ -2084,6 +2090,7 @@ class Sheet(tk.Frame):
|
|
2084
2090
|
widths=widths,
|
2085
2091
|
headers=headers,
|
2086
2092
|
),
|
2093
|
+
add_row_positions=add_row_heights,
|
2087
2094
|
event_data=event_dict(
|
2088
2095
|
name="add_columns",
|
2089
2096
|
sheet=self.name,
|
@@ -4117,7 +4124,11 @@ class Sheet(tk.Frame):
|
|
4117
4124
|
def set_options(self, redraw: bool = True, **kwargs) -> Sheet:
|
4118
4125
|
for k, v in kwargs.items():
|
4119
4126
|
if k in self.ops and v != self.ops[k]:
|
4127
|
+
if k.endswith("bindings"):
|
4128
|
+
self.MT._disable_binding(k.split("_")[0])
|
4120
4129
|
self.ops[k] = v
|
4130
|
+
if k.endswith("bindings"):
|
4131
|
+
self.MT._enable_binding(k.split("_")[0])
|
4121
4132
|
if "from_clipboard_delimiters" in kwargs:
|
4122
4133
|
self.ops.from_clipboard_delimiters = (
|
4123
4134
|
self.ops.from_clipboard_delimiters
|
@@ -4172,7 +4183,6 @@ class Sheet(tk.Frame):
|
|
4172
4183
|
if any(k in kwargs for k in scrollbar_options_keys):
|
4173
4184
|
self.set_scrollbar_options()
|
4174
4185
|
self.MT.create_rc_menus()
|
4175
|
-
self.MT.key_bindings()
|
4176
4186
|
self.set_refresh_timer(redraw)
|
4177
4187
|
return self
|
4178
4188
|
|
@@ -4480,7 +4490,9 @@ class Sheet(tk.Frame):
|
|
4480
4490
|
x += 1
|
4481
4491
|
tally_of_ids[iid] += 1
|
4482
4492
|
row[iid_column] = new
|
4483
|
-
if iid
|
4493
|
+
if iid in self.RI.tree:
|
4494
|
+
self.RI.tree[iid].text = row[text_column]
|
4495
|
+
else:
|
4484
4496
|
self.RI.tree[iid] = Node(row[text_column], iid, "")
|
4485
4497
|
if iid == pid or self.RI.pid_causes_recursive_loop(iid, pid):
|
4486
4498
|
row[parent_column] = ""
|
@@ -4531,7 +4543,6 @@ class Sheet(tk.Frame):
|
|
4531
4543
|
Accepts set[str] of iids that are open in the treeview
|
4532
4544
|
Closes everything else
|
4533
4545
|
"""
|
4534
|
-
self.RI.tree_open_ids = open_ids if isinstance(open_ids, set) else set(open_ids)
|
4535
4546
|
self.hide_rows(
|
4536
4547
|
set(self.MT.displayed_rows),
|
4537
4548
|
redraw=False,
|
@@ -4543,16 +4554,18 @@ class Sheet(tk.Frame):
|
|
4543
4554
|
redraw=False,
|
4544
4555
|
deselect_all=True,
|
4545
4556
|
)
|
4557
|
+
open_ids = set(filter(self.exists, map(str.lower, open_ids)))
|
4558
|
+
self.RI.tree_open_ids = open_ids
|
4546
4559
|
if open_ids:
|
4547
|
-
self.tree_open(
|
4560
|
+
self.tree_open(open_ids)
|
4548
4561
|
return self
|
4549
4562
|
|
4550
4563
|
def tree_open(self, *items) -> Sheet:
|
4551
4564
|
"""
|
4552
4565
|
If used without args all items are opened
|
4553
4566
|
"""
|
4554
|
-
if items:
|
4555
|
-
for item in
|
4567
|
+
if items := set(unpack(items)):
|
4568
|
+
for item in filter(items.__contains__, self.get_children()):
|
4556
4569
|
self.item(item, open_=True)
|
4557
4570
|
else:
|
4558
4571
|
for item in self.get_children():
|
@@ -4597,9 +4610,6 @@ class Sheet(tk.Frame):
|
|
4597
4610
|
text = iid
|
4598
4611
|
parent_node = self.RI.tree[pid] if parent else ""
|
4599
4612
|
self.RI.tree[iid] = Node(text, iid, parent_node)
|
4600
|
-
if self.RI.pid_causes_recursive_loop(iid, pid):
|
4601
|
-
del self.RI.tree[iid]
|
4602
|
-
raise ValueError(f"iid '{iid}' causes a recursive loop with parent '{parent}'.")
|
4603
4613
|
if parent_node:
|
4604
4614
|
if isinstance(index, int):
|
4605
4615
|
idx = self.RI.tree_rns[pid] + index + 1
|
@@ -4666,24 +4676,25 @@ class Sheet(tk.Frame):
|
|
4666
4676
|
if self.RI.tree[item].children:
|
4667
4677
|
if open_:
|
4668
4678
|
self.RI.tree_open_ids.add(item)
|
4669
|
-
self.
|
4670
|
-
|
4671
|
-
|
4672
|
-
|
4673
|
-
|
4679
|
+
if self.item_displayed(item):
|
4680
|
+
self.show_rows(
|
4681
|
+
rows=(self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True)),
|
4682
|
+
redraw=False,
|
4683
|
+
deselect_all=False,
|
4684
|
+
)
|
4674
4685
|
else:
|
4675
4686
|
self.RI.tree_open_ids.discard(item)
|
4676
|
-
|
4677
|
-
|
4678
|
-
|
4679
|
-
|
4680
|
-
|
4681
|
-
|
4682
|
-
|
4687
|
+
if self.item_displayed(item):
|
4688
|
+
self.hide_rows(
|
4689
|
+
rows={self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True)},
|
4690
|
+
redraw=False,
|
4691
|
+
deselect_all=False,
|
4692
|
+
data_indexes=True,
|
4693
|
+
)
|
4683
4694
|
else:
|
4684
4695
|
self.RI.tree_open_ids.discard(item)
|
4685
4696
|
get = not (isinstance(iid, str) or isinstance(text, str) or isinstance(values, list) or isinstance(open_, bool))
|
4686
|
-
self.set_refresh_timer(redraw=not get
|
4697
|
+
self.set_refresh_timer(redraw=not get and redraw)
|
4687
4698
|
if get:
|
4688
4699
|
return DotDict(
|
4689
4700
|
text=self.RI.tree[item].text,
|
@@ -0,0 +1,20 @@
|
|
1
|
+
tksheet/__init__.py,sha256=B-CIT1taBCzsRGcV4R7iv1vUtnLH5fwzUka5wQC2STQ,2014
|
2
|
+
tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
|
3
|
+
tksheet/column_headers.py,sha256=UEnaaqTUy4eNsJw7uGMnqjNoZWnuu5HCMVBDeHYk4lQ,100325
|
4
|
+
tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
|
5
|
+
tksheet/functions.py,sha256=ytmHQtSa8cN6dKYLFra5G0393-4sU7bivvT_U4wxksI,39697
|
6
|
+
tksheet/main_table.py,sha256=NlEWXb5SEU89AkE0fdmULHW9FX6-GJ565lSxnCeVeDk,318311
|
7
|
+
tksheet/other_classes.py,sha256=P3FYUYreLhstATvHCNow8sDQoCsD_02KB6oXcca3ahE,13628
|
8
|
+
tksheet/row_index.py,sha256=BnQF-lxH50MfPWlXW94oYSEJXoPewoX29VS7j0X1Jwc,105895
|
9
|
+
tksheet/sheet.py,sha256=dvYtZpNJsu6WfjdUKt6RKcwKeDY5c7wZ-tQfL1rjglQ,259484
|
10
|
+
tksheet/sheet_options.py,sha256=mh0rTvWrFvIKaiv88jtMZy0TSA8zTS1GXSe88u8_rzk,11978
|
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=8Qxas-m5nU-yMaeAweO4Z30FM9cOQoRTiOsH4kgZp5s,2288
|
16
|
+
tksheet-7.1.10.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
|
17
|
+
tksheet-7.1.10.dist-info/METADATA,sha256=2xqqeNuI6pZOFMJ15XWePN15NBcLURYz0PLOvhleu3I,6014
|
18
|
+
tksheet-7.1.10.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
19
|
+
tksheet-7.1.10.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
|
20
|
+
tksheet-7.1.10.dist-info/RECORD,,
|
tksheet-7.1.9.dist-info/RECORD
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
tksheet/__init__.py,sha256=9Wvm_zS75-z0FFGXl9Vz1cGsXbUBi983lVC3VmLnmhM,1994
|
2
|
-
tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
|
3
|
-
tksheet/column_headers.py,sha256=u5SRsI3VAoqxpUpPQZfu2Zimmf2OmZUBD_hMJKso-pw,100204
|
4
|
-
tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
|
5
|
-
tksheet/functions.py,sha256=ytmHQtSa8cN6dKYLFra5G0393-4sU7bivvT_U4wxksI,39697
|
6
|
-
tksheet/main_table.py,sha256=YKlcqiSj089i0-HXGtPBTLGW28Y7d_lv6hFFF6S_pQM,318310
|
7
|
-
tksheet/other_classes.py,sha256=P3FYUYreLhstATvHCNow8sDQoCsD_02KB6oXcca3ahE,13628
|
8
|
-
tksheet/row_index.py,sha256=wfOPHitGfipTysCMfQA-Nl4mJawmkv9gm5CAtIlKgxo,105673
|
9
|
-
tksheet/sheet.py,sha256=n_LrHnd4Xim2TzgJ1DY8Z1n2aaUdtwWiRukvxFMTOws,258919
|
10
|
-
tksheet/sheet_options.py,sha256=mh0rTvWrFvIKaiv88jtMZy0TSA8zTS1GXSe88u8_rzk,11978
|
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=8Qxas-m5nU-yMaeAweO4Z30FM9cOQoRTiOsH4kgZp5s,2288
|
16
|
-
tksheet-7.1.9.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
|
17
|
-
tksheet-7.1.9.dist-info/METADATA,sha256=Nyratgt4E9d83xYtfOpdQh4nd8o4HzTiV7-Mz61RPZw,6013
|
18
|
-
tksheet-7.1.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
19
|
-
tksheet-7.1.9.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
|
20
|
-
tksheet-7.1.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|