tksheet 7.1.10__py3-none-any.whl → 7.1.11__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 +13 -13
- tksheet/main_table.py +26 -11
- {tksheet-7.1.10.dist-info → tksheet-7.1.11.dist-info}/METADATA +1 -1
- {tksheet-7.1.10.dist-info → tksheet-7.1.11.dist-info}/RECORD +8 -8
- {tksheet-7.1.10.dist-info → tksheet-7.1.11.dist-info}/LICENSE.txt +0 -0
- {tksheet-7.1.10.dist-info → tksheet-7.1.11.dist-info}/WHEEL +0 -0
- {tksheet-7.1.10.dist-info → tksheet-7.1.11.dist-info}/top_level.txt +0 -0
tksheet/__init__.py
CHANGED
tksheet/column_headers.py
CHANGED
@@ -4,6 +4,7 @@ import tkinter as tk
|
|
4
4
|
from collections import defaultdict
|
5
5
|
from collections.abc import (
|
6
6
|
Callable,
|
7
|
+
Sequence,
|
7
8
|
)
|
8
9
|
from functools import (
|
9
10
|
partial,
|
@@ -673,11 +674,11 @@ class ColumnHeaders(tk.Canvas):
|
|
673
674
|
|
674
675
|
def show_drag_and_drop_indicators(
|
675
676
|
self,
|
676
|
-
xpos,
|
677
|
-
y1,
|
678
|
-
y2,
|
679
|
-
cols,
|
680
|
-
):
|
677
|
+
xpos: float,
|
678
|
+
y1: float,
|
679
|
+
y2: float,
|
680
|
+
cols: Sequence[int],
|
681
|
+
) -> None:
|
681
682
|
self.hide_resize_and_ctrl_lines()
|
682
683
|
self.create_resize_line(
|
683
684
|
xpos,
|
@@ -698,13 +699,13 @@ class ColumnHeaders(tk.Canvas):
|
|
698
699
|
delete_on_timer=False,
|
699
700
|
)
|
700
701
|
|
701
|
-
def hide_resize_and_ctrl_lines(self, ctrl_lines=True):
|
702
|
+
def hide_resize_and_ctrl_lines(self, ctrl_lines: bool = True) -> None:
|
702
703
|
self.delete_resize_lines()
|
703
704
|
self.MT.delete_resize_lines()
|
704
705
|
if ctrl_lines:
|
705
706
|
self.MT.delete_ctrl_outlines()
|
706
707
|
|
707
|
-
def scroll_if_event_offscreen(self, event: object):
|
708
|
+
def scroll_if_event_offscreen(self, event: object) -> bool:
|
708
709
|
xcheck = self.xview()
|
709
710
|
need_redraw = False
|
710
711
|
if event.x > self.winfo_width() and len(xcheck) > 1 and xcheck[1] < 1:
|
@@ -727,14 +728,14 @@ class ColumnHeaders(tk.Canvas):
|
|
727
728
|
need_redraw = True
|
728
729
|
return need_redraw
|
729
730
|
|
730
|
-
def fix_xview(self):
|
731
|
+
def fix_xview(self) -> None:
|
731
732
|
xcheck = self.xview()
|
732
733
|
if xcheck and xcheck[0] < 0:
|
733
734
|
self.MT.set_xviews("moveto", 0)
|
734
735
|
elif len(xcheck) > 1 and xcheck[1] > 1:
|
735
736
|
self.MT.set_xviews("moveto", 1)
|
736
737
|
|
737
|
-
def event_over_dropdown(self, c, datacn, event: object, canvasx):
|
738
|
+
def event_over_dropdown(self, c: int, datacn: int, event: object, canvasx: float) -> bool:
|
738
739
|
if (
|
739
740
|
event.y < self.MT.header_txt_height + 5
|
740
741
|
and self.get_cell_kwargs(datacn, key="dropdown")
|
@@ -744,7 +745,7 @@ class ColumnHeaders(tk.Canvas):
|
|
744
745
|
return True
|
745
746
|
return False
|
746
747
|
|
747
|
-
def event_over_checkbox(self, c, datacn, event: object, canvasx):
|
748
|
+
def event_over_checkbox(self, c: int, datacn: int, event: object, canvasx: float) -> bool:
|
748
749
|
if (
|
749
750
|
event.y < self.MT.header_txt_height + 5
|
750
751
|
and self.get_cell_kwargs(datacn, key="checkbox")
|
@@ -753,7 +754,7 @@ class ColumnHeaders(tk.Canvas):
|
|
753
754
|
return True
|
754
755
|
return False
|
755
756
|
|
756
|
-
def b1_release(self, event: object):
|
757
|
+
def b1_release(self, event: object) -> None:
|
757
758
|
if self.being_drawn_item is not None:
|
758
759
|
to_sel = self.MT.coords_and_type(self.being_drawn_item)
|
759
760
|
r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
|
@@ -909,8 +910,7 @@ class ColumnHeaders(tk.Canvas):
|
|
909
910
|
|
910
911
|
def select_col(self, c, redraw=False, run_binding_func=True):
|
911
912
|
self.MT.deselect("all", redraw=False)
|
912
|
-
|
913
|
-
fill_iid = self.MT.create_selection_box(*box)
|
913
|
+
fill_iid = self.MT.create_selection_box(0, c, len(self.MT.row_positions) - 1, c + 1, "columns")
|
914
914
|
if redraw:
|
915
915
|
self.MT.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
916
916
|
if run_binding_func:
|
tksheet/main_table.py
CHANGED
@@ -551,7 +551,10 @@ class MainTable(tk.Canvas):
|
|
551
551
|
for r1, c1, r2, c2 in boxes:
|
552
552
|
self.show_ctrl_outline(canvas="table", start_cell=(c1, r1), end_cell=(c2, r2))
|
553
553
|
self.clipboard_clear()
|
554
|
-
|
554
|
+
if len(event_data["cells"]["table"]) == 1:
|
555
|
+
self.clipboard_append(next(iter(event_data["cells"]["table"].values())))
|
556
|
+
else:
|
557
|
+
self.clipboard_append(s.getvalue())
|
555
558
|
self.update_idletasks()
|
556
559
|
try_binding(self.extra_end_ctrl_c_func, event_data, "end_ctrl_c")
|
557
560
|
|
@@ -615,7 +618,10 @@ class MainTable(tk.Canvas):
|
|
615
618
|
if event_data["cells"]["table"]:
|
616
619
|
self.undo_stack.append(ev_stack_dict(event_data))
|
617
620
|
self.clipboard_clear()
|
618
|
-
|
621
|
+
if len(event_data["cells"]["table"]) == 1:
|
622
|
+
self.clipboard_append(next(iter(event_data["cells"]["table"].values())))
|
623
|
+
else:
|
624
|
+
self.clipboard_append(s.getvalue())
|
619
625
|
self.update_idletasks()
|
620
626
|
self.refresh()
|
621
627
|
for r1, c1, r2, c2 in boxes:
|
@@ -657,9 +663,11 @@ class MainTable(tk.Canvas):
|
|
657
663
|
dialect = csv.Sniffer().sniff(data, delimiters=self.PAR.ops.from_clipboard_delimiters)
|
658
664
|
except Exception:
|
659
665
|
dialect = csv.excel_tab
|
660
|
-
|
661
|
-
|
662
|
-
|
666
|
+
if dialect.delimiter in data:
|
667
|
+
if not (data := list(csv.reader(io.StringIO(data), dialect=dialect, skipinitialspace=True))):
|
668
|
+
return
|
669
|
+
else:
|
670
|
+
data = [[data]]
|
663
671
|
new_data_numcols = max(map(len, data))
|
664
672
|
new_data_numrows = len(data)
|
665
673
|
for rn, r in enumerate(data):
|
@@ -5657,7 +5665,7 @@ class MainTable(tk.Canvas):
|
|
5657
5665
|
r = r1
|
5658
5666
|
if c is None:
|
5659
5667
|
c = c1
|
5660
|
-
if r1 <= r and c1 <= c and r2
|
5668
|
+
if r1 <= r and c1 <= c and r2 >= r and c2 >= c:
|
5661
5669
|
self.create_currently_selected_box(
|
5662
5670
|
r,
|
5663
5671
|
c,
|
@@ -5673,7 +5681,7 @@ class MainTable(tk.Canvas):
|
|
5673
5681
|
c = box[1]
|
5674
5682
|
for item, selection_box in self.get_selection_items(reverse=True):
|
5675
5683
|
r1, c1, r2, c2 = selection_box.coords
|
5676
|
-
if box == (r1, c1, r2, c2) and r1 <= r and c1 <= c and r2
|
5684
|
+
if box == (r1, c1, r2, c2) and r1 <= r and c1 <= c and r2 >= r and c2 >= c:
|
5677
5685
|
self.create_currently_selected_box(
|
5678
5686
|
r,
|
5679
5687
|
c,
|
@@ -5686,7 +5694,7 @@ class MainTable(tk.Canvas):
|
|
5686
5694
|
if r is not None and c is not None:
|
5687
5695
|
for item, selection_box in self.get_selection_items(reverse=True):
|
5688
5696
|
r1, c1, r2, c2 = selection_box.coords
|
5689
|
-
if r1 <= r and c1 <= c and r2
|
5697
|
+
if r1 <= r and c1 <= c and r2 >= r and c2 >= c:
|
5690
5698
|
self.create_currently_selected_box(
|
5691
5699
|
r,
|
5692
5700
|
c,
|
@@ -6057,9 +6065,16 @@ class MainTable(tk.Canvas):
|
|
6057
6065
|
return
|
6058
6066
|
for item, box in self.get_selection_items():
|
6059
6067
|
r1, c1, r2, c2 = box.coords
|
6060
|
-
if r1 >= len(self.row_positions) - 1
|
6061
|
-
self.
|
6062
|
-
|
6068
|
+
if r1 >= len(self.row_positions) - 1:
|
6069
|
+
if len(self.row_positions) > 1:
|
6070
|
+
r1 = len(self.row_positions) - 2
|
6071
|
+
else:
|
6072
|
+
r1 = len(self.row_positions) - 1
|
6073
|
+
if c1 >= len(self.col_positions) - 1:
|
6074
|
+
if len(self.col_positions) > 1:
|
6075
|
+
c1 = len(self.col_positions) - 2
|
6076
|
+
else:
|
6077
|
+
c1 = len(self.col_positions) - 1
|
6063
6078
|
if r2 > len(self.row_positions) - 1:
|
6064
6079
|
r2 = len(self.row_positions) - 1
|
6065
6080
|
if c2 > len(self.col_positions) - 1:
|
@@ -1,9 +1,9 @@
|
|
1
|
-
tksheet/__init__.py,sha256=
|
1
|
+
tksheet/__init__.py,sha256=w1YOGIZHF7gjLLEWIH-XLK-ftzuYgSiLTvMUg6ORTYM,2014
|
2
2
|
tksheet/colors.py,sha256=1k06VorynLmnC4FdJg8H4reIA6rXaeXBpdMwXLhN8oc,51594
|
3
|
-
tksheet/column_headers.py,sha256=
|
3
|
+
tksheet/column_headers.py,sha256=6yYncfnKKKlSGTln35eP74e2Oom9A2XX85SrIsDeq9g,100452
|
4
4
|
tksheet/formatters.py,sha256=DXif00aq9DgFpXwkbiqD86KxtDg0Meop51hLY-KcGNQ,10037
|
5
5
|
tksheet/functions.py,sha256=ytmHQtSa8cN6dKYLFra5G0393-4sU7bivvT_U4wxksI,39697
|
6
|
-
tksheet/main_table.py,sha256=
|
6
|
+
tksheet/main_table.py,sha256=1K-JpLixwx_cnqp5IXeghRWyzaMdQiP6BPm6QVOtfzs,319012
|
7
7
|
tksheet/other_classes.py,sha256=P3FYUYreLhstATvHCNow8sDQoCsD_02KB6oXcca3ahE,13628
|
8
8
|
tksheet/row_index.py,sha256=BnQF-lxH50MfPWlXW94oYSEJXoPewoX29VS7j0X1Jwc,105895
|
9
9
|
tksheet/sheet.py,sha256=dvYtZpNJsu6WfjdUKt6RKcwKeDY5c7wZ-tQfL1rjglQ,259484
|
@@ -13,8 +13,8 @@ tksheet/themes.py,sha256=OwUe31NRbosjw3ZoZsMyB8lNVyYin9YcKLhCturi5q8,13398
|
|
13
13
|
tksheet/top_left_rectangle.py,sha256=-2u9GfOvcqhkKwHEtbqdFvXCY3RbvL5k2Sh9l3r_k04,8275
|
14
14
|
tksheet/types.py,sha256=IgoEHMbceKpakcZtanxKaKJ4RdCq7UW6EoEIIz5O59k,340
|
15
15
|
tksheet/vars.py,sha256=8Qxas-m5nU-yMaeAweO4Z30FM9cOQoRTiOsH4kgZp5s,2288
|
16
|
-
tksheet-7.1.
|
17
|
-
tksheet-7.1.
|
18
|
-
tksheet-7.1.
|
19
|
-
tksheet-7.1.
|
20
|
-
tksheet-7.1.
|
16
|
+
tksheet-7.1.11.dist-info/LICENSE.txt,sha256=ndbcCPe9SlHfweE_W2RAueWUe2k7yudyxYLq6WjFdn4,1101
|
17
|
+
tksheet-7.1.11.dist-info/METADATA,sha256=SRDk-Is6G0UmdJ6PAMgPzkwumb4PLOFETNplec7bkbE,6014
|
18
|
+
tksheet-7.1.11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
19
|
+
tksheet-7.1.11.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
|
20
|
+
tksheet-7.1.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|