[Bug 2058388] Re: urwid 2.6.4-1 exception when using an empty Pile or Columns as a flow widget
Olivier Gayot
2058388 at bugs.launchpad.net
Tue Mar 19 16:27:55 UTC 2024
** Summary changed:
- urwid 2.6.4-1 exception when drawing an empty Pile or Columns
+ urwid 2.6.4-1 exception when using an empty Pile or Columns as a flow widget
** Description changed:
- When attempting to draw an empty Pile or Columns using urwid 2.6.4-1, it
- fails with the following exception:
+ When attempting to render an empty Pile or Columns as a flow widget
+ using urwid 2.6.4-1, it fails with the following exception:
- File "urwid/event_loop/main_loop.py", line 672, in draw_screen
- canvas = self._topmost_widget.render(self.screen_size, focus=True)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
+ File "/usr/lib/python3/dist-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/popup.py", line 127, in render
- self._update_overlay(size, focus)
- File "urwid/widget/popup.py", line 100, in _update_overlay
- canv = self._original_widget.render(size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 711, in render
- canv = get_delegate(self).render(size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/attr_map.py", line 158, in render
- canv = self._original_widget.render(size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/pile.py", line 829, in render
- canv = w.render(w_size, focus=focus and item_focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 711, in render
- canv = get_delegate(self).render(size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/padding.py", line 330, in render
- canv = self._original_widget.render((maxcol,) + size[1:], focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 112, in cached_render
- canv = fn(self, size, focus=focus)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/pile.py", line 822, in render
+ File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 822, in render
_widths, heights, size_args = self.get_rows_sizes(size, focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/pile.py", line 730, in get_rows_sizes
+ File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 730, in get_rows_sizes
heights.append(w.pack(w_h_arg, item_focus)[1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/padding.py", line 276, in pack
+ File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 744, in pack
return super().pack(size, focus)
^^^^^^^^^^^^^^^^^^^^^^^^^
- File "urwid/widget/widget.py", line 401, in pack
+ File "/usr/lib/python3/dist-packages/urwid/widget/widget.py", line 401, in pack
raise WidgetError(f"Cannot pack (maxcol,) size, this is not a flow widget: {self!r}")
- urwid.widget.widget.WidgetError: Cannot pack (maxcol,) size, this is not a flow widget: <Padding widget <FocusTrackingPile widget> align=<Align.CENTER: 'center'> min_width=14 width=14>
+ urwid.widget.widget.WidgetError: Cannot pack (maxcol,) size, this is not a flow widget: <Pile widget>
+
+ Minimal code to reproduce:
+
+ ```python
+ from urwid import Pile
+
+ Pile([
+ ("pack", Pile([])),
+ ]).render((10,))
+ ```
+
+ This looks like a regression in 2.6.4-1 since the same code was not
+ failing on 2.1.2-4
There is an upstream fix [1] that is released in urwid 2.6.5.
- https://github.com/urwid/urwid/pull/843
+ https://github.com/urwid/urwid/pull/843
** Summary changed:
- urwid 2.6.4-1 exception when using an empty Pile or Columns as a flow widget
+ urwid 2.6.4-1 exception when rendering an empty Pile or Columns as a flow widget
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to urwid in Ubuntu.
https://bugs.launchpad.net/bugs/2058388
Title:
urwid 2.6.4-1 exception when rendering an empty Pile or Columns as a
flow widget
Status in subiquity:
Invalid
Status in urwid package in Ubuntu:
In Progress
Bug description:
When attempting to render an empty Pile or Columns as a flow widget
using urwid 2.6.4-1, it fails with the following exception:
File "/usr/lib/python3/dist-packages/urwid/widget/widget.py", line 112, in cached_render
canv = fn(self, size, focus=focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 822, in render
_widths, heights, size_args = self.get_rows_sizes(size, focus)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 730, in get_rows_sizes
heights.append(w.pack(w_h_arg, item_focus)[1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urwid/widget/pile.py", line 744, in pack
return super().pack(size, focus)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/urwid/widget/widget.py", line 401, in pack
raise WidgetError(f"Cannot pack (maxcol,) size, this is not a flow widget: {self!r}")
urwid.widget.widget.WidgetError: Cannot pack (maxcol,) size, this is not a flow widget: <Pile widget>
Minimal code to reproduce:
```python
from urwid import Pile
Pile([
("pack", Pile([])),
]).render((10,))
```
This looks like a regression in 2.6.4-1 since the same code was not
failing on 2.1.2-4
There is an upstream fix [1] that is released in urwid 2.6.5.
https://github.com/urwid/urwid/pull/843
To manage notifications about this bug go to:
https://bugs.launchpad.net/subiquity/+bug/2058388/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list