multiSSH3 6.13__tar.gz → 6.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multiSSH3
3
- Version: 6.13
3
+ Version: 6.15
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multiSSH3
3
- Version: 6.13
3
+ Version: 6.15
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
@@ -30,8 +30,9 @@ import threading
30
30
  import time
31
31
  import typing
32
32
  import uuid
33
- from collections import Counter, deque, defaultdict
33
+ from collections import Counter, defaultdict, deque
34
34
  from itertools import count, product
35
+ from pprint import pformat
35
36
 
36
37
  __curses_available = False
37
38
  __resource_lib_available = False
@@ -84,10 +85,10 @@ except Exception:
84
85
  print('Warning: functools.lru_cache is not available, multiSSH3 will run slower without cache.',file=sys.stderr)
85
86
  def cache_decorator(func):
86
87
  return func
87
- version = '6.13'
88
+ version = '6.15'
88
89
  VERSION = version
89
90
  __version__ = version
90
- COMMIT_DATE = '2026-02-24'
91
+ COMMIT_DATE = '2026-03-05'
91
92
 
92
93
  CONFIG_FILE_CHAIN = ['./multiSSH3.config.json',
93
94
  '~/multiSSH3.config.json',
@@ -278,14 +279,9 @@ class Host:
278
279
  def __iter__(self):
279
280
  return zip(['name', 'command', 'returncode', 'stdout', 'stderr'], [self.name, self.command, self.returncode, self.stdout, self.stderr])
280
281
  def __repr__(self):
281
- # return the complete data structure
282
- return f"Host(name={self.name}, command={self.command}, returncode={self.returncode}, stdout={self.stdout}, stderr={self.stderr}, \
283
- output={self.output}, lineNumToPrintSet={self.lineNumToPrintSet}, files={self.files}, ipmi={self.ipmi}, \
284
- interface_ip_prefix={self.interface_ip_prefix}, scp={self.scp}, gatherMode={self.gatherMode}, \
285
- extraargs={self.extraargs}, resolvedName={self.resolvedName}, i={self.i}, uuid={self.uuid}), \
286
- identity_file={self.identity_file}, ip={self.ip}, current_color_pair={self.current_color_pair}"
282
+ return f"Host(\n{pformat(self.__dict__)}\n)"
287
283
  def __str__(self):
288
- return f"Host(name={self.name}, command={self.command}, returncode={self.returncode}, stdout={self.stdout}, stderr={self.stderr})"
284
+ return f"Host(\n{pformat(dict(self))}\n)"
289
285
  def get_output_hash(self):
290
286
  return hash((
291
287
  self.command,
@@ -2673,7 +2669,7 @@ def __generate_display(stdscr, hosts, lineToDisplay = -1,curserPosition = 0, min
2673
2669
  elif key == curses.KEY_EXIT or key == 27: # 27 is the key code for ESC
2674
2670
  # if the key is exit, we will exit the program
2675
2671
  return
2676
- elif key == curses.KEY_HELP or key == 63 or key == curses.KEY_F1 or key == 8: # 63 is the key code for ?, 8 is the key code for backspace
2672
+ elif key == curses.KEY_HELP or key == 63 or key == curses.KEY_F1: # 63 is the key code for ?
2677
2673
  # if the key is help, we will display the help message
2678
2674
  if not help_shown:
2679
2675
  help_panel.show()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes