python: Remove Python 'pipes' module
This is scheduled for removal from Python in 3.13: https://docs.python.org/3/library/pipes.html. The 'shlex.quote' function can replace the 'pipes.quote' function used in "main.py". A special wrapper has been made to account for the Windows case which 'shlex.quote' doesn't handle. Change-Id: I9c84605f0ccd8468b9cab6cece6248ef8c2107f0 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71678 Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
committed by
Bobby Bruce
parent
82587ce71b
commit
a63d376ecd
@@ -496,10 +496,23 @@ def main():
|
||||
% (socket.gethostname(), os.getpid())
|
||||
)
|
||||
|
||||
# in Python 3 pipes.quote() is moved to shlex.quote()
|
||||
import pipes
|
||||
def quote(arg: str) -> str:
|
||||
"""Quotes a string for printing in a shell. In addition to Unix,
|
||||
this is designed to handle the problematic Windows cases where
|
||||
'shlex.quote' doesn't work"""
|
||||
|
||||
print("command line:", " ".join(map(pipes.quote, sys.argv)))
|
||||
if os.name == "nt" and os.sep == "\\":
|
||||
# If a Windows machine, we manually quote the string.
|
||||
arg = arg.replace('"', '\\"')
|
||||
if re.search("\s", args):
|
||||
# We quote args which have whitespace.
|
||||
arg = '"' + arg + '"'
|
||||
return arg
|
||||
import shlex
|
||||
|
||||
return shlex.quote(arg)
|
||||
|
||||
print("command line:", " ".join(map(quote, sys.argv)))
|
||||
print()
|
||||
|
||||
# check to make sure we can find the listed script
|
||||
|
||||
Reference in New Issue
Block a user