summaryrefslogtreecommitdiffstats
path: root/Lib/shlex.py
diff options
context:
space:
mode:
authorBo Bayles <bbayles@gmail.com>2019-05-29 08:06:12 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2019-05-29 08:06:11 (GMT)
commitca804955927dddb6ae5a846dbc0248a932be9a4e (patch)
treed9cb8069d21b991842d1210e1641a95ebddde912 /Lib/shlex.py
parentf83d1dbd3bfbde940117c85f5c70de00e47b7e6e (diff)
downloadcpython-ca804955927dddb6ae5a846dbc0248a932be9a4e.zip
cpython-ca804955927dddb6ae5a846dbc0248a932be9a4e.tar.gz
cpython-ca804955927dddb6ae5a846dbc0248a932be9a4e.tar.bz2
bpo-22454: Add shlex.join() (the opposite of shlex.split()) (GH-7605)
Diffstat (limited to 'Lib/shlex.py')
-rw-r--r--Lib/shlex.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/shlex.py b/Lib/shlex.py
index 2c9786c..fb1130d 100644
--- a/Lib/shlex.py
+++ b/Lib/shlex.py
@@ -14,7 +14,7 @@ from collections import deque
from io import StringIO
-__all__ = ["shlex", "split", "quote"]
+__all__ = ["shlex", "split", "quote", "join"]
class shlex:
"A lexical analyzer class for simple shell-like syntaxes."
@@ -305,6 +305,11 @@ def split(s, comments=False, posix=True):
return list(lex)
+def join(split_command):
+ """Return a shell-escaped string from *split_command*."""
+ return ' '.join(quote(arg) for arg in split_command)
+
+
_find_unsafe = re.compile(r'[^\w@%+=:,./-]', re.ASCII).search
def quote(s):