urwid 2.6.11__tar.gz → 2.6.12__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-2.6.11 → urwid-2.6.12}/PKG-INFO +1 -1
- urwid-2.6.12/black-requirements.txt +1 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/real_browse.py +1 -4
- {urwid-2.6.11 → urwid-2.6.12}/examples/browse.py +1 -4
- {urwid-2.6.11 → urwid-2.6.12}/examples/calc.py +1 -3
- urwid-2.6.12/ruff-requirements.txt +1 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_scrollable.py +196 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/canvas.py +1 -1
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_raw_display_base.py +1 -3
- {urwid-2.6.11 → urwid-2.6.12}/urwid/version.py +2 -2
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/bar_graph.py +2 -2
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/scrollable.py +13 -7
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/widget_decoration.py +4 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/PKG-INFO +1 -1
- urwid-2.6.11/black-requirements.txt +0 -1
- urwid-2.6.11/ruff-requirements.txt +0 -1
- {urwid-2.6.11 → urwid-2.6.12}/.coveralls.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.devcontainer/dev.dockerfile +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.devcontainer/devcontainer.json +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.dockerignore +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.editorconfig +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/CODE_OF_CONDUCT.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/ISSUE_TEMPLATE/docs.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/dependabot.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/labeler.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/release.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/workflows/documentation.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/workflows/isolated_static_check.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/workflows/labels.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/workflows/pythonpackage.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.github/workflows/yamllint.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.gitignore +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.pre-commit-config.yaml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/.yamllint.yml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/COPYING +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/MANIFEST.in +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/README.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/classifiers.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/Makefile +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/changelog.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/conf.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/bigtext.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/bigtext.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/bigtext1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/bigtext2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/bigtext3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/browse.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/browse.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/browse1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/browse2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/edit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/edit.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/edit1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/edit2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/edit_text.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/graph.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/graph.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/graph1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/graph2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/index.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/palette_test.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/palette_test.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/palette_test1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/palette_test2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/pop_up.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/pop_up.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/pop_up1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/pop_up2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/real_edit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/subproc.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/subproc.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/subproc1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/subproc2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/subproc2.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/tour.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/tour.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/tour1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/examples/tour2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/index.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/bright_combinations.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/bright_combinations.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/bright_combinations1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/canvascache.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/displayattributes.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/displaymodules.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/encodings.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/display_modules.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/introduction.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/urwid_widgets.svgz +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/urwid_widgets_1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/urwid_widgets_1.xcf +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/urwid_widgets_2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/urwid_widgets_2.xcf +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/images/widget_layout.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/index.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/mainloop.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/overview.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/safe_combinations.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/safe_combinations.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/safe_combinations1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/textlayout.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/userinput.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wanat.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wanat_multi.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wcur1.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wcur2.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/widgets.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wmod.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/manual/wsel.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/attrspec.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/canvas.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/command_map.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/constants.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/deprecated.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/display_modules.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/exceptions.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/global_settings.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/index.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/list_walkers.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/main_loop.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/meta.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/signals.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/text_layout.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/reference/widget.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/compile_pngs.sh +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/screenshots.sh +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/static/.placeholder +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/templates/indexcontent.html +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/templates/indexsidebar.html +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tools/templates/localtoc.html +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/adventure4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/cmenu4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/highcolors.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/highcolors.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/highcolors1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/hmenu4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/index.rst +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/input5.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/menu25.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/minimal.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/minimal.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/minimal1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/multiple4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/qa.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/qa.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/qa1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/qa2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/qa3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/sig4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/smenu.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/smenu.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/smenu1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/smenu2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/smenu3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr.py.xdotool +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr1.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr2.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr3.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/tutorial/urwid_attr4.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/docs/urwid-logo.png +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/asyncio_socket_server.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/bigtext.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/dialog.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/edit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/fib.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/graph.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/input_test.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/lcd_cf635.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/palette_test.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/pop_up.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/subproc.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/subproc2.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/terminal.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/tour.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/treesample.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/twisted_serve_ssh.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/examples/twisted_serve_ssh.tac +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/isort-requirements.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/pylint-requirements.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/pyproject.toml +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/requirements.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/setup.cfg +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/setup.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/test_requirements.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/__init__.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_canvas.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_columns.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_container.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_doctests.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_escapes.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_event_loops.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_filler.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_floatedit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_font.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_frame.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_graphics.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_grid_flow.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_line_box.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_listbox.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_main_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_moved_imports.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_overlay.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_padding.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_pile.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_raw_display.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_signals.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_str_util.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_text_layout.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_tree.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_util.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_vterm.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/test_widget.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tests/util.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/tox.ini +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/__init__.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/command_map.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/container.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/decoration.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/__init__.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_posix_raw_display.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_web.css +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_web.js +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_win32.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/_win32_raw_display.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/common.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/curses.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/escape.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/html_fragment.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/lcd.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/raw.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/display/web.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/__init__.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/abstract_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/asyncio_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/glib_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/main_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/select_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/tornado_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/trio_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/twisted_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/event_loop/zmq_loop.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/font.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/graphics.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/numedit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/signals.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/split_repr.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/str_util.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/text_layout.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/util.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/vterm.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/__init__.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/attr_map.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/attr_wrap.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/big_text.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/box_adapter.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/columns.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/constants.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/container.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/divider.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/edit.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/filler.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/frame.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/grid_flow.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/line_box.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/listbox.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/monitored_list.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/overlay.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/padding.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/pile.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/popup.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/progress_bar.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/solid_fill.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/text.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/treetools.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/widget.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/widget/wimp.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid/wimp.py +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/SOURCES.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/dependency_links.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/not-zip-safe +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/requires.txt +0 -0
- {urwid-2.6.11 → urwid-2.6.12}/urwid.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
black==24.4.2
|
|
@@ -346,10 +346,7 @@ def starts_expanded(name: str) -> bool:
|
|
|
346
346
|
if len(path_elements) > len(_initial_cwd):
|
|
347
347
|
return False
|
|
348
348
|
|
|
349
|
-
|
|
350
|
-
return False
|
|
351
|
-
|
|
352
|
-
return True
|
|
349
|
+
return path_elements == _initial_cwd[: len(path_elements)]
|
|
353
350
|
|
|
354
351
|
|
|
355
352
|
def escape_filename_sh(name: str) -> str:
|
|
@@ -346,10 +346,7 @@ def starts_expanded(name: str) -> bool:
|
|
|
346
346
|
if len(path_elements) > len(_initial_cwd):
|
|
347
347
|
return False
|
|
348
348
|
|
|
349
|
-
|
|
350
|
-
return False
|
|
351
|
-
|
|
352
|
-
return True
|
|
349
|
+
return path_elements == _initial_cwd[: len(path_elements)]
|
|
353
350
|
|
|
354
351
|
|
|
355
352
|
def escape_filename_sh(name: str) -> str:
|
|
@@ -137,9 +137,7 @@ class Cell:
|
|
|
137
137
|
return False
|
|
138
138
|
if next_cell is None:
|
|
139
139
|
return True
|
|
140
|
-
|
|
141
|
-
return False
|
|
142
|
-
return True
|
|
140
|
+
return not (self.op == next_cell.op == "+")
|
|
143
141
|
|
|
144
142
|
def setup_edit(self) -> None:
|
|
145
143
|
"""Create the standard edit widget for this cell."""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruff==0.4.4
|
|
@@ -291,6 +291,202 @@ class TestScrollBarListBox(unittest.TestCase):
|
|
|
291
291
|
|
|
292
292
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
293
293
|
|
|
294
|
+
|
|
295
|
+
def trivial_AttrMap(widget):
|
|
296
|
+
return urwid.AttrMap(widget, {})
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
class TestScrollableAttrMap(unittest.TestCase):
|
|
300
|
+
def test_basic(self):
|
|
301
|
+
"""Test basic init and scroll."""
|
|
302
|
+
long_content = urwid.Text(LGPL_HEADER)
|
|
303
|
+
reduced_size = (80, 5)
|
|
304
|
+
content_size = long_content.pack()
|
|
305
|
+
|
|
306
|
+
widget = urwid.Scrollable(trivial_AttrMap(long_content))
|
|
307
|
+
self.assertEqual(frozenset((urwid.BOX,)), widget.sizing())
|
|
308
|
+
|
|
309
|
+
cropped_content_canvas = urwid.CompositeCanvas(long_content.render((reduced_size[0],)))
|
|
310
|
+
cropped_content_canvas.trim_end(content_size[1] - reduced_size[1])
|
|
311
|
+
top_decoded = cropped_content_canvas.decoded_text
|
|
312
|
+
|
|
313
|
+
self.assertEqual(
|
|
314
|
+
top_decoded,
|
|
315
|
+
widget.render(reduced_size).decoded_text,
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
for key_1, key_2 in (("down", "up"), ("page down", "page up"), ("end", "home")):
|
|
319
|
+
widget.keypress(reduced_size, key_1)
|
|
320
|
+
|
|
321
|
+
self.assertNotEqual(top_decoded, widget.render(reduced_size).decoded_text)
|
|
322
|
+
|
|
323
|
+
widget.keypress(reduced_size, key_2)
|
|
324
|
+
|
|
325
|
+
self.assertEqual(top_decoded, widget.render(reduced_size).decoded_text)
|
|
326
|
+
|
|
327
|
+
def test_negative(self):
|
|
328
|
+
with self.assertRaises(ValueError):
|
|
329
|
+
urwid.Scrollable(trivial_AttrMap(urwid.SolidFill(" ")))
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
class TestScrollBarAttrMap(unittest.TestCase):
|
|
333
|
+
def test_basic(self):
|
|
334
|
+
"""Test basic init and scroll.
|
|
335
|
+
|
|
336
|
+
Unlike `Scrollable`, `ScrollBar` can be also scrolled with a mouse wheel.
|
|
337
|
+
"""
|
|
338
|
+
|
|
339
|
+
long_content = urwid.Text(LGPL_HEADER)
|
|
340
|
+
reduced_size = (40, 5)
|
|
341
|
+
widget = urwid.ScrollBar(urwid.Scrollable(trivial_AttrMap(long_content)))
|
|
342
|
+
|
|
343
|
+
self.assertEqual(frozenset((urwid.BOX,)), widget.sizing())
|
|
344
|
+
|
|
345
|
+
top_position_rendered = (
|
|
346
|
+
" █",
|
|
347
|
+
"Copyright (C) <year> <name of author> ",
|
|
348
|
+
" ",
|
|
349
|
+
"This library is free software; you can ",
|
|
350
|
+
"redistribute it and/or ",
|
|
351
|
+
)
|
|
352
|
+
pos_1_down_rendered = (
|
|
353
|
+
"Copyright (C) <year> <name of author> ",
|
|
354
|
+
" █",
|
|
355
|
+
"This library is free software; you can ",
|
|
356
|
+
"redistribute it and/or ",
|
|
357
|
+
"modify it under the terms of the GNU ",
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
361
|
+
|
|
362
|
+
widget.keypress(reduced_size, "down")
|
|
363
|
+
|
|
364
|
+
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
365
|
+
|
|
366
|
+
widget.keypress(reduced_size, "up")
|
|
367
|
+
|
|
368
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
369
|
+
|
|
370
|
+
widget.keypress(reduced_size, "page down")
|
|
371
|
+
|
|
372
|
+
self.assertEqual(
|
|
373
|
+
(
|
|
374
|
+
"redistribute it and/or ",
|
|
375
|
+
"modify it under the terms of the GNU █",
|
|
376
|
+
"Lesser General Public ",
|
|
377
|
+
"License as published by the Free ",
|
|
378
|
+
"Software Foundation; either ",
|
|
379
|
+
),
|
|
380
|
+
widget.render(reduced_size).decoded_text,
|
|
381
|
+
)
|
|
382
|
+
|
|
383
|
+
widget.keypress(reduced_size, "page up")
|
|
384
|
+
|
|
385
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
386
|
+
|
|
387
|
+
widget.keypress(reduced_size, "end")
|
|
388
|
+
|
|
389
|
+
self.assertEqual(
|
|
390
|
+
(
|
|
391
|
+
"not, write to the Free Software ",
|
|
392
|
+
"Foundation, Inc., 51 Franklin Street, ",
|
|
393
|
+
"Fifth Floor, Boston, MA 02110-1301 ",
|
|
394
|
+
"USA ",
|
|
395
|
+
" █",
|
|
396
|
+
),
|
|
397
|
+
widget.render(reduced_size).decoded_text,
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
widget.keypress(reduced_size, "home")
|
|
401
|
+
|
|
402
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
403
|
+
|
|
404
|
+
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
405
|
+
|
|
406
|
+
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
407
|
+
|
|
408
|
+
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
409
|
+
|
|
410
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
class TestScrollBarListBoxAttrMap(unittest.TestCase):
|
|
414
|
+
def test_relative_non_selectable(self):
|
|
415
|
+
widget = urwid.ScrollBar(
|
|
416
|
+
trivial_AttrMap(
|
|
417
|
+
urwid.ListBox(urwid.SimpleListWalker(urwid.Text(line) for line in LGPL_HEADER.splitlines()))
|
|
418
|
+
)
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
reduced_size = (40, 5)
|
|
422
|
+
|
|
423
|
+
top_position_rendered = (
|
|
424
|
+
" █",
|
|
425
|
+
"Copyright (C) <year> <name of author> ",
|
|
426
|
+
" ",
|
|
427
|
+
"This library is free software; you can ",
|
|
428
|
+
"redistribute it and/or ",
|
|
429
|
+
)
|
|
430
|
+
pos_1_down_rendered = (
|
|
431
|
+
"Copyright (C) <year> <name of author> ",
|
|
432
|
+
" █",
|
|
433
|
+
"This library is free software; you can ",
|
|
434
|
+
"redistribute it and/or ",
|
|
435
|
+
"modify it under the terms of the GNU ",
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
439
|
+
|
|
440
|
+
widget.keypress(reduced_size, "down")
|
|
441
|
+
|
|
442
|
+
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
443
|
+
|
|
444
|
+
widget.keypress(reduced_size, "up")
|
|
445
|
+
|
|
446
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
447
|
+
|
|
448
|
+
widget.keypress(reduced_size, "page down")
|
|
449
|
+
|
|
450
|
+
self.assertEqual(
|
|
451
|
+
(
|
|
452
|
+
"modify it under the terms of the GNU ",
|
|
453
|
+
"Lesser General Public █",
|
|
454
|
+
"License as published by the Free ",
|
|
455
|
+
"Software Foundation; either ",
|
|
456
|
+
"version 2.1 of the License, or (at your ",
|
|
457
|
+
),
|
|
458
|
+
widget.render(reduced_size).decoded_text,
|
|
459
|
+
)
|
|
460
|
+
|
|
461
|
+
widget.keypress(reduced_size, "page up")
|
|
462
|
+
|
|
463
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
464
|
+
|
|
465
|
+
widget.keypress(reduced_size, "end")
|
|
466
|
+
|
|
467
|
+
self.assertEqual(
|
|
468
|
+
(
|
|
469
|
+
"License along with this library; if ",
|
|
470
|
+
"not, write to the Free Software ",
|
|
471
|
+
"Foundation, Inc., 51 Franklin Street, ",
|
|
472
|
+
"Fifth Floor, Boston, MA 02110-1301 ",
|
|
473
|
+
"USA █",
|
|
474
|
+
),
|
|
475
|
+
widget.render(reduced_size).decoded_text,
|
|
476
|
+
)
|
|
477
|
+
|
|
478
|
+
widget.keypress(reduced_size, "home")
|
|
479
|
+
|
|
480
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
481
|
+
|
|
482
|
+
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
483
|
+
|
|
484
|
+
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
485
|
+
|
|
486
|
+
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
487
|
+
|
|
488
|
+
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
489
|
+
|
|
294
490
|
def test_large_non_selectable(self):
|
|
295
491
|
top = urwid.Text("\n".join(string.ascii_letters))
|
|
296
492
|
bottom = urwid.Text("\n".join(string.digits))
|
|
@@ -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]
|
|
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
|
-
|
|
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:
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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 +0,0 @@
|
|
|
1
|
-
black==24.4.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ruff==0.4.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|