vistir.cmdparse module¶
-
exception
vistir.cmdparse.
ScriptEmptyError
[source]¶ Bases:
ValueError
-
class
vistir.cmdparse.
Script
(command, args=None)[source]¶ Bases:
object
Parse a script line (in Pipfile’s [scripts] section).
This always works in POSIX mode, even on Windows.
-
args
¶
-
cmdify
()[source]¶ Encode into a cmd-executable string.
This re-implements CreateProcess’s quoting logic to turn a list of arguments into one single string for the shell to interpret.
- All double quotes are escaped with a backslash.
- Existing backslashes before a quote are doubled, so they are all escaped properly.
- Backslashes elsewhere are left as-is; cmd will interpret them literally.
The result is then quoted into a pair of double quotes to be grouped.
An argument is intentionally not quoted if it does not contain whitespaces. This is done to be compatible with Windows built-in commands that don’t work well with quotes, e.g. everything with echo, and DOS-style (forward slash) switches.
The intended use of this function is to pre-process an argument list before passing it into
subprocess.Popen(..., shell=True)
.See also: https://docs.python.org/3/library/subprocess.html#converting-argument-sequence
-
command
¶
-