urwid 2.6.15__tar.gz → 3.0.5__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.
Files changed (323) hide show
  1. urwid-3.0.5/.devcontainer/dev.dockerfile +15 -0
  2. {urwid-2.6.15 → urwid-3.0.5}/.devcontainer/devcontainer.json +6 -1
  3. {urwid-2.6.15 → urwid-3.0.5}/.github/workflows/documentation.yml +7 -9
  4. {urwid-2.6.15 → urwid-3.0.5}/.github/workflows/isolated_static_check.yml +13 -32
  5. {urwid-2.6.15 → urwid-3.0.5}/.github/workflows/labels.yml +1 -1
  6. {urwid-2.6.15 → urwid-3.0.5}/.github/workflows/pythonpackage.yml +32 -46
  7. {urwid-2.6.15 → urwid-3.0.5}/.github/workflows/yamllint.yml +2 -2
  8. {urwid-2.6.15 → urwid-3.0.5}/.pre-commit-config.yaml +8 -22
  9. {urwid-2.6.15 → urwid-3.0.5}/PKG-INFO +15 -15
  10. {urwid-2.6.15 → urwid-3.0.5}/README.rst +5 -3
  11. {urwid-2.6.15 → urwid-3.0.5}/classifiers.txt +3 -4
  12. {urwid-2.6.15 → urwid-3.0.5}/docs/changelog.rst +841 -5
  13. {urwid-2.6.15 → urwid-3.0.5}/docs/conf.py +0 -4
  14. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/bigtext.py +3 -1
  15. urwid-3.0.5/docs/examples/edit_text.txt +0 -0
  16. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/palette_test.py +2 -2
  17. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/real_browse.py +0 -1
  18. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/real_edit.py +3 -2
  19. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wanat_multi.py +1 -1
  20. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/deprecated.rst +2 -6
  21. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/smenu.py +1 -1
  22. {urwid-2.6.15 → urwid-3.0.5}/examples/asyncio_socket_server.py +8 -9
  23. {urwid-2.6.15 → urwid-3.0.5}/examples/bigtext.py +3 -1
  24. {urwid-2.6.15 → urwid-3.0.5}/examples/browse.py +0 -1
  25. {urwid-2.6.15 → urwid-3.0.5}/examples/calc.py +0 -1
  26. {urwid-2.6.15 → urwid-3.0.5}/examples/edit.py +3 -2
  27. {urwid-2.6.15 → urwid-3.0.5}/examples/lcd_cf635.py +1 -1
  28. {urwid-2.6.15 → urwid-3.0.5}/examples/palette_test.py +2 -2
  29. {urwid-2.6.15 → urwid-3.0.5}/examples/twisted_serve_ssh.py +3 -3
  30. urwid-3.0.5/pylint-requirements.txt +1 -0
  31. {urwid-2.6.15 → urwid-3.0.5}/pyproject.toml +25 -14
  32. urwid-3.0.5/requirements.txt +1 -0
  33. urwid-3.0.5/ruff-requirements.txt +1 -0
  34. {urwid-2.6.15 → urwid-3.0.5}/tests/test_canvas.py +7 -7
  35. {urwid-2.6.15 → urwid-3.0.5}/tests/test_columns.py +7 -8
  36. {urwid-2.6.15 → urwid-3.0.5}/tests/test_escapes.py +1 -1
  37. {urwid-2.6.15 → urwid-3.0.5}/tests/test_event_loops.py +13 -3
  38. urwid-3.0.5/tests/test_grapheme_clusters.py +210 -0
  39. {urwid-2.6.15 → urwid-3.0.5}/tests/test_line_box.py +26 -0
  40. {urwid-2.6.15 → urwid-3.0.5}/tests/test_main_loop.py +17 -12
  41. {urwid-2.6.15 → urwid-3.0.5}/tests/test_pile.py +113 -0
  42. {urwid-2.6.15 → urwid-3.0.5}/tests/test_scrollable.py +20 -1
  43. {urwid-2.6.15 → urwid-3.0.5}/tests/test_text_layout.py +24 -12
  44. {urwid-2.6.15 → urwid-3.0.5}/tests/test_tree.py +1 -2
  45. {urwid-2.6.15 → urwid-3.0.5}/tests/test_util.py +26 -26
  46. {urwid-2.6.15 → urwid-3.0.5}/tox.ini +7 -21
  47. {urwid-2.6.15 → urwid-3.0.5}/urwid/__init__.py +30 -20
  48. {urwid-2.6.15 → urwid-3.0.5}/urwid/canvas.py +34 -53
  49. {urwid-2.6.15 → urwid-3.0.5}/urwid/command_map.py +6 -4
  50. {urwid-2.6.15 → urwid-3.0.5}/urwid/container.py +1 -1
  51. {urwid-2.6.15 → urwid-3.0.5}/urwid/decoration.py +1 -1
  52. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/__init__.py +53 -48
  53. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_posix_raw_display.py +20 -8
  54. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_raw_display_base.py +21 -16
  55. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_win32_raw_display.py +16 -17
  56. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/common.py +45 -74
  57. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/curses.py +3 -5
  58. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/escape.py +28 -13
  59. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/lcd.py +8 -10
  60. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/web.py +11 -16
  61. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/asyncio_loop.py +35 -15
  62. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/main_loop.py +18 -23
  63. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/tornado_loop.py +4 -5
  64. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/trio_loop.py +1 -1
  65. {urwid-2.6.15 → urwid-3.0.5}/urwid/font.py +19 -22
  66. {urwid-2.6.15 → urwid-3.0.5}/urwid/numedit.py +65 -65
  67. {urwid-2.6.15 → urwid-3.0.5}/urwid/signals.py +19 -27
  68. {urwid-2.6.15 → urwid-3.0.5}/urwid/split_repr.py +9 -3
  69. {urwid-2.6.15 → urwid-3.0.5}/urwid/str_util.py +105 -60
  70. {urwid-2.6.15 → urwid-3.0.5}/urwid/text_layout.py +14 -13
  71. {urwid-2.6.15 → urwid-3.0.5}/urwid/util.py +8 -19
  72. urwid-3.0.5/urwid/version.py +34 -0
  73. {urwid-2.6.15 → urwid-3.0.5}/urwid/vterm.py +20 -47
  74. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/__init__.py +0 -6
  75. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/attr_map.py +10 -10
  76. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/attr_wrap.py +11 -13
  77. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/bar_graph.py +3 -8
  78. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/big_text.py +8 -9
  79. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/box_adapter.py +6 -6
  80. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/columns.py +52 -83
  81. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/container.py +29 -75
  82. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/divider.py +6 -6
  83. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/edit.py +50 -50
  84. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/filler.py +14 -14
  85. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/frame.py +31 -40
  86. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/grid_flow.py +25 -110
  87. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/line_box.py +31 -18
  88. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/listbox.py +16 -51
  89. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/monitored_list.py +75 -49
  90. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/overlay.py +4 -37
  91. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/padding.py +31 -68
  92. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/pile.py +179 -158
  93. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/popup.py +2 -2
  94. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/progress_bar.py +17 -18
  95. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/scrollable.py +26 -34
  96. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/solid_fill.py +3 -3
  97. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/text.py +44 -30
  98. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/treetools.py +27 -48
  99. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/widget.py +13 -130
  100. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/widget_decoration.py +6 -35
  101. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/wimp.py +61 -61
  102. {urwid-2.6.15 → urwid-3.0.5}/urwid/wimp.py +1 -1
  103. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/PKG-INFO +15 -15
  104. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/SOURCES.txt +1 -3
  105. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/requires.txt +4 -3
  106. urwid-2.6.15/.devcontainer/dev.dockerfile +0 -8
  107. urwid-2.6.15/black-requirements.txt +0 -1
  108. urwid-2.6.15/docs/examples/edit_text.txt +0 -11
  109. urwid-2.6.15/isort-requirements.txt +0 -1
  110. urwid-2.6.15/pylint-requirements.txt +0 -1
  111. urwid-2.6.15/requirements.txt +0 -2
  112. urwid-2.6.15/ruff-requirements.txt +0 -1
  113. urwid-2.6.15/setup.py +0 -33
  114. urwid-2.6.15/urwid/version.py +0 -16
  115. {urwid-2.6.15 → urwid-3.0.5}/.coveralls.yml +0 -0
  116. {urwid-2.6.15 → urwid-3.0.5}/.dockerignore +0 -0
  117. {urwid-2.6.15 → urwid-3.0.5}/.editorconfig +0 -0
  118. {urwid-2.6.15 → urwid-3.0.5}/.github/CODE_OF_CONDUCT.md +0 -0
  119. {urwid-2.6.15 → urwid-3.0.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  120. {urwid-2.6.15 → urwid-3.0.5}/.github/ISSUE_TEMPLATE/docs.md +0 -0
  121. {urwid-2.6.15 → urwid-3.0.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  122. {urwid-2.6.15 → urwid-3.0.5}/.github/ISSUE_TEMPLATE/question.md +0 -0
  123. {urwid-2.6.15 → urwid-3.0.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  124. {urwid-2.6.15 → urwid-3.0.5}/.github/dependabot.yml +0 -0
  125. {urwid-2.6.15 → urwid-3.0.5}/.github/labeler.yml +0 -0
  126. {urwid-2.6.15 → urwid-3.0.5}/.github/release.yml +0 -0
  127. {urwid-2.6.15 → urwid-3.0.5}/.gitignore +0 -0
  128. {urwid-2.6.15 → urwid-3.0.5}/.yamllint.yml +0 -0
  129. {urwid-2.6.15 → urwid-3.0.5}/COPYING +0 -0
  130. {urwid-2.6.15 → urwid-3.0.5}/MANIFEST.in +0 -0
  131. {urwid-2.6.15 → urwid-3.0.5}/docs/Makefile +0 -0
  132. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/bigtext.py.xdotool +0 -0
  133. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/bigtext1.png +0 -0
  134. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/bigtext2.png +0 -0
  135. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/bigtext3.png +0 -0
  136. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/browse.py +0 -0
  137. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/browse.py.xdotool +0 -0
  138. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/browse1.png +0 -0
  139. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/browse2.png +0 -0
  140. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/edit.py +0 -0
  141. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/edit.py.xdotool +0 -0
  142. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/edit1.png +0 -0
  143. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/edit2.png +0 -0
  144. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/graph.py +0 -0
  145. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/graph.py.xdotool +0 -0
  146. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/graph1.png +0 -0
  147. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/graph2.png +0 -0
  148. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/index.rst +0 -0
  149. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/palette_test.py.xdotool +0 -0
  150. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/palette_test1.png +0 -0
  151. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/palette_test2.png +0 -0
  152. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/pop_up.py +0 -0
  153. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/pop_up.py.xdotool +0 -0
  154. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/pop_up1.png +0 -0
  155. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/pop_up2.png +0 -0
  156. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/subproc.py +0 -0
  157. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/subproc.py.xdotool +0 -0
  158. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/subproc1.png +0 -0
  159. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/subproc2.png +0 -0
  160. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/subproc2.py +0 -0
  161. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/tour.py +0 -0
  162. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/tour.py.xdotool +0 -0
  163. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/tour1.png +0 -0
  164. {urwid-2.6.15 → urwid-3.0.5}/docs/examples/tour2.png +0 -0
  165. {urwid-2.6.15 → urwid-3.0.5}/docs/index.rst +0 -0
  166. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/bright_combinations.py +0 -0
  167. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/bright_combinations.py.xdotool +0 -0
  168. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/bright_combinations1.png +0 -0
  169. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/canvascache.rst +0 -0
  170. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/displayattributes.rst +0 -0
  171. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/displaymodules.rst +0 -0
  172. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/encodings.rst +0 -0
  173. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/display_modules.png +0 -0
  174. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/introduction.png +0 -0
  175. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/urwid_widgets.svgz +0 -0
  176. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/urwid_widgets_1.png +0 -0
  177. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/urwid_widgets_1.xcf +0 -0
  178. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/urwid_widgets_2.png +0 -0
  179. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/urwid_widgets_2.xcf +0 -0
  180. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/images/widget_layout.png +0 -0
  181. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/index.rst +0 -0
  182. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/mainloop.rst +0 -0
  183. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/overview.rst +0 -0
  184. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/safe_combinations.py +0 -0
  185. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/safe_combinations.py.xdotool +0 -0
  186. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/safe_combinations1.png +0 -0
  187. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/textlayout.rst +0 -0
  188. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/userinput.rst +0 -0
  189. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wanat.py +0 -0
  190. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wcur1.py +0 -0
  191. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wcur2.py +0 -0
  192. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/widgets.rst +0 -0
  193. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wmod.py +0 -0
  194. {urwid-2.6.15 → urwid-3.0.5}/docs/manual/wsel.py +0 -0
  195. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/attrspec.rst +0 -0
  196. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/canvas.rst +0 -0
  197. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/command_map.rst +0 -0
  198. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/constants.rst +0 -0
  199. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/display_modules.rst +0 -0
  200. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/exceptions.rst +0 -0
  201. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/global_settings.rst +0 -0
  202. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/index.rst +0 -0
  203. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/list_walkers.rst +0 -0
  204. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/main_loop.rst +0 -0
  205. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/meta.rst +0 -0
  206. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/signals.rst +0 -0
  207. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/text_layout.rst +0 -0
  208. {urwid-2.6.15 → urwid-3.0.5}/docs/reference/widget.rst +0 -0
  209. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/compile_pngs.sh +0 -0
  210. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/screenshots.sh +0 -0
  211. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/static/.placeholder +0 -0
  212. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/templates/indexcontent.html +0 -0
  213. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/templates/indexsidebar.html +0 -0
  214. {urwid-2.6.15 → urwid-3.0.5}/docs/tools/templates/localtoc.html +0 -0
  215. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure.py +0 -0
  216. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure.py.xdotool +0 -0
  217. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure1.png +0 -0
  218. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure2.png +0 -0
  219. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure3.png +0 -0
  220. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/adventure4.png +0 -0
  221. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu.py +0 -0
  222. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu.py.xdotool +0 -0
  223. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu1.png +0 -0
  224. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu2.png +0 -0
  225. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu3.png +0 -0
  226. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/cmenu4.png +0 -0
  227. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/highcolors.py +0 -0
  228. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/highcolors.py.xdotool +0 -0
  229. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/highcolors1.png +0 -0
  230. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu.py +0 -0
  231. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu.py.xdotool +0 -0
  232. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu1.png +0 -0
  233. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu2.png +0 -0
  234. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu3.png +0 -0
  235. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/hmenu4.png +0 -0
  236. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/index.rst +0 -0
  237. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input.py +0 -0
  238. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input.py.xdotool +0 -0
  239. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input1.png +0 -0
  240. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input2.png +0 -0
  241. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input3.png +0 -0
  242. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input4.png +0 -0
  243. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/input5.png +0 -0
  244. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/menu25.png +0 -0
  245. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/minimal.py +0 -0
  246. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/minimal.py.xdotool +0 -0
  247. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/minimal1.png +0 -0
  248. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple.py +0 -0
  249. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple.py.xdotool +0 -0
  250. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple1.png +0 -0
  251. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple2.png +0 -0
  252. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple3.png +0 -0
  253. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/multiple4.png +0 -0
  254. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/qa.py +0 -0
  255. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/qa.py.xdotool +0 -0
  256. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/qa1.png +0 -0
  257. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/qa2.png +0 -0
  258. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/qa3.png +0 -0
  259. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig.py +0 -0
  260. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig.py.xdotool +0 -0
  261. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig1.png +0 -0
  262. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig2.png +0 -0
  263. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig3.png +0 -0
  264. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/sig4.png +0 -0
  265. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/smenu.py.xdotool +0 -0
  266. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/smenu1.png +0 -0
  267. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/smenu2.png +0 -0
  268. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/smenu3.png +0 -0
  269. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr.py +0 -0
  270. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr.py.xdotool +0 -0
  271. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr1.png +0 -0
  272. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr2.png +0 -0
  273. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr3.png +0 -0
  274. {urwid-2.6.15 → urwid-3.0.5}/docs/tutorial/urwid_attr4.png +0 -0
  275. {urwid-2.6.15 → urwid-3.0.5}/docs/urwid-logo.png +0 -0
  276. {urwid-2.6.15 → urwid-3.0.5}/examples/dialog.py +0 -0
  277. {urwid-2.6.15 → urwid-3.0.5}/examples/fib.py +0 -0
  278. {urwid-2.6.15 → urwid-3.0.5}/examples/graph.py +0 -0
  279. {urwid-2.6.15 → urwid-3.0.5}/examples/input_test.py +0 -0
  280. {urwid-2.6.15 → urwid-3.0.5}/examples/pop_up.py +0 -0
  281. {urwid-2.6.15 → urwid-3.0.5}/examples/subproc.py +0 -0
  282. {urwid-2.6.15 → urwid-3.0.5}/examples/subproc2.py +0 -0
  283. {urwid-2.6.15 → urwid-3.0.5}/examples/terminal.py +0 -0
  284. {urwid-2.6.15 → urwid-3.0.5}/examples/tour.py +0 -0
  285. {urwid-2.6.15 → urwid-3.0.5}/examples/treesample.py +0 -0
  286. {urwid-2.6.15 → urwid-3.0.5}/examples/twisted_serve_ssh.tac +0 -0
  287. {urwid-2.6.15 → urwid-3.0.5}/setup.cfg +0 -0
  288. {urwid-2.6.15 → urwid-3.0.5}/test_requirements.txt +0 -0
  289. {urwid-2.6.15 → urwid-3.0.5}/tests/__init__.py +0 -0
  290. {urwid-2.6.15 → urwid-3.0.5}/tests/test_container.py +0 -0
  291. {urwid-2.6.15 → urwid-3.0.5}/tests/test_doctests.py +0 -0
  292. {urwid-2.6.15 → urwid-3.0.5}/tests/test_filler.py +0 -0
  293. {urwid-2.6.15 → urwid-3.0.5}/tests/test_floatedit.py +0 -0
  294. {urwid-2.6.15 → urwid-3.0.5}/tests/test_font.py +0 -0
  295. {urwid-2.6.15 → urwid-3.0.5}/tests/test_frame.py +0 -0
  296. {urwid-2.6.15 → urwid-3.0.5}/tests/test_graphics.py +0 -0
  297. {urwid-2.6.15 → urwid-3.0.5}/tests/test_grid_flow.py +0 -0
  298. {urwid-2.6.15 → urwid-3.0.5}/tests/test_listbox.py +0 -0
  299. {urwid-2.6.15 → urwid-3.0.5}/tests/test_moved_imports.py +0 -0
  300. {urwid-2.6.15 → urwid-3.0.5}/tests/test_overlay.py +0 -0
  301. {urwid-2.6.15 → urwid-3.0.5}/tests/test_padding.py +0 -0
  302. {urwid-2.6.15 → urwid-3.0.5}/tests/test_raw_display.py +0 -0
  303. {urwid-2.6.15 → urwid-3.0.5}/tests/test_signals.py +0 -0
  304. {urwid-2.6.15 → urwid-3.0.5}/tests/test_str_util.py +0 -0
  305. {urwid-2.6.15 → urwid-3.0.5}/tests/test_vterm.py +0 -0
  306. {urwid-2.6.15 → urwid-3.0.5}/tests/test_widget.py +0 -0
  307. {urwid-2.6.15 → urwid-3.0.5}/tests/util.py +0 -0
  308. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_web.css +0 -0
  309. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_web.js +0 -0
  310. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/_win32.py +0 -0
  311. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/html_fragment.py +0 -0
  312. {urwid-2.6.15 → urwid-3.0.5}/urwid/display/raw.py +0 -0
  313. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/__init__.py +0 -0
  314. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/abstract_loop.py +0 -0
  315. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/glib_loop.py +0 -0
  316. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/select_loop.py +0 -0
  317. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/twisted_loop.py +0 -0
  318. {urwid-2.6.15 → urwid-3.0.5}/urwid/event_loop/zmq_loop.py +0 -0
  319. {urwid-2.6.15 → urwid-3.0.5}/urwid/graphics.py +0 -0
  320. {urwid-2.6.15 → urwid-3.0.5}/urwid/widget/constants.py +0 -0
  321. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/dependency_links.txt +0 -0
  322. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/not-zip-safe +0 -0
  323. {urwid-2.6.15 → urwid-3.0.5}/urwid.egg-info/top_level.txt +0 -0
@@ -0,0 +1,15 @@
1
+ FROM ubuntu:24.04
2
+ RUN apt-get update -y \
3
+ && apt-get upgrade -y \
4
+ && apt-get install -y \
5
+ python3-dev \
6
+ python3-pip \
7
+ python3-virtualenv \
8
+ python3-gi \
9
+ python3-gi-cairo \
10
+ gobject-introspection \
11
+ libgirepository-2.0-dev \
12
+ libcairo2-dev \
13
+ && apt-get clean
14
+ RUN mkdir -p ~/.virtualenvs \
15
+ && virtualenv --download ~/.virtualenvs/urwid
@@ -6,6 +6,11 @@
6
6
  "ghcr.io/devcontainers/features/github-cli": {}
7
7
  },
8
8
  "customizations": {
9
+ "jetbrains": {
10
+ "settings": {
11
+ "com.intellij:app:Vcs-Log-App-Settings.show_changes_from_parents": true
12
+ }
13
+ },
9
14
  // Configure properties specific to VS Code.
10
15
  "vscode": {
11
16
  // Set *default* container specific settings.json values on container create.
@@ -32,4 +37,4 @@
32
37
  "init": true,
33
38
  "postCreateCommand": "~/.virtualenvs/urwid/bin/pip3 install isort black ruff pylint refurb mypy",
34
39
  "postStartCommand": "~/.virtualenvs/urwid/bin/pip3 install -r test_requirements.txt PyGObject && ~/.virtualenvs/urwid/bin/pip3 install -U -e ."
35
- }
40
+ }
@@ -16,7 +16,6 @@ on:
16
16
  - "docs/**"
17
17
  - "README.rst"
18
18
  - "urwid/**"
19
- - "setup.py"
20
19
  - "pyproject.toml"
21
20
  - ".github/workflows/documentation.yml"
22
21
 
@@ -24,29 +23,28 @@ jobs:
24
23
  Build:
25
24
  runs-on: ubuntu-latest
26
25
  steps:
27
- - uses: actions/checkout@v4
26
+ - uses: actions/checkout@v6
28
27
  with:
29
28
  fetch-depth: 0 # need for setuptools_scm
30
29
  - name: Set up Python
31
- uses: actions/setup-python@v5
30
+ uses: actions/setup-python@v6
32
31
  with:
33
32
  python-version: '3.x'
34
33
  cache: 'pip'
35
34
  - name: Install Ubuntu dependencies
36
35
  run: |
37
36
  sudo apt-get -qq update
38
- sudo apt-get install -y python3-gi gobject-introspection libgirepository1.0-dev
37
+ sudo apt-get install -y python3-dev python3-gi python3-gi-cairo
38
+ sudo apt-get install -y gobject-introspection libgirepository-2.0-dev libcairo2-dev
39
39
  - name: Install python dependencies
40
40
  run: |
41
41
  pip install -U -r test_requirements.txt PyGObject
42
- pip install -U sphinx sphinx-github-changelog
42
+ pip install -U sphinx
43
43
  - name: Install main package
44
44
  run: pip install -e .
45
45
  - name: Build documentation
46
- env:
47
- SPHINX_GITHUB_CHANGELOG_TOKEN: ${{ secrets.URWID_SPHINX_RO_TOKEN }}
48
46
  run: sphinx-build docs build/documentation
49
- - uses: actions/upload-artifact@v4
47
+ - uses: actions/upload-artifact@v6
50
48
  with:
51
49
  path: build/documentation
52
- name: documentation
50
+ name: documentation
@@ -4,57 +4,37 @@ on:
4
4
  pull_request:
5
5
  paths:
6
6
  - "ruff-requirements.txt"
7
- - "black-requirements.txt"
8
- - "isort-requirements.txt"
9
7
 
10
8
  concurrency:
11
9
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
10
  cancel-in-progress: true
13
11
 
14
12
  jobs:
15
- Isort:
16
- name: Validate import sorting
13
+ Ruff-format:
14
+ name: Validate formatting
17
15
  runs-on: ubuntu-latest
18
16
  steps:
19
- - uses: actions/checkout@v4
17
+ - uses: actions/checkout@v6
20
18
  - name: Set up Python
21
- uses: actions/setup-python@v5
19
+ uses: actions/setup-python@v6
22
20
  with:
23
21
  python-version: '3.x'
24
22
  cache: 'pip'
25
23
  - name: Install dependencies
26
24
  run: |
27
25
  python -m pip install --upgrade pip
28
- pip install --upgrade -r isort-requirements.txt
29
- - name: Check imports with isort
30
- run: |
31
- isort --check --diff .
32
-
33
- Black:
34
- name: Validate black formatting
35
- runs-on: ubuntu-latest
36
- steps:
37
- - uses: actions/checkout@v4
38
- - name: Set up Python
39
- uses: actions/setup-python@v5
40
- with:
41
- python-version: '3.x'
42
- cache: 'pip'
43
- - name: Install dependencies
44
- run: |
45
- python -m pip install --upgrade pip
46
- pip install --upgrade -r black-requirements.txt
47
- - name: Check code style with black
26
+ pip install --upgrade -r ruff-requirements.txt
27
+ - name: Check code style with ruff
48
28
  run: |
49
- black --check .
29
+ ruff format --check .
50
30
 
51
31
  Ruff:
52
32
  name: Check with Ruff
53
33
  runs-on: ubuntu-latest
54
34
  steps:
55
- - uses: actions/checkout@v4
35
+ - uses: actions/checkout@v6
56
36
  - name: Set up Python
57
- uses: actions/setup-python@v5
37
+ uses: actions/setup-python@v6
58
38
  with:
59
39
  python-version: '3.x'
60
40
  cache: 'pip'
@@ -70,13 +50,14 @@ jobs:
70
50
  name: Check with pylint
71
51
  runs-on: ubuntu-latest
72
52
  steps:
73
- - uses: actions/checkout@v4
53
+ - uses: actions/checkout@v6
74
54
  - name: Install Ubuntu dependencies
75
55
  run: |
76
56
  sudo apt-get -qq update
77
- sudo apt-get install -y python3-gi gobject-introspection libgirepository1.0-dev
57
+ sudo apt-get install -y python3-dev python3-gi python3-gi-cairo
58
+ sudo apt-get install -y gobject-introspection libgirepository-2.0-dev libcairo2-dev
78
59
  - name: Set up Python
79
- uses: actions/setup-python@v5
60
+ uses: actions/setup-python@v6
80
61
  with:
81
62
  python-version: '3.x'
82
63
  cache: 'pip'
@@ -10,6 +10,6 @@ jobs:
10
10
  pull-requests: write
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/labeler@v5
13
+ - uses: actions/labeler@v6
14
14
  with:
15
15
  dot: true
@@ -12,7 +12,6 @@ on:
12
12
  paths:
13
13
  - "urwid/**"
14
14
  - "source/**"
15
- - "setup.py"
16
15
  - "pyproject.toml"
17
16
  - "MANIFEST.in"
18
17
  - "README.rst"
@@ -27,49 +26,31 @@ concurrency:
27
26
  cancel-in-progress: true
28
27
 
29
28
  jobs:
30
- Isort:
31
- name: Validate import sorting
29
+ Ruff-format:
30
+ name: Validate formatting
32
31
  runs-on: ubuntu-latest
33
32
  steps:
34
- - uses: actions/checkout@v4
33
+ - uses: actions/checkout@v6
35
34
  - name: Set up Python
36
- uses: actions/setup-python@v5
35
+ uses: actions/setup-python@v6
37
36
  with:
38
37
  python-version: '3.x'
39
38
  cache: 'pip'
40
39
  - name: Install dependencies
41
40
  run: |
42
41
  python -m pip install --upgrade pip
43
- pip install --upgrade -r isort-requirements.txt
44
- - name: Check imports with isort
45
- run: |
46
- isort --check --diff .
47
-
48
- Black:
49
- name: Validate black formatting
50
- runs-on: ubuntu-latest
51
- steps:
52
- - uses: actions/checkout@v4
53
- - name: Set up Python
54
- uses: actions/setup-python@v5
55
- with:
56
- python-version: '3.x'
57
- cache: 'pip'
58
- - name: Install dependencies
59
- run: |
60
- python -m pip install --upgrade pip
61
- pip install --upgrade -r black-requirements.txt
62
- - name: Check code style with black
42
+ pip install --upgrade -r ruff-requirements.txt
43
+ - name: Check code style with ruff
63
44
  run: |
64
- black --check .
45
+ ruff format --check .
65
46
 
66
47
  Ruff:
67
48
  name: Check with Ruff
68
49
  runs-on: ubuntu-latest
69
50
  steps:
70
- - uses: actions/checkout@v4
51
+ - uses: actions/checkout@v6
71
52
  - name: Set up Python
72
- uses: actions/setup-python@v5
53
+ uses: actions/setup-python@v6
73
54
  with:
74
55
  python-version: '3.x'
75
56
  cache: 'pip'
@@ -85,13 +66,14 @@ jobs:
85
66
  name: Check with pylint
86
67
  runs-on: ubuntu-latest
87
68
  steps:
88
- - uses: actions/checkout@v4
69
+ - uses: actions/checkout@v6
89
70
  - name: Install Ubuntu dependencies
90
71
  run: |
91
72
  sudo apt-get -qq update
92
- sudo apt-get install -y python3-gi gobject-introspection libgirepository1.0-dev
73
+ sudo apt-get install -y python3-dev python3-gi python3-gi-cairo
74
+ sudo apt-get install -y gobject-introspection libgirepository-2.0-dev libcairo2-dev
93
75
  - name: Set up Python
94
- uses: actions/setup-python@v5
76
+ uses: actions/setup-python@v6
95
77
  with:
96
78
  python-version: '3.x'
97
79
  cache: 'pip'
@@ -106,7 +88,7 @@ jobs:
106
88
  run: pylint --output-format=github urwid
107
89
 
108
90
  Test:
109
- needs: [ Isort, Black, Ruff, PyLint ]
91
+ needs: [ Ruff-format, Ruff, PyLint ]
110
92
  runs-on: ${{ matrix.os }}
111
93
  strategy:
112
94
  max-parallel: 6
@@ -114,14 +96,17 @@ jobs:
114
96
  os: [ "ubuntu-latest", "windows-latest" ]
115
97
  # , "macos-latest"
116
98
  # enable macOS only if OS specific branch will be added
117
- python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ]
99
+ python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.14" ]
100
+ exclude:
101
+ - os: "windows-latest"
102
+ python-version: "3.14"
118
103
 
119
104
  steps:
120
- - uses: actions/checkout@v4
105
+ - uses: actions/checkout@v6
121
106
  with:
122
107
  fetch-depth: 0 # need for setuptools_scm
123
108
  - name: Set up Python ${{ matrix.python-version }}
124
- uses: actions/setup-python@v5
109
+ uses: actions/setup-python@v6
125
110
  with:
126
111
  python-version: ${{ matrix.python-version }}
127
112
  allow-prereleases: true
@@ -130,7 +115,8 @@ jobs:
130
115
  if: runner.os == 'Linux'
131
116
  run: |
132
117
  sudo apt-get -qq update
133
- sudo apt-get install -y python3-gi gobject-introspection libgirepository1.0-dev
118
+ sudo apt-get install -y python3-dev python3-gi python3-gi-cairo
119
+ sudo apt-get install -y gobject-introspection libgirepository-2.0-dev libcairo2-dev
134
120
  - name: Install Mac OS X dependencies
135
121
  if: runner.os == 'macOS'
136
122
  run: |
@@ -169,16 +155,16 @@ jobs:
169
155
 
170
156
  build:
171
157
  name: Build distribution
172
- needs: [ Test, Isort, Black, Ruff, PyLint ]
158
+ needs: [ Test, Ruff-format, Ruff, PyLint ]
173
159
  runs-on: ubuntu-latest
174
160
  steps:
175
- - uses: actions/checkout@v4
161
+ - uses: actions/checkout@v6
176
162
  with:
177
163
  fetch-depth: 0 # need for setuptools_scm
178
164
 
179
- - uses: actions/setup-python@v5
165
+ - uses: actions/setup-python@v6
180
166
  with:
181
- python-version: "3.11"
167
+ python-version: "3.x"
182
168
 
183
169
  - name: Install dependencies
184
170
  run: pip install -U build
@@ -186,13 +172,13 @@ jobs:
186
172
  - name: Build dist
187
173
  run: python -m build
188
174
 
189
- - uses: actions/upload-artifact@v4
175
+ - uses: actions/upload-artifact@v6
190
176
  with:
191
177
  path: dist/*.tar.gz
192
178
  name: built-sdist
193
179
  retention-days: 3
194
180
 
195
- - uses: actions/upload-artifact@v4
181
+ - uses: actions/upload-artifact@v6
196
182
  with:
197
183
  path: dist/*.whl
198
184
  name: built-bdist
@@ -203,9 +189,9 @@ jobs:
203
189
  runs-on: ubuntu-latest
204
190
  needs: [ build ]
205
191
  steps:
206
- - uses: actions/checkout@v4
192
+ - uses: actions/checkout@v6
207
193
  - name: Set up Python
208
- uses: actions/setup-python@v5
194
+ uses: actions/setup-python@v6
209
195
  with:
210
196
  python-version: '3.x'
211
197
  cache: 'pip'
@@ -213,7 +199,7 @@ jobs:
213
199
  run: |
214
200
  python -m pip install --upgrade pip
215
201
  pip install --upgrade twine
216
- - uses: actions/download-artifact@v4
202
+ - uses: actions/download-artifact@v7
217
203
  with:
218
204
  # unpacks default artifact into dist/
219
205
  # if `name: wheels` is omitted, the action will create extra parent dir
@@ -238,7 +224,7 @@ jobs:
238
224
  permissions:
239
225
  id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
240
226
  steps:
241
- - uses: actions/download-artifact@v4
227
+ - uses: actions/download-artifact@v7
242
228
  with:
243
229
  pattern: built-*
244
230
  merge-multiple: true
@@ -10,9 +10,9 @@ jobs:
10
10
  check:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v4
13
+ - uses: actions/checkout@v6
14
14
  - name: Set up Python
15
- uses: actions/setup-python@v5
15
+ uses: actions/setup-python@v6
16
16
  with:
17
17
  python-version: '3.x'
18
18
  cache: 'pip'
@@ -1,38 +1,24 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.6.0
3
+ rev: v6.0.0
4
4
  hooks:
5
5
  - id: check-yaml
6
6
  - id: end-of-file-fixer
7
7
  - id: trailing-whitespace
8
8
  - id: mixed-line-ending
9
9
 
10
- - repo: https://github.com/pycqa/isort
11
- rev: 5.13.2
12
- hooks:
13
- - id: isort
14
- name: isort (python)
15
- - id: isort
16
- name: isort (cython)
17
- types: [cython]
18
- - id: isort
19
- name: isort (pyi)
20
- types: [pyi]
21
-
22
- - repo: https://github.com/psf/black
23
- rev: 24.4.2
24
- hooks:
25
- - id: black
26
-
27
10
  - repo: https://github.com/astral-sh/ruff-pre-commit
28
11
  # Ruff version.
29
- rev: v0.5.0
12
+ rev: v0.14.5
30
13
  hooks:
31
- - id: ruff
32
- args: [ --fix, --exit-non-zero-on-fix ]
14
+ # Run the linter.
15
+ - id: ruff-check
16
+ args: [ --fix ]
17
+ # Run the formatter.
18
+ - id: ruff-format
33
19
 
34
20
  - repo: https://github.com/adrienverge/yamllint.git
35
- rev: v1.35.1
21
+ rev: v1.37.1
36
22
  hooks:
37
23
  - id: yamllint
38
24
 
@@ -1,10 +1,9 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: urwid
3
- Version: 2.6.15
3
+ Version: 3.0.5
4
4
  Summary: A full-featured console (xterm et al.) user interface library
5
- Home-page: https://urwid.org/
6
5
  Author-email: Ian Ward <ian@excess.org>
7
- License: LGPL-2.1-only
6
+ License-Expression: LGPL-2.1-only
8
7
  Project-URL: Homepage, https://urwid.org/
9
8
  Project-URL: Documentation, https://urwid.org/manual/index.html
10
9
  Project-URL: Repository, https://github.com/urwid/urwid
@@ -15,7 +14,6 @@ Classifier: Development Status :: 5 - Production/Stable
15
14
  Classifier: Environment :: Console
16
15
  Classifier: Environment :: Console :: Curses
17
16
  Classifier: Intended Audience :: Developers
18
- Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
19
17
  Classifier: Operating System :: POSIX
20
18
  Classifier: Operating System :: Unix
21
19
  Classifier: Operating System :: MacOS :: MacOS X
@@ -23,20 +21,19 @@ Classifier: Operating System :: Microsoft :: Windows
23
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
22
  Classifier: Topic :: Software Development :: Widget Sets
25
23
  Classifier: Programming Language :: Python :: 3
26
- Classifier: Programming Language :: Python :: 3.7
27
- Classifier: Programming Language :: Python :: 3.8
28
24
  Classifier: Programming Language :: Python :: 3.9
29
25
  Classifier: Programming Language :: Python :: 3.10
30
26
  Classifier: Programming Language :: Python :: 3.11
31
27
  Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Programming Language :: Python :: 3.14
32
30
  Classifier: Programming Language :: Python :: 3 :: Only
33
31
  Classifier: Programming Language :: Python :: Implementation :: CPython
34
32
  Classifier: Programming Language :: Python :: Implementation :: PyPy
35
- Requires-Python: >3.7
33
+ Requires-Python: >=3.9.0
36
34
  Description-Content-Type: text/x-rst
37
35
  License-File: COPYING
38
- Requires-Dist: typing-extensions
39
- Requires-Dist: wcwidth
36
+ Requires-Dist: wcwidth>=0.4
40
37
  Provides-Extra: curses
41
38
  Requires-Dist: windows-curses; sys_platform == "win32" and extra == "curses"
42
39
  Provides-Extra: glib
@@ -44,8 +41,8 @@ Requires-Dist: PyGObject; extra == "glib"
44
41
  Provides-Extra: tornado
45
42
  Requires-Dist: tornado>=5.0; extra == "tornado"
46
43
  Provides-Extra: trio
47
- Requires-Dist: trio>=0.22.0; extra == "trio"
48
- Requires-Dist: exceptiongroup; extra == "trio"
44
+ Requires-Dist: trio>=0.24.0; extra == "trio"
45
+ Requires-Dist: exceptiongroup; python_version < "3.11" and extra == "trio"
49
46
  Provides-Extra: twisted
50
47
  Requires-Dist: twisted; extra == "twisted"
51
48
  Provides-Extra: zmq
@@ -54,6 +51,7 @@ Provides-Extra: serial
54
51
  Requires-Dist: pyserial; extra == "serial"
55
52
  Provides-Extra: lcd
56
53
  Requires-Dist: pyserial; extra == "lcd"
54
+ Dynamic: license-file
57
55
 
58
56
  Urwid
59
57
  =====
@@ -76,7 +74,7 @@ It includes many features useful for text console application developers includi
76
74
  - Display modules include raw, curses, and experimental LCD and web displays
77
75
  - Support for UTF-8, simple 8-bit and CJK encodings
78
76
  - 24-bit (true color), 256 color, and 88 color mode support
79
- - Compatible with Python 3.7+ and PyPy
77
+ - Compatible with Python 3.9+ and PyPy
80
78
 
81
79
  Home Page:
82
80
  http://urwid.org/
@@ -106,6 +104,8 @@ Alternatively if you are on Debian or Ubuntu
106
104
  Windows support notes
107
105
  =====================
108
106
 
107
+ Windows support is limited to the Windows 10+ due to ANSI support requirement.
108
+
109
109
  * Not supported:
110
110
 
111
111
  1. Terminal widget and all related render API (TermCanvas, TermCharset, TermModes, TermScroller)
@@ -142,12 +142,12 @@ To test code in all Python versions:
142
142
  Supported Python versions
143
143
  =========================
144
144
 
145
- - 3.7
146
- - 3.8
147
145
  - 3.9
148
146
  - 3.10
149
147
  - 3.11
150
148
  - 3.12
149
+ - 3.13
150
+ - 3.14
151
151
  - pypy3
152
152
 
153
153
  Authors
@@ -19,7 +19,7 @@ It includes many features useful for text console application developers includi
19
19
  - Display modules include raw, curses, and experimental LCD and web displays
20
20
  - Support for UTF-8, simple 8-bit and CJK encodings
21
21
  - 24-bit (true color), 256 color, and 88 color mode support
22
- - Compatible with Python 3.7+ and PyPy
22
+ - Compatible with Python 3.9+ and PyPy
23
23
 
24
24
  Home Page:
25
25
  http://urwid.org/
@@ -49,6 +49,8 @@ Alternatively if you are on Debian or Ubuntu
49
49
  Windows support notes
50
50
  =====================
51
51
 
52
+ Windows support is limited to the Windows 10+ due to ANSI support requirement.
53
+
52
54
  * Not supported:
53
55
 
54
56
  1. Terminal widget and all related render API (TermCanvas, TermCharset, TermModes, TermScroller)
@@ -85,12 +87,12 @@ To test code in all Python versions:
85
87
  Supported Python versions
86
88
  =========================
87
89
 
88
- - 3.7
89
- - 3.8
90
90
  - 3.9
91
91
  - 3.10
92
92
  - 3.11
93
93
  - 3.12
94
+ - 3.13
95
+ - 3.14
94
96
  - pypy3
95
97
 
96
98
  Authors
@@ -2,7 +2,6 @@ Development Status :: 5 - Production/Stable
2
2
  Environment :: Console
3
3
  Environment :: Console :: Curses
4
4
  Intended Audience :: Developers
5
- License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
6
5
  Operating System :: POSIX
7
6
  Operating System :: Unix
8
7
  Operating System :: MacOS :: MacOS X
@@ -10,12 +9,12 @@ Operating System :: Microsoft :: Windows
10
9
  Topic :: Software Development :: Libraries :: Python Modules
11
10
  Topic :: Software Development :: Widget Sets
12
11
  Programming Language :: Python :: 3
13
- Programming Language :: Python :: 3.7
14
- Programming Language :: Python :: 3.8
15
12
  Programming Language :: Python :: 3.9
16
13
  Programming Language :: Python :: 3.10
17
14
  Programming Language :: Python :: 3.11
18
15
  Programming Language :: Python :: 3.12
16
+ Programming Language :: Python :: 3.13
17
+ Programming Language :: Python :: 3.14
19
18
  Programming Language :: Python :: 3 :: Only
20
19
  Programming Language :: Python :: Implementation :: CPython
21
- Programming Language :: Python :: Implementation :: PyPy
20
+ Programming Language :: Python :: Implementation :: PyPy