tksheet 7.4.17__py3-none-any.whl → 7.4.19__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 +1 -1
- tksheet/column_headers.py +12 -10
- tksheet/main_table.py +61 -40
- tksheet/row_index.py +12 -10
- tksheet/sheet.py +4 -2
- {tksheet-7.4.17.dist-info → tksheet-7.4.19.dist-info}/METADATA +1 -1
- {tksheet-7.4.17.dist-info → tksheet-7.4.19.dist-info}/RECORD +10 -10
- {tksheet-7.4.17.dist-info → tksheet-7.4.19.dist-info}/WHEEL +0 -0
- {tksheet-7.4.17.dist-info → tksheet-7.4.19.dist-info}/licenses/LICENSE.txt +0 -0
- {tksheet-7.4.17.dist-info → tksheet-7.4.19.dist-info}/top_level.txt +0 -0
tksheet/__init__.py
CHANGED
tksheet/column_headers.py
CHANGED
@@ -4,7 +4,7 @@ import tkinter as tk
|
|
4
4
|
from collections import defaultdict
|
5
5
|
from collections.abc import Callable, Hashable, Iterator, Sequence
|
6
6
|
from functools import partial
|
7
|
-
from itertools import
|
7
|
+
from itertools import islice, repeat
|
8
8
|
from math import ceil
|
9
9
|
from operator import itemgetter
|
10
10
|
from typing import Any, Literal
|
@@ -54,11 +54,10 @@ class ColumnHeaders(tk.Canvas):
|
|
54
54
|
self.MT = None # is set from within MainTable() __init__
|
55
55
|
self.RI: RowIndex | None = None # is set from within MainTable() __init__
|
56
56
|
self.TL = None # is set from within TopLeftRectangle() __init__
|
57
|
+
self.current_cursor = ""
|
57
58
|
self.popup_menu_loc = None
|
58
59
|
self.extra_begin_edit_cell_func = None
|
59
60
|
self.extra_end_edit_cell_func = None
|
60
|
-
self.centre_alignment_text_mod_indexes = (slice(1, None), slice(None, -1))
|
61
|
-
self.c_align_cyc = cycle(self.centre_alignment_text_mod_indexes)
|
62
61
|
self.b1_pressed_loc = None
|
63
62
|
self.closed_dropdown = None
|
64
63
|
self.being_drawn_item = None
|
@@ -332,9 +331,9 @@ class ColumnHeaders(tk.Canvas):
|
|
332
331
|
c = self.check_mouse_position_width_resizers(x, y)
|
333
332
|
if c is not None:
|
334
333
|
self.rsz_w, mouse_over_resize = c, True
|
335
|
-
if self.
|
334
|
+
if self.current_cursor != "sb_h_double_arrow":
|
336
335
|
self.config(cursor="sb_h_double_arrow")
|
337
|
-
self.
|
336
|
+
self.current_cursor = "sb_h_double_arrow"
|
338
337
|
else:
|
339
338
|
self.rsz_w = None
|
340
339
|
if self.height_resizing_enabled and not mouse_over_resize:
|
@@ -347,20 +346,23 @@ class ColumnHeaders(tk.Canvas):
|
|
347
346
|
)
|
348
347
|
if x >= x1 and y >= y1 and x <= x2 and y <= y2:
|
349
348
|
self.rsz_h, mouse_over_resize = True, True
|
350
|
-
if self.
|
349
|
+
if self.current_cursor != "sb_v_double_arrow":
|
351
350
|
self.config(cursor="sb_v_double_arrow")
|
352
|
-
self.
|
351
|
+
self.current_cursor = "sb_v_double_arrow"
|
353
352
|
else:
|
354
353
|
self.rsz_h = None
|
355
354
|
except Exception:
|
356
355
|
self.rsz_h = None
|
357
356
|
if not mouse_over_resize and self.MT.col_selected(self.MT.identify_col(event, allow_end=False)):
|
358
357
|
mouse_over_selected = True
|
359
|
-
if self.
|
358
|
+
if self.current_cursor != "hand2":
|
360
359
|
self.config(cursor="hand2")
|
361
|
-
self.
|
360
|
+
self.current_cursor = "hand2"
|
362
361
|
if not mouse_over_resize and not mouse_over_selected:
|
363
|
-
self.
|
362
|
+
if self.current_cursor != "":
|
363
|
+
self.config(cursor="")
|
364
|
+
self.current_cursor = ""
|
365
|
+
self.MT.reset_resize_vars()
|
364
366
|
try_binding(self.extra_motion_func, event)
|
365
367
|
|
366
368
|
def double_b1(self, event: Any) -> None:
|
tksheet/main_table.py
CHANGED
@@ -7,7 +7,7 @@ from bisect import bisect_left, bisect_right
|
|
7
7
|
from collections import defaultdict, deque
|
8
8
|
from collections.abc import Callable, Generator, Hashable, Iterator, Sequence
|
9
9
|
from functools import partial
|
10
|
-
from itertools import accumulate, chain,
|
10
|
+
from itertools import accumulate, chain, filterfalse, islice, repeat
|
11
11
|
from operator import itemgetter
|
12
12
|
from re import IGNORECASE, escape, sub
|
13
13
|
from tkinter import TclError
|
@@ -130,8 +130,6 @@ class MainTable(tk.Canvas):
|
|
130
130
|
self.ctrl_b1_pressed = False
|
131
131
|
self.b1_pressed_loc = None
|
132
132
|
self.closed_dropdown = None
|
133
|
-
self.centre_alignment_text_mod_indexes = (slice(1, None), slice(None, -1))
|
134
|
-
self.c_align_cyc = cycle(self.centre_alignment_text_mod_indexes)
|
135
133
|
self.allow_auto_resize_columns = True
|
136
134
|
self.allow_auto_resize_rows = True
|
137
135
|
self.span = self.PAR.span
|
@@ -150,6 +148,7 @@ class MainTable(tk.Canvas):
|
|
150
148
|
"<<SelectAll>>": self.select_all,
|
151
149
|
}
|
152
150
|
self.enabled_bindings = set()
|
151
|
+
self.enabled_bindings_menu_entries = set()
|
153
152
|
self.selection_box_ctr = 0
|
154
153
|
self.disp_selection_fills = set()
|
155
154
|
self.hidd_selection_fills = set()
|
@@ -1389,25 +1388,25 @@ class MainTable(tk.Canvas):
|
|
1389
1388
|
)
|
1390
1389
|
selboxr = selected_r + new_data_numrows if added_rows else selected_r_adjusted_new_data_numrows
|
1391
1390
|
selboxc = selected_c + new_data_numcols if added_cols else selected_c_adjusted_new_data_numcols
|
1392
|
-
self.deselect("all", redraw=False)
|
1393
|
-
self.set_currently_selected(
|
1394
|
-
*curr_coords,
|
1395
|
-
item=self.create_selection_box(
|
1396
|
-
selected_r,
|
1397
|
-
selected_c,
|
1398
|
-
selboxr,
|
1399
|
-
selboxc,
|
1400
|
-
type_="cells",
|
1401
|
-
set_current=False,
|
1402
|
-
run_binding=True,
|
1403
|
-
),
|
1404
|
-
)
|
1405
|
-
event_data["selection_boxes"] = self.get_boxes()
|
1406
|
-
event_data["selected"] = self.selected
|
1407
|
-
self.see(selected_r, selected_c, redraw=False)
|
1408
|
-
self.refresh()
|
1409
1391
|
event_data = self.bulk_edit_validation(event_data)
|
1410
1392
|
if event_data["cells"]["table"] or event_data["added"]["rows"] or event_data["added"]["columns"]:
|
1393
|
+
self.deselect("all", redraw=False)
|
1394
|
+
self.set_currently_selected(
|
1395
|
+
*curr_coords,
|
1396
|
+
item=self.create_selection_box(
|
1397
|
+
selected_r,
|
1398
|
+
selected_c,
|
1399
|
+
selboxr,
|
1400
|
+
selboxc,
|
1401
|
+
type_="cells",
|
1402
|
+
set_current=False,
|
1403
|
+
run_binding=True,
|
1404
|
+
),
|
1405
|
+
)
|
1406
|
+
event_data["selection_boxes"] = self.get_boxes()
|
1407
|
+
event_data["selected"] = self.selected
|
1408
|
+
self.see(selected_r, selected_c, redraw=False)
|
1409
|
+
self.refresh()
|
1411
1410
|
if self.undo_enabled:
|
1412
1411
|
self.undo_stack.append(stored_event_dict(event_data))
|
1413
1412
|
try_binding(self.extra_end_ctrl_v_func, event_data, "end_ctrl_v")
|
@@ -2928,28 +2927,42 @@ class MainTable(tk.Canvas):
|
|
2928
2927
|
):
|
2929
2928
|
menu.delete(0, "end")
|
2930
2929
|
mnkwgs = get_menu_kwargs(self.PAR.ops)
|
2931
|
-
if
|
2930
|
+
if (
|
2931
|
+
self.rc_popup_menus_enabled
|
2932
|
+
and self.CH.edit_cell_enabled
|
2933
|
+
and "edit_header" in self.enabled_bindings_menu_entries
|
2934
|
+
):
|
2932
2935
|
self.menu_add_command(
|
2933
2936
|
self.CH.ch_rc_popup_menu,
|
2934
2937
|
label=self.PAR.ops.edit_header_label,
|
2935
2938
|
command=lambda: self.CH.open_cell(event="rc"),
|
2936
2939
|
**mnkwgs,
|
2937
2940
|
)
|
2938
|
-
if
|
2941
|
+
if (
|
2942
|
+
self.rc_popup_menus_enabled
|
2943
|
+
and self.RI.edit_cell_enabled
|
2944
|
+
and "edit_index" in self.enabled_bindings_menu_entries
|
2945
|
+
):
|
2939
2946
|
self.menu_add_command(
|
2940
2947
|
self.RI.ri_rc_popup_menu,
|
2941
2948
|
label=self.PAR.ops.edit_index_label,
|
2942
2949
|
command=lambda: self.RI.open_cell(event="rc"),
|
2943
2950
|
**mnkwgs,
|
2944
2951
|
)
|
2945
|
-
if
|
2952
|
+
if (
|
2953
|
+
self.rc_popup_menus_enabled
|
2954
|
+
and self.edit_cell_enabled
|
2955
|
+
and any(x in self.enabled_bindings_menu_entries for x in ("all", "edit_cell", "edit_bindings", "edit"))
|
2956
|
+
):
|
2946
2957
|
self.menu_add_command(
|
2947
2958
|
self.rc_popup_menu,
|
2948
2959
|
label=self.PAR.ops.edit_cell_label,
|
2949
2960
|
command=lambda: self.open_cell(event="rc"),
|
2950
2961
|
**mnkwgs,
|
2951
2962
|
)
|
2952
|
-
if self.cut_enabled
|
2963
|
+
if self.cut_enabled and any(
|
2964
|
+
x in self.enabled_bindings_menu_entries for x in ("all", "cut", "edit_bindings", "edit")
|
2965
|
+
):
|
2953
2966
|
self.menu_add_command(
|
2954
2967
|
self.rc_popup_menu,
|
2955
2968
|
label=self.PAR.ops.cut_label,
|
@@ -2971,7 +2984,9 @@ class MainTable(tk.Canvas):
|
|
2971
2984
|
command=self.ctrl_x,
|
2972
2985
|
**mnkwgs,
|
2973
2986
|
)
|
2974
|
-
if self.copy_enabled
|
2987
|
+
if self.copy_enabled and any(
|
2988
|
+
x in self.enabled_bindings_menu_entries for x in ("all", "copy", "edit_bindings", "edit")
|
2989
|
+
):
|
2975
2990
|
self.menu_add_command(
|
2976
2991
|
self.rc_popup_menu,
|
2977
2992
|
label=self.PAR.ops.copy_label,
|
@@ -2993,7 +3008,9 @@ class MainTable(tk.Canvas):
|
|
2993
3008
|
command=self.ctrl_c,
|
2994
3009
|
**mnkwgs,
|
2995
3010
|
)
|
2996
|
-
if self.paste_enabled
|
3011
|
+
if self.paste_enabled and any(
|
3012
|
+
x in self.enabled_bindings_menu_entries for x in ("all", "paste", "edit_bindings", "edit")
|
3013
|
+
):
|
2997
3014
|
self.menu_add_command(
|
2998
3015
|
self.rc_popup_menu,
|
2999
3016
|
label=self.PAR.ops.paste_label,
|
@@ -3023,7 +3040,9 @@ class MainTable(tk.Canvas):
|
|
3023
3040
|
command=self.ctrl_v,
|
3024
3041
|
**mnkwgs,
|
3025
3042
|
)
|
3026
|
-
if self.delete_key_enabled
|
3043
|
+
if self.delete_key_enabled and any(
|
3044
|
+
x in self.enabled_bindings_menu_entries for x in ("all", "paste", "edit_bindings", "edit")
|
3045
|
+
):
|
3027
3046
|
self.menu_add_command(
|
3028
3047
|
self.rc_popup_menu,
|
3029
3048
|
label=self.PAR.ops.delete_label,
|
@@ -3219,18 +3238,18 @@ class MainTable(tk.Canvas):
|
|
3219
3238
|
**mnkwgs,
|
3220
3239
|
)
|
3221
3240
|
|
3222
|
-
def enable_bindings(self, bindings: Any) -> None:
|
3241
|
+
def enable_bindings(self, bindings: Any, menu: bool = True) -> None:
|
3223
3242
|
if not bindings:
|
3224
|
-
self._enable_binding("all")
|
3243
|
+
self._enable_binding("all", menu)
|
3225
3244
|
elif isinstance(bindings, (list, tuple)):
|
3226
3245
|
for binding in bindings:
|
3227
3246
|
if isinstance(binding, (list, tuple)):
|
3228
3247
|
for bind in binding:
|
3229
|
-
self._enable_binding(bind.lower())
|
3248
|
+
self._enable_binding(bind.lower(), menu)
|
3230
3249
|
elif isinstance(binding, str):
|
3231
|
-
self._enable_binding(binding.lower())
|
3250
|
+
self._enable_binding(binding.lower(), menu)
|
3232
3251
|
elif isinstance(bindings, str):
|
3233
|
-
self._enable_binding(bindings.lower())
|
3252
|
+
self._enable_binding(bindings.lower(), menu)
|
3234
3253
|
self.create_rc_menus()
|
3235
3254
|
|
3236
3255
|
def disable_bindings(self, bindings: Any) -> None:
|
@@ -3247,7 +3266,7 @@ class MainTable(tk.Canvas):
|
|
3247
3266
|
self._disable_binding(bindings)
|
3248
3267
|
self.create_rc_menus()
|
3249
3268
|
|
3250
|
-
def _enable_binding(self, binding: Binding) -> None:
|
3269
|
+
def _enable_binding(self, binding: Binding, menu: bool = True) -> None:
|
3251
3270
|
if binding == "enable_all":
|
3252
3271
|
binding = "all"
|
3253
3272
|
if binding in (
|
@@ -3389,6 +3408,8 @@ class MainTable(tk.Canvas):
|
|
3389
3408
|
if binding in ("ctrl_click_select", "ctrl_select"):
|
3390
3409
|
self.ctrl_select_enabled = True
|
3391
3410
|
self.enabled_bindings.add(binding)
|
3411
|
+
if menu:
|
3412
|
+
self.enabled_bindings_menu_entries.add(binding)
|
3392
3413
|
|
3393
3414
|
def _tksheet_bind(self, bindings_key: str, func: Callable) -> None:
|
3394
3415
|
for widget in (self, self.RI, self.CH, self.TL):
|
@@ -3400,8 +3421,10 @@ class MainTable(tk.Canvas):
|
|
3400
3421
|
binding = "all"
|
3401
3422
|
if binding == "all":
|
3402
3423
|
self.enabled_bindings = set()
|
3424
|
+
self.enabled_bindings_menu_entries = set()
|
3403
3425
|
else:
|
3404
3426
|
self.enabled_bindings.discard(binding)
|
3427
|
+
self.enabled_bindings_menu_entries.discard(binding)
|
3405
3428
|
if binding in (
|
3406
3429
|
"all",
|
3407
3430
|
"single",
|
@@ -3529,19 +3552,17 @@ class MainTable(tk.Canvas):
|
|
3529
3552
|
for binding in self.PAR.ops[bindings_key]:
|
3530
3553
|
widget.unbind(binding)
|
3531
3554
|
|
3532
|
-
def
|
3533
|
-
if self.current_cursor != "":
|
3534
|
-
self.config(cursor="")
|
3535
|
-
self.RI.config(cursor="")
|
3536
|
-
self.CH.config(cursor="")
|
3537
|
-
self.current_cursor = ""
|
3555
|
+
def reset_resize_vars(self) -> None:
|
3538
3556
|
self.RI.rsz_w = None
|
3539
3557
|
self.RI.rsz_h = None
|
3540
3558
|
self.CH.rsz_w = None
|
3541
3559
|
self.CH.rsz_h = None
|
3542
3560
|
|
3543
3561
|
def mouse_motion(self, event: Any) -> None:
|
3544
|
-
self.
|
3562
|
+
if self.current_cursor != "":
|
3563
|
+
self.config(cursor="")
|
3564
|
+
self.current_cursor = ""
|
3565
|
+
self.reset_resize_vars()
|
3545
3566
|
try_binding(self.extra_motion_func, event)
|
3546
3567
|
|
3547
3568
|
def not_currently_resizing(self) -> bool:
|
tksheet/row_index.py
CHANGED
@@ -5,7 +5,7 @@ from collections import defaultdict
|
|
5
5
|
from collections.abc import Callable, Generator, Hashable, Iterator, Sequence
|
6
6
|
from contextlib import suppress
|
7
7
|
from functools import partial
|
8
|
-
from itertools import
|
8
|
+
from itertools import islice, repeat
|
9
9
|
from math import ceil
|
10
10
|
from re import findall
|
11
11
|
from typing import Any, Literal
|
@@ -56,6 +56,7 @@ class RowIndex(tk.Canvas):
|
|
56
56
|
self.MT = None # is set from within MainTable() __init__
|
57
57
|
self.CH = None # is set from within MainTable() __init__
|
58
58
|
self.TL = None # is set from within TopLeftRectangle() __init__
|
59
|
+
self.current_cursor = ""
|
59
60
|
self.new_iid_ctr = -1
|
60
61
|
self.current_width = None
|
61
62
|
self.popup_menu_loc = None
|
@@ -63,8 +64,6 @@ class RowIndex(tk.Canvas):
|
|
63
64
|
self.extra_end_edit_cell_func = None
|
64
65
|
self.b1_pressed_loc = None
|
65
66
|
self.closed_dropdown = None
|
66
|
-
self.centre_alignment_text_mod_indexes = (slice(1, None), slice(None, -1))
|
67
|
-
self.c_align_cyc = cycle(self.centre_alignment_text_mod_indexes)
|
68
67
|
self.being_drawn_item = None
|
69
68
|
self.extra_motion_func = None
|
70
69
|
self.extra_b1_press_func = None
|
@@ -328,9 +327,9 @@ class RowIndex(tk.Canvas):
|
|
328
327
|
r = self.check_mouse_position_height_resizers(x, y)
|
329
328
|
if r is not None:
|
330
329
|
self.rsz_h, mouse_over_resize = r, True
|
331
|
-
if self.
|
330
|
+
if self.current_cursor != "sb_v_double_arrow":
|
332
331
|
self.config(cursor="sb_v_double_arrow")
|
333
|
-
self.
|
332
|
+
self.current_cursor = "sb_v_double_arrow"
|
334
333
|
else:
|
335
334
|
self.rsz_h = None
|
336
335
|
if (
|
@@ -352,20 +351,23 @@ class RowIndex(tk.Canvas):
|
|
352
351
|
)
|
353
352
|
if x >= x1 and y >= y1 and x <= x2 and y <= y2:
|
354
353
|
self.rsz_w, mouse_over_resize = True, True
|
355
|
-
if self.
|
354
|
+
if self.current_cursor != "sb_h_double_arrow":
|
356
355
|
self.config(cursor="sb_h_double_arrow")
|
357
|
-
self.
|
356
|
+
self.current_cursor = "sb_h_double_arrow"
|
358
357
|
else:
|
359
358
|
self.rsz_w = None
|
360
359
|
except Exception:
|
361
360
|
self.rsz_w = None
|
362
361
|
if not mouse_over_resize and self.MT.row_selected(self.MT.identify_row(event, allow_end=False)):
|
363
362
|
mouse_over_selected = True
|
364
|
-
if self.
|
363
|
+
if self.current_cursor != "hand2":
|
365
364
|
self.config(cursor="hand2")
|
366
|
-
self.
|
365
|
+
self.current_cursor = "hand2"
|
367
366
|
if not mouse_over_resize and not mouse_over_selected:
|
368
|
-
self.
|
367
|
+
if self.current_cursor != "":
|
368
|
+
self.config(cursor="")
|
369
|
+
self.current_cursor = ""
|
370
|
+
self.MT.reset_resize_vars()
|
369
371
|
try_binding(self.extra_motion_func, event)
|
370
372
|
|
371
373
|
def double_b1(self, event: Any):
|
tksheet/sheet.py
CHANGED
@@ -328,6 +328,7 @@ class Sheet(tk.Frame):
|
|
328
328
|
if treeview:
|
329
329
|
index_align = "w"
|
330
330
|
auto_resize_row_index = True
|
331
|
+
paste_can_expand_y = False
|
331
332
|
for k, v in locals().items():
|
332
333
|
if (xk := backwards_compatibility_keys.get(k, k)) in self.ops and v != self.ops[xk]:
|
333
334
|
self.ops[xk] = v
|
@@ -614,8 +615,8 @@ class Sheet(tk.Frame):
|
|
614
615
|
|
615
616
|
# Bindings and Functionality
|
616
617
|
|
617
|
-
def enable_bindings(self, *bindings: Binding) -> Sheet:
|
618
|
-
self.MT.enable_bindings(bindings)
|
618
|
+
def enable_bindings(self, *bindings: Binding, menu: bool = True) -> Sheet:
|
619
|
+
self.MT.enable_bindings(bindings, menu=menu)
|
619
620
|
return self
|
620
621
|
|
621
622
|
def disable_bindings(self, *bindings: Binding) -> Sheet:
|
@@ -4182,6 +4183,7 @@ class Sheet(tk.Frame):
|
|
4182
4183
|
self.MT.create_rc_menus()
|
4183
4184
|
if "treeview" in kwargs:
|
4184
4185
|
self.index_align("nw", redraw=False)
|
4186
|
+
self.ops.paste_can_expand_y = False
|
4185
4187
|
return self.set_refresh_timer(redraw)
|
4186
4188
|
|
4187
4189
|
def set_scrollbar_options(self) -> Sheet:
|
@@ -1,22 +1,22 @@
|
|
1
|
-
tksheet/__init__.py,sha256=
|
1
|
+
tksheet/__init__.py,sha256=r1MtaXM6JEo-rMgHtcZzUmw19x_-Qwh5pkXaZQ6qjHo,2327
|
2
2
|
tksheet/colors.py,sha256=dHhmdFuQDlwohDHsAfT9VdrKoSl_R33L72a3HCin5zo,51591
|
3
|
-
tksheet/column_headers.py,sha256=
|
3
|
+
tksheet/column_headers.py,sha256=m00q9bPwaGqVtBB5unr8N8Ezw4yfEoi-zDWkDQaLwlg,103423
|
4
4
|
tksheet/constants.py,sha256=aiDvUSaPtl_TSNtRRJ_p87c9iTBz9ksMd5IsSXzz4Hk,13316
|
5
5
|
tksheet/find_window.py,sha256=w6S0FZFLRNHiM57Oq97avALT_PctIBPegSxnkNUwkwk,19982
|
6
6
|
tksheet/formatters.py,sha256=DGcRiMsDJnySNpQcjfiX84oJ7TmOSMdU6u9injIhA4g,10095
|
7
7
|
tksheet/functions.py,sha256=qks2dLqBE9GMAuEXaA4qiU-rrL-dzmz4-tkmkp6_ETk,53037
|
8
|
-
tksheet/main_table.py,sha256=
|
8
|
+
tksheet/main_table.py,sha256=ejszte92ogu0uPCvzJJKaXC8VYUVDvh0etPDQL2lK8E,366921
|
9
9
|
tksheet/other_classes.py,sha256=B2SrUAviztDUOPGoWkcu-AixqAaKwItshoVZPGe1_Tc,16662
|
10
|
-
tksheet/row_index.py,sha256=
|
11
|
-
tksheet/sheet.py,sha256=
|
10
|
+
tksheet/row_index.py,sha256=dk1hEZNzsYJ4QzHXWYF4wJhZD2EZ3taxjXsrC0gzC1A,141697
|
11
|
+
tksheet/sheet.py,sha256=GauQYaET1NTadIo9jvNhXy-sw8kIiHEc86WsSXIfTPY,269885
|
12
12
|
tksheet/sheet_options.py,sha256=ob-XYgGfBoi2TaFAvUUmlWUkw9xB-yXmJw17gu9__Lw,9948
|
13
13
|
tksheet/sorting.py,sha256=zcZPpRtP1h_xJGtGkG3E43H7deKQFnh9cMwZ1B2-aGc,17502
|
14
14
|
tksheet/text_editor.py,sha256=rU8Fz0-ltkM63W9io2DoZJPyzUGzCc9Z0qBtc4D1H40,7404
|
15
15
|
tksheet/themes.py,sha256=AoNAxibnQi04MN0Zpbn9-kyDnkiiV8TDNWP9FYjpuf0,18473
|
16
16
|
tksheet/tksheet_types.py,sha256=1MjXR34EmvP1KfHlLTvKKVnf0VMz_LU_WOM2q4o5hfI,4598
|
17
17
|
tksheet/top_left_rectangle.py,sha256=M52IrPIeMoYE3jSpooZmqw_0W5Fz_R-Yu1ZqA685EZ8,8557
|
18
|
-
tksheet-7.4.
|
19
|
-
tksheet-7.4.
|
20
|
-
tksheet-7.4.
|
21
|
-
tksheet-7.4.
|
22
|
-
tksheet-7.4.
|
18
|
+
tksheet-7.4.19.dist-info/licenses/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
|
19
|
+
tksheet-7.4.19.dist-info/METADATA,sha256=kVnj5walRR-WcaI-O5JO1qJoj1p1mdfGOcLSyIPa2h0,8117
|
20
|
+
tksheet-7.4.19.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
21
|
+
tksheet-7.4.19.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
|
22
|
+
tksheet-7.4.19.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|