[rtems-tools PATCH] rtemstoolkit: Provide a shlex.join for python 3.8 and earlier
chrisj at rtems.org
chrisj at rtems.org
Tue Aug 29 23:54:13 UTC 2023
From: Chris Johns <chrisj at rtems.org>
---
rtemstoolkit/execute.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/rtemstoolkit/execute.py b/rtemstoolkit/execute.py
index d183b14..31d3a8a 100755
--- a/rtemstoolkit/execute.py
+++ b/rtemstoolkit/execute.py
@@ -125,6 +125,14 @@ class execute(object):
self.timing_out = False
self.proc = None
+ @staticmethod
+ def _shlex_join(elements):
+ try:
+ return shlex.join(elements)
+ except AttributeError:
+ # Python older than 3.8 does not have shlex.join
+ return ' '.join(elements)
+
def capture(self, proc, command = 'pipe', timeout = None):
"""Create 3 threads to read stdout and stderr and send to the output handler
and call an input handler is provided. Based on the 'communicate' code
@@ -360,11 +368,11 @@ class execute(object):
if not shell and isinstance(command, str):
command = shlex.split(command)
if shell and isinstance(command, list):
- command = shlex.join(command)
+ command = execute._shlex_join(command)
if self.shell_exe:
command = self.shell_exe + ' ' + command
if isinstance(command, list):
- cs = shlex.join(command)
+ cs = execute._shlex_join(command)
else:
cs = command
what = 'spawn'
--
2.37.1
More information about the devel
mailing list