multiSSH3 6.37__tar.gz → 6.38__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 (110) hide show
  1. {multissh3-6.37/multiSSH3.egg-info → multissh3-6.38}/PKG-INFO +2 -2
  2. {multissh3-6.37 → multissh3-6.38}/README.md +1 -1
  3. {multissh3-6.37 → multissh3-6.38}/mssh_complete.py +653 -157
  4. {multissh3-6.37 → multissh3-6.38/multiSSH3.egg-info}/PKG-INFO +2 -2
  5. {multissh3-6.37 → multissh3-6.38}/multiSSH3.py +38 -13
  6. {multissh3-6.37 → multissh3-6.38}/tests/bench_complete.py +4 -1
  7. {multissh3-6.37 → multissh3-6.38}/tests/complete_shell_harness.py +65 -8
  8. {multissh3-6.37 → multissh3-6.38}/tests/conftest.py +1 -1
  9. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_blesh.py +4 -3
  10. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_cli.py +225 -1
  11. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_diagnose.py +79 -5
  12. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_engine.py +30 -3
  13. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_index.py +49 -0
  14. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_keys.py +73 -7
  15. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_picker.py +108 -21
  16. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_shells.py +846 -8
  17. {multissh3-6.37 → multissh3-6.38}/LICENSE +0 -0
  18. {multissh3-6.37 → multissh3-6.38}/MANIFEST.in +0 -0
  19. {multissh3-6.37 → multissh3-6.38}/multiSSH3.egg-info/SOURCES.txt +0 -0
  20. {multissh3-6.37 → multissh3-6.38}/multiSSH3.egg-info/dependency_links.txt +0 -0
  21. {multissh3-6.37 → multissh3-6.38}/multiSSH3.egg-info/entry_points.txt +0 -0
  22. {multissh3-6.37 → multissh3-6.38}/multiSSH3.egg-info/top_level.txt +0 -0
  23. {multissh3-6.37 → multissh3-6.38}/pytest.ini +0 -0
  24. {multissh3-6.37 → multissh3-6.38}/setup.cfg +0 -0
  25. {multissh3-6.37 → multissh3-6.38}/setup.py +0 -0
  26. {multissh3-6.37 → multissh3-6.38}/tests/data/run_command_golden.json +0 -0
  27. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.bash5.1 +0 -0
  28. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.bash5.3 +0 -0
  29. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.centos7 +0 -0
  30. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.current +0 -0
  31. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.legacy +0 -0
  32. {multissh3-6.37 → multissh3-6.38}/tests/shells/Dockerfile.modern +0 -0
  33. {multissh3-6.37 → multissh3-6.38}/tests/shells/run_matrix.sh +0 -0
  34. {multissh3-6.37 → multissh3-6.38}/tests/test_cli_branches.py +0 -0
  35. {multissh3-6.37 → multissh3-6.38}/tests/test_cli_option_words.py +0 -0
  36. {multissh3-6.37 → multissh3-6.38}/tests/test_cli_processing.py +0 -0
  37. {multissh3-6.37 → multissh3-6.38}/tests/test_closed_output.py +0 -0
  38. {multissh3-6.37 → multissh3-6.38}/tests/test_color_helpers.py +0 -0
  39. {multissh3-6.37 → multissh3-6.38}/tests/test_command_terminal.py +0 -0
  40. {multissh3-6.37 → multissh3-6.38}/tests/test_compact_hostnames.py +0 -0
  41. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_context.py +0 -0
  42. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_editor.py +0 -0
  43. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_eval.py +0 -0
  44. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_hosts.py +0 -0
  45. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_hoststate.py +0 -0
  46. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_lex.py +0 -0
  47. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_mssh_helpers.py +0 -0
  48. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_password_spellings.py +0 -0
  49. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_probe.py +0 -0
  50. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_start.py +0 -0
  51. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_store.py +0 -0
  52. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_suggest.py +0 -0
  53. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_terminal.py +0 -0
  54. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_untrusted.py +0 -0
  55. {multissh3-6.37 → multissh3-6.38}/tests/test_complete_zsh_options.py +0 -0
  56. {multissh3-6.37 → multissh3-6.38}/tests/test_config_cli.py +0 -0
  57. {multissh3-6.37 → multissh3-6.38}/tests/test_config_validate.py +0 -0
  58. {multissh3-6.37 → multissh3-6.38}/tests/test_config_values.py +0 -0
  59. {multissh3-6.37 → multissh3-6.38}/tests/test_control_master_config.py +0 -0
  60. {multissh3-6.37 → multissh3-6.38}/tests/test_copy_id.py +0 -0
  61. {multissh3-6.37 → multissh3-6.38}/tests/test_curses_branches.py +0 -0
  62. {multissh3-6.37 → multissh3-6.38}/tests/test_curses_event_loop.py +0 -0
  63. {multissh3-6.37 → multissh3-6.38}/tests/test_curses_tui.py +0 -0
  64. {multissh3-6.37 → multissh3-6.38}/tests/test_curses_wide_chars.py +0 -0
  65. {multissh3-6.37 → multissh3-6.38}/tests/test_expand_hostnames.py +0 -0
  66. {multissh3-6.37 → multissh3-6.38}/tests/test_file_trust.py +0 -0
  67. {multissh3-6.37 → multissh3-6.38}/tests/test_harness_smoke.py +0 -0
  68. {multissh3-6.37 → multissh3-6.38}/tests/test_helpers_extra.py +0 -0
  69. {multissh3-6.37 → multissh3-6.38}/tests/test_history_replay.py +0 -0
  70. {multissh3-6.37 → multissh3-6.38}/tests/test_host.py +0 -0
  71. {multissh3-6.37 → multissh3-6.38}/tests/test_host_validity.py +0 -0
  72. {multissh3-6.37 → multissh3-6.38}/tests/test_hosts_file.py +0 -0
  73. {multissh3-6.37 → multissh3-6.38}/tests/test_identities_only.py +0 -0
  74. {multissh3-6.37 → multissh3-6.38}/tests/test_ipmi_lockout_wait.py +0 -0
  75. {multissh3-6.37 → multissh3-6.38}/tests/test_ipmi_logins.py +0 -0
  76. {multissh3-6.37 → multissh3-6.38}/tests/test_key_path_home.py +0 -0
  77. {multissh3-6.37 → multissh3-6.38}/tests/test_login_drop_retry.py +0 -0
  78. {multissh3-6.37 → multissh3-6.38}/tests/test_main_lifecycle.py +0 -0
  79. {multissh3-6.37 → multissh3-6.38}/tests/test_narrow_terminal.py +0 -0
  80. {multissh3-6.37 → multissh3-6.38}/tests/test_no_hosts.py +0 -0
  81. {multissh3-6.37 → multissh3-6.38}/tests/test_option_no_effect.py +0 -0
  82. {multissh3-6.37 → multissh3-6.38}/tests/test_options_after_command.py +0 -0
  83. {multissh3-6.37 → multissh3-6.38}/tests/test_output_merge.py +0 -0
  84. {multissh3-6.37 → multissh3-6.38}/tests/test_output_robustness.py +0 -0
  85. {multissh3-6.37 → multissh3-6.38}/tests/test_packaging.py +0 -0
  86. {multissh3-6.37 → multissh3-6.38}/tests/test_password_handling.py +0 -0
  87. {multissh3-6.37 → multissh3-6.38}/tests/test_passwords_out_of_ps.py +0 -0
  88. {multissh3-6.37 → multissh3-6.38}/tests/test_run_command.py +0 -0
  89. {multissh3-6.37 → multissh3-6.38}/tests/test_run_command_branches.py +0 -0
  90. {multissh3-6.37 → multissh3-6.38}/tests/test_run_command_characterization.py +0 -0
  91. {multissh3-6.37 → multissh3-6.38}/tests/test_run_command_exit.py +0 -0
  92. {multissh3-6.37 → multissh3-6.38}/tests/test_run_on_hosts.py +0 -0
  93. {multissh3-6.37 → multissh3-6.38}/tests/test_run_on_hosts_modes.py +0 -0
  94. {multissh3-6.37 → multissh3-6.38}/tests/test_runtime_branch_matrix.py +0 -0
  95. {multissh3-6.37 → multissh3-6.38}/tests/test_runtime_dir.py +0 -0
  96. {multissh3-6.37 → multissh3-6.38}/tests/test_shared_lines.py +0 -0
  97. {multissh3-6.37 → multissh3-6.38}/tests/test_smoke_optional.py +0 -0
  98. {multissh3-6.37 → multissh3-6.38}/tests/test_ssh_error_text.py +0 -0
  99. {multissh3-6.37 → multissh3-6.38}/tests/test_ssh_timeouts.py +0 -0
  100. {multissh3-6.37 → multissh3-6.38}/tests/test_sshpass_exit.py +0 -0
  101. {multissh3-6.37 → multissh3-6.38}/tests/test_start_run_on_hosts.py +0 -0
  102. {multissh3-6.37 → multissh3-6.38}/tests/test_stopped_commands.py +0 -0
  103. {multissh3-6.37 → multissh3-6.38}/tests/test_stream_reader.py +0 -0
  104. {multissh3-6.37 → multissh3-6.38}/tests/test_streamed_output.py +0 -0
  105. {multissh3-6.37 → multissh3-6.38}/tests/test_tui_ssh_notices.py +0 -0
  106. {multissh3-6.37 → multissh3-6.38}/tests/test_unavailable_hosts.py +0 -0
  107. {multissh3-6.37 → multissh3-6.38}/tests/test_underscore_settings.py +0 -0
  108. {multissh3-6.37 → multissh3-6.38}/tests/test_waiting.py +0 -0
  109. {multissh3-6.37 → multissh3-6.38}/tests/test_wide_wrap.py +0 -0
  110. {multissh3-6.37 → multissh3-6.38}/tests/vt_grid.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multiSSH3
3
- Version: 6.37
3
+ Version: 6.38
4
4
  Summary: Run commands on multiple hosts via SSH
5
5
  Home-page: https://github.com/yufei-pan/multiSSH3
6
6
  Author: Yufei Pan
@@ -976,7 +976,7 @@ Option names count in full only: `--user` is not `--username` and `-c` is not `-
976
976
 
977
977
  Putting the command after `--` is no substitute for quotes: every word after the hosts is a command of its own, so `mssh web1 -- bash -c 'echo hi'` runs `bash`, `-c` and `echo hi` one after another (when each word is a single word, as in `mssh web1 -- ls -la`, mssh asks whether to join them).
978
978
 
979
- Below is a sample help message output from multiSSH3 6.37 @ 2026-10-21 (no config file, 120 columns; the lines after the options list the programs found on that machine)
979
+ Below is a sample help message output from multiSSH3 6.38 @ 2026-10-22 (no config file, 120 columns; the lines after the options list the programs found on that machine)
980
980
 
981
981
  ```bash
982
982
  $ mssh -h
@@ -950,7 +950,7 @@ Option names count in full only: `--user` is not `--username` and `-c` is not `-
950
950
 
951
951
  Putting the command after `--` is no substitute for quotes: every word after the hosts is a command of its own, so `mssh web1 -- bash -c 'echo hi'` runs `bash`, `-c` and `echo hi` one after another (when each word is a single word, as in `mssh web1 -- ls -la`, mssh asks whether to join them).
952
952
 
953
- Below is a sample help message output from multiSSH3 6.37 @ 2026-10-21 (no config file, 120 columns; the lines after the options list the programs found on that machine)
953
+ Below is a sample help message output from multiSSH3 6.38 @ 2026-10-22 (no config file, 120 columns; the lines after the options list the programs found on that machine)
954
954
 
955
955
  ```bash
956
956
  $ mssh -h