urwid 4.0.2__tar.gz → 4.0.3__tar.gz
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.
- {urwid-4.0.2 → urwid-4.0.3}/.github/workflows/documentation.yml +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/.github/workflows/isolated_static_check.yml +3 -3
- {urwid-4.0.2 → urwid-4.0.3}/.github/workflows/pythonpackage.yml +6 -6
- {urwid-4.0.2 → urwid-4.0.3}/.github/workflows/yamllint.yml +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/.pre-commit-config.yaml +13 -7
- {urwid-4.0.2 → urwid-4.0.3}/PKG-INFO +5 -4
- {urwid-4.0.2 → urwid-4.0.3}/docs/changelog.rst +17 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/twisted_serve_ssh.py +2 -11
- {urwid-4.0.2 → urwid-4.0.3}/pyproject.toml +251 -215
- urwid-4.0.3/requirements.txt +2 -0
- urwid-4.0.3/ruff-requirements.txt +1 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_canvas.py +0 -8
- {urwid-4.0.2 → urwid-4.0.3}/urwid/__init__.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/canvas.py +196 -118
- {urwid-4.0.2 → urwid-4.0.3}/urwid/command_map.py +11 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/__init__.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_posix_raw_display.py +31 -19
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_raw_display_base.py +118 -108
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_win32_raw_display.py +17 -5
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/common.py +33 -21
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/curses.py +33 -28
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/escape.py +59 -43
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/html_fragment.py +15 -8
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/lcd.py +12 -12
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/raw.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/web.py +24 -18
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/abstract_loop.py +5 -5
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/asyncio_loop.py +3 -3
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/glib_loop.py +8 -9
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/main_loop.py +11 -10
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/tornado_loop.py +6 -3
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/twisted_loop.py +15 -8
- {urwid-4.0.2 → urwid-4.0.3}/urwid/graphics.py +9 -4
- {urwid-4.0.2 → urwid-4.0.3}/urwid/numedit.py +26 -24
- {urwid-4.0.2 → urwid-4.0.3}/urwid/signals.py +15 -9
- {urwid-4.0.2 → urwid-4.0.3}/urwid/split_repr.py +18 -10
- {urwid-4.0.2 → urwid-4.0.3}/urwid/str_util.py +2 -2
- {urwid-4.0.2 → urwid-4.0.3}/urwid/text_layout.py +110 -64
- {urwid-4.0.2 → urwid-4.0.3}/urwid/util.py +59 -34
- {urwid-4.0.2 → urwid-4.0.3}/urwid/version.py +3 -3
- {urwid-4.0.2 → urwid-4.0.3}/urwid/vterm.py +55 -41
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/attr_map.py +6 -6
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/attr_wrap.py +12 -6
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/bar_graph.py +12 -2
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/big_text.py +9 -7
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/box_adapter.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/columns.py +129 -59
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/constants.py +6 -6
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/container.py +39 -14
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/edit.py +7 -5
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/filler.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/frame.py +25 -22
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/grid_flow.py +27 -19
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/line_box.py +3 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/listbox.py +1 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/monitored_list.py +4 -1
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/overlay.py +40 -21
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/pile.py +125 -62
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/popup.py +2 -2
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/progress_bar.py +5 -5
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/text.py +10 -6
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/treetools.py +4 -4
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/widget.py +59 -30
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/wimp.py +22 -8
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/PKG-INFO +5 -4
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/SOURCES.txt +2 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/requires.txt +2 -1
- urwid-4.0.3/urwid.egg-info/scm_file_list.json +307 -0
- urwid-4.0.3/urwid.egg-info/scm_version.json +8 -0
- urwid-4.0.2/requirements.txt +0 -1
- urwid-4.0.2/ruff-requirements.txt +0 -1
- {urwid-4.0.2 → urwid-4.0.3}/.coveralls.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.devcontainer/dev.dockerfile +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.devcontainer/devcontainer.json +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.dockerignore +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.editorconfig +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/CODE_OF_CONDUCT.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/ISSUE_TEMPLATE/docs.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/dependabot.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/labeler.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/release.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.github/workflows/labels.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.gitignore +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/.yamllint.yml +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/COPYING +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/MANIFEST.in +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/README.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/SECURITY.md +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/classifiers.txt +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/Makefile +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/conf.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/bigtext.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/bigtext.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/bigtext1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/bigtext2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/bigtext3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/browse.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/browse.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/browse1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/browse2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/edit.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/edit.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/edit1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/edit2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/edit_text.txt +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/graph.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/graph.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/graph1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/graph2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/index.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/palette_test.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/palette_test.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/palette_test1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/palette_test2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/pop_up.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/pop_up.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/pop_up1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/pop_up2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/real_browse.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/real_edit.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/subproc.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/subproc.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/subproc1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/subproc2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/subproc2.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/tour.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/tour.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/tour1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/examples/tour2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/index.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/bright_combinations.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/bright_combinations.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/bright_combinations1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/canvascache.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/displayattributes.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/displaymodules.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/encodings.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/display_modules.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/introduction.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/urwid_widgets.svgz +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/urwid_widgets_1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/urwid_widgets_1.xcf +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/urwid_widgets_2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/urwid_widgets_2.xcf +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/images/widget_layout.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/index.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/mainloop.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/overview.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/safe_combinations.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/safe_combinations.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/safe_combinations1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/textlayout.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/userinput.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wanat.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wanat_multi.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wcur1.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wcur2.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/widgets.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wmod.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/manual/wsel.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/attrspec.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/canvas.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/command_map.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/constants.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/deprecated.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/display_modules.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/exceptions.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/global_settings.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/index.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/list_walkers.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/main_loop.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/meta.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/signals.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/text_layout.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/reference/widget.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/compile_pngs.sh +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/screenshots.sh +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/static/.placeholder +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/templates/indexcontent.html +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/templates/indexsidebar.html +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tools/templates/localtoc.html +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/adventure4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/cmenu4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/highcolors.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/highcolors.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/highcolors1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/hmenu4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/index.rst +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/input5.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/menu25.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/minimal.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/minimal.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/minimal1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/multiple4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/qa.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/qa.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/qa1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/qa2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/qa3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/sig4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/smenu.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/smenu.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/smenu1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/smenu2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/smenu3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr.py.xdotool +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr1.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr2.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr3.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/tutorial/urwid_attr4.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/docs/urwid-logo.png +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/asyncio_socket_server.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/bigtext.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/browse.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/calc.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/dialog.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/edit.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/fib.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/graph.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/input_test.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/lcd_cf635.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/palette_test.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/pop_up.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/subproc.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/subproc2.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/terminal.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/tour.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/treesample.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/examples/twisted_serve_ssh.tac +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/pylint-requirements.txt +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/setup.cfg +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/test_requirements.txt +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/__init__.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_columns.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_container.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_doctests.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_escapes.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_event_loops.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_filler.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_floatedit.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_font.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_frame.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_grapheme_clusters.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_graphics.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_grid_flow.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_line_box.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_listbox.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_main_loop.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_overlay.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_padding.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_pile.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_raw_display.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_scrollable.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_signals.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_str_util.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_text_layout.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_tree.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_util.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_vterm.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/test_widget.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tests/util.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/tox.ini +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_web.css +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_web.js +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/display/_win32.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/__init__.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/select_loop.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/trio_loop.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/event_loop/zmq_loop.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/font.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/py.typed +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/__init__.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/divider.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/padding.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/scrollable.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/solid_fill.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid/widget/widget_decoration.py +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/dependency_links.txt +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/not-zip-safe +0 -0
- {urwid-4.0.2 → urwid-4.0.3}/urwid.egg-info/top_level.txt +0 -0
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
name: Validate formatting
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
18
|
- name: Set up Python
|
|
19
19
|
uses: actions/setup-python@v6
|
|
20
20
|
with:
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
name: Check with Ruff
|
|
33
33
|
runs-on: ubuntu-latest
|
|
34
34
|
steps:
|
|
35
|
-
- uses: actions/checkout@
|
|
35
|
+
- uses: actions/checkout@v7
|
|
36
36
|
- name: Set up Python
|
|
37
37
|
uses: actions/setup-python@v6
|
|
38
38
|
with:
|
|
@@ -50,7 +50,7 @@ jobs:
|
|
|
50
50
|
name: Check with pylint
|
|
51
51
|
runs-on: ubuntu-latest
|
|
52
52
|
steps:
|
|
53
|
-
- uses: actions/checkout@
|
|
53
|
+
- uses: actions/checkout@v7
|
|
54
54
|
- name: Install Ubuntu dependencies
|
|
55
55
|
run: |
|
|
56
56
|
sudo apt-get -qq update
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
name: Validate formatting
|
|
31
31
|
runs-on: ubuntu-latest
|
|
32
32
|
steps:
|
|
33
|
-
- uses: actions/checkout@
|
|
33
|
+
- uses: actions/checkout@v7
|
|
34
34
|
- name: Set up Python
|
|
35
35
|
uses: actions/setup-python@v6
|
|
36
36
|
with:
|
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
name: Check with Ruff
|
|
49
49
|
runs-on: ubuntu-latest
|
|
50
50
|
steps:
|
|
51
|
-
- uses: actions/checkout@
|
|
51
|
+
- uses: actions/checkout@v7
|
|
52
52
|
- name: Set up Python
|
|
53
53
|
uses: actions/setup-python@v6
|
|
54
54
|
with:
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
name: Check with pylint
|
|
67
67
|
runs-on: ubuntu-latest
|
|
68
68
|
steps:
|
|
69
|
-
- uses: actions/checkout@
|
|
69
|
+
- uses: actions/checkout@v7
|
|
70
70
|
- name: Install Ubuntu dependencies
|
|
71
71
|
run: |
|
|
72
72
|
sudo apt-get -qq update
|
|
@@ -102,7 +102,7 @@ jobs:
|
|
|
102
102
|
python-version: "3.14"
|
|
103
103
|
|
|
104
104
|
steps:
|
|
105
|
-
- uses: actions/checkout@
|
|
105
|
+
- uses: actions/checkout@v7
|
|
106
106
|
with:
|
|
107
107
|
fetch-depth: 0 # need for setuptools_scm
|
|
108
108
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -158,7 +158,7 @@ jobs:
|
|
|
158
158
|
needs: [ Test, Ruff-format, Ruff, PyLint ]
|
|
159
159
|
runs-on: ubuntu-latest
|
|
160
160
|
steps:
|
|
161
|
-
- uses: actions/checkout@
|
|
161
|
+
- uses: actions/checkout@v7
|
|
162
162
|
with:
|
|
163
163
|
fetch-depth: 0 # need for setuptools_scm
|
|
164
164
|
|
|
@@ -189,7 +189,7 @@ jobs:
|
|
|
189
189
|
runs-on: ubuntu-latest
|
|
190
190
|
needs: [ build ]
|
|
191
191
|
steps:
|
|
192
|
-
- uses: actions/checkout@
|
|
192
|
+
- uses: actions/checkout@v7
|
|
193
193
|
- name: Set up Python
|
|
194
194
|
uses: actions/setup-python@v6
|
|
195
195
|
with:
|
|
@@ -2,23 +2,29 @@ repos:
|
|
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
3
|
rev: v6.0.0
|
|
4
4
|
hooks:
|
|
5
|
-
- id: check-yaml
|
|
6
5
|
- id: end-of-file-fixer
|
|
7
6
|
- id: trailing-whitespace
|
|
8
7
|
- id: mixed-line-ending
|
|
8
|
+
args: [ --fix=lf ]
|
|
9
|
+
- id: check-yaml
|
|
10
|
+
- id: check-toml
|
|
11
|
+
- id: check-json
|
|
12
|
+
- id: check-merge-conflict
|
|
9
13
|
|
|
10
14
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
11
|
-
|
|
12
|
-
rev: v0.14.5
|
|
15
|
+
rev: v0.15.18
|
|
13
16
|
hooks:
|
|
14
|
-
# Run the linter.
|
|
15
17
|
- id: ruff-check
|
|
16
|
-
args: [ --fix ]
|
|
17
|
-
# Run the formatter.
|
|
18
|
+
args: [ --show-fixes, --fix ]
|
|
18
19
|
- id: ruff-format
|
|
19
20
|
|
|
21
|
+
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
22
|
+
rev: v2.25.0
|
|
23
|
+
hooks:
|
|
24
|
+
- id: pyproject-fmt
|
|
25
|
+
|
|
20
26
|
- repo: https://github.com/adrienverge/yamllint.git
|
|
21
|
-
rev: v1.
|
|
27
|
+
rev: v1.38.0
|
|
22
28
|
hooks:
|
|
23
29
|
- id: yamllint
|
|
24
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: urwid
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.3
|
|
4
4
|
Summary: A full-featured console (xterm et al.) user interface library
|
|
5
5
|
Author-email: Ian Ward <ian@excess.org>
|
|
6
6
|
License-Expression: LGPL-2.1-only
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://urwid.org/
|
|
|
8
8
|
Project-URL: Documentation, https://urwid.org/manual/index.html
|
|
9
9
|
Project-URL: Repository, https://github.com/urwid/urwid
|
|
10
10
|
Project-URL: Bug Tracker, https://github.com/urwid/urwid/issues
|
|
11
|
-
Keywords: curses,
|
|
11
|
+
Keywords: console,curses,listbox,ncurses,scroll,text layout,ui,user interface,widget
|
|
12
12
|
Platform: unix-like
|
|
13
13
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
14
|
Classifier: Environment :: Console
|
|
@@ -34,15 +34,16 @@ Requires-Python: >=3.9.0
|
|
|
34
34
|
Description-Content-Type: text/x-rst
|
|
35
35
|
License-File: COPYING
|
|
36
36
|
Requires-Dist: wcwidth>=0.4
|
|
37
|
+
Requires-Dist: typing-extensions
|
|
37
38
|
Provides-Extra: curses
|
|
38
39
|
Requires-Dist: windows-curses; sys_platform == "win32" and extra == "curses"
|
|
39
40
|
Provides-Extra: glib
|
|
40
|
-
Requires-Dist:
|
|
41
|
+
Requires-Dist: pygobject; extra == "glib"
|
|
41
42
|
Provides-Extra: tornado
|
|
42
43
|
Requires-Dist: tornado>=5.0; extra == "tornado"
|
|
43
44
|
Provides-Extra: trio
|
|
44
|
-
Requires-Dist: trio>=0.24.0; extra == "trio"
|
|
45
45
|
Requires-Dist: exceptiongroup; python_version < "3.11" and extra == "trio"
|
|
46
|
+
Requires-Dist: trio>=0.24.0; extra == "trio"
|
|
46
47
|
Provides-Extra: twisted
|
|
47
48
|
Requires-Dist: twisted; extra == "twisted"
|
|
48
49
|
Provides-Extra: zmq
|
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
---------
|
|
4
4
|
|
|
5
|
+
Urwid 4.0.3
|
|
6
|
+
===========
|
|
7
|
+
|
|
8
|
+
2026-06-25
|
|
9
|
+
|
|
10
|
+
Deprecations ⚡
|
|
11
|
+
++++++++++++++
|
|
12
|
+
* Deprecate `content_delta` as unused by @penguinolog in https://github.com/urwid/urwid/pull/1151
|
|
13
|
+
Bug fixes 🕷
|
|
14
|
+
++++++++++++
|
|
15
|
+
* Fix `shard_body_row`: falsy content_iter raises ValueError by @penguinolog in https://github.com/urwid/urwid/pull/1162
|
|
16
|
+
Documentation 🕮
|
|
17
|
+
++++++++++++++++
|
|
18
|
+
* Mass typing annotations fixes.
|
|
19
|
+
|
|
20
|
+
**Full Changelog**: https://github.com/urwid/urwid/compare/4.0.2...4.0.3
|
|
21
|
+
|
|
5
22
|
Urwid 4.0.2
|
|
6
23
|
===========
|
|
7
24
|
|
|
@@ -269,20 +269,11 @@ class TwistedScreen(Screen):
|
|
|
269
269
|
self.terminal.write(data)
|
|
270
270
|
|
|
271
271
|
# Private
|
|
272
|
-
def _on_update_palette_entry(self, name, *attrspecs):
|
|
272
|
+
def _on_update_palette_entry(self, name: str | None, *attrspecs: urwid.AttrSpec) -> None:
|
|
273
273
|
# copy the attribute to a dictionary containing the escape sequences
|
|
274
274
|
self._pal_escape[name] = self._attrspec_to_escape(attrspecs[{16: 0, 1: 1, 88: 2, 256: 3}[self.colors]])
|
|
275
275
|
|
|
276
|
-
def
|
|
277
|
-
if a in self._pal_escape:
|
|
278
|
-
return self._pal_escape[a]
|
|
279
|
-
if isinstance(a, urwid.AttrSpec):
|
|
280
|
-
return self._attrspec_to_escape(a)
|
|
281
|
-
# undefined attributes use default/default
|
|
282
|
-
# TODO: track and report these
|
|
283
|
-
return self._attrspec_to_escape(urwid.AttrSpec("default", "default"))
|
|
284
|
-
|
|
285
|
-
def _attrspec_to_escape(self, a):
|
|
276
|
+
def _attrspec_to_escape(self, a: urwid.AttrSpec) -> str:
|
|
286
277
|
"""
|
|
287
278
|
Convert AttrSpec instance a to an escape sequence for the terminal
|
|
288
279
|
|