tksheet 7.1.6__py3-none-any.whl → 7.1.7__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 +99 -96
- tksheet/column_headers.py +37 -24
- tksheet/functions.py +5 -5
- tksheet/listbox.py +19 -0
- tksheet/main_table.py +299 -266
- tksheet/row_index.py +46 -26
- tksheet/sheet.py +56 -83
- tksheet/sheet_options.py +3 -1
- {tksheet-7.1.6.dist-info → tksheet-7.1.7.dist-info}/METADATA +1 -1
- tksheet-7.1.7.dist-info/RECORD +21 -0
- tksheet-7.1.6.dist-info/RECORD +0 -20
- {tksheet-7.1.6.dist-info → tksheet-7.1.7.dist-info}/LICENSE.txt +0 -0
- {tksheet-7.1.6.dist-info → tksheet-7.1.7.dist-info}/WHEEL +0 -0
- {tksheet-7.1.6.dist-info → tksheet-7.1.7.dist-info}/top_level.txt +0 -0
tksheet/row_index.py
CHANGED
@@ -31,7 +31,7 @@ from .functions import (
|
|
31
31
|
consecutive_chunks,
|
32
32
|
ev_stack_dict,
|
33
33
|
event_dict,
|
34
|
-
|
34
|
+
rounded_box_coords,
|
35
35
|
get_n2a,
|
36
36
|
is_contiguous,
|
37
37
|
num2alpha,
|
@@ -405,7 +405,7 @@ class RowIndex(tk.Canvas):
|
|
405
405
|
):
|
406
406
|
self.open_cell(event)
|
407
407
|
elif (iid := self.event_over_tree_arrow(r, self.canvasy(event.y), event.x)) is not None:
|
408
|
-
self.PAR.item(iid, open_=iid not in self.tree_open_ids)
|
408
|
+
self.PAR.item(iid, open_=iid not in self.tree_open_ids, redraw=False)
|
409
409
|
self.rsz_h = None
|
410
410
|
self.mouse_motion(event)
|
411
411
|
try_binding(self.extra_double_b1_func, event)
|
@@ -869,7 +869,7 @@ class RowIndex(tk.Canvas):
|
|
869
869
|
elif (iid := self.event_over_tree_arrow(r, canvasy, event.x)) is not None:
|
870
870
|
if self.MT.selection_boxes:
|
871
871
|
self.select_row(r, redraw=False)
|
872
|
-
self.PAR.item(iid, open_=iid not in self.tree_open_ids)
|
872
|
+
self.PAR.item(iid, open_=iid not in self.tree_open_ids, redraw=False)
|
873
873
|
else:
|
874
874
|
self.mouseclick_outside_editor_or_dropdown_all_canvases(inside=True)
|
875
875
|
self.b1_pressed_loc = None
|
@@ -958,14 +958,33 @@ class RowIndex(tk.Canvas):
|
|
958
958
|
outline: str,
|
959
959
|
state: str,
|
960
960
|
tags: str | tuple[str],
|
961
|
+
iid: None | int = None,
|
961
962
|
) -> int:
|
962
|
-
|
963
|
-
|
964
|
-
|
963
|
+
coords = rounded_box_coords(
|
964
|
+
x1,
|
965
|
+
y1,
|
966
|
+
x2,
|
967
|
+
y2,
|
968
|
+
radius=9 if self.PAR.ops.rounded_boxes else 0,
|
969
|
+
)
|
970
|
+
if isinstance(iid, int):
|
971
|
+
self.coords(iid, coords)
|
965
972
|
self.itemconfig(iid, fill=fill, outline=outline, state=state, tags=tags)
|
966
973
|
else:
|
967
|
-
|
968
|
-
|
974
|
+
if self.hidd_boxes:
|
975
|
+
iid = self.hidd_boxes.pop()
|
976
|
+
self.coords(iid, coords)
|
977
|
+
self.itemconfig(iid, fill=fill, outline=outline, state=state, tags=tags)
|
978
|
+
else:
|
979
|
+
iid = self.create_polygon(
|
980
|
+
coords,
|
981
|
+
fill=fill,
|
982
|
+
outline=outline,
|
983
|
+
state=state,
|
984
|
+
tags=tags,
|
985
|
+
smooth=True,
|
986
|
+
)
|
987
|
+
self.disp_boxes.add(iid)
|
969
988
|
return iid
|
970
989
|
|
971
990
|
def hide_box(self, item: int | None) -> None:
|
@@ -1341,7 +1360,7 @@ class RowIndex(tk.Canvas):
|
|
1341
1360
|
self.disp_dropdown[t] = True
|
1342
1361
|
|
1343
1362
|
def redraw_checkbox(self, x1, y1, x2, y2, fill, outline, tag, draw_check=False):
|
1344
|
-
points =
|
1363
|
+
points = rounded_box_coords(x1, y1, x2, y2)
|
1345
1364
|
if self.hidd_checkbox:
|
1346
1365
|
t, sh = self.hidd_checkbox.popitem()
|
1347
1366
|
self.coords(t, points)
|
@@ -1359,7 +1378,7 @@ class RowIndex(tk.Canvas):
|
|
1359
1378
|
y1 = y1 + 4
|
1360
1379
|
x2 = x2 - 3
|
1361
1380
|
y2 = y2 - 3
|
1362
|
-
points =
|
1381
|
+
points = rounded_box_coords(x1, y1, x2, y2, radius=4)
|
1363
1382
|
if self.hidd_checkbox:
|
1364
1383
|
t, sh = self.hidd_checkbox.popitem()
|
1365
1384
|
self.coords(t, points)
|
@@ -1659,16 +1678,14 @@ class RowIndex(tk.Canvas):
|
|
1659
1678
|
dct[iid] = False
|
1660
1679
|
return True
|
1661
1680
|
|
1662
|
-
def get_redraw_selections(self, startr, endr):
|
1663
|
-
d = defaultdict(
|
1681
|
+
def get_redraw_selections(self, startr: int, endr: int) -> dict[str, set[int]]:
|
1682
|
+
d = defaultdict(set)
|
1664
1683
|
for item, box in self.MT.get_selection_items(columns=False):
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
d2["rows"] = {r for r in range(startr, endr) for r1, c1, r2, c2 in d["rows"] if r1 <= r and r2 > r}
|
1671
|
-
return d2
|
1684
|
+
r1, c1, r2, c2 = box.coords
|
1685
|
+
for r in range(startr, endr):
|
1686
|
+
if r1 <= r and r2 > r:
|
1687
|
+
d[box.type_].add(r)
|
1688
|
+
return d
|
1672
1689
|
|
1673
1690
|
def open_cell(self, event: object = None, ignore_existing_editor=False):
|
1674
1691
|
if not self.MT.anything_selected() or (not ignore_existing_editor and self.text_editor.open):
|
@@ -1892,6 +1909,8 @@ class RowIndex(tk.Canvas):
|
|
1892
1909
|
|
1893
1910
|
def hide_text_editor(self, reason: None | str = None) -> None:
|
1894
1911
|
if self.text_editor.open:
|
1912
|
+
for b in ("<Alt-Return>", "<Option-Return>", "<Tab>", "<Return>", "<FocusOut>", "<Escape>"):
|
1913
|
+
self.text_editor.tktext.unbind(b)
|
1895
1914
|
self.itemconfig(self.text_editor.canvas_id, state="hidden")
|
1896
1915
|
self.text_editor.open = False
|
1897
1916
|
if reason == "Escape":
|
@@ -1913,7 +1932,7 @@ class RowIndex(tk.Canvas):
|
|
1913
1932
|
if editor_info is not None and len(editor_info) >= 2 and editor_info[1] == "Escape":
|
1914
1933
|
self.hide_text_editor_and_dropdown()
|
1915
1934
|
return
|
1916
|
-
|
1935
|
+
text_editor_value = self.text_editor.get()
|
1917
1936
|
r = editor_info[0]
|
1918
1937
|
datarn = r if self.MT.all_rows_displayed else self.MT.displayed_rows[r]
|
1919
1938
|
event_data = event_dict(
|
@@ -1921,7 +1940,7 @@ class RowIndex(tk.Canvas):
|
|
1921
1940
|
sheet=self.PAR.name,
|
1922
1941
|
cells_index={datarn: self.get_cell_data(datarn)},
|
1923
1942
|
key=editor_info[1] if len(editor_info) >= 2 else "FocusOut",
|
1924
|
-
value=
|
1943
|
+
value=text_editor_value,
|
1925
1944
|
loc=r,
|
1926
1945
|
boxes=self.MT.get_boxes(),
|
1927
1946
|
selected=self.MT.selected,
|
@@ -1934,11 +1953,11 @@ class RowIndex(tk.Canvas):
|
|
1934
1953
|
check_input_valid=False,
|
1935
1954
|
)
|
1936
1955
|
if self.MT.edit_validation_func:
|
1937
|
-
|
1938
|
-
if
|
1939
|
-
edited = set_data(value=
|
1940
|
-
elif self.input_valid_for_cell(datarn,
|
1941
|
-
edited = set_data(value=
|
1956
|
+
text_editor_value = self.MT.edit_validation_func(event_data)
|
1957
|
+
if text_editor_value is not None and self.input_valid_for_cell(datarn, text_editor_value):
|
1958
|
+
edited = set_data(value=text_editor_value)
|
1959
|
+
elif self.input_valid_for_cell(datarn, text_editor_value):
|
1960
|
+
edited = set_data(value=text_editor_value)
|
1942
1961
|
if edited:
|
1943
1962
|
try_binding(self.extra_end_edit_cell_func, event_data)
|
1944
1963
|
self.MT.recreate_all_selection_boxes()
|
@@ -2125,6 +2144,7 @@ class RowIndex(tk.Canvas):
|
|
2125
2144
|
|
2126
2145
|
def hide_dropdown_window(self) -> None:
|
2127
2146
|
if self.dropdown.open:
|
2147
|
+
self.dropdown.window.unbind("<FocusOut>")
|
2128
2148
|
self.itemconfig(self.dropdown.canvas_id, state="hidden")
|
2129
2149
|
self.dropdown.open = False
|
2130
2150
|
|
tksheet/sheet.py
CHANGED
@@ -171,6 +171,9 @@ class Sheet(tk.Frame):
|
|
171
171
|
display_selected_fg_over_highlights: bool = False,
|
172
172
|
show_selected_cells_border: bool = True,
|
173
173
|
treeview: bool = False,
|
174
|
+
treeview_indent: str | int = "3",
|
175
|
+
rounded_boxes: bool = True,
|
176
|
+
alternate_color: str = "",
|
174
177
|
# colors
|
175
178
|
outline_thickness: int = 0,
|
176
179
|
outline_color: str = theme_light_blue["outline_color"],
|
@@ -3795,8 +3798,6 @@ class Sheet(tk.Frame):
|
|
3795
3798
|
)
|
3796
3799
|
if deselect_all:
|
3797
3800
|
self.MT.deselect(redraw=False)
|
3798
|
-
else:
|
3799
|
-
self.MT.deselect_any(rows=rows, redraw=False)
|
3800
3801
|
self.set_refresh_timer(redraw)
|
3801
3802
|
return self
|
3802
3803
|
|
@@ -4558,6 +4559,7 @@ class Sheet(tk.Frame):
|
|
4558
4559
|
text: str | None = None,
|
4559
4560
|
values: list | None = None,
|
4560
4561
|
open_: bool | None = None,
|
4562
|
+
redraw: bool = True,
|
4561
4563
|
) -> DotDict | Sheet:
|
4562
4564
|
"""
|
4563
4565
|
Modify options for item
|
@@ -4600,7 +4602,7 @@ class Sheet(tk.Frame):
|
|
4600
4602
|
else:
|
4601
4603
|
self.RI.tree_open_ids.discard(item)
|
4602
4604
|
get = not (isinstance(iid, str) or isinstance(text, str) or isinstance(values, list) or isinstance(open_, bool))
|
4603
|
-
self.set_refresh_timer(redraw=not get)
|
4605
|
+
self.set_refresh_timer(redraw=not get or redraw)
|
4604
4606
|
if get:
|
4605
4607
|
return DotDict(
|
4606
4608
|
text=self.RI.tree[item].text,
|
@@ -4616,10 +4618,11 @@ class Sheet(tk.Frame):
|
|
4616
4618
|
raise ValueError(f"item '{item.lower()}' does not exist.")
|
4617
4619
|
|
4618
4620
|
def rowitem(self, row: int, data_index: bool = False) -> str | None:
|
4619
|
-
if
|
4620
|
-
|
4621
|
-
|
4622
|
-
|
4621
|
+
if isinstance(row, int):
|
4622
|
+
if not data_index:
|
4623
|
+
row = self.data_r(row)
|
4624
|
+
if len(self.MT._row_index) > row:
|
4625
|
+
return self.MT._row_index[row].iid
|
4623
4626
|
return None
|
4624
4627
|
|
4625
4628
|
def get_children(self, item: None | str = None) -> Generator[str]:
|
@@ -4660,67 +4663,23 @@ class Sheet(tk.Frame):
|
|
4660
4663
|
self.set_refresh_timer(True)
|
4661
4664
|
return self
|
4662
4665
|
|
4663
|
-
def set_children(self,
|
4666
|
+
def set_children(self, parent: str, *newchildren) -> Sheet:
|
4664
4667
|
"""
|
4665
|
-
Moves everything in '*newchildren' under '
|
4668
|
+
Moves everything in '*newchildren' under 'parent'
|
4666
4669
|
"""
|
4667
|
-
|
4668
|
-
|
4669
|
-
mapping = {}
|
4670
|
-
to_show = []
|
4671
|
-
if item:
|
4672
|
-
new_parent = self.RI.tree[item]
|
4673
|
-
if new_parent.children:
|
4674
|
-
ctr = self.RI.tree_rns[new_parent.children[-1].iid] + 1
|
4675
|
-
else:
|
4676
|
-
ctr = self.RI.tree_rns[new_parent.iid] + 1
|
4677
|
-
for cid in unpack(newchildren):
|
4678
|
-
if self.RI.pid_causes_recursive_loop(cid, item):
|
4679
|
-
raise ValueError(f"iid '{cid}' causes a recursive loop with parent '{item}'.")
|
4680
|
-
cid_node = self.RI.tree[cid]
|
4681
|
-
mapping[self.RI.tree_rns[cid]] = ctr
|
4682
|
-
if item in self.RI.tree_open_ids and self.item_displayed(item):
|
4683
|
-
to_show.append(ctr)
|
4684
|
-
ctr += 1
|
4685
|
-
for did in self.RI.get_iid_descendants(cid):
|
4686
|
-
mapping[self.RI.tree_rns[did]] = ctr
|
4687
|
-
if to_show and self.RI.ancestors_all_open(did, self.RI.tree[cid].parent):
|
4688
|
-
to_show.append(ctr)
|
4689
|
-
ctr += 1
|
4690
|
-
self.RI.remove_node_from_parents_children(cid_node)
|
4691
|
-
cid_node.parent = new_parent
|
4692
|
-
new_parent.children.append(cid_node)
|
4693
|
-
else:
|
4694
|
-
ctr = (
|
4695
|
-
len(self.MT._row_index)
|
4696
|
-
- len(newchildren)
|
4697
|
-
- sum(1 for cid in unpack(newchildren) for _ in self.RI.get_iid_descendants(cid))
|
4698
|
-
)
|
4699
|
-
for cid in unpack(newchildren):
|
4700
|
-
cid_node = self.RI.tree[cid]
|
4701
|
-
mapping[self.RI.tree_rns[cid]] = ctr
|
4702
|
-
to_show.append(ctr)
|
4703
|
-
ctr += 1
|
4704
|
-
for did in self.RI.get_iid_descendants(cid):
|
4705
|
-
mapping[self.RI.tree_rns[did]] = ctr
|
4706
|
-
if self.RI.ancestors_all_open(did, cid_node.parent):
|
4707
|
-
to_show.append(ctr)
|
4708
|
-
ctr += 1
|
4709
|
-
self.RI.remove_node_from_parents_children(cid_node)
|
4710
|
-
self.RI.tree[cid].parent = ""
|
4711
|
-
self.mapping_move_rows(
|
4712
|
-
data_new_idxs=mapping,
|
4713
|
-
data_indexes=True,
|
4714
|
-
create_selections=False,
|
4715
|
-
redraw=False,
|
4716
|
-
)
|
4717
|
-
if item and (item not in self.RI.tree_open_ids or not self.item_displayed(item)):
|
4718
|
-
self.hide_rows(set(mapping.values()), data_indexes=True)
|
4719
|
-
self.show_rows(to_show)
|
4720
|
-
self.set_refresh_timer(True)
|
4670
|
+
for iid in unpack(newchildren):
|
4671
|
+
self.move(iid, parent)
|
4721
4672
|
return self
|
4722
4673
|
|
4723
|
-
def
|
4674
|
+
def find_rn_at_top_index(self, index: int) -> int:
|
4675
|
+
wo_par = 0
|
4676
|
+
for rn, n in enumerate(self.MT._row_index):
|
4677
|
+
if not n.parent:
|
4678
|
+
if wo_par == index:
|
4679
|
+
return rn
|
4680
|
+
wo_par += 1
|
4681
|
+
|
4682
|
+
def move(self, item: str, parent: str, index: int | None = None) -> Sheet:
|
4724
4683
|
"""
|
4725
4684
|
Moves item to be under parent as child at index
|
4726
4685
|
'parent' can be empty string which will make item a top node
|
@@ -4737,35 +4696,49 @@ class Sheet(tk.Frame):
|
|
4737
4696
|
raise ValueError(f"iid '{item}' causes a recursive loop with parent '{parent}'.")
|
4738
4697
|
parent_node = self.RI.tree[parent]
|
4739
4698
|
if parent_node.children:
|
4740
|
-
if len(parent_node.children)
|
4741
|
-
index = len(parent_node.children)
|
4742
|
-
|
4699
|
+
if index is None or index >= len(parent_node.children):
|
4700
|
+
index = len(parent_node.children) - 1
|
4701
|
+
item_r = self.RI.tree_rns[item]
|
4702
|
+
new_r = self.RI.tree_rns[parent_node.children[index].iid]
|
4703
|
+
if item_node not in parent_node.children:
|
4704
|
+
new_r += 1
|
4705
|
+
new_r_desc = sum(1 for _ in self.RI.get_iid_descendants(parent_node.children[index].iid))
|
4706
|
+
item_desc = sum(1 for _ in self.RI.get_iid_descendants(item))
|
4707
|
+
if item_r < new_r:
|
4708
|
+
r_ctr = new_r + new_r_desc - item_desc
|
4709
|
+
else:
|
4710
|
+
r_ctr = new_r
|
4743
4711
|
else:
|
4744
|
-
|
4745
|
-
mapping[
|
4712
|
+
r_ctr = self.RI.tree_rns[parent_node.iid] + 1
|
4713
|
+
mapping[item_r] = r_ctr
|
4746
4714
|
if parent in self.RI.tree_open_ids and self.item_displayed(parent):
|
4747
|
-
to_show.append(
|
4748
|
-
|
4715
|
+
to_show.append(r_ctr)
|
4716
|
+
r_ctr += 1
|
4749
4717
|
for did in self.RI.get_iid_descendants(item):
|
4750
|
-
mapping[self.RI.tree_rns[did]] =
|
4718
|
+
mapping[self.RI.tree_rns[did]] = r_ctr
|
4751
4719
|
if to_show and self.RI.ancestors_all_open(did, item_node.parent):
|
4752
|
-
to_show.append(
|
4753
|
-
|
4720
|
+
to_show.append(r_ctr)
|
4721
|
+
r_ctr += 1
|
4754
4722
|
self.RI.remove_node_from_parents_children(item_node)
|
4755
4723
|
item_node.parent = parent_node
|
4756
4724
|
parent_node.children.append(item_node)
|
4757
4725
|
else:
|
4758
|
-
|
4759
|
-
|
4760
|
-
|
4761
|
-
|
4762
|
-
|
4763
|
-
|
4726
|
+
new_r = self.find_rn_at_top_index((sum(1 for _ in self.get_children("")) - 1) if index is None else index)
|
4727
|
+
item_r = self.RI.tree_rns[item]
|
4728
|
+
if item_r < new_r:
|
4729
|
+
par_desc = sum(1 for _ in self.RI.get_iid_descendants(self.rowitem(new_r, data_index=True)))
|
4730
|
+
item_desc = sum(1 for _ in self.RI.get_iid_descendants(item))
|
4731
|
+
r_ctr = new_r + par_desc - item_desc
|
4732
|
+
else:
|
4733
|
+
r_ctr = new_r
|
4734
|
+
mapping[item_r] = r_ctr
|
4735
|
+
to_show.append(r_ctr)
|
4736
|
+
r_ctr += 1
|
4764
4737
|
for did in self.RI.get_iid_descendants(item):
|
4765
|
-
mapping[self.RI.tree_rns[did]] =
|
4738
|
+
mapping[self.RI.tree_rns[did]] = r_ctr
|
4766
4739
|
if to_show and self.RI.ancestors_all_open(did, item_node.parent):
|
4767
|
-
to_show.append(
|
4768
|
-
|
4740
|
+
to_show.append(r_ctr)
|
4741
|
+
r_ctr += 1
|
4769
4742
|
self.RI.remove_node_from_parents_children(item_node)
|
4770
4743
|
self.RI.tree[item].parent = ""
|
4771
4744
|
self.mapping_move_rows(
|
tksheet/sheet_options.py
CHANGED
@@ -234,6 +234,8 @@ def new_sheet_options() -> DotDict:
|
|
234
234
|
"display_selected_fg_over_highlights": False,
|
235
235
|
"show_selected_cells_border": True,
|
236
236
|
"treeview": False,
|
237
|
-
"treeview_indent": "
|
237
|
+
"treeview_indent": "3",
|
238
|
+
"rounded_boxes": True,
|
239
|
+
"alternate_color": "",
|
238
240
|
}
|
239
241
|
)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
tksheet/__init__.py,sha256=UgweIADXnlw1-KpD4Xr0sA_l6qAWTP3yzQ1Bo716Fkg,2010
|
2
|
+
tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
|
3
|
+
tksheet/column_headers.py,sha256=dBEnPjbI6nqcS0OISWJ0tXBBxtGjB67OE8z2-Bx8X1U,99870
|
4
|
+
tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
|
5
|
+
tksheet/functions.py,sha256=dMJwG27Qo5WsfwzkL7A9X-PERGuGFhpQvP95BnlohJ8,39612
|
6
|
+
tksheet/listbox.py,sha256=BUHx-PsZL6yGMewxAaEZV_8mOXCVWenWqzHp3tasGvo,384
|
7
|
+
tksheet/main_table.py,sha256=ngwXVNqrtOZPtR-BqCuh7UVAubfB8v_JfdI2peJAzPM,323154
|
8
|
+
tksheet/other_classes.py,sha256=Hjr7c0kD2_880xjtGuFn9gQ-7ED5kSiNahniBeXcf84,13604
|
9
|
+
tksheet/row_index.py,sha256=NHFu5a35nPMuxajHhpS2RH8sOTYKKKb6WGO8zWofxqs,105354
|
10
|
+
tksheet/sheet.py,sha256=PbCa8RCiBYg3Zl_26j1aIKphGst84S2lGHKodnZ6Kk0,256166
|
11
|
+
tksheet/sheet_options.py,sha256=mh0rTvWrFvIKaiv88jtMZy0TSA8zTS1GXSe88u8_rzk,11978
|
12
|
+
tksheet/text_editor.py,sha256=81_IZKrTVa2KIx2cJ4n3cFvFMAwvbHIQYgqtyat-97I,6681
|
13
|
+
tksheet/themes.py,sha256=OwUe31NRbosjw3ZoZsMyB8lNVyYin9YcKLhCturi5q8,13398
|
14
|
+
tksheet/top_left_rectangle.py,sha256=-2u9GfOvcqhkKwHEtbqdFvXCY3RbvL5k2Sh9l3r_k04,8275
|
15
|
+
tksheet/types.py,sha256=IgoEHMbceKpakcZtanxKaKJ4RdCq7UW6EoEIIz5O59k,340
|
16
|
+
tksheet/vars.py,sha256=Iukk7-MMT9X7vv0m3nQPKzbp2Iw2Pg1wJEW7js919Mo,2092
|
17
|
+
tksheet-7.1.7.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
|
18
|
+
tksheet-7.1.7.dist-info/METADATA,sha256=w5PeLRxO5tOgSz577YZLks3-OtluVDYw6Kw--fixI8w,6013
|
19
|
+
tksheet-7.1.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
20
|
+
tksheet-7.1.7.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
|
21
|
+
tksheet-7.1.7.dist-info/RECORD,,
|
tksheet-7.1.6.dist-info/RECORD
DELETED
@@ -1,20 +0,0 @@
|
|
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,,
|
File without changes
|
File without changes
|
File without changes
|