]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fixes #29133: clarified shlex documentation.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 9 Jan 2017 16:46:04 +0000 (16:46 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 9 Jan 2017 16:46:04 +0000 (16:46 +0000)
Doc/library/shlex.rst

index 1a89bf6041b82700688cf63391225baaa0375c5e..4926f04d42306499e0eeee1fc93e91b3d146e886 100644 (file)
@@ -374,23 +374,19 @@ is changed: any run of these characters is returned as a single token.  While
 this is short of a full parser for shells (which would be out of scope for the
 standard library, given the multiplicity of shells out there), it does allow
 you to perform processing of command lines more easily than you could
-otherwise.  To illustrate, you can see the difference in the following snippet::
+otherwise.  To illustrate, you can see the difference in the following snippet:
 
-    import shlex
+.. doctest::
+   :options: +NORMALIZE_WHITESPACE
 
-    for punct in (False, True):
-        if punct:
-            message = 'Old'
-        else:
-            message = 'New'
-        text = "a && b; c && d || e; f >'abc'; (def \"ghi\")"
-        s = shlex.shlex(text, punctuation_chars=punct)
-        print('%s: %s' % (message, list(s)))
-
-which prints out::
-
-    Old: ['a', '&', '&', 'b', ';', 'c', '&', '&', 'd', '|', '|', 'e', ';', 'f', '>', "'abc'", ';', '(', 'def', '"ghi"', ')']
-    New: ['a', '&&', 'b', ';', 'c', '&&', 'd', '||', 'e', ';', 'f', '>', "'abc'", ';', '(', 'def', '"ghi"', ')']
+    >>> import shlex
+    >>> text = "a && b; c && d || e; f >'abc'; (def \"ghi\")"
+    >>> list(shlex.shlex(text))
+    ['a', '&', '&', 'b', ';', 'c', '&', '&', 'd', '|', '|', 'e', ';', 'f', '>',
+    "'abc'", ';', '(', 'def', '"ghi"', ')']
+    >>> list(shlex.shlex(text, punctuation_chars=True))
+    ['a', '&&', 'b', ';', 'c', '&&', 'd', '||', 'e', ';', 'f', '>', "'abc'",
+    ';', '(', 'def', '"ghi"', ')']
 
 Of course, tokens will be returned which are not valid for shells, and you'll
 need to implement your own error checks on the returned tokens.