tksheet 7.5.1__py3-none-any.whl → 7.5.2__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 CHANGED
@@ -4,7 +4,7 @@
4
4
  tksheet - A Python tkinter table widget
5
5
  """
6
6
 
7
- __version__ = "7.5.1"
7
+ __version__ = "7.5.2"
8
8
 
9
9
  from .colors import (
10
10
  color_map,
tksheet/column_headers.py CHANGED
@@ -2245,17 +2245,18 @@ class ColumnHeaders(tk.Canvas):
2245
2245
  self.MT._headers[datacn] = value
2246
2246
 
2247
2247
  def input_valid_for_cell(self, datacn: int, value: Any, check_readonly: bool = True) -> bool:
2248
- kwargs = self.get_cell_kwargs(datacn, key=None)
2249
- if check_readonly and "readonly" in kwargs:
2248
+ if check_readonly and self.get_cell_kwargs(datacn, key="readonly"):
2250
2249
  return False
2251
- elif "checkbox" in kwargs:
2250
+ elif self.get_cell_kwargs(datacn, key="checkbox"):
2252
2251
  return is_bool_like(value)
2253
2252
  else:
2254
2253
  return not (
2255
2254
  self.cell_equal_to(datacn, value)
2256
- or (kwargs := kwargs.get("dropdown", {}))
2257
- and kwargs["validate_input"]
2258
- and value not in kwargs["values"]
2255
+ or (
2256
+ (kwargs := self.get_cell_kwargs(datacn, key="dropdown"))
2257
+ and kwargs["validate_input"]
2258
+ and value not in kwargs["values"]
2259
+ )
2259
2260
  )
2260
2261
 
2261
2262
  def cell_equal_to(self, datacn: int, value: Any) -> bool:
@@ -2311,11 +2312,14 @@ class ColumnHeaders(tk.Canvas):
2311
2312
  return value
2312
2313
 
2313
2314
  def get_value_for_empty_cell(self, datacn: int, c_ops: bool = True) -> Any:
2314
- kwargs = self.get_cell_kwargs(datacn, key=None, cell=c_ops)
2315
- if "checkbox" in kwargs:
2315
+ if self.get_cell_kwargs(datacn, key="checkbox", cell=c_ops):
2316
2316
  return False
2317
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
2318
- return kwargs["dropdown"]["values"][0]
2317
+ elif (
2318
+ (kwargs := self.get_cell_kwargs(datacn, key="dropdown", cell=c_ops))
2319
+ and kwargs["validate_input"]
2320
+ and kwargs["values"]
2321
+ ):
2322
+ return kwargs["values"][0]
2319
2323
  else:
2320
2324
  return ""
2321
2325
 
tksheet/main_table.py CHANGED
@@ -189,7 +189,7 @@ class MainTable(tk.Canvas):
189
189
  self.min_row_height = 0
190
190
  self.min_header_height = 0
191
191
  self.being_drawn_item = None
192
- self.extra_motion_func = None
192
+ self.extra_enter_func = None
193
193
  self.extra_b1_press_func = None
194
194
  self.extra_b1_motion_func = None
195
195
  self.extra_b1_release_func = None
@@ -389,7 +389,7 @@ class MainTable(tk.Canvas):
389
389
 
390
390
  def basic_bindings(self, enable: bool = True) -> None:
391
391
  bindings = (
392
- ("<Enter>", self, self.mouse_motion),
392
+ ("<Enter>", self, self.enter),
393
393
  ("<Configure>", self, self.window_configured),
394
394
  ("<ButtonPress-1>", self, self.b1_press),
395
395
  ("<B1-Motion>", self, self.b1_motion),
@@ -3662,11 +3662,11 @@ class MainTable(tk.Canvas):
3662
3662
  self.CH.rsz_w = None
3663
3663
  self.CH.rsz_h = None
3664
3664
 
3665
- def mouse_motion(self, event: Any) -> None:
3665
+ def enter(self, event: Any) -> None:
3666
3666
  self.config(cursor="")
3667
3667
  self.current_cursor = ""
3668
3668
  self.reset_resize_vars()
3669
- try_binding(self.extra_motion_func, event)
3669
+ try_binding(self.extra_enter_func, event)
3670
3670
 
3671
3671
  def not_currently_resizing(self) -> bool:
3672
3672
  return all(v is None for v in (self.RI.rsz_h, self.RI.rsz_w, self.CH.rsz_h, self.CH.rsz_w))
@@ -8218,18 +8218,30 @@ class MainTable(tk.Canvas):
8218
8218
  return value
8219
8219
 
8220
8220
  def get_value_for_empty_cell(self, datarn: int, datacn: int, r_ops: bool = True, c_ops: bool = True) -> Any:
8221
- kwargs = self.get_cell_kwargs(
8221
+ if self.get_cell_kwargs(
8222
8222
  datarn,
8223
8223
  datacn,
8224
- key=None,
8224
+ key="checkbox",
8225
8225
  cell=r_ops and c_ops,
8226
8226
  row=r_ops,
8227
8227
  column=c_ops,
8228
- )
8229
- if "checkbox" in kwargs:
8228
+ ):
8230
8229
  return False
8231
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
8232
- return kwargs["dropdown"]["values"][0]
8230
+ elif (
8231
+ (
8232
+ kwargs := self.get_cell_kwargs(
8233
+ datarn,
8234
+ datacn,
8235
+ key="dropdown",
8236
+ cell=r_ops and c_ops,
8237
+ row=r_ops,
8238
+ column=c_ops,
8239
+ )
8240
+ )
8241
+ and kwargs["validate_input"]
8242
+ and kwargs["values"]
8243
+ ):
8244
+ return kwargs["values"][0]
8233
8245
  else:
8234
8246
  return self.format_value(datarn, datacn, "")
8235
8247
 
@@ -8415,16 +8427,17 @@ class MainTable(tk.Canvas):
8415
8427
  check_readonly: bool = True,
8416
8428
  ignore_empty: bool = False,
8417
8429
  ) -> bool:
8418
- kwargs = self.get_cell_kwargs(datarn, datacn, key=None)
8419
- if check_readonly and "readonly" in kwargs:
8430
+ if check_readonly and self.get_cell_kwargs(datarn, datacn, key="readonly"):
8420
8431
  return False
8421
- elif "format" in kwargs:
8432
+ elif self.get_cell_kwargs(datarn, datacn, key="format"):
8422
8433
  return True
8423
8434
  elif self.cell_equal_to(datarn, datacn, value, ignore_empty=ignore_empty, check_fmt=False) or (
8424
- "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and value not in kwargs["dropdown"]["values"]
8435
+ (kwargs := self.get_cell_kwargs(datarn, datacn, key="dropdown"))
8436
+ and kwargs["validate_input"]
8437
+ and value not in kwargs["values"]
8425
8438
  ):
8426
8439
  return False
8427
- elif "checkbox" in kwargs:
8440
+ elif self.get_cell_kwargs(datarn, datacn, key="checkbox"):
8428
8441
  return is_bool_like(value)
8429
8442
  else:
8430
8443
  return True
tksheet/row_index.py CHANGED
@@ -2414,17 +2414,18 @@ class RowIndex(tk.Canvas):
2414
2414
  self.MT._row_index[datarn] = value
2415
2415
 
2416
2416
  def input_valid_for_cell(self, datarn: int, value: Any, check_readonly: bool = True) -> bool:
2417
- kwargs = self.get_cell_kwargs(datarn, key=None)
2418
- if check_readonly and "readonly" in kwargs:
2417
+ if check_readonly and self.get_cell_kwargs(datarn, key="readonly"):
2419
2418
  return False
2420
- elif "checkbox" in kwargs:
2419
+ elif self.get_cell_kwargs(datarn, key="checkbox"):
2421
2420
  return is_bool_like(value)
2422
2421
  else:
2423
2422
  return not (
2424
2423
  self.cell_equal_to(datarn, value)
2425
- or (kwargs := kwargs.get("dropdown", {}))
2426
- and kwargs["validate_input"]
2427
- and value not in kwargs["values"]
2424
+ or (
2425
+ (kwargs := self.get_cell_kwargs(datarn, key="dropdown"))
2426
+ and kwargs["validate_input"]
2427
+ and value not in kwargs["values"]
2428
+ )
2428
2429
  )
2429
2430
 
2430
2431
  def cell_equal_to(self, datarn: int, value: Any) -> bool:
@@ -2487,11 +2488,14 @@ class RowIndex(tk.Canvas):
2487
2488
  if self.ops.treeview:
2488
2489
  iid = self.new_iid()
2489
2490
  return Node(text=iid, iid=iid, parent=self.get_row_parent(datarn))
2490
- kwargs = self.get_cell_kwargs(datarn, key=None, cell=r_ops)
2491
- if "checkbox" in kwargs:
2491
+ if self.get_cell_kwargs(datarn, key="checkbox", cell=r_ops):
2492
2492
  return False
2493
- elif "dropdown" in kwargs and kwargs["dropdown"]["validate_input"] and kwargs["dropdown"]["values"]:
2494
- return kwargs["dropdown"]["values"][0]
2493
+ elif (
2494
+ (kwargs := self.get_cell_kwargs(datarn, key="dropdown", cell=r_ops))
2495
+ and kwargs["validate_input"]
2496
+ and kwargs["values"]
2497
+ ):
2498
+ return kwargs["values"][0]
2495
2499
  else:
2496
2500
  return ""
2497
2501
 
tksheet/sheet.py CHANGED
@@ -703,7 +703,7 @@ class Sheet(tk.Frame):
703
703
  self.RI.extra_double_b1_func = func
704
704
  self.TL.extra_double_b1_func = func
705
705
  elif binding == "<Motion>":
706
- self.MT.extra_motion_func = func
706
+ self.MT.bind("<Motion>", func, add=add)
707
707
  self.CH.extra_motion_func = func
708
708
  self.RI.extra_motion_func = func
709
709
  self.TL.extra_motion_func = func
@@ -718,7 +718,10 @@ class Sheet(tk.Frame):
718
718
  else:
719
719
  self.bound_events[binding] = [func]
720
720
  else:
721
- self.MT.bind(binding, func, add=add)
721
+ if binding == "<Enter>":
722
+ self.MT.extra_enter_func = func
723
+ else:
724
+ self.MT.bind(binding, func, add=add)
722
725
  self.CH.bind(binding, func, add=add)
723
726
  self.RI.bind(binding, func, add=add)
724
727
  self.TL.bind(binding, func, add=add)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tksheet
3
- Version: 7.5.1
3
+ Version: 7.5.2
4
4
  Summary: Tkinter table / sheet and treeview widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
@@ -1,22 +1,22 @@
1
- tksheet/__init__.py,sha256=F7uCYLIy7aoFG0OTPxNeNrMTLdXNzic5D5I4xj3Azvs,2532
1
+ tksheet/__init__.py,sha256=EZB4NOF4UErow0D_-Ze7PuT4wryT-NdmDfeToLGNuTI,2532
2
2
  tksheet/colors.py,sha256=dHhmdFuQDlwohDHsAfT9VdrKoSl_R33L72a3HCin5zo,51591
3
- tksheet/column_headers.py,sha256=S-5AQ-kmywDMsL061iWyHTVKNmikNBfHxML3zFnUD-o,103609
3
+ tksheet/column_headers.py,sha256=BMNT6v6d6TcD6erAMtgX-n3aoC5uMRu3W1P--zXOsxA,103699
4
4
  tksheet/constants.py,sha256=f-w31-cmBt2PNcCYWYnpWgi7vNzqpFqJKqZoE9HXlRs,25454
5
5
  tksheet/find_window.py,sha256=P27qQsj9BxjALgfVfWV5tyRTDlnws-rCjnmZmoGzq1c,20917
6
6
  tksheet/formatters.py,sha256=DGcRiMsDJnySNpQcjfiX84oJ7TmOSMdU6u9injIhA4g,10095
7
7
  tksheet/functions.py,sha256=8d5T8UgNrJ3XmDFLGWXw19yVZQclLgMkinnTi5aDaLo,53163
8
- tksheet/main_table.py,sha256=-Vt7N4r2Ijom1MNMf3c-hwGJbkJDlbs3s_lgkZ_YbME,378814
8
+ tksheet/main_table.py,sha256=rORIeqtDLbuBfR_law1ae1L13gl8KlantPyr1HKOK1I,379127
9
9
  tksheet/other_classes.py,sha256=4VcAxiPH8SxuNbbLSve5ynqfnLwMUGSUs1ZQp0Yc1Gc,18177
10
- tksheet/row_index.py,sha256=EHn6FJB6I5EawX0EPpz0lxqeBAPlT4EXCIh1XHB1R1g,141881
11
- tksheet/sheet.py,sha256=j6mBRFjG_u-cWvMJs3mADevWCC01hFrnw32BOFGxixY,270167
10
+ tksheet/row_index.py,sha256=VYS5XdT1ERJggxMm0TBg8hw_3TqUrcR5sDIr66hM69c,141971
11
+ tksheet/sheet.py,sha256=WlSC7ivRRAyJRtpVMfLiaugAWhjZ0EW51MinZvO690E,270284
12
12
  tksheet/sheet_options.py,sha256=bB-XBs1sL2w9a47wSM6GD960ZKbvQuU2VvYIK2JRSjE,14567
13
13
  tksheet/sorting.py,sha256=zcZPpRtP1h_xJGtGkG3E43H7deKQFnh9cMwZ1B2-aGc,17502
14
14
  tksheet/text_editor.py,sha256=bkVRWYE3fCIo5xvwUBkmkBJ6nBGV2X1VsZ4LhQ5146I,8366
15
15
  tksheet/themes.py,sha256=kUUCUmvgu8vUlzfVNk9a3BEbeBcU3asNwPB_u-OejCY,18471
16
16
  tksheet/tksheet_types.py,sha256=1MjXR34EmvP1KfHlLTvKKVnf0VMz_LU_WOM2q4o5hfI,4598
17
17
  tksheet/top_left_rectangle.py,sha256=A4wWL8PFl57Pn2Ek71rASCE1-bW844cTl7bgt4tLWzI,8499
18
- tksheet-7.5.1.dist-info/licenses/LICENSE.txt,sha256=n1UvJHBr-AYNOf6ExICDsEggh9R7U4V4m_gH7FD-y-o,2305
19
- tksheet-7.5.1.dist-info/METADATA,sha256=EkfOrjSukmE7ZUCsRf8FD0SC_PGFk5Z5hsaUWUcsync,9474
20
- tksheet-7.5.1.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
21
- tksheet-7.5.1.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
22
- tksheet-7.5.1.dist-info/RECORD,,
18
+ tksheet-7.5.2.dist-info/licenses/LICENSE.txt,sha256=n1UvJHBr-AYNOf6ExICDsEggh9R7U4V4m_gH7FD-y-o,2305
19
+ tksheet-7.5.2.dist-info/METADATA,sha256=doJjhw-uW86R60e4x6qhTEJ_a2GabkloseGYizgocXs,9474
20
+ tksheet-7.5.2.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
21
+ tksheet-7.5.2.dist-info/top_level.txt,sha256=my61PXCcck_HHAc9cq3NAlyAr3A3FXxCy9gptEOaCN8,8
22
+ tksheet-7.5.2.dist-info/RECORD,,