cmd2 2.5.3__tar.gz → 2.5.4__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 (249) hide show
  1. {cmd2-2.5.3 → cmd2-2.5.4}/CHANGELOG.md +7 -3
  2. {cmd2-2.5.3 → cmd2-2.5.4}/PKG-INFO +1 -1
  3. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/cmd2.py +4 -1
  4. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/constants.py +3 -0
  5. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/utils.py +2 -1
  6. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.egg-info/PKG-INFO +1 -1
  7. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_utils.py +4 -1
  8. {cmd2-2.5.3 → cmd2-2.5.4}/.readthedocs.yaml +0 -0
  9. {cmd2-2.5.3 → cmd2-2.5.4}/LICENSE +0 -0
  10. {cmd2-2.5.3 → cmd2-2.5.4}/MANIFEST.in +0 -0
  11. {cmd2-2.5.3 → cmd2-2.5.4}/Pipfile +0 -0
  12. {cmd2-2.5.3 → cmd2-2.5.4}/README.md +0 -0
  13. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/__init__.py +0 -0
  14. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/ansi.py +0 -0
  15. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/argparse_completer.py +0 -0
  16. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/argparse_custom.py +0 -0
  17. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/clipboard.py +0 -0
  18. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/command_definition.py +0 -0
  19. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/decorators.py +0 -0
  20. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/exceptions.py +0 -0
  21. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/history.py +0 -0
  22. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/parsing.py +0 -0
  23. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/plugin.py +0 -0
  24. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/py.typed +0 -0
  25. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/py_bridge.py +0 -0
  26. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/rl_utils.py +0 -0
  27. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/table_creator.py +0 -0
  28. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2/transcript.py +0 -0
  29. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.egg-info/SOURCES.txt +0 -0
  30. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.egg-info/dependency_links.txt +0 -0
  31. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.egg-info/requires.txt +0 -0
  32. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.egg-info/top_level.txt +0 -0
  33. {cmd2-2.5.3 → cmd2-2.5.4}/cmd2.png +0 -0
  34. {cmd2-2.5.3 → cmd2-2.5.4}/docs/Makefile +0 -0
  35. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/ansi.rst +0 -0
  36. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/argparse_completer.rst +0 -0
  37. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/argparse_custom.rst +0 -0
  38. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/cmd.rst +0 -0
  39. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/command_definition.rst +0 -0
  40. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/constants.rst +0 -0
  41. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/decorators.rst +0 -0
  42. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/exceptions.rst +0 -0
  43. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/history.rst +0 -0
  44. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/index.rst +0 -0
  45. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/parsing.rst +0 -0
  46. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/plugin.rst +0 -0
  47. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/plugin_external_test.rst +0 -0
  48. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/py_bridge.rst +0 -0
  49. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/table_creator.rst +0 -0
  50. {cmd2-2.5.3 → cmd2-2.5.4}/docs/api/utils.rst +0 -0
  51. {cmd2-2.5.3 → cmd2-2.5.4}/docs/conf.py +0 -0
  52. {cmd2-2.5.3 → cmd2-2.5.4}/docs/doc_conventions.rst +0 -0
  53. {cmd2-2.5.3 → cmd2-2.5.4}/docs/examples/alternate_event_loops.rst +0 -0
  54. {cmd2-2.5.3 → cmd2-2.5.4}/docs/examples/first_app.rst +0 -0
  55. {cmd2-2.5.3 → cmd2-2.5.4}/docs/examples/index.rst +0 -0
  56. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/argument_processing.rst +0 -0
  57. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/builtin_commands.rst +0 -0
  58. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/clipboard.rst +0 -0
  59. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/commands.rst +0 -0
  60. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/completion.rst +0 -0
  61. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/disable_commands.rst +0 -0
  62. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/embedded_python_shells.rst +0 -0
  63. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/generating_output.rst +0 -0
  64. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/help.rst +0 -0
  65. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/history.rst +0 -0
  66. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/hooks.rst +0 -0
  67. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/index.rst +0 -0
  68. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/initialization.rst +0 -0
  69. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/misc.rst +0 -0
  70. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/modular_commands.rst +0 -0
  71. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/multiline_commands.rst +0 -0
  72. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/os.rst +0 -0
  73. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/packaging.rst +0 -0
  74. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/plugins.rst +0 -0
  75. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/prompt.rst +0 -0
  76. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/redirection.rst +0 -0
  77. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/scripting.rst +0 -0
  78. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/settings.rst +0 -0
  79. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/shortcuts_aliases_macros.rst +0 -0
  80. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/startup_commands.rst +0 -0
  81. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/table_creation.rst +0 -0
  82. {cmd2-2.5.3 → cmd2-2.5.4}/docs/features/transcripts.rst +0 -0
  83. {cmd2-2.5.3 → cmd2-2.5.4}/docs/index.rst +0 -0
  84. {cmd2-2.5.3 → cmd2-2.5.4}/docs/make.bat +0 -0
  85. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/incompatibilities.rst +0 -0
  86. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/index.rst +0 -0
  87. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/minimum.rst +0 -0
  88. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/next_steps.rst +0 -0
  89. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/summary.rst +0 -0
  90. {cmd2-2.5.3 → cmd2-2.5.4}/docs/migrating/why.rst +0 -0
  91. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/alternatives.rst +0 -0
  92. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/index.rst +0 -0
  93. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/installation.rst +0 -0
  94. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/integrating.rst +0 -0
  95. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/resources.rst +0 -0
  96. {cmd2-2.5.3 → cmd2-2.5.4}/docs/overview/summary.rst +0 -0
  97. {cmd2-2.5.3 → cmd2-2.5.4}/docs/plugins/external_test.rst +0 -0
  98. {cmd2-2.5.3 → cmd2-2.5.4}/docs/plugins/index.rst +0 -0
  99. {cmd2-2.5.3 → cmd2-2.5.4}/docs/requirements.txt +0 -0
  100. {cmd2-2.5.3 → cmd2-2.5.4}/docs/testing.rst +0 -0
  101. {cmd2-2.5.3 → cmd2-2.5.4}/examples/.cmd2rc +0 -0
  102. {cmd2-2.5.3 → cmd2-2.5.4}/examples/alias_startup.py +0 -0
  103. {cmd2-2.5.3 → cmd2-2.5.4}/examples/arg_decorators.py +0 -0
  104. {cmd2-2.5.3 → cmd2-2.5.4}/examples/arg_print.py +0 -0
  105. {cmd2-2.5.3 → cmd2-2.5.4}/examples/argparse_completion.py +0 -0
  106. {cmd2-2.5.3 → cmd2-2.5.4}/examples/async_printing.py +0 -0
  107. {cmd2-2.5.3 → cmd2-2.5.4}/examples/basic.py +0 -0
  108. {cmd2-2.5.3 → cmd2-2.5.4}/examples/basic_completion.py +0 -0
  109. {cmd2-2.5.3 → cmd2-2.5.4}/examples/cmd_as_argument.py +0 -0
  110. {cmd2-2.5.3 → cmd2-2.5.4}/examples/colors.py +0 -0
  111. {cmd2-2.5.3 → cmd2-2.5.4}/examples/custom_parser.py +0 -0
  112. {cmd2-2.5.3 → cmd2-2.5.4}/examples/decorator_example.py +0 -0
  113. {cmd2-2.5.3 → cmd2-2.5.4}/examples/default_categories.py +0 -0
  114. {cmd2-2.5.3 → cmd2-2.5.4}/examples/dynamic_commands.py +0 -0
  115. {cmd2-2.5.3 → cmd2-2.5.4}/examples/environment.py +0 -0
  116. {cmd2-2.5.3 → cmd2-2.5.4}/examples/event_loops.py +0 -0
  117. {cmd2-2.5.3 → cmd2-2.5.4}/examples/example.py +0 -0
  118. {cmd2-2.5.3 → cmd2-2.5.4}/examples/exit_code.py +0 -0
  119. {cmd2-2.5.3 → cmd2-2.5.4}/examples/first_app.py +0 -0
  120. {cmd2-2.5.3 → cmd2-2.5.4}/examples/hello_cmd2.py +0 -0
  121. {cmd2-2.5.3 → cmd2-2.5.4}/examples/help_categories.py +0 -0
  122. {cmd2-2.5.3 → cmd2-2.5.4}/examples/hooks.py +0 -0
  123. {cmd2-2.5.3 → cmd2-2.5.4}/examples/initialization.py +0 -0
  124. {cmd2-2.5.3 → cmd2-2.5.4}/examples/migrating.py +0 -0
  125. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands/__init__.py +0 -0
  126. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands/commandset_basic.py +0 -0
  127. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands/commandset_complex.py +0 -0
  128. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands/commandset_custominit.py +0 -0
  129. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands_basic.py +0 -0
  130. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands_dynamic.py +0 -0
  131. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_commands_main.py +0 -0
  132. {cmd2-2.5.3 → cmd2-2.5.4}/examples/modular_subcommands.py +0 -0
  133. {cmd2-2.5.3 → cmd2-2.5.4}/examples/override_parser.py +0 -0
  134. {cmd2-2.5.3 → cmd2-2.5.4}/examples/paged_output.py +0 -0
  135. {cmd2-2.5.3 → cmd2-2.5.4}/examples/persistent_history.py +0 -0
  136. {cmd2-2.5.3 → cmd2-2.5.4}/examples/pirate.py +0 -0
  137. {cmd2-2.5.3 → cmd2-2.5.4}/examples/python_scripting.py +0 -0
  138. {cmd2-2.5.3 → cmd2-2.5.4}/examples/read_input.py +0 -0
  139. {cmd2-2.5.3 → cmd2-2.5.4}/examples/remove_builtin_commands.py +0 -0
  140. {cmd2-2.5.3 → cmd2-2.5.4}/examples/remove_settable.py +0 -0
  141. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/arg_printer.py +0 -0
  142. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/conditional.py +0 -0
  143. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/nested.txt +0 -0
  144. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/quit.txt +0 -0
  145. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/save_help_text.py +0 -0
  146. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/script.py +0 -0
  147. {cmd2-2.5.3 → cmd2-2.5.4}/examples/scripts/script.txt +0 -0
  148. {cmd2-2.5.3 → cmd2-2.5.4}/examples/subcommands.py +0 -0
  149. {cmd2-2.5.3 → cmd2-2.5.4}/examples/table_creation.py +0 -0
  150. {cmd2-2.5.3 → cmd2-2.5.4}/examples/transcripts/exampleSession.txt +0 -0
  151. {cmd2-2.5.3 → cmd2-2.5.4}/examples/transcripts/pirate.transcript +0 -0
  152. {cmd2-2.5.3 → cmd2-2.5.4}/examples/transcripts/quit.txt +0 -0
  153. {cmd2-2.5.3 → cmd2-2.5.4}/examples/transcripts/transcript_regex.txt +0 -0
  154. {cmd2-2.5.3 → cmd2-2.5.4}/examples/unicode_commands.py +0 -0
  155. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/README.txt +0 -0
  156. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/CHANGELOG.md +0 -0
  157. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/README.md +0 -0
  158. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/build-pyenvs.sh +0 -0
  159. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/cmd2_ext_test/__init__.py +0 -0
  160. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/cmd2_ext_test/cmd2_ext_test.py +0 -0
  161. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/cmd2_ext_test/py.typed +0 -0
  162. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/cmd2_ext_test/pylintrc +0 -0
  163. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/examples/example.py +0 -0
  164. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/noxfile.py +0 -0
  165. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/pyproject.toml +0 -0
  166. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/setup.py +0 -0
  167. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/tasks.py +0 -0
  168. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/tests/__init__.py +0 -0
  169. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/tests/pylintrc +0 -0
  170. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/ext_test/tests/test_ext_test.py +0 -0
  171. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/tasks.py +0 -0
  172. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/CHANGELOG.md +0 -0
  173. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/LICENSE +0 -0
  174. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/README.md +0 -0
  175. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/build-pyenvs.sh +0 -0
  176. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/cmd2_myplugin/__init__.py +0 -0
  177. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/cmd2_myplugin/myplugin.py +0 -0
  178. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/cmd2_myplugin/pylintrc +0 -0
  179. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/examples/example.py +0 -0
  180. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/noxfile.py +0 -0
  181. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/setup.py +0 -0
  182. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/tasks.py +0 -0
  183. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/tests/__init__.py +0 -0
  184. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/tests/pylintrc +0 -0
  185. {cmd2-2.5.3 → cmd2-2.5.4}/plugins/template/tests/test_myplugin.py +0 -0
  186. {cmd2-2.5.3 → cmd2-2.5.4}/pyproject.toml +0 -0
  187. {cmd2-2.5.3 → cmd2-2.5.4}/readme_files/shout_out.csv +0 -0
  188. {cmd2-2.5.3 → cmd2-2.5.4}/readme_files/shoutout.txt +0 -0
  189. {cmd2-2.5.3 → cmd2-2.5.4}/setup.cfg +0 -0
  190. {cmd2-2.5.3 → cmd2-2.5.4}/tasks.py +0 -0
  191. {cmd2-2.5.3 → cmd2-2.5.4}/tests/.cmd2rc +0 -0
  192. {cmd2-2.5.3 → cmd2-2.5.4}/tests/__init__.py +0 -0
  193. {cmd2-2.5.3 → cmd2-2.5.4}/tests/conftest.py +0 -0
  194. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/echo.py +0 -0
  195. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/environment.py +0 -0
  196. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/help.py +0 -0
  197. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/py_locals.py +0 -0
  198. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/pyscript_dir.py +0 -0
  199. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/raises_exception.py +0 -0
  200. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/recursive.py +0 -0
  201. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/self_in_py.py +0 -0
  202. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/stdout_capture.py +0 -0
  203. {cmd2-2.5.3 → cmd2-2.5.4}/tests/pyscript/stop.py +0 -0
  204. {cmd2-2.5.3 → cmd2-2.5.4}/tests/relative_multiple.txt +0 -0
  205. {cmd2-2.5.3 → cmd2-2.5.4}/tests/script.py +0 -0
  206. {cmd2-2.5.3 → cmd2-2.5.4}/tests/script.txt +0 -0
  207. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/binary.bin +0 -0
  208. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/empty.txt +0 -0
  209. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/help.txt +0 -0
  210. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/nested.txt +0 -0
  211. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/one_down.txt +0 -0
  212. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/postcmds.txt +0 -0
  213. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/precmds.txt +0 -0
  214. {cmd2-2.5.3 → cmd2-2.5.4}/tests/scripts/utf8.txt +0 -0
  215. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_ansi.py +0 -0
  216. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_argparse.py +0 -0
  217. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_argparse_completer.py +0 -0
  218. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_argparse_custom.py +0 -0
  219. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_cmd2.py +0 -0
  220. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_completion.py +0 -0
  221. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_history.py +0 -0
  222. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_parsing.py +0 -0
  223. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_plugin.py +0 -0
  224. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_run_pyscript.py +0 -0
  225. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_table_creator.py +0 -0
  226. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_transcript.py +0 -0
  227. {cmd2-2.5.3 → cmd2-2.5.4}/tests/test_utils_defining_class.py +0 -0
  228. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/bol_eol.txt +0 -0
  229. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/characterclass.txt +0 -0
  230. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/dotstar.txt +0 -0
  231. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/extension_notation.txt +0 -0
  232. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/failure.txt +0 -0
  233. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/from_cmdloop.txt +0 -0
  234. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/multiline_no_regex.txt +0 -0
  235. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/multiline_regex.txt +0 -0
  236. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/no_output.txt +0 -0
  237. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/no_output_last.txt +0 -0
  238. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/regex_set.txt +0 -0
  239. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/singleslash.txt +0 -0
  240. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/slashes_escaped.txt +0 -0
  241. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/slashslash.txt +0 -0
  242. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/spaces.txt +0 -0
  243. {cmd2-2.5.3 → cmd2-2.5.4}/tests/transcripts/word_boundaries.txt +0 -0
  244. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/__init__.py +0 -0
  245. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/test_commandset/__init__.py +0 -0
  246. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/test_commandset/conftest.py +0 -0
  247. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/test_commandset/test_argparse_subcommands.py +0 -0
  248. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/test_commandset/test_categories.py +0 -0
  249. {cmd2-2.5.3 → cmd2-2.5.4}/tests_isolated/test_commandset/test_commandset.py +0 -0
@@ -1,14 +1,18 @@
1
- # 2.5.3 (November 5, 2024)
1
+ ## 2.5.4 (November 6, 2024)
2
+ * Bug Fixes
3
+ * Fixed `ZeroDivisionError` in `async_alert()` when `shutil.get_terminal_size().columns` is 0.
4
+
5
+ ## 2.5.3 (November 5, 2024)
2
6
  * Enhancements
3
7
  * Changed `CommandSet._cmd` to a read-only property which never returns `None` because it
4
8
  is meant to be called after the `CommandSet` is registered. This addresses type checker
5
9
  errors that occurred if `CommandSet._cmd` wasn't cast or checked if `None` before use.
6
10
 
7
- # 2.5.2 (November 3, 2024)
11
+ ## 2.5.2 (November 3, 2024)
8
12
  * Bug Fixes
9
13
  * Fixed default `pytest` execution when not using cmd2's custom `invoke` command via `inv pytest`
10
14
 
11
- # 2.5.1 (November 2, 2024)
15
+ ## 2.5.1 (November 2, 2024)
12
16
  * Bug Fixes
13
17
  * Fixed readline bug when using `ipy` command with `gnureadline` and Python 3.13
14
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmd2
3
- Version: 2.5.3
3
+ Version: 2.5.4
4
4
  Summary: cmd2 - quickly build feature-rich and user-friendly interactive command line applications in Python
5
5
  Author: cmd2 Contributors
6
6
  License: The MIT License (MIT)
@@ -5335,9 +5335,12 @@ class Cmd(cmd.Cmd):
5335
5335
  if update_terminal:
5336
5336
  import shutil
5337
5337
 
5338
+ # Prior to Python 3.11 this can return 0, so use a fallback if needed.
5339
+ terminal_columns = shutil.get_terminal_size().columns or constants.DEFAULT_TERMINAL_WIDTH
5340
+
5338
5341
  # Print a string which replaces the onscreen prompt and input lines with the alert.
5339
5342
  terminal_str = ansi.async_alert_str(
5340
- terminal_columns=shutil.get_terminal_size().columns,
5343
+ terminal_columns=terminal_columns,
5341
5344
  prompt=rl_get_display_prompt(),
5342
5345
  line=readline.get_line_buffer(),
5343
5346
  cursor_offset=rl_get_point(),
@@ -57,3 +57,6 @@ PARSER_ATTR_COMMANDSET = 'command_set'
57
57
 
58
58
  # custom attributes added to argparse Namespaces
59
59
  NS_ATTR_SUBCMD_HANDLER = '__subcmd_handler__'
60
+
61
+ # For cases prior to Python 3.11 when shutil.get_terminal_size().columns can return 0.
62
+ DEFAULT_TERMINAL_WIDTH = 80
@@ -874,7 +874,8 @@ def align_text(
874
874
  )
875
875
 
876
876
  if width is None:
877
- width = shutil.get_terminal_size().columns
877
+ # Prior to Python 3.11 this can return 0, so use a fallback if needed.
878
+ width = shutil.get_terminal_size().columns or constants.DEFAULT_TERMINAL_WIDTH
878
879
 
879
880
  if width < 1:
880
881
  raise ValueError("width must be at least 1")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmd2
3
- Version: 2.5.3
3
+ Version: 2.5.4
4
4
  Summary: cmd2 - quickly build feature-rich and user-friendly interactive command line applications in Python
5
5
  Author: cmd2 Contributors
6
6
  License: The MIT License (MIT)
@@ -17,6 +17,7 @@ import pytest
17
17
  import cmd2.utils as cu
18
18
  from cmd2 import (
19
19
  ansi,
20
+ constants,
20
21
  )
21
22
  from cmd2.constants import (
22
23
  HORIZONTAL_ELLIPSIS,
@@ -624,7 +625,9 @@ def test_align_text_term_width():
624
625
  text = 'foo'
625
626
  fill_char = ' '
626
627
 
627
- term_width = shutil.get_terminal_size().columns
628
+ # Prior to Python 3.11 this can return 0, so use a fallback, so
629
+ # use the same fallback that cu.align_text() does if needed.
630
+ term_width = shutil.get_terminal_size().columns or constants.DEFAULT_TERMINAL_WIDTH
628
631
  expected_fill = (term_width - ansi.style_aware_wcswidth(text)) * fill_char
629
632
 
630
633
  aligned = cu.align_text(text, cu.TextAlignment.LEFT, fill_char=fill_char)
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
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