urwid 2.6.13__tar.gz → 2.6.15__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.13 → urwid-2.6.15}/.pre-commit-config.yaml +1 -1
- {urwid-2.6.13 → urwid-2.6.15}/PKG-INFO +1 -1
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/subproc.py +2 -2
- {urwid-2.6.13 → urwid-2.6.15}/examples/subproc.py +2 -2
- urwid-2.6.15/pylint-requirements.txt +1 -0
- urwid-2.6.15/ruff-requirements.txt +1 -0
- {urwid-2.6.13 → urwid-2.6.15}/test_requirements.txt +1 -1
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_grid_flow.py +24 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_scrollable.py +25 -10
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_posix_raw_display.py +2 -2
- {urwid-2.6.13 → urwid-2.6.15}/urwid/version.py +2 -2
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/grid_flow.py +18 -8
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/listbox.py +12 -11
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/scrollable.py +1 -1
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/PKG-INFO +1 -1
- urwid-2.6.13/pylint-requirements.txt +0 -1
- urwid-2.6.13/ruff-requirements.txt +0 -1
- {urwid-2.6.13 → urwid-2.6.15}/.coveralls.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.devcontainer/dev.dockerfile +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.devcontainer/devcontainer.json +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.dockerignore +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.editorconfig +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/CODE_OF_CONDUCT.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/ISSUE_TEMPLATE/docs.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/dependabot.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/labeler.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/release.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/workflows/documentation.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/workflows/isolated_static_check.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/workflows/labels.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/workflows/pythonpackage.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.github/workflows/yamllint.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.gitignore +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/.yamllint.yml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/COPYING +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/MANIFEST.in +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/README.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/black-requirements.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/classifiers.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/Makefile +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/changelog.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/conf.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/bigtext.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/bigtext.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/bigtext1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/bigtext2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/bigtext3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/browse.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/browse.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/browse1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/browse2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/edit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/edit.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/edit1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/edit2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/edit_text.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/graph.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/graph.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/graph1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/graph2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/index.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/palette_test.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/palette_test.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/palette_test1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/palette_test2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/pop_up.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/pop_up.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/pop_up1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/pop_up2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/real_browse.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/real_edit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/subproc.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/subproc1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/subproc2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/subproc2.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/tour.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/tour.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/tour1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/examples/tour2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/index.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/bright_combinations.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/bright_combinations.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/bright_combinations1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/canvascache.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/displayattributes.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/displaymodules.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/encodings.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/display_modules.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/introduction.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/urwid_widgets.svgz +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/urwid_widgets_1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/urwid_widgets_1.xcf +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/urwid_widgets_2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/urwid_widgets_2.xcf +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/images/widget_layout.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/index.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/mainloop.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/overview.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/safe_combinations.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/safe_combinations.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/safe_combinations1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/textlayout.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/userinput.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wanat.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wanat_multi.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wcur1.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wcur2.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/widgets.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wmod.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/manual/wsel.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/attrspec.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/canvas.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/command_map.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/constants.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/deprecated.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/display_modules.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/exceptions.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/global_settings.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/index.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/list_walkers.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/main_loop.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/meta.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/signals.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/text_layout.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/reference/widget.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/compile_pngs.sh +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/screenshots.sh +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/static/.placeholder +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/templates/indexcontent.html +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/templates/indexsidebar.html +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tools/templates/localtoc.html +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/adventure4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/cmenu4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/highcolors.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/highcolors.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/highcolors1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/hmenu4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/index.rst +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/input5.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/menu25.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/minimal.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/minimal.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/minimal1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/multiple4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/qa.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/qa.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/qa1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/qa2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/qa3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/sig4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/smenu.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/smenu.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/smenu1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/smenu2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/smenu3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr.py.xdotool +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr1.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr2.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr3.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/tutorial/urwid_attr4.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/docs/urwid-logo.png +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/asyncio_socket_server.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/bigtext.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/browse.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/calc.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/dialog.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/edit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/fib.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/graph.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/input_test.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/lcd_cf635.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/palette_test.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/pop_up.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/subproc2.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/terminal.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/tour.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/treesample.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/twisted_serve_ssh.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/examples/twisted_serve_ssh.tac +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/isort-requirements.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/pyproject.toml +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/requirements.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/setup.cfg +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/setup.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/__init__.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_canvas.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_columns.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_container.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_doctests.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_escapes.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_event_loops.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_filler.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_floatedit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_font.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_frame.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_graphics.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_line_box.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_listbox.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_main_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_moved_imports.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_overlay.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_padding.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_pile.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_raw_display.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_signals.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_str_util.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_text_layout.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_tree.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_util.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_vterm.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/test_widget.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tests/util.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/tox.ini +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/__init__.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/canvas.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/command_map.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/container.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/decoration.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/__init__.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_raw_display_base.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_web.css +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_web.js +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_win32.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/_win32_raw_display.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/common.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/curses.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/escape.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/html_fragment.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/lcd.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/raw.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/display/web.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/__init__.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/abstract_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/asyncio_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/glib_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/main_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/select_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/tornado_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/trio_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/twisted_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/event_loop/zmq_loop.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/font.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/graphics.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/numedit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/signals.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/split_repr.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/str_util.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/text_layout.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/util.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/vterm.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/__init__.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/attr_map.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/attr_wrap.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/bar_graph.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/big_text.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/box_adapter.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/columns.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/constants.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/container.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/divider.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/edit.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/filler.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/frame.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/line_box.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/monitored_list.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/overlay.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/padding.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/pile.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/popup.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/progress_bar.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/solid_fill.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/text.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/treetools.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/widget.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/widget_decoration.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/widget/wimp.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid/wimp.py +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/SOURCES.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/dependency_links.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/not-zip-safe +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/requires.txt +0 -0
- {urwid-2.6.13 → urwid-2.6.15}/urwid.egg-info/top_level.txt +0 -0
|
@@ -34,8 +34,8 @@ def received_output(data: bytes) -> bool:
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
write_fd = loop.watch_pipe(received_output)
|
|
37
|
-
with subprocess.Popen(
|
|
38
|
-
["python", "-u", run_me, str(factor_me)], # noqa:
|
|
37
|
+
with subprocess.Popen( # noqa: S603
|
|
38
|
+
["python", "-u", run_me, str(factor_me)], # noqa: S607 # Example can be insecure
|
|
39
39
|
stdout=write_fd,
|
|
40
40
|
close_fds=True,
|
|
41
41
|
) as proc:
|
|
@@ -34,8 +34,8 @@ def received_output(data: bytes) -> bool:
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
write_fd = loop.watch_pipe(received_output)
|
|
37
|
-
with subprocess.Popen(
|
|
38
|
-
["python", "-u", run_me, str(factor_me)], # noqa:
|
|
37
|
+
with subprocess.Popen( # noqa: S603
|
|
38
|
+
["python", "-u", run_me, str(factor_me)], # noqa: S607 # Example can be insecure
|
|
39
39
|
stdout=write_fd,
|
|
40
40
|
close_fds=True,
|
|
41
41
|
) as proc:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pylint==3.2.5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruff==0.5.0
|
|
@@ -204,3 +204,27 @@ class GridFlowTest(unittest.TestCase):
|
|
|
204
204
|
gf.set_focus(t1)
|
|
205
205
|
self.assertEqual(gf.focus_position, 0)
|
|
206
206
|
self.assertRaises(ValueError, lambda: gf.set_focus("nonexistant"))
|
|
207
|
+
|
|
208
|
+
def test_empty(self):
|
|
209
|
+
"""Test behaviour of empty widget."""
|
|
210
|
+
grid = urwid.GridFlow(
|
|
211
|
+
(),
|
|
212
|
+
cell_width=10,
|
|
213
|
+
h_sep=1,
|
|
214
|
+
v_sep=1,
|
|
215
|
+
align=urwid.CENTER,
|
|
216
|
+
)
|
|
217
|
+
self.assertEqual(frozenset((urwid.FLOW,)), grid.sizing(), "Empty grid can not be handled as FIXED")
|
|
218
|
+
rows = 1
|
|
219
|
+
with self.subTest("Flow"):
|
|
220
|
+
maxcol = 1
|
|
221
|
+
self.assertEqual((maxcol, rows), grid.pack((maxcol,)))
|
|
222
|
+
rendered = grid.render((maxcol,))
|
|
223
|
+
self.assertEqual(maxcol, rendered.cols())
|
|
224
|
+
self.assertEqual(rows, rendered.rows())
|
|
225
|
+
|
|
226
|
+
with self.subTest("Fixed"):
|
|
227
|
+
maxcol = 0
|
|
228
|
+
self.assertEqual((maxcol, rows), grid.pack(()))
|
|
229
|
+
with self.assertRaises(ValueError):
|
|
230
|
+
grid.render(())
|
|
@@ -133,11 +133,11 @@ class TestScrollBarScrollable(unittest.TestCase):
|
|
|
133
133
|
|
|
134
134
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
135
135
|
|
|
136
|
-
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
136
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False))
|
|
137
137
|
|
|
138
138
|
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
139
139
|
|
|
140
|
-
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
140
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False))
|
|
141
141
|
|
|
142
142
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
143
143
|
|
|
@@ -283,14 +283,29 @@ class TestScrollBarListBox(unittest.TestCase):
|
|
|
283
283
|
|
|
284
284
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
285
285
|
|
|
286
|
-
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
286
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False))
|
|
287
287
|
|
|
288
288
|
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
289
289
|
|
|
290
|
-
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
290
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False))
|
|
291
291
|
|
|
292
292
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
293
293
|
|
|
294
|
+
def test_empty(self):
|
|
295
|
+
"""Empty widget should be correctly rendered."""
|
|
296
|
+
widget = urwid.ScrollBar(urwid.ListBox(urwid.SimpleListWalker(())))
|
|
297
|
+
reduced_size = (10, 5)
|
|
298
|
+
self.assertEqual(
|
|
299
|
+
(
|
|
300
|
+
" ",
|
|
301
|
+
" ",
|
|
302
|
+
" ",
|
|
303
|
+
" ",
|
|
304
|
+
" ",
|
|
305
|
+
),
|
|
306
|
+
widget.render(reduced_size).decoded_text,
|
|
307
|
+
)
|
|
308
|
+
|
|
294
309
|
|
|
295
310
|
def trivial_AttrMap(widget):
|
|
296
311
|
return urwid.AttrMap(widget, {})
|
|
@@ -401,11 +416,11 @@ class TestScrollBarAttrMap(unittest.TestCase):
|
|
|
401
416
|
|
|
402
417
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
403
418
|
|
|
404
|
-
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
419
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False))
|
|
405
420
|
|
|
406
421
|
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
407
422
|
|
|
408
|
-
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
423
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False))
|
|
409
424
|
|
|
410
425
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
411
426
|
|
|
@@ -479,11 +494,11 @@ class TestScrollBarListBoxAttrMap(unittest.TestCase):
|
|
|
479
494
|
|
|
480
495
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
481
496
|
|
|
482
|
-
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
497
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False))
|
|
483
498
|
|
|
484
499
|
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
485
500
|
|
|
486
|
-
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
501
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False))
|
|
487
502
|
|
|
488
503
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
489
504
|
|
|
@@ -518,11 +533,11 @@ class TestScrollBarListBoxAttrMap(unittest.TestCase):
|
|
|
518
533
|
|
|
519
534
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
520
535
|
|
|
521
|
-
widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False)
|
|
536
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 5, 1, 1, False))
|
|
522
537
|
|
|
523
538
|
self.assertEqual(pos_1_down_rendered, widget.render(reduced_size).decoded_text)
|
|
524
539
|
|
|
525
|
-
widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False)
|
|
540
|
+
self.assertTrue(widget.mouse_event(reduced_size, "mouse press", 4, 1, 1, False))
|
|
526
541
|
|
|
527
542
|
self.assertEqual(top_position_rendered, widget.render(reduced_size).decoded_text)
|
|
528
543
|
|
|
@@ -148,8 +148,8 @@ class Screen(_raw_display_base.Screen):
|
|
|
148
148
|
if not os.environ.get("TERM", "").lower().startswith("linux"):
|
|
149
149
|
return
|
|
150
150
|
|
|
151
|
-
m = Popen( # pylint: disable=consider-using-with
|
|
152
|
-
["/usr/bin/mev", "-e", "158"],
|
|
151
|
+
m = Popen( # noqa: S603 # pylint: disable=consider-using-with
|
|
152
|
+
["/usr/bin/mev", "-e", "158"],
|
|
153
153
|
stdin=PIPE,
|
|
154
154
|
stdout=PIPE,
|
|
155
155
|
close_fds=True,
|
|
@@ -30,13 +30,18 @@ class GridFlowWarning(WidgetWarning):
|
|
|
30
30
|
|
|
31
31
|
class GridFlow(WidgetWrap[Pile], WidgetContainerMixin, WidgetContainerListContentsMixin):
|
|
32
32
|
"""
|
|
33
|
-
The GridFlow widget is a flow widget that renders all the widgets it
|
|
34
|
-
|
|
35
|
-
bottom.
|
|
33
|
+
The GridFlow widget is a flow widget that renders all the widgets it contains the same width,
|
|
34
|
+
and it arranges them from left to right and top to bottom.
|
|
36
35
|
"""
|
|
37
36
|
|
|
38
37
|
def sizing(self) -> frozenset[Sizing]:
|
|
39
|
-
|
|
38
|
+
"""Widget sizing.
|
|
39
|
+
|
|
40
|
+
..note:: Empty widget sizing is limited to the FLOW due to no data for width.
|
|
41
|
+
"""
|
|
42
|
+
if self:
|
|
43
|
+
return frozenset((Sizing.FLOW, Sizing.FIXED))
|
|
44
|
+
return frozenset((Sizing.FLOW,))
|
|
40
45
|
|
|
41
46
|
def __init__(
|
|
42
47
|
self,
|
|
@@ -422,14 +427,16 @@ class GridFlow(WidgetWrap[Pile], WidgetContainerMixin, WidgetContainerListConten
|
|
|
422
427
|
def _get_maxcol(self, size: tuple[int] | tuple[()]) -> int:
|
|
423
428
|
if size:
|
|
424
429
|
(maxcol,) = size
|
|
425
|
-
if maxcol < self.cell_width:
|
|
430
|
+
if self and maxcol < self.cell_width:
|
|
426
431
|
warnings.warn(
|
|
427
432
|
f"Size is smaller than cell width ({maxcol!r} < {self.cell_width!r})",
|
|
428
433
|
GridFlowWarning,
|
|
429
434
|
stacklevel=3,
|
|
430
435
|
)
|
|
431
|
-
|
|
436
|
+
elif self:
|
|
432
437
|
maxcol = len(self) * self.cell_width + (len(self) - 1) * self.h_sep
|
|
438
|
+
else:
|
|
439
|
+
maxcol = 0
|
|
433
440
|
return maxcol
|
|
434
441
|
|
|
435
442
|
def get_display_widget(self, size: tuple[int] | tuple[()]) -> Divider | Pile:
|
|
@@ -525,7 +532,7 @@ class GridFlow(WidgetWrap[Pile], WidgetContainerMixin, WidgetContainerListConten
|
|
|
525
532
|
|
|
526
533
|
def keypress(
|
|
527
534
|
self,
|
|
528
|
-
size: tuple[int], # type: ignore[override]
|
|
535
|
+
size: tuple[int] | tuple[()], # type: ignore[override]
|
|
529
536
|
key: str,
|
|
530
537
|
) -> str | None:
|
|
531
538
|
"""
|
|
@@ -545,7 +552,10 @@ class GridFlow(WidgetWrap[Pile], WidgetContainerMixin, WidgetContainerListConten
|
|
|
545
552
|
) -> tuple[int, int]:
|
|
546
553
|
if size:
|
|
547
554
|
return super().pack(size, focus)
|
|
548
|
-
|
|
555
|
+
if self:
|
|
556
|
+
cols = len(self) * self.cell_width + (len(self) - 1) * self.h_sep
|
|
557
|
+
else:
|
|
558
|
+
cols = 0
|
|
549
559
|
return cols, self.rows((cols,), focus)
|
|
550
560
|
|
|
551
561
|
def rows(self, size: tuple[int], focus: bool = False) -> int:
|
|
@@ -645,17 +645,18 @@ class ListBox(Widget, WidgetContainerMixin):
|
|
|
645
645
|
rows = 0
|
|
646
646
|
|
|
647
647
|
focused_w, idx = self.body.get_focus()
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
648
|
+
if focused_w:
|
|
649
|
+
rows += focused_w.rows((cols,), focus)
|
|
650
|
+
|
|
651
|
+
prev, pos = self._body.get_prev(idx)
|
|
652
|
+
while prev is not None:
|
|
653
|
+
rows += prev.rows((cols,), False)
|
|
654
|
+
prev, pos = self._body.get_prev(pos)
|
|
655
|
+
|
|
656
|
+
next_, pos = self.body.get_next(idx)
|
|
657
|
+
while next_ is not None:
|
|
658
|
+
rows += next_.rows((cols,), True)
|
|
659
|
+
next_, pos = self._body.get_next(pos)
|
|
659
660
|
|
|
660
661
|
self._rows_max_cached = rows
|
|
661
662
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pylint==3.2.2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ruff==0.4.7
|
|
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
|
|
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
|