pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-urwid



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Nov  8 19:22:39 UTC 2026

Modified Files:
        pkgsrc/devel/py-urwid: Makefile PLIST distinfo

Log Message:
py-urwid: update to 5.1.0.

Security fixes 🛡

    Keep web display sessions private to their user: the session id was the name of a FIFO in the shared pipe_dir, so any local user could list it, type into another user’s application and read its 
screen. Session files now live in a 0700 directory per user under hashed names, the daemon runs with umask 077, and max_clients counts only the user’s own sessions (GHSA-xm5p-pwm6-5w65) by 
@penguinolog in https://github.com/urwid/urwid/security/advisories/GHSA-xm5p-pwm6-5w65

    Keep control characters of a Terminal child off the host terminal: a child that selected the IBM PC character set could run OSC 52, OSC 2 or CSI commands on the host terminal through a UTF-8 
encoded C1 control; also see “Bug fixes” below: Harden the displays against hostile input and failed start or stop by @penguinolog in https://github.com/urwid/urwid/pull/1599

    Stop buffering an over-long DECRPM reply from terminal input, which grew memory without limit and took quadratic time, and apply a DECRPM reply only as the answer to a query the raw display sent, 
so pasted text shaped like a reply cannot switch terminal modes by @penguinolog in https://github.com/urwid/urwid/pull/1599

Major features 🗹

    Add Table: a fixed header over a scrolling body of rows whose columns share their widths, with TableColumn (packed, given or weighted width, per-column attribute map), TableRow and TableLayout 
for shared widths outside a Table by @penguinolog in https://github.com/urwid/urwid/pull/1550 and https://github.com/urwid/urwid/pull/1559

    Add Tabs: a row of tab labels over the selected tab’s body, with overflow markers, an optional underline row, the Command.NEXT_TAB and Command.PREVIOUS_TAB commands and the "focus changed" signal 
by @penguinolog in https://github.com/urwid/urwid/pull/1566 and https://github.com/urwid/urwid/pull/1594

    Add Edit(placeholder=...), whole-value validation (validator=, Severity, ValidationMessage, the "validation" signal) and completion (text_completer=, the "completion_cycle" signal) by 
@penguinolog in https://github.com/urwid/urwid/pull/1561

    Add readline editing commands and CommandMap.bind_readline(), Edit(undo_limit=...) with undo and redo, and Edit(kill_buffer=...) with yank by @penguinolog in 
https://github.com/urwid/urwid/pull/1565

    Keep the focus child marked while a container is unfocused: Pile, Columns, ListBox and GridFlow take unfocused_focus_attr= by @penguinolog in https://github.com/urwid/urwid/pull/1549

    Add get_running_loop() and get_running_loop_or_none() for the MainLoop of the current thread and task; a Terminal built without main_loop= watches its pty on the running loop and shows the 
child’s output by @penguinolog in https://github.com/urwid/urwid/pull/1569

New features 🗹

    Add MainLoop.call_from_thread() to run a callback on the loop thread from another thread or a signal handler, and MainLoop(poll_interval=...) for screens without event loop support, such as 
curses by @penguinolog in https://github.com/urwid/urwid/pull/1573

    Add a WebSocket display, urwid.display.websocket.Screen, that any HTTP server library can drive, GuardedEventLoop to keep one application’s error off a shared event loop, and 
examples/websocket_tornado.py by @penguinolog in https://github.com/urwid/urwid/pull/1597

    Add OverlayStack: nested dialogs over a base widget, optionally closed on Esc or a click outside by @penguinolog in https://github.com/urwid/urwid/pull/1592

    Add FilteredListWalker: a read-only filtered view over a list or deque walker by @penguinolog in https://github.com/urwid/urwid/pull/1593

    Add Notifications: timed messages for a footer or a status line by @penguinolog in https://github.com/urwid/urwid/pull/1572

    Add Spinner: an activity indicator for work without a total by @penguinolog in https://github.com/urwid/urwid/pull/1585

    Send "menu" from Overlay when its top widget leaves Esc unhandled by @penguinolog in https://github.com/urwid/urwid/pull/1547

    Close pop-ups and Overlay dialogs on a click outside them: the Overlay signal "click outside" and PopUpLauncher(close_on_click_outside=True), which DropDown turns on by @penguinolog in 
https://github.com/urwid/urwid/pull/1570

    Send "focus changed" from Frame by @penguinolog in https://github.com/urwid/urwid/pull/1563

    Add RadioButton.selected_button by @penguinolog in https://github.com/urwid/urwid/pull/1562

    Add the Edit signal "cancel", sent on the menu key (Esc) by @penguinolog in https://github.com/urwid/urwid/pull/1582

    Add ListBox(edge="stop"): Up and Down stop at the ends of the list instead of leaving it by @penguinolog in https://github.com/urwid/urwid/pull/1583

    Add TreeWidget.Symbols (TreeSymbols), tree icons of any width, TreeWidget.leaf_icon and connector lines by @penguinolog in https://github.com/urwid/urwid/pull/1571

    Add MouseButton: named mouse buttons, including the horizontal wheel and the back and forward buttons by @penguinolog in https://github.com/urwid/urwid/pull/1579

    Add Screen.set_title() for the terminal window title; the raw display restores the previous title on stop by @penguinolog in https://github.com/urwid/urwid/pull/1578

    Add Screen.copy_to_clipboard() over OSC 52 by @penguinolog in https://github.com/urwid/urwid/pull/1580

    Add InputClosedError, a RuntimeError the raw display raises when its input reaches end of file by @penguinolog in https://github.com/urwid/urwid/pull/1581

    Add BaseScreen.palette, a read-only view of the registered palette, and register_palette(..., replace=True) by @penguinolog in https://github.com/urwid/urwid/pull/1588

    Add hex digits, brackets and math signs to the BigText fonts by @penguinolog in https://github.com/urwid/urwid/pull/1591

Deprecations ⚡

    Deprecate the LCD display module, urwid.display.lcd, for removal in 6.0 by @penguinolog in https://github.com/urwid/urwid/pull/1587

Bug fixes 🕷
Containers and layout

    Hide zero-height Pile rows from the cursor and keys by @charan-rathore in https://github.com/urwid/urwid/pull/1543

    Skip hidden Pile rows and Columns columns in focus moves by @penguinolog in https://github.com/urwid/urwid/pull/1545

    Move the Columns focus only to columns the last layout drew: a Columns wider than the screen no longer scrolls to a hidden column by keys by @penguinolog in 
https://github.com/urwid/urwid/pull/1550

    Keep weighted Pile row heights the same for every focus position, and redraw a container when a child it did not draw changes size by @penguinolog in https://github.com/urwid/urwid/pull/1564

    Redraw widgets when a layout attribute is assigned, such as Padding.left or Overlay.top by @penguinolog in https://github.com/urwid/urwid/pull/1546

    Measure a flow-sized Overlay top widget at the width it is rendered at, so its last rows are no longer cut off; render a fixed-only widget in a given-width Padding by @penguinolog in 
https://github.com/urwid/urwid/pull/1596

    Pack and render a fixed-only widget in LineBox by @penguinolog in https://github.com/urwid/urwid/pull/1590

    Cut a LineBox title wider than the box with an ellipsis by @penguinolog in https://github.com/urwid/urwid/pull/1548

Widgets, lists and walkers

    Report one focus move when ListBox completes set_focus() by @penguinolog in https://github.com/urwid/urwid/pull/1544

    Do not fail when a ListBox with no rows is drawn or gets a key by @nk-batman21 in https://github.com/urwid/urwid/pull/1552

    Notify after partially extending a monitored deque by @charan-rathore in https://github.com/urwid/urwid/pull/1553

    Draw ScrollBar end markers only from 4 rows by @penguinolog in https://github.com/urwid/urwid/pull/1558

    Make a DropDown with a single option read-only by @penguinolog in https://github.com/urwid/urwid/pull/1560

    Clear the group when a RadioButton is created selected by @penguinolog in https://github.com/urwid/urwid/pull/1577

    Fix BarGraph rows for interleaved segments of adjacent bars, which raised BarGraphError or drew the wrong colours by @rahul05ranjan in https://github.com/urwid/urwid/pull/1538

Displays and terminals

    Clear IEXTEN and FLUSHO in the raw and curses displays, so ctrl v, ctrl o and ctrl y reach the application on macOS and the BSDs by @penguinolog in https://github.com/urwid/urwid/pull/1589

    Keep the closed-input error when the terminal hangs up by @penguinolog in https://github.com/urwid/urwid/pull/1576

    Restore the terminal when a display start or stop fails, stop the curses input spinning once the terminal is gone, keep curses mouse positions past column or row 222, and decode curses mouse 
events on PyPy; also see “Security fixes” above by @penguinolog in https://github.com/urwid/urwid/pull/1599

    Remove the Terminal pty watch by its handle, which left the watch registered on tornado and raised AttributeError on trio by @penguinolog in https://github.com/urwid/urwid/pull/1568

    Run watch_file() and watch_pipe() callbacks in the main loop of a screen without event loop support, such as curses by @penguinolog in https://github.com/urwid/urwid/pull/1569

    Let the CF635 LCD screen run under MainLoop again by @penguinolog in https://github.com/urwid/urwid/pull/1575

    Free an Overlay, Frame or ListBox without a cycle collection after its contents was read, and close only the owned loop when an AsyncioEventLoop is finalised while another asyncio loop runs by 
@penguinolog in https://github.com/urwid/urwid/pull/1592

Performance 🛠

    Speed up Pile and Columns sizing loops (up to 19% less time for Pile.rows and keypress) by @penguinolog in https://github.com/urwid/urwid/pull/1595

    Speed up Pile sizing with 0-high rows (27% less time) by @dexhunter in https://github.com/urwid/urwid/pull/1574

    Speed up Overlay rendering (up to 14% less time for nested dialogs) by @penguinolog in https://github.com/urwid/urwid/pull/1596

Documentation 🕮

    Rebuild the calc example: two tabs, big digits and themes; it replaces examples/pop_up.py by @penguinolog in https://github.com/urwid/urwid/pull/1598


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.80 pkgsrc/devel/py-urwid/Makefile
cvs rdiff -u -r1.26 -r1.27 pkgsrc/devel/py-urwid/PLIST
cvs rdiff -u -r1.67 -r1.68 pkgsrc/devel/py-urwid/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/py-urwid/Makefile
diff -u pkgsrc/devel/py-urwid/Makefile:1.79 pkgsrc/devel/py-urwid/Makefile:1.80
--- pkgsrc/devel/py-urwid/Makefile:1.79 Sun Nov  1 22:04:22 2026
+++ pkgsrc/devel/py-urwid/Makefile      Sun Nov  8 19:22:39 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.79 2026/11/01 22:04:22 wiz Exp $
+# $NetBSD: Makefile,v 1.80 2026/11/08 19:22:39 wiz Exp $
 
-DISTNAME=      urwid-5.0.1
+DISTNAME=      urwid-5.1.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    devel python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=u/urwid/}
@@ -25,8 +25,8 @@ TEST_DEPENDS+=        ${PYPKGPREFIX}-zmq>=0:../
 
 USE_LANGUAGES= # none
 
-# as of 5.0.1
-# 165 passed, 1 skipped, 6 warnings
+# as of 5.1.0
+# 186 passed, 1 skipped, 6 warnings
 
 .include "../../lang/python/batteries-included.mk"
 .include "../../lang/python/wheel.mk"

Index: pkgsrc/devel/py-urwid/PLIST
diff -u pkgsrc/devel/py-urwid/PLIST:1.26 pkgsrc/devel/py-urwid/PLIST:1.27
--- pkgsrc/devel/py-urwid/PLIST:1.26    Sun Nov  1 22:04:22 2026
+++ pkgsrc/devel/py-urwid/PLIST Sun Nov  8 19:22:39 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.26 2026/11/01 22:04:22 wiz Exp $
+@comment $NetBSD: PLIST,v 1.27 2026/11/08 19:22:39 wiz Exp $
 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 ${PYSITELIB}/${WHEEL_INFODIR}/RECORD
 ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
@@ -33,6 +33,13 @@ ${PYSITELIB}/urwid/display/_raw_display_
 ${PYSITELIB}/urwid/display/_raw_display_base.pyo
 ${PYSITELIB}/urwid/display/_web.css
 ${PYSITELIB}/urwid/display/_web.js
+${PYSITELIB}/urwid/display/_web_common.js
+${PYSITELIB}/urwid/display/_web_common.py
+${PYSITELIB}/urwid/display/_web_common.pyc
+${PYSITELIB}/urwid/display/_web_common.pyo
+${PYSITELIB}/urwid/display/_websocket.css
+${PYSITELIB}/urwid/display/_websocket.html
+${PYSITELIB}/urwid/display/_websocket.js
 ${PYSITELIB}/urwid/display/_win32.py
 ${PYSITELIB}/urwid/display/_win32.pyc
 ${PYSITELIB}/urwid/display/_win32.pyo
@@ -60,6 +67,9 @@ ${PYSITELIB}/urwid/display/raw.pyo
 ${PYSITELIB}/urwid/display/web.py
 ${PYSITELIB}/urwid/display/web.pyc
 ${PYSITELIB}/urwid/display/web.pyo
+${PYSITELIB}/urwid/display/websocket.py
+${PYSITELIB}/urwid/display/websocket.pyc
+${PYSITELIB}/urwid/display/websocket.pyo
 ${PYSITELIB}/urwid/event_loop/__init__.py
 ${PYSITELIB}/urwid/event_loop/__init__.pyc
 ${PYSITELIB}/urwid/event_loop/__init__.pyo
@@ -72,6 +82,9 @@ ${PYSITELIB}/urwid/event_loop/asyncio_lo
 ${PYSITELIB}/urwid/event_loop/glib_loop.py
 ${PYSITELIB}/urwid/event_loop/glib_loop.pyc
 ${PYSITELIB}/urwid/event_loop/glib_loop.pyo
+${PYSITELIB}/urwid/event_loop/guarded_loop.py
+${PYSITELIB}/urwid/event_loop/guarded_loop.pyc
+${PYSITELIB}/urwid/event_loop/guarded_loop.pyo
 ${PYSITELIB}/urwid/event_loop/main_loop.py
 ${PYSITELIB}/urwid/event_loop/main_loop.pyc
 ${PYSITELIB}/urwid/event_loop/main_loop.pyo
@@ -169,6 +182,9 @@ ${PYSITELIB}/urwid/widget/edit.pyo
 ${PYSITELIB}/urwid/widget/filler.py
 ${PYSITELIB}/urwid/widget/filler.pyc
 ${PYSITELIB}/urwid/widget/filler.pyo
+${PYSITELIB}/urwid/widget/filtered_walker.py
+${PYSITELIB}/urwid/widget/filtered_walker.pyc
+${PYSITELIB}/urwid/widget/filtered_walker.pyo
 ${PYSITELIB}/urwid/widget/frame.py
 ${PYSITELIB}/urwid/widget/frame.pyc
 ${PYSITELIB}/urwid/widget/frame.pyo
@@ -190,9 +206,15 @@ ${PYSITELIB}/urwid/widget/monitored_dequ
 ${PYSITELIB}/urwid/widget/monitored_list.py
 ${PYSITELIB}/urwid/widget/monitored_list.pyc
 ${PYSITELIB}/urwid/widget/monitored_list.pyo
+${PYSITELIB}/urwid/widget/notifications.py
+${PYSITELIB}/urwid/widget/notifications.pyc
+${PYSITELIB}/urwid/widget/notifications.pyo
 ${PYSITELIB}/urwid/widget/overlay.py
 ${PYSITELIB}/urwid/widget/overlay.pyc
 ${PYSITELIB}/urwid/widget/overlay.pyo
+${PYSITELIB}/urwid/widget/overlay_stack.py
+${PYSITELIB}/urwid/widget/overlay_stack.pyc
+${PYSITELIB}/urwid/widget/overlay_stack.pyo
 ${PYSITELIB}/urwid/widget/padding.py
 ${PYSITELIB}/urwid/widget/padding.pyc
 ${PYSITELIB}/urwid/widget/padding.pyo
@@ -211,6 +233,15 @@ ${PYSITELIB}/urwid/widget/scrollable.pyo
 ${PYSITELIB}/urwid/widget/solid_fill.py
 ${PYSITELIB}/urwid/widget/solid_fill.pyc
 ${PYSITELIB}/urwid/widget/solid_fill.pyo
+${PYSITELIB}/urwid/widget/spinner.py
+${PYSITELIB}/urwid/widget/spinner.pyc
+${PYSITELIB}/urwid/widget/spinner.pyo
+${PYSITELIB}/urwid/widget/table.py
+${PYSITELIB}/urwid/widget/table.pyc
+${PYSITELIB}/urwid/widget/table.pyo
+${PYSITELIB}/urwid/widget/tabs.py
+${PYSITELIB}/urwid/widget/tabs.pyc
+${PYSITELIB}/urwid/widget/tabs.pyo
 ${PYSITELIB}/urwid/widget/text.py
 ${PYSITELIB}/urwid/widget/text.pyc
 ${PYSITELIB}/urwid/widget/text.pyo

Index: pkgsrc/devel/py-urwid/distinfo
diff -u pkgsrc/devel/py-urwid/distinfo:1.67 pkgsrc/devel/py-urwid/distinfo:1.68
--- pkgsrc/devel/py-urwid/distinfo:1.67 Sun Nov  1 22:04:22 2026
+++ pkgsrc/devel/py-urwid/distinfo      Sun Nov  8 19:22:39 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.67 2026/11/01 22:04:22 wiz Exp $
+$NetBSD: distinfo,v 1.68 2026/11/08 19:22:39 wiz Exp $
 
-BLAKE2s (urwid-5.0.1.tar.gz) = 7a9bf41798639cc7d28657fad0b358aa7c594bca9bc472b3260e85194d5dd2a3
-SHA512 (urwid-5.0.1.tar.gz) = facd6b7d434c18ee4d1c3892b31c7fdf6ece24286190a084cbe81aafd7d7da761700b979ed0e4e1d791751122cb625312a7f13fcd068eb8b5284c602a22e796f
-Size (urwid-5.0.1.tar.gz) = 442871 bytes
+BLAKE2s (urwid-5.1.0.tar.gz) = 0ad5ca9ee8248adc199687f0b10ec6e65c6093fc55e015c7222e4566be3685bf
+SHA512 (urwid-5.1.0.tar.gz) = d063f51a8d0e9e1ab21e37ebc6ef2cc98232844aa0faac2f4f75253599fd78af3d88c55b0ea5cedb284c4845098495fa9ce6fb0e4d73bd3fd6c241d778f9a719
+Size (urwid-5.1.0.tar.gz) = 528491 bytes



Home | Main Index | Thread Index | Old Index