urwid 2.6.11__py3-none-any.whl → 2.6.12__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.

Potentially problematic release.


This version of urwid might be problematic. Click here for more details.

urwid/canvas.py CHANGED
@@ -935,7 +935,7 @@ def shard_body_row(sbody):
935
935
  else: # noqa: PLR5501 # pylint: disable=else-if-used # readability
936
936
  # need to skip this unchanged canvas
937
937
  if row and isinstance(row[-1], int):
938
- row[-1] = row[-1] + cview[2]
938
+ row[-1] += cview[2]
939
939
  else:
940
940
  row.append(cview[2])
941
941
 
@@ -544,9 +544,7 @@ class Screen(BaseScreen, RealTerminal):
544
544
  def is_blank_row(row: list[tuple[object, Literal["0", "U"] | None], bytes]) -> bool:
545
545
  if len(row) > 1:
546
546
  return False
547
- if row[0][2].strip():
548
- return False
549
- return True
547
+ return not row[0][2].strip()
550
548
 
551
549
  def attr_to_escape(a: AttrSpec | str | None) -> str:
552
550
  if a in self._pal_escape:
urwid/version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.6.11'
16
- __version_tuple__ = version_tuple = (2, 6, 11)
15
+ __version__ = version = '2.6.12'
16
+ __version_tuple__ = version_tuple = (2, 6, 12)
urwid/widget/bar_graph.py CHANGED
@@ -380,7 +380,7 @@ class BarGraph(Widget, metaclass=BarGraphMeta):
380
380
  row_combine_last(count, row)
381
381
  y_count -= count # noqa: PLW2901
382
382
  r += count
383
- r = r % 8
383
+ r %= 8
384
384
  if not y_count:
385
385
  continue
386
386
  if r != 0:
@@ -508,7 +508,7 @@ def calculate_bargraph_display(bardata, top: float, bar_widths: list[int], maxro
508
508
 
509
509
  for r in rows:
510
510
  if r is None:
511
- y_count = y_count + 1
511
+ y_count += 1
512
512
  continue
513
513
  if y_count:
514
514
  rowsets.append((y_count, last))
@@ -137,6 +137,17 @@ class SupportsRelativeScroll(WidgetProto, Protocol):
137
137
  def get_visible_amount(self, size: tuple[int, int], focus: bool = False) -> int: ...
138
138
 
139
139
 
140
+ def orig_iter(w: Widget) -> Iterator[Widget]:
141
+ visited = {w}
142
+ yield w
143
+ while hasattr(w, "original_widget"):
144
+ w = w.original_widget
145
+ if w in visited:
146
+ break
147
+ visited.add(w)
148
+ yield w
149
+
150
+
140
151
  class Scrollable(WidgetDecoration[WrappedWidget]):
141
152
  def sizing(self) -> frozenset[Sizing]:
142
153
  return frozenset((Sizing.BOX,))
@@ -481,7 +492,8 @@ class ScrollBar(WidgetDecoration[WrappedWidget]):
481
492
  """
482
493
  if Sizing.BOX not in widget.sizing():
483
494
  raise ValueError(f"Not a box widget: {widget!r}")
484
- if not isinstance(widget, SupportsScroll):
495
+
496
+ if not any(isinstance(w, SupportsScroll) for w in orig_iter(widget)):
485
497
  raise TypeError(f"Not a scrollable widget: {widget!r}")
486
498
 
487
499
  super().__init__(widget)
@@ -612,12 +624,6 @@ class ScrollBar(WidgetDecoration[WrappedWidget]):
612
624
  def scrolling_base_widget(self) -> SupportsScroll | SupportsRelativeScroll:
613
625
  """Nearest `original_widget` that is compatible with the scrolling API"""
614
626
 
615
- def orig_iter(w: Widget) -> Iterator[Widget]:
616
- while hasattr(w, "original_widget"):
617
- w = w.original_widget
618
- yield w
619
- yield w
620
-
621
627
  w = self
622
628
 
623
629
  for w in orig_iter(self):
@@ -105,9 +105,13 @@ class WidgetDecoration(Widget, typing.Generic[WrappedWidget]): # pylint: disabl
105
105
  >>> wd3.base_widget is t
106
106
  True
107
107
  """
108
+ visited = {self}
108
109
  w = self
109
110
  while hasattr(w, "_original_widget"):
110
111
  w = w._original_widget
112
+ if w in visited:
113
+ break
114
+ visited.add(w)
111
115
  return w
112
116
 
113
117
  def _get_base_widget(self) -> Widget:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: urwid
3
- Version: 2.6.11
3
+ Version: 2.6.12
4
4
  Summary: A full-featured console (xterm et al.) user interface library
5
5
  Home-page: https://urwid.org/
6
6
  Author-email: Ian Ward <ian@excess.org>
@@ -1,5 +1,5 @@
1
1
  urwid/__init__.py,sha256=UMQZuTCtUPN9jHAEJ35lasW7IbBYRXy7NiRAKvyz4iE,8041
2
- urwid/canvas.py,sha256=6f3pSAJqg2pPsVaqcHfYx5robqvJ2JBX7xP_NQV8fqo,46750
2
+ urwid/canvas.py,sha256=8awQrNgD6zewFAzPOYcjyiKUC8mv8yDZme7_hVpKnSE,46741
3
3
  urwid/command_map.py,sha256=M_OjrGY4yKn0jU3MEF9UOhBo2R6y_zZ-qo3LVIKNT_g,4310
4
4
  urwid/container.py,sha256=mikK50qN_Cu-8VlBRqQZzU4DcOvz8P_5CfozyyoIf3Q,1589
5
5
  urwid/decoration.py,sha256=sKfCe8SdSWZ4V0Ed_G4aumLxwwhnjoVvF70vlAhoXBE,1772
@@ -11,12 +11,12 @@ urwid/split_repr.py,sha256=pXzuddzQ4RnfIl537Gvoe8PVaBRHCPnxgdYvKK0qm8k,3899
11
11
  urwid/str_util.py,sha256=1ss-LHAhjXTynTVBcoSgYWIpBeN_RirqHYhP7fq7MrA,10844
12
12
  urwid/text_layout.py,sha256=lHiGfo7clmwHt5dMl_AaQSs2ov9IbY9JySTATZBm7h0,22821
13
13
  urwid/util.py,sha256=pGXnma03_IBx3v6_qN9cDWPXPj_YjkhQ9IxLjm_0TpU,15747
14
- urwid/version.py,sha256=xlDSe3Xh6QX74LV4NLD5AhuGgpD8erExdJU0ZVYLBLM,413
14
+ urwid/version.py,sha256=Q7bo66dj80WEpDoVmCtISYC3ZL0QcWJqe3SGYxcts9s,413
15
15
  urwid/vterm.py,sha256=q9-8dxJpVr_7a0Bj_z_FYDiRgzos3IS17BjhYcy1RDw,58410
16
16
  urwid/wimp.py,sha256=o1YsjL_tBLXba8ZRr1MTHH0poLSlXT_atY3-uD_Ualg,567
17
17
  urwid/display/__init__.py,sha256=y90WbHPNRHlimPrXhzsSfFsBbBHy8QErmB1y4Xza-xo,1732
18
18
  urwid/display/_posix_raw_display.py,sha256=EkywAUNhhqgLquknP4tyicoo6QMdKG6uH6LApRmjoW8,14501
19
- urwid/display/_raw_display_base.py,sha256=dTpsLqNkaP7kPCfhPUMbEPgXhUhjzidq-uO_cWgZyow,33581
19
+ urwid/display/_raw_display_base.py,sha256=B6mBR02J0kyBqWS6To0zdc_2hyl35czVfWnVzAV7wTY,33535
20
20
  urwid/display/_web.css,sha256=6HarEsIspH2egt51HSrgI8Yl2lGi-DbziWOdS4RHNlk,359
21
21
  urwid/display/_web.js,sha256=aWEOQ4EsADsiNgdw-zHEUMCRD2bnfR8M1mu4dOc2Tqk,12947
22
22
  urwid/display/_win32.py,sha256=hD4hytElpfIv5qxGNTMSa2QeBNByqJDNVpmiiQSj6CM,5401
@@ -41,7 +41,7 @@ urwid/event_loop/zmq_loop.py,sha256=wt4lE0hnDODTVaAMuB5wCSAD5yQ6D9pj8_G_7iNGBUI,
41
41
  urwid/widget/__init__.py,sha256=lEFAuQKYnGKS9-dhUggItnnm9Bvbbuk7RAKvzrs8xkI,4683
42
42
  urwid/widget/attr_map.py,sha256=L6svBcabtXeSaU2cNrgDv4Nne6QYk-nvVbr88sA4WnY,6205
43
43
  urwid/widget/attr_wrap.py,sha256=pJQHVNlwcX5IgpdSmTqYOt63EX-p5hA0mJfXtWXJ6wg,4830
44
- urwid/widget/bar_graph.py,sha256=Ui2Z-DJ7Try9rkAQ14rK__-oSGfsWncpJH-AxSF00bk,21615
44
+ urwid/widget/bar_graph.py,sha256=1xQPKKVczMw_lDG4UBk5urUTAgtINN6SgEkVyZkaIU4,21603
45
45
  urwid/widget/big_text.py,sha256=Zvjbkdh4H1Wv9ZTdCbX23vfNyeybO8au-kUssE58Bbs,2393
46
46
  urwid/widget/box_adapter.py,sha256=uOFlZUaCK9A4H8Pmw6-OoS9QTYi9nn-LhlSa-JpC9Iw,4276
47
47
  urwid/widget/columns.py,sha256=Jz-0oR27uAoUV8LdhPWuCrkMgSHSYTxciNjxDCXPTbs,46508
@@ -60,15 +60,15 @@ urwid/widget/padding.py,sha256=pBXQsnkySV1GXgveg2Ivm6SCqHiGa2YkYSjXaoCUIHk,21334
60
60
  urwid/widget/pile.py,sha256=aIzKYNrSQtbHVk_bn2PElHUiSdsO_NKnL4mTu-sXm4I,38628
61
61
  urwid/widget/popup.py,sha256=vw9_S1UC6UMy5Roc4qK8NXgH5_dDGxoHmpDAi_u9wsI,5974
62
62
  urwid/widget/progress_bar.py,sha256=HRnIu2V2_4wgsnAdrhK-GVVToyLaXRH0gtlkWllA4Mo,4767
63
- urwid/widget/scrollable.py,sha256=yB3S3k5dOdZ-wrQMlgxQH-1AZONSf5X6Y2accIa9tpk,24279
63
+ urwid/widget/scrollable.py,sha256=5L7axfY0Nn63H-NGIgJEyogl8e09ZdyKL5YxGHcmP1M,24352
64
64
  urwid/widget/solid_fill.py,sha256=NZRDSRK0lP4r7gXcKDgVaKEoeOcWvtrY5k2aueQEEL4,1260
65
65
  urwid/widget/text.py,sha256=jy15hL6rCBoJdZviq2jJ-i9eO6vEcxvzCIVAZs12AUw,12187
66
66
  urwid/widget/treetools.py,sha256=5s3Dnp2PCz4wQccutmdvsTTbAROJMLehXe4moB5POY0,17387
67
67
  urwid/widget/widget.py,sha256=A0ZjvDjLqhdzelPFC96Ozo1voIoGkxftNmJh8X1IyNI,29557
68
- urwid/widget/widget_decoration.py,sha256=aHP9Y7JKVCI2dw2OdRrzMj9p--C1pMIbxSJskWBLIgc,5633
68
+ urwid/widget/widget_decoration.py,sha256=6eEPvtF7wk2n1csIBWrnXAosprFl2pZiQ7SoCpwKnJM,5736
69
69
  urwid/widget/wimp.py,sha256=4wfzTQBLMbhicSlL64hBPb-1W5FAFrIKfb43i10MKSY,27305
70
- urwid-2.6.11.dist-info/COPYING,sha256=NrbT-keRaUP9X-wxPFhHhJRgR-wTN6eLRA5ZkstZX4k,26434
71
- urwid-2.6.11.dist-info/METADATA,sha256=BdPqGaA0WgGq3ISj7YQYEMzmQKAGoFn6OBAVpJE1Fl0,11043
72
- urwid-2.6.11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
73
- urwid-2.6.11.dist-info/top_level.txt,sha256=AwxQA43kNkjHbhYELXHBKrQ01X5CR2KnDzU07cVqilY,6
74
- urwid-2.6.11.dist-info/RECORD,,
70
+ urwid-2.6.12.dist-info/COPYING,sha256=NrbT-keRaUP9X-wxPFhHhJRgR-wTN6eLRA5ZkstZX4k,26434
71
+ urwid-2.6.12.dist-info/METADATA,sha256=vu73SUW1PsgXOQBYsO0xEawmoT0WNQcMYbmW-ROhWDg,11043
72
+ urwid-2.6.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
73
+ urwid-2.6.12.dist-info/top_level.txt,sha256=AwxQA43kNkjHbhYELXHBKrQ01X5CR2KnDzU07cVqilY,6
74
+ urwid-2.6.12.dist-info/RECORD,,
File without changes