urwid 3.0.5__tar.gz → 4.0.0__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 (316) hide show
  1. {urwid-3.0.5 → urwid-4.0.0}/.github/workflows/documentation.yml +1 -1
  2. {urwid-3.0.5 → urwid-4.0.0}/.github/workflows/pythonpackage.yml +4 -4
  3. {urwid-3.0.5 → urwid-4.0.0}/PKG-INFO +1 -1
  4. {urwid-3.0.5 → urwid-4.0.0}/pyproject.toml +3 -8
  5. urwid-4.0.0/ruff-requirements.txt +1 -0
  6. {urwid-3.0.5 → urwid-4.0.0}/tests/test_event_loops.py +1 -0
  7. {urwid-3.0.5 → urwid-4.0.0}/urwid/__init__.py +1 -9
  8. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_posix_raw_display.py +4 -1
  9. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/common.py +2 -1
  10. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/main_loop.py +0 -21
  11. {urwid-3.0.5 → urwid-4.0.0}/urwid/font.py +2 -19
  12. urwid-4.0.0/urwid/version.py +24 -0
  13. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/attr_wrap.py +0 -16
  14. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/columns.py +0 -20
  15. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/filler.py +0 -17
  16. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/listbox.py +1 -1
  17. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/monitored_list.py +0 -21
  18. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/pile.py +0 -24
  19. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/PKG-INFO +1 -1
  20. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/SOURCES.txt +0 -4
  21. urwid-3.0.5/ruff-requirements.txt +0 -1
  22. urwid-3.0.5/tests/test_moved_imports.py +0 -19
  23. urwid-3.0.5/urwid/container.py +0 -59
  24. urwid-3.0.5/urwid/decoration.py +0 -65
  25. urwid-3.0.5/urwid/version.py +0 -34
  26. urwid-3.0.5/urwid/wimp.py +0 -23
  27. {urwid-3.0.5 → urwid-4.0.0}/.coveralls.yml +0 -0
  28. {urwid-3.0.5 → urwid-4.0.0}/.devcontainer/dev.dockerfile +0 -0
  29. {urwid-3.0.5 → urwid-4.0.0}/.devcontainer/devcontainer.json +0 -0
  30. {urwid-3.0.5 → urwid-4.0.0}/.dockerignore +0 -0
  31. {urwid-3.0.5 → urwid-4.0.0}/.editorconfig +0 -0
  32. {urwid-3.0.5 → urwid-4.0.0}/.github/CODE_OF_CONDUCT.md +0 -0
  33. {urwid-3.0.5 → urwid-4.0.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  34. {urwid-3.0.5 → urwid-4.0.0}/.github/ISSUE_TEMPLATE/docs.md +0 -0
  35. {urwid-3.0.5 → urwid-4.0.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  36. {urwid-3.0.5 → urwid-4.0.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  37. {urwid-3.0.5 → urwid-4.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  38. {urwid-3.0.5 → urwid-4.0.0}/.github/dependabot.yml +0 -0
  39. {urwid-3.0.5 → urwid-4.0.0}/.github/labeler.yml +0 -0
  40. {urwid-3.0.5 → urwid-4.0.0}/.github/release.yml +0 -0
  41. {urwid-3.0.5 → urwid-4.0.0}/.github/workflows/isolated_static_check.yml +0 -0
  42. {urwid-3.0.5 → urwid-4.0.0}/.github/workflows/labels.yml +0 -0
  43. {urwid-3.0.5 → urwid-4.0.0}/.github/workflows/yamllint.yml +0 -0
  44. {urwid-3.0.5 → urwid-4.0.0}/.gitignore +0 -0
  45. {urwid-3.0.5 → urwid-4.0.0}/.pre-commit-config.yaml +0 -0
  46. {urwid-3.0.5 → urwid-4.0.0}/.yamllint.yml +0 -0
  47. {urwid-3.0.5 → urwid-4.0.0}/COPYING +0 -0
  48. {urwid-3.0.5 → urwid-4.0.0}/MANIFEST.in +0 -0
  49. {urwid-3.0.5 → urwid-4.0.0}/README.rst +0 -0
  50. {urwid-3.0.5 → urwid-4.0.0}/classifiers.txt +0 -0
  51. {urwid-3.0.5 → urwid-4.0.0}/docs/Makefile +0 -0
  52. {urwid-3.0.5 → urwid-4.0.0}/docs/changelog.rst +0 -0
  53. {urwid-3.0.5 → urwid-4.0.0}/docs/conf.py +0 -0
  54. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/bigtext.py +0 -0
  55. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/bigtext.py.xdotool +0 -0
  56. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/bigtext1.png +0 -0
  57. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/bigtext2.png +0 -0
  58. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/bigtext3.png +0 -0
  59. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/browse.py +0 -0
  60. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/browse.py.xdotool +0 -0
  61. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/browse1.png +0 -0
  62. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/browse2.png +0 -0
  63. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/edit.py +0 -0
  64. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/edit.py.xdotool +0 -0
  65. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/edit1.png +0 -0
  66. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/edit2.png +0 -0
  67. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/edit_text.txt +0 -0
  68. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/graph.py +0 -0
  69. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/graph.py.xdotool +0 -0
  70. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/graph1.png +0 -0
  71. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/graph2.png +0 -0
  72. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/index.rst +0 -0
  73. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/palette_test.py +0 -0
  74. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/palette_test.py.xdotool +0 -0
  75. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/palette_test1.png +0 -0
  76. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/palette_test2.png +0 -0
  77. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/pop_up.py +0 -0
  78. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/pop_up.py.xdotool +0 -0
  79. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/pop_up1.png +0 -0
  80. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/pop_up2.png +0 -0
  81. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/real_browse.py +0 -0
  82. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/real_edit.py +0 -0
  83. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/subproc.py +0 -0
  84. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/subproc.py.xdotool +0 -0
  85. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/subproc1.png +0 -0
  86. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/subproc2.png +0 -0
  87. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/subproc2.py +0 -0
  88. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/tour.py +0 -0
  89. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/tour.py.xdotool +0 -0
  90. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/tour1.png +0 -0
  91. {urwid-3.0.5 → urwid-4.0.0}/docs/examples/tour2.png +0 -0
  92. {urwid-3.0.5 → urwid-4.0.0}/docs/index.rst +0 -0
  93. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/bright_combinations.py +0 -0
  94. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/bright_combinations.py.xdotool +0 -0
  95. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/bright_combinations1.png +0 -0
  96. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/canvascache.rst +0 -0
  97. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/displayattributes.rst +0 -0
  98. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/displaymodules.rst +0 -0
  99. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/encodings.rst +0 -0
  100. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/display_modules.png +0 -0
  101. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/introduction.png +0 -0
  102. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/urwid_widgets.svgz +0 -0
  103. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/urwid_widgets_1.png +0 -0
  104. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/urwid_widgets_1.xcf +0 -0
  105. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/urwid_widgets_2.png +0 -0
  106. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/urwid_widgets_2.xcf +0 -0
  107. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/images/widget_layout.png +0 -0
  108. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/index.rst +0 -0
  109. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/mainloop.rst +0 -0
  110. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/overview.rst +0 -0
  111. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/safe_combinations.py +0 -0
  112. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/safe_combinations.py.xdotool +0 -0
  113. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/safe_combinations1.png +0 -0
  114. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/textlayout.rst +0 -0
  115. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/userinput.rst +0 -0
  116. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wanat.py +0 -0
  117. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wanat_multi.py +0 -0
  118. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wcur1.py +0 -0
  119. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wcur2.py +0 -0
  120. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/widgets.rst +0 -0
  121. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wmod.py +0 -0
  122. {urwid-3.0.5 → urwid-4.0.0}/docs/manual/wsel.py +0 -0
  123. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/attrspec.rst +0 -0
  124. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/canvas.rst +0 -0
  125. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/command_map.rst +0 -0
  126. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/constants.rst +0 -0
  127. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/deprecated.rst +0 -0
  128. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/display_modules.rst +0 -0
  129. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/exceptions.rst +0 -0
  130. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/global_settings.rst +0 -0
  131. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/index.rst +0 -0
  132. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/list_walkers.rst +0 -0
  133. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/main_loop.rst +0 -0
  134. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/meta.rst +0 -0
  135. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/signals.rst +0 -0
  136. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/text_layout.rst +0 -0
  137. {urwid-3.0.5 → urwid-4.0.0}/docs/reference/widget.rst +0 -0
  138. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/compile_pngs.sh +0 -0
  139. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/screenshots.sh +0 -0
  140. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/static/.placeholder +0 -0
  141. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/templates/indexcontent.html +0 -0
  142. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/templates/indexsidebar.html +0 -0
  143. {urwid-3.0.5 → urwid-4.0.0}/docs/tools/templates/localtoc.html +0 -0
  144. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure.py +0 -0
  145. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure.py.xdotool +0 -0
  146. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure1.png +0 -0
  147. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure2.png +0 -0
  148. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure3.png +0 -0
  149. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/adventure4.png +0 -0
  150. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu.py +0 -0
  151. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu.py.xdotool +0 -0
  152. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu1.png +0 -0
  153. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu2.png +0 -0
  154. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu3.png +0 -0
  155. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/cmenu4.png +0 -0
  156. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/highcolors.py +0 -0
  157. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/highcolors.py.xdotool +0 -0
  158. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/highcolors1.png +0 -0
  159. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu.py +0 -0
  160. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu.py.xdotool +0 -0
  161. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu1.png +0 -0
  162. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu2.png +0 -0
  163. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu3.png +0 -0
  164. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/hmenu4.png +0 -0
  165. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/index.rst +0 -0
  166. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input.py +0 -0
  167. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input.py.xdotool +0 -0
  168. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input1.png +0 -0
  169. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input2.png +0 -0
  170. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input3.png +0 -0
  171. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input4.png +0 -0
  172. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/input5.png +0 -0
  173. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/menu25.png +0 -0
  174. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/minimal.py +0 -0
  175. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/minimal.py.xdotool +0 -0
  176. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/minimal1.png +0 -0
  177. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple.py +0 -0
  178. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple.py.xdotool +0 -0
  179. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple1.png +0 -0
  180. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple2.png +0 -0
  181. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple3.png +0 -0
  182. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/multiple4.png +0 -0
  183. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/qa.py +0 -0
  184. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/qa.py.xdotool +0 -0
  185. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/qa1.png +0 -0
  186. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/qa2.png +0 -0
  187. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/qa3.png +0 -0
  188. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig.py +0 -0
  189. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig.py.xdotool +0 -0
  190. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig1.png +0 -0
  191. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig2.png +0 -0
  192. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig3.png +0 -0
  193. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/sig4.png +0 -0
  194. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/smenu.py +0 -0
  195. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/smenu.py.xdotool +0 -0
  196. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/smenu1.png +0 -0
  197. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/smenu2.png +0 -0
  198. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/smenu3.png +0 -0
  199. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr.py +0 -0
  200. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr.py.xdotool +0 -0
  201. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr1.png +0 -0
  202. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr2.png +0 -0
  203. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr3.png +0 -0
  204. {urwid-3.0.5 → urwid-4.0.0}/docs/tutorial/urwid_attr4.png +0 -0
  205. {urwid-3.0.5 → urwid-4.0.0}/docs/urwid-logo.png +0 -0
  206. {urwid-3.0.5 → urwid-4.0.0}/examples/asyncio_socket_server.py +0 -0
  207. {urwid-3.0.5 → urwid-4.0.0}/examples/bigtext.py +0 -0
  208. {urwid-3.0.5 → urwid-4.0.0}/examples/browse.py +0 -0
  209. {urwid-3.0.5 → urwid-4.0.0}/examples/calc.py +0 -0
  210. {urwid-3.0.5 → urwid-4.0.0}/examples/dialog.py +0 -0
  211. {urwid-3.0.5 → urwid-4.0.0}/examples/edit.py +0 -0
  212. {urwid-3.0.5 → urwid-4.0.0}/examples/fib.py +0 -0
  213. {urwid-3.0.5 → urwid-4.0.0}/examples/graph.py +0 -0
  214. {urwid-3.0.5 → urwid-4.0.0}/examples/input_test.py +0 -0
  215. {urwid-3.0.5 → urwid-4.0.0}/examples/lcd_cf635.py +0 -0
  216. {urwid-3.0.5 → urwid-4.0.0}/examples/palette_test.py +0 -0
  217. {urwid-3.0.5 → urwid-4.0.0}/examples/pop_up.py +0 -0
  218. {urwid-3.0.5 → urwid-4.0.0}/examples/subproc.py +0 -0
  219. {urwid-3.0.5 → urwid-4.0.0}/examples/subproc2.py +0 -0
  220. {urwid-3.0.5 → urwid-4.0.0}/examples/terminal.py +0 -0
  221. {urwid-3.0.5 → urwid-4.0.0}/examples/tour.py +0 -0
  222. {urwid-3.0.5 → urwid-4.0.0}/examples/treesample.py +0 -0
  223. {urwid-3.0.5 → urwid-4.0.0}/examples/twisted_serve_ssh.py +0 -0
  224. {urwid-3.0.5 → urwid-4.0.0}/examples/twisted_serve_ssh.tac +0 -0
  225. {urwid-3.0.5 → urwid-4.0.0}/pylint-requirements.txt +0 -0
  226. {urwid-3.0.5 → urwid-4.0.0}/requirements.txt +0 -0
  227. {urwid-3.0.5 → urwid-4.0.0}/setup.cfg +0 -0
  228. {urwid-3.0.5 → urwid-4.0.0}/test_requirements.txt +0 -0
  229. {urwid-3.0.5 → urwid-4.0.0}/tests/__init__.py +0 -0
  230. {urwid-3.0.5 → urwid-4.0.0}/tests/test_canvas.py +0 -0
  231. {urwid-3.0.5 → urwid-4.0.0}/tests/test_columns.py +0 -0
  232. {urwid-3.0.5 → urwid-4.0.0}/tests/test_container.py +0 -0
  233. {urwid-3.0.5 → urwid-4.0.0}/tests/test_doctests.py +0 -0
  234. {urwid-3.0.5 → urwid-4.0.0}/tests/test_escapes.py +0 -0
  235. {urwid-3.0.5 → urwid-4.0.0}/tests/test_filler.py +0 -0
  236. {urwid-3.0.5 → urwid-4.0.0}/tests/test_floatedit.py +0 -0
  237. {urwid-3.0.5 → urwid-4.0.0}/tests/test_font.py +0 -0
  238. {urwid-3.0.5 → urwid-4.0.0}/tests/test_frame.py +0 -0
  239. {urwid-3.0.5 → urwid-4.0.0}/tests/test_grapheme_clusters.py +0 -0
  240. {urwid-3.0.5 → urwid-4.0.0}/tests/test_graphics.py +0 -0
  241. {urwid-3.0.5 → urwid-4.0.0}/tests/test_grid_flow.py +0 -0
  242. {urwid-3.0.5 → urwid-4.0.0}/tests/test_line_box.py +0 -0
  243. {urwid-3.0.5 → urwid-4.0.0}/tests/test_listbox.py +0 -0
  244. {urwid-3.0.5 → urwid-4.0.0}/tests/test_main_loop.py +0 -0
  245. {urwid-3.0.5 → urwid-4.0.0}/tests/test_overlay.py +0 -0
  246. {urwid-3.0.5 → urwid-4.0.0}/tests/test_padding.py +0 -0
  247. {urwid-3.0.5 → urwid-4.0.0}/tests/test_pile.py +0 -0
  248. {urwid-3.0.5 → urwid-4.0.0}/tests/test_raw_display.py +0 -0
  249. {urwid-3.0.5 → urwid-4.0.0}/tests/test_scrollable.py +0 -0
  250. {urwid-3.0.5 → urwid-4.0.0}/tests/test_signals.py +0 -0
  251. {urwid-3.0.5 → urwid-4.0.0}/tests/test_str_util.py +0 -0
  252. {urwid-3.0.5 → urwid-4.0.0}/tests/test_text_layout.py +0 -0
  253. {urwid-3.0.5 → urwid-4.0.0}/tests/test_tree.py +0 -0
  254. {urwid-3.0.5 → urwid-4.0.0}/tests/test_util.py +0 -0
  255. {urwid-3.0.5 → urwid-4.0.0}/tests/test_vterm.py +0 -0
  256. {urwid-3.0.5 → urwid-4.0.0}/tests/test_widget.py +0 -0
  257. {urwid-3.0.5 → urwid-4.0.0}/tests/util.py +0 -0
  258. {urwid-3.0.5 → urwid-4.0.0}/tox.ini +0 -0
  259. {urwid-3.0.5 → urwid-4.0.0}/urwid/canvas.py +0 -0
  260. {urwid-3.0.5 → urwid-4.0.0}/urwid/command_map.py +0 -0
  261. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/__init__.py +0 -0
  262. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_raw_display_base.py +0 -0
  263. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_web.css +0 -0
  264. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_web.js +0 -0
  265. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_win32.py +0 -0
  266. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/_win32_raw_display.py +0 -0
  267. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/curses.py +0 -0
  268. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/escape.py +0 -0
  269. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/html_fragment.py +0 -0
  270. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/lcd.py +0 -0
  271. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/raw.py +0 -0
  272. {urwid-3.0.5 → urwid-4.0.0}/urwid/display/web.py +0 -0
  273. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/__init__.py +0 -0
  274. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/abstract_loop.py +0 -0
  275. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/asyncio_loop.py +0 -0
  276. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/glib_loop.py +0 -0
  277. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/select_loop.py +0 -0
  278. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/tornado_loop.py +0 -0
  279. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/trio_loop.py +0 -0
  280. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/twisted_loop.py +0 -0
  281. {urwid-3.0.5 → urwid-4.0.0}/urwid/event_loop/zmq_loop.py +0 -0
  282. {urwid-3.0.5 → urwid-4.0.0}/urwid/graphics.py +0 -0
  283. {urwid-3.0.5 → urwid-4.0.0}/urwid/numedit.py +0 -0
  284. {urwid-3.0.5 → urwid-4.0.0}/urwid/signals.py +0 -0
  285. {urwid-3.0.5 → urwid-4.0.0}/urwid/split_repr.py +0 -0
  286. {urwid-3.0.5 → urwid-4.0.0}/urwid/str_util.py +0 -0
  287. {urwid-3.0.5 → urwid-4.0.0}/urwid/text_layout.py +0 -0
  288. {urwid-3.0.5 → urwid-4.0.0}/urwid/util.py +0 -0
  289. {urwid-3.0.5 → urwid-4.0.0}/urwid/vterm.py +0 -0
  290. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/__init__.py +0 -0
  291. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/attr_map.py +0 -0
  292. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/bar_graph.py +0 -0
  293. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/big_text.py +0 -0
  294. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/box_adapter.py +0 -0
  295. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/constants.py +0 -0
  296. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/container.py +0 -0
  297. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/divider.py +0 -0
  298. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/edit.py +0 -0
  299. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/frame.py +0 -0
  300. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/grid_flow.py +0 -0
  301. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/line_box.py +0 -0
  302. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/overlay.py +0 -0
  303. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/padding.py +0 -0
  304. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/popup.py +0 -0
  305. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/progress_bar.py +0 -0
  306. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/scrollable.py +0 -0
  307. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/solid_fill.py +0 -0
  308. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/text.py +0 -0
  309. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/treetools.py +0 -0
  310. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/widget.py +0 -0
  311. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/widget_decoration.py +0 -0
  312. {urwid-3.0.5 → urwid-4.0.0}/urwid/widget/wimp.py +0 -0
  313. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/dependency_links.txt +0 -0
  314. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/not-zip-safe +0 -0
  315. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/requires.txt +0 -0
  316. {urwid-3.0.5 → urwid-4.0.0}/urwid.egg-info/top_level.txt +0 -0
@@ -44,7 +44,7 @@ jobs:
44
44
  run: pip install -e .
45
45
  - name: Build documentation
46
46
  run: sphinx-build docs build/documentation
47
- - uses: actions/upload-artifact@v6
47
+ - uses: actions/upload-artifact@v7
48
48
  with:
49
49
  path: build/documentation
50
50
  name: documentation
@@ -172,13 +172,13 @@ jobs:
172
172
  - name: Build dist
173
173
  run: python -m build
174
174
 
175
- - uses: actions/upload-artifact@v6
175
+ - uses: actions/upload-artifact@v7
176
176
  with:
177
177
  path: dist/*.tar.gz
178
178
  name: built-sdist
179
179
  retention-days: 3
180
180
 
181
- - uses: actions/upload-artifact@v6
181
+ - uses: actions/upload-artifact@v7
182
182
  with:
183
183
  path: dist/*.whl
184
184
  name: built-bdist
@@ -199,7 +199,7 @@ jobs:
199
199
  run: |
200
200
  python -m pip install --upgrade pip
201
201
  pip install --upgrade twine
202
- - uses: actions/download-artifact@v7
202
+ - uses: actions/download-artifact@v8
203
203
  with:
204
204
  # unpacks default artifact into dist/
205
205
  # if `name: wheels` is omitted, the action will create extra parent dir
@@ -224,7 +224,7 @@ jobs:
224
224
  permissions:
225
225
  id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
226
226
  steps:
227
- - uses: actions/download-artifact@v7
227
+ - uses: actions/download-artifact@v8
228
228
  with:
229
229
  pattern: built-*
230
230
  merge-multiple: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: urwid
3
- Version: 3.0.5
3
+ Version: 4.0.0
4
4
  Summary: A full-featured console (xterm et al.) user interface library
5
5
  Author-email: Ian Ward <ian@excess.org>
6
6
  License-Expression: LGPL-2.1-only
@@ -30,14 +30,9 @@ platforms=["unix-like"]
30
30
  zip-safe = false
31
31
 
32
32
  [tool.setuptools.packages.find]
33
- exclude = [
34
- "doc",
35
- "docs",
36
- "examples",
37
- "test",
38
- "tests",
39
- "bin",
40
- ".*"
33
+ include = [
34
+ "urwid",
35
+ "urwid.*",
41
36
  ]
42
37
  namespaces = false
43
38
 
@@ -0,0 +1 @@
1
+ ruff==0.15.8
@@ -247,6 +247,7 @@ class AsyncioEventLoopTest(unittest.TestCase, EventLoopTestMixin):
247
247
  self.assertRaises(ZeroDivisionError, evl.run)
248
248
 
249
249
 
250
+ @unittest.skip("Unstable test: race conditions happens")
250
251
  @unittest.skipUnless(GLIB_AVAILABLE, "GLIB unavailable")
251
252
  class GLibEventLoopTest(unittest.TestCase, EventLoopTestMixin):
252
253
  def setUp(self):
@@ -255,15 +255,7 @@ VERSION = __version_tuple__
255
255
  __locals: dict[str, typing.Any] = locals() # use mutable access for pure lazy loading
256
256
 
257
257
  # Backward compatible lazy load with deprecation warnings
258
- _moved_warn: dict[str, str] = {
259
- "lcd_display": "urwid.display.lcd",
260
- "html_fragment": "urwid.display.html_fragment",
261
- "web_display": "urwid.display.web",
262
- "monitored_list": "urwid.widget.monitored_list",
263
- "listbox": "urwid.widget.listbox",
264
- "treetools": "urwid.widget.treetools",
265
- }
266
- # Backward compatible lazy load without any warnings
258
+ _moved_warn: dict[str, str] = {}
267
259
  # Before DeprecationWarning need to start PendingDeprecationWarning process.
268
260
 
269
261
 
@@ -315,7 +315,10 @@ class Screen(_raw_display_base.Screen):
315
315
  selector.register(fd, selectors.EVENT_READ)
316
316
  input_ready = selector.select(0)
317
317
  while input_ready:
318
- chars.extend(os.read(fd, 1024))
318
+ chunk = os.read(fd, 1024)
319
+ if len(chunk) == 0:
320
+ raise RuntimeError("stdin has been closed")
321
+ chars.extend(chunk)
319
322
  input_ready = selector.select(0)
320
323
 
321
324
  return chars
@@ -1018,7 +1018,8 @@ class BaseScreen(abc.ABC, metaclass=signals.MetaSignals):
1018
1018
  Deprecated in favor of calling `start` as a context manager.
1019
1019
  """
1020
1020
  warnings.warn(
1021
- "run_wrapper is deprecated in favor of calling `start` as a context manager.",
1021
+ "run_wrapper is deprecated in favor of calling `start` as a context manager."
1022
+ "API will be removed in version 5.0.",
1022
1023
  DeprecationWarning,
1023
1024
  stacklevel=3,
1024
1025
  )
@@ -28,7 +28,6 @@ import os
28
28
  import sys
29
29
  import time
30
30
  import typing
31
- import warnings
32
31
  from contextlib import suppress
33
32
 
34
33
  from urwid import display, signals
@@ -169,16 +168,6 @@ class MainLoop:
169
168
  else:
170
169
  self._topmost_widget = self._widget
171
170
 
172
- def _set_widget(self, widget: Widget) -> None:
173
- warnings.warn(
174
- f"method `{self.__class__.__name__}._set_widget` is deprecated, "
175
- f"please use `{self.__class__.__name__}.widget` property."
176
- "API will be removed in version 4.0.",
177
- DeprecationWarning,
178
- stacklevel=2,
179
- )
180
- self.widget = widget
181
-
182
171
  @property
183
172
  def pop_ups(self) -> bool:
184
173
  return self._pop_ups
@@ -191,16 +180,6 @@ class MainLoop:
191
180
  else:
192
181
  self._topmost_widget = self._widget
193
182
 
194
- def _set_pop_ups(self, pop_ups: bool) -> None:
195
- warnings.warn(
196
- f"method `{self.__class__.__name__}._set_pop_ups` is deprecated, "
197
- f"please use `{self.__class__.__name__}.pop_ups` property."
198
- "API will be removed in version 4.0.",
199
- DeprecationWarning,
200
- stacklevel=2,
201
- )
202
- self.pop_ups = pop_ups
203
-
204
183
  def set_alarm_in(self, sec: float, callback: Callable[[Self, _T], typing.Any], user_data: _T = None):
205
184
  """
206
185
  Schedule an alarm in *sec* seconds that will call *callback* from the
@@ -33,8 +33,6 @@ from urwid.util import apply_target_encoding
33
33
  if typing.TYPE_CHECKING:
34
34
  from collections.abc import Iterator, Sequence
35
35
 
36
- from typing_extensions import Literal
37
-
38
36
 
39
37
  def separate_glyphs(gdata: str, height: int) -> tuple[dict[str, tuple[int, list[str]]], bool]:
40
38
  """return (dictionary of glyphs, utf8 required)"""
@@ -100,7 +98,8 @@ def add_font(name: str, cls: FontRegistry) -> None:
100
98
  warnings.warn(
101
99
  "`add_font` is deprecated, please set 'name' attribute to the font class,"
102
100
  " use metaclass keyword argument 'font_name'"
103
- " or use `Font.register(<name>)`",
101
+ " or use `Font.register(<name>)`"
102
+ "API will be removed in version 5.0.",
104
103
  DeprecationWarning,
105
104
  stacklevel=2,
106
105
  )
@@ -221,22 +220,6 @@ class Font(metaclass=FontRegistry):
221
220
  """Font description."""
222
221
  return f"{self.__class__.__name__}():\n {self.height!r}\n {pformat(self.data, indent=4)}"
223
222
 
224
- @staticmethod
225
- def _to_text(
226
- obj: str,
227
- encoding: str = "utf-8",
228
- errors: Literal["strict", "ignore", "replace"] = "strict",
229
- ) -> str:
230
- warnings.warn(
231
- "_to_text is deprecated: only text fonts are supported. API will be removed in version 4.0.",
232
- DeprecationWarning,
233
- stacklevel=3,
234
- )
235
- if isinstance(obj, str):
236
- return obj
237
-
238
- raise TypeError(f"{obj!r} is not str")
239
-
240
223
  def add_glyphs(self, gdata: str) -> None:
241
224
  d, utf8_required = separate_glyphs(gdata, self.height)
242
225
  self.char.update(d)
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '4.0.0'
22
+ __version_tuple__ = version_tuple = (4, 0, 0)
23
+
24
+ __commit_id__ = commit_id = 'gc66b59ad5'
@@ -71,22 +71,6 @@ class AttrWrap(AttrMap):
71
71
  )
72
72
  self.original_widget = new_widget
73
73
 
74
- def get_w(self):
75
- warnings.warn(
76
- "backwards compatibility, widget used to be stored as original_widget. API will be removed in version 4.0.",
77
- DeprecationWarning,
78
- stacklevel=2,
79
- )
80
- return self.original_widget
81
-
82
- def set_w(self, new_widget: Widget) -> None:
83
- warnings.warn(
84
- "backwards compatibility, widget used to be stored as original_widget. API will be removed in version 4.0.",
85
- DeprecationWarning,
86
- stacklevel=2,
87
- )
88
- self.original_widget = new_widget
89
-
90
74
  def get_attr(self) -> Hashable:
91
75
  return self.attr_map[None]
92
76
 
@@ -483,26 +483,6 @@ class Columns(Widget, WidgetContainerMixin, WidgetContainerListContentsMixin):
483
483
  box_columns = set(box_columns)
484
484
  self.contents = [(w, (t, n, i in box_columns)) for (i, (w, (t, n, b))) in enumerate(self.contents)]
485
485
 
486
- @property
487
- def has_flow_type(self) -> bool:
488
- """
489
- .. deprecated:: 1.0 Read values from :attr:`contents` instead.
490
- """
491
- warnings.warn(
492
- ".has_flow_type is deprecated, read values from .contents instead. API will be removed in version 4.0.",
493
- DeprecationWarning,
494
- stacklevel=2,
495
- )
496
- return WHSettings.PACK in self.column_types
497
-
498
- @has_flow_type.setter
499
- def has_flow_type(self, value):
500
- warnings.warn(
501
- ".has_flow_type is deprecated, read values from .contents instead. API will be removed in version 4.0.",
502
- DeprecationWarning,
503
- stacklevel=2,
504
- )
505
-
506
486
  @property
507
487
  def contents(
508
488
  self,
@@ -177,23 +177,6 @@ class Filler(WidgetDecoration[WrappedWidget]):
177
177
  )
178
178
  self.original_widget = new_body
179
179
 
180
- def get_body(self) -> WrappedWidget:
181
- """backwards compatibility, widget used to be stored as body"""
182
- warnings.warn(
183
- "backwards compatibility, widget used to be stored as body. API will be removed in version 4.0.",
184
- DeprecationWarning,
185
- stacklevel=2,
186
- )
187
- return self.original_widget
188
-
189
- def set_body(self, new_body: WrappedWidget) -> None:
190
- warnings.warn(
191
- "backwards compatibility, widget used to be stored as body. API will be removed in version 4.0.",
192
- DeprecationWarning,
193
- stacklevel=2,
194
- )
195
- self.original_widget = new_body
196
-
197
180
  def selectable(self) -> bool:
198
181
  """Return selectable from body."""
199
182
  return self._original_widget.selectable()
@@ -896,7 +896,7 @@ class ListBox(Widget, WidgetContainerMixin):
896
896
 
897
897
  def __call__(inner_self) -> Self:
898
898
  warnings.warn(
899
- "ListBox.contents is a property, not a method",
899
+ "ListBox.contents is a property, not a method. Call API will be removed in version 5.0.",
900
900
  DeprecationWarning,
901
901
  stacklevel=3,
902
902
  )
@@ -21,7 +21,6 @@ from __future__ import annotations
21
21
 
22
22
  import functools
23
23
  import typing
24
- import warnings
25
24
 
26
25
  if typing.TYPE_CHECKING:
27
26
  from collections.abc import Callable, Collection, Iterable, Iterator
@@ -244,26 +243,6 @@ class MonitoredFocusList(MonitoredList[_T], typing.Generic[_T]):
244
243
  self._focus_changed(index)
245
244
  self._focus = index
246
245
 
247
- def _get_focus(self) -> int | None:
248
- warnings.warn(
249
- f"method `{self.__class__.__name__}._get_focus` is deprecated, "
250
- f"please use `{self.__class__.__name__}.focus` property."
251
- "API will be removed in version 4.0.",
252
- DeprecationWarning,
253
- stacklevel=3,
254
- )
255
- return self.focus
256
-
257
- def _set_focus(self, index: int) -> None:
258
- warnings.warn(
259
- f"method `{self.__class__.__name__}._set_focus` is deprecated, "
260
- f"please use `{self.__class__.__name__}.focus` property."
261
- "API will be removed in version 4.0.",
262
- DeprecationWarning,
263
- stacklevel=3,
264
- )
265
- self.focus = index
266
-
267
246
  def _focus_changed(self, new_focus: int) -> None: # pylint: disable=method-hidden # monkeypatch used
268
247
  pass
269
248
 
@@ -504,30 +504,6 @@ class Pile(Widget, WidgetContainerMixin, WidgetContainerListContentsMixin):
504
504
  return
505
505
  raise ValueError(f"Widget not found in Pile contents: {item!r}")
506
506
 
507
- @property
508
- def focus_item(self):
509
- warnings.warn(
510
- "only for backwards compatibility."
511
- "You should use the new standard container properties "
512
- "`focus` and `focus_position` to get the child widget in focus or modify the focus position."
513
- "API will be removed in version 4.0.",
514
- DeprecationWarning,
515
- stacklevel=2,
516
- )
517
- return self.focus
518
-
519
- @focus_item.setter
520
- def focus_item(self, new_item):
521
- warnings.warn(
522
- "only for backwards compatibility."
523
- "You should use the new standard container properties "
524
- "`focus` and `focus_position` to get the child widget in focus or modify the focus position."
525
- "API will be removed in version 4.0.",
526
- DeprecationWarning,
527
- stacklevel=2,
528
- )
529
- self.focus = new_item
530
-
531
507
  @property
532
508
  def focus_position(self) -> int:
533
509
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: urwid
3
- Version: 3.0.5
3
+ Version: 4.0.0
4
4
  Summary: A full-featured console (xterm et al.) user interface library
5
5
  Author-email: Ian Ward <ian@excess.org>
6
6
  License-Expression: LGPL-2.1-only
@@ -221,7 +221,6 @@ tests/test_grid_flow.py
221
221
  tests/test_line_box.py
222
222
  tests/test_listbox.py
223
223
  tests/test_main_loop.py
224
- tests/test_moved_imports.py
225
224
  tests/test_overlay.py
226
225
  tests/test_padding.py
227
226
  tests/test_pile.py
@@ -238,8 +237,6 @@ tests/util.py
238
237
  urwid/__init__.py
239
238
  urwid/canvas.py
240
239
  urwid/command_map.py
241
- urwid/container.py
242
- urwid/decoration.py
243
240
  urwid/font.py
244
241
  urwid/graphics.py
245
242
  urwid/numedit.py
@@ -250,7 +247,6 @@ urwid/text_layout.py
250
247
  urwid/util.py
251
248
  urwid/version.py
252
249
  urwid/vterm.py
253
- urwid/wimp.py
254
250
  urwid.egg-info/PKG-INFO
255
251
  urwid.egg-info/SOURCES.txt
256
252
  urwid.egg-info/dependency_links.txt
@@ -1 +0,0 @@
1
- ruff==0.14.14
@@ -1,19 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import unittest
4
-
5
-
6
- class TestMovedImports(unittest.TestCase):
7
- def test_moved_imports_direct(self) -> None:
8
- with self.assertWarns(DeprecationWarning):
9
- from urwid import web_display
10
-
11
- from urwid.display import web
12
-
13
- self.assertIs(web, web_display)
14
-
15
- def test_moved_imports_nested(self) -> None:
16
- from urwid.display import html_fragment
17
- from urwid.html_fragment import HtmlGenerator
18
-
19
- self.assertIs(html_fragment.HtmlGenerator, HtmlGenerator)
@@ -1,59 +0,0 @@
1
- # Urwid container widget classes
2
- # Copyright (C) 2004-2012 Ian Ward
3
- #
4
- # This library is free software; you can redistribute it and/or
5
- # modify it under the terms of the GNU Lesser General Public
6
- # License as published by the Free Software Foundation; either
7
- # version 2.1 of the License, or (at your option) any later version.
8
- #
9
- # This library is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- # Lesser General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU Lesser General Public
15
- # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
- #
18
- # Urwid web site: https://urwid.org/
19
-
20
-
21
- from __future__ import annotations
22
-
23
- import warnings
24
-
25
- from urwid.widget import (
26
- Columns,
27
- ColumnsError,
28
- Frame,
29
- FrameError,
30
- GridFlow,
31
- GridFlowError,
32
- Overlay,
33
- OverlayError,
34
- Pile,
35
- PileError,
36
- WidgetContainerMixin,
37
- )
38
-
39
- __all__ = (
40
- "Columns",
41
- "ColumnsError",
42
- "Frame",
43
- "FrameError",
44
- "GridFlow",
45
- "GridFlowError",
46
- "Overlay",
47
- "OverlayError",
48
- "Pile",
49
- "PileError",
50
- "WidgetContainerMixin",
51
- )
52
-
53
- warnings.warn(
54
- f"{__name__!r} is not expected to be imported directly. "
55
- 'Please use public access from "urwid" package. '
56
- f"Module {__name__!r} is deprecated and will be removed in the version 4.0.",
57
- DeprecationWarning,
58
- stacklevel=3,
59
- )
@@ -1,65 +0,0 @@
1
- # Urwid widget decoration classes
2
- # Copyright (C) 2004-2012 Ian Ward
3
- #
4
- # This library is free software; you can redistribute it and/or
5
- # modify it under the terms of the GNU Lesser General Public
6
- # License as published by the Free Software Foundation; either
7
- # version 2.1 of the License, or (at your option) any later version.
8
- #
9
- # This library is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- # Lesser General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU Lesser General Public
15
- # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
- #
18
- # Urwid web site: https://urwid.org/
19
-
20
-
21
- from __future__ import annotations
22
-
23
- import warnings
24
-
25
- from urwid.widget import (
26
- AttrMap,
27
- AttrMapError,
28
- AttrWrap,
29
- BoxAdapter,
30
- BoxAdapterError,
31
- Filler,
32
- FillerError,
33
- Padding,
34
- PaddingError,
35
- WidgetDecoration,
36
- WidgetDisable,
37
- WidgetPlaceholder,
38
- calculate_top_bottom_filler,
39
- normalize_valign,
40
- )
41
-
42
- __all__ = (
43
- "AttrMap",
44
- "AttrMapError",
45
- "AttrWrap",
46
- "BoxAdapter",
47
- "BoxAdapterError",
48
- "Filler",
49
- "FillerError",
50
- "Padding",
51
- "PaddingError",
52
- "WidgetDecoration",
53
- "WidgetDisable",
54
- "WidgetPlaceholder",
55
- "calculate_top_bottom_filler",
56
- "normalize_valign",
57
- )
58
-
59
- warnings.warn(
60
- f"{__name__!r} is not expected to be imported directly. "
61
- 'Please use public access from "urwid" package. '
62
- f"Module {__name__!r} is deprecated and will be removed in the version 4.0.",
63
- DeprecationWarning,
64
- stacklevel=3,
65
- )
@@ -1,34 +0,0 @@
1
- # file generated by setuptools-scm
2
- # don't change, don't track in version control
3
-
4
- __all__ = [
5
- "__version__",
6
- "__version_tuple__",
7
- "version",
8
- "version_tuple",
9
- "__commit_id__",
10
- "commit_id",
11
- ]
12
-
13
- TYPE_CHECKING = False
14
- if TYPE_CHECKING:
15
- from typing import Tuple
16
- from typing import Union
17
-
18
- VERSION_TUPLE = Tuple[Union[int, str], ...]
19
- COMMIT_ID = Union[str, None]
20
- else:
21
- VERSION_TUPLE = object
22
- COMMIT_ID = object
23
-
24
- version: str
25
- __version__: str
26
- __version_tuple__: VERSION_TUPLE
27
- version_tuple: VERSION_TUPLE
28
- commit_id: COMMIT_ID
29
- __commit_id__: COMMIT_ID
30
-
31
- __version__ = version = '3.0.5'
32
- __version_tuple__ = version_tuple = (3, 0, 5)
33
-
34
- __commit_id__ = commit_id = 'gdc1616c59'
urwid-3.0.5/urwid/wimp.py DELETED
@@ -1,23 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import warnings
4
-
5
- from urwid.widget import Button, CheckBox, CheckBoxError, PopUpLauncher, PopUpTarget, RadioButton, SelectableIcon
6
-
7
- __all__ = (
8
- "Button",
9
- "CheckBox",
10
- "CheckBoxError",
11
- "PopUpLauncher",
12
- "PopUpTarget",
13
- "RadioButton",
14
- "SelectableIcon",
15
- )
16
-
17
- warnings.warn(
18
- f"{__name__!r} is not expected to be imported directly. "
19
- 'Please use public access from "urwid" package. '
20
- f"Module {__name__!r} is deprecated and will be removed in the version 4.0.",
21
- DeprecationWarning,
22
- stacklevel=3,
23
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes