Python subprocess.list2cmdline() Examples
The following are 30
code examples of subprocess.list2cmdline().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
subprocess
, or try the search function
.
Example #1
Source File: os_utils.py From godot-mono-builds with MIT License | 9 votes |
def run_command(command, args=[], cwd=None, env=None, name='command'): def cmd_args_to_str(cmd_args): return ' '.join([arg if not ' ' in arg else '"%s"' % arg for arg in cmd_args]) assert isinstance(command, str) and isinstance(args, list) args = [command] + args check_call_args = {} if cwd is not None: check_call_args['cwd'] = cwd if env is not None: check_call_args['env'] = env import subprocess try: print('Running command \'%s\': %s' % (name, subprocess.list2cmdline(args))) subprocess.check_call(args, **check_call_args) print('Command \'%s\' completed successfully' % name) except subprocess.CalledProcessError as e: raise BuildError('\'%s\' exited with error code: %s' % (name, e.returncode))
Example #2
Source File: train.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 6 votes |
def main(): args = make_args() config = configparser.ConfigParser() utils.load_config(config, args.config) for cmd in args.modify: utils.modify_config(config, cmd) with open(os.path.expanduser(os.path.expandvars(args.logging)), 'r') as f: logging.config.dictConfig(yaml.load(f)) if args.run is None: buffer = io.StringIO() config.write(buffer) args.run = hashlib.md5(buffer.getvalue().encode()).hexdigest() logging.info('cd ' + os.getcwd() + ' && ' + subprocess.list2cmdline([sys.executable] + sys.argv)) train = Train(args, config) train() logging.info(pybenchmark.stats)
Example #3
Source File: player.py From streamlink with BSD 2-Clause "Simplified" License | 6 votes |
def find_default_player(): if "darwin" in sys.platform: paths = os.environ.get("PATH", "").split(":") paths += ["/Applications/VLC.app/Contents/MacOS/"] paths += ["~/Applications/VLC.app/Contents/MacOS/"] path = check_paths(("VLC", "vlc"), paths) elif "win32" in sys.platform: exename = "vlc.exe" paths = os.environ.get("PATH", "").split(";") path = check_paths((exename,), paths) if not path: subpath = "VideoLAN\\VLC\\" envvars = ("PROGRAMFILES", "PROGRAMFILES(X86)", "PROGRAMW6432") paths = filter(None, (os.environ.get(var) for var in envvars)) paths = (os.path.join(p, subpath) for p in paths) path = check_paths((exename,), paths) else: paths = os.environ.get("PATH", "").split(":") path = check_paths(("vlc",), paths) if path: # Quote command because it can contain space return subprocess.list2cmdline([path])
Example #4
Source File: test_subprocess.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_list2cmdline(self): self.assertEqual(subprocess.list2cmdline(['a b c', 'd', 'e']), '"a b c" d e') self.assertEqual(subprocess.list2cmdline(['ab"c', '\\', 'd']), 'ab\\"c \\ d') self.assertEqual(subprocess.list2cmdline(['ab"c', ' \\', 'd']), 'ab\\"c " \\\\" d') self.assertEqual(subprocess.list2cmdline(['a\\\\\\b', 'de fg', 'h']), 'a\\\\\\b "de fg" h') self.assertEqual(subprocess.list2cmdline(['a\\"b', 'c', 'd']), 'a\\\\\\"b c d') self.assertEqual(subprocess.list2cmdline(['a\\\\b c', 'd', 'e']), '"a\\\\b c" d e') self.assertEqual(subprocess.list2cmdline(['a\\\\b\\ c', 'd', 'e']), '"a\\\\b\\ c" d e') self.assertEqual(subprocess.list2cmdline(['ab', '']), 'ab ""')
Example #5
Source File: output.py From streamlink with BSD 2-Clause "Simplified" License | 6 votes |
def _open_subprocess(self): # Force bufsize=0 on all Python versions to avoid writing the # unflushed buffer when closing a broken input pipe args = self._create_arguments() if is_win32: fargs = args else: fargs = subprocess.list2cmdline(args) log.debug(u"Opening subprocess: {0}".format(fargs)) self.player = subprocess.Popen(maybe_encode(args, get_filesystem_encoding()), stdin=self.stdin, bufsize=0, stdout=self.stdout, stderr=self.stderr) # Wait 0.5 seconds to see if program exited prematurely if not self.running: raise OSError("Process exited prematurely") if self.namedpipe: self.namedpipe.open("wb") elif self.http: self.http.open()
Example #6
Source File: utils.py From dnsrobocert with MIT License | 6 votes |
def execute(args: List[str], check: bool = True, env: Dict[str, str] = None): if not env: env = os.environ.copy() env = env.copy() env["PYTHONUNBUFFERED "] = "1" call = subprocess.check_call if check else subprocess.call LOGGER.info("Launching command: {0}".format(subprocess.list2cmdline(args))) sys.stdout.write("----------\n") sys.stdout.flush() error = None try: call(args, env=env) except subprocess.CalledProcessError as e: error = e sys.stdout.write("----------\n") sys.stdout.flush() if error: raise error
Example #7
Source File: test_subprocess.py From oss-ftp with MIT License | 6 votes |
def test_list2cmdline(self): self.assertEqual(subprocess.list2cmdline(['a b c', 'd', 'e']), '"a b c" d e') self.assertEqual(subprocess.list2cmdline(['ab"c', '\\', 'd']), 'ab\\"c \\ d') self.assertEqual(subprocess.list2cmdline(['ab"c', ' \\', 'd']), 'ab\\"c " \\\\" d') self.assertEqual(subprocess.list2cmdline(['a\\\\\\b', 'de fg', 'h']), 'a\\\\\\b "de fg" h') self.assertEqual(subprocess.list2cmdline(['a\\"b', 'c', 'd']), 'a\\\\\\"b c d') self.assertEqual(subprocess.list2cmdline(['a\\\\b c', 'd', 'e']), '"a\\\\b c" d e') self.assertEqual(subprocess.list2cmdline(['a\\\\b\\ c', 'd', 'e']), '"a\\\\b\\ c" d e') self.assertEqual(subprocess.list2cmdline(['ab', '']), 'ab ""')
Example #8
Source File: test_samples.py From aws-iot-device-sdk-python-v2 with Apache License 2.0 | 6 votes |
def _run(self, args, stdout_checker): process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() stdout = stdout.decode() try: self.assertEqual(0, process.returncode) stdout_checker(stdout) except Exception as e: # print output and rethrow exception print(subprocess.list2cmdline(args)) print("--- stdout ---") for line in stdout.splitlines(): print(line) print("--- stderr ---") for line in stderr.splitlines(): print(line) print("--- end ---") raise e
Example #9
Source File: repos_update.py From funfuzz with Mozilla Public License 2.0 | 6 votes |
def time_cmd(cmd, cwd=None, env=None, timeout=None): """Calculates and outputs the time a command takes. Args: cmd (list): Command to be run. cwd (str): Working directory command is to be executed in. env (dict): Working environment command is to be executed in. timeout (int): Timeout for the command. """ if not env: env = deepcopy(os.environ) logger.info("\nRunning `%s` now..\n", " ".join(cmd)) cmd_start = time.time() cmd = subprocess.run(cmd, check=False, cwd=cwd, env=env, timeout=timeout) cmd_end = time.time() logger.info("\n`%s` took %.3f seconds.\n", subprocess.list2cmdline(cmd.args), cmd_end - cmd_start)
Example #10
Source File: common.py From pyaaf2 with MIT License | 6 votes |
def generate_pcm_audio_stereo(name, sample_rate = 48000, duration = 2, sample_format='pcm_s16le', fmt='wav'): # this default value for `fmt` looks like a mistake but we preserve it here outfile = os.path.join(sample_dir(), '%s.%s' % (name,fmt) ) cmd = [FFMPEG_EXEC,'-y', '-f', 'lavfi', '-i', 'aevalsrc=sin(420*2*PI*t)|cos(430*2*PI*t):s=%d:d=%f'% ( sample_rate, duration)] #mono #cmd = ['ffmpeg','-y', '-f', 'lavfi', '-i', 'aevalsrc=sin(420*2*PI*t)::s=48000:d=10'] cmd.extend([ '-f',fmt, '-acodec', sample_format]) cmd.extend([outfile]) p = subprocess.Popen(cmd, stdout = subprocess.PIPE,stderr = subprocess.PIPE) stdout,stderr = p.communicate() if p.returncode != 0: print(subprocess.list2cmdline(cmd)) print(stderr) return Exception("error encoding footage") return outfile
Example #11
Source File: test_subprocess.py From BinderFilter with MIT License | 6 votes |
def test_list2cmdline(self): self.assertEqual(subprocess.list2cmdline(['a b c', 'd', 'e']), '"a b c" d e') self.assertEqual(subprocess.list2cmdline(['ab"c', '\\', 'd']), 'ab\\"c \\ d') self.assertEqual(subprocess.list2cmdline(['ab"c', ' \\', 'd']), 'ab\\"c " \\\\" d') self.assertEqual(subprocess.list2cmdline(['a\\\\\\b', 'de fg', 'h']), 'a\\\\\\b "de fg" h') self.assertEqual(subprocess.list2cmdline(['a\\"b', 'c', 'd']), 'a\\\\\\"b c d') self.assertEqual(subprocess.list2cmdline(['a\\\\b c', 'd', 'e']), '"a\\\\b c" d e') self.assertEqual(subprocess.list2cmdline(['a\\\\b\\ c', 'd', 'e']), '"a\\\\b\\ c" d e') self.assertEqual(subprocess.list2cmdline(['ab', '']), 'ab ""')
Example #12
Source File: easy_install.py From pex with Apache License 2.0 | 5 votes |
def install_options(self, script_text): self.options = shlex.split(self._extract_options(script_text)) cmdline = subprocess.list2cmdline(self) if not isascii(cmdline): self.options[:0] = ['-x']
Example #13
Source File: easy_install.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def install_options(self, script_text): self.options = shlex.split(self._extract_options(script_text)) cmdline = subprocess.list2cmdline(self) if not isascii(cmdline): self.options[:0] = ['-x']
Example #14
Source File: easy_install.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def nt_quote_arg(arg): """Quote a command line argument according to Windows parsing rules""" return subprocess.list2cmdline([arg])
Example #15
Source File: easy_install.py From anpr with Creative Commons Attribution 4.0 International | 5 votes |
def _render(items): cmdline = subprocess.list2cmdline( CommandSpec._strip_quotes(item.strip()) for item in items) return '#!' + cmdline + '\n' # For pbr compat; will be removed in a future version.
Example #16
Source File: easy_install.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _render(items): cmdline = subprocess.list2cmdline( CommandSpec._strip_quotes(item.strip()) for item in items) return '#!' + cmdline + '\n' # For pbr compat; will be removed in a future version.
Example #17
Source File: easy_install.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def _render(items): cmdline = subprocess.list2cmdline( CommandSpec._strip_quotes(item.strip()) for item in items) return '#!' + cmdline + '\n' # For pbr compat; will be removed in a future version.
Example #18
Source File: easy_install.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def install_options(self, script_text): self.options = shlex.split(self._extract_options(script_text)) cmdline = subprocess.list2cmdline(self) if not isascii(cmdline): self.options[:0] = ['-x']
Example #19
Source File: easy_install.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def nt_quote_arg(arg): """Quote a command line argument according to Windows parsing rules""" return subprocess.list2cmdline([arg])
Example #20
Source File: __init__.py From usdmanager with Apache License 2.0 | 5 votes |
def launchProcess(self, args, **kwargs): """ Launch a program with the path `str` as an argument. Any additional keyword arguments are passed to the Popen object. :Parameters: args : `list` | `str` A sequence of program arguments with the program as the first arg. If also passing in shell=True, this should be a single string. :Returns: Returns process ID or None :Rtype: `subprocess.Popen` | None """ with self.overrideCursor(): try: if kwargs.get("shell"): # With shell=True, convert args to a string to call Popen with. logger.debug("Running Popen with shell=True") if isinstance(args, list): args = subprocess.list2cmdline(args) logger.info(args) else: # Leave args as a list for Popen, but still log the string command. logger.info(subprocess.list2cmdline(args)) p = subprocess.Popen(args, **kwargs) return p except Exception: self.restoreOverrideCursor() self.showCriticalMessage("Operation failed. {} may not be installed.".format(args[0]), traceback.format_exc())
Example #21
Source File: common.py From pyaaf2 with MIT License | 5 votes |
def generate_dnxhd(profile_name, name, frames, size=None, pix_fmt=None, frame_rate=None, overwrite=True, fmt=None): profile = video.dnx_profiles.get(profile_name) bitrate = profile.get('bitrate') pix_fmt = profile.get('pix_fmt') or pix_fmt size = profile.get('size') or size interlaced = profile.get("interlaced") frame_rate = profile.get('frame_rate') or frame_rate dnxhd_profile = profile.get("video_profile", None) outfile = os.path.join(sample_dir(), name ) if not overwrite and os.path.exists(outfile): return outfile cmd = [FFMPEG_EXEC, '-y', '-f', 'lavfi', '-i', 'testsrc=size=%dx%d:rate=%s' % (size[0],size[1], frame_rate), '-frames:v', str(frames)] cmd.extend(['-vcodec', 'dnxhd','-pix_fmt', pix_fmt]) if bitrate: cmd.extend(['-vb', '%dM' % bitrate]) if dnxhd_profile: cmd.extend(['-profile:v', dnxhd_profile]) if interlaced: cmd.extend(['-flags', '+ildct+ilme' ]) if fmt: cmd.extend(['-f', fmt]) cmd.extend([outfile]) # print(subprocess.list2cmdline(cmd)) p = subprocess.Popen(cmd, stdout = subprocess.PIPE,stderr = subprocess.PIPE) stdout,stderr = p.communicate() if p.returncode < 0: print(stderr) return Exception("error encoding footage") return outfile
Example #22
Source File: common.py From pyaaf2 with MIT License | 5 votes |
def probe(path, show_packets=False): cmd = [FFPROBE_EXEC, '-of','json','-show_format','-show_streams', path] if show_packets: cmd.extend(['-show_packets',]) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout,stderr = p.communicate() if p.returncode != 0: raise subprocess.CalledProcessError(p.returncode, subprocess.list2cmdline(cmd), stderr) return json.loads(stdout.decode('utf8'))
Example #23
Source File: import_media.py From pyaaf2 with MIT License | 5 votes |
def probe(path, show_packets=False): cmd = [FFPROBE_EXEC, '-of','json','-show_format','-show_streams', path] if show_packets: cmd.extend(['-show_packets',]) print(subprocess.list2cmdline(cmd)) p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout,stderr = p.communicate() if p.returncode != 0: raise subprocess.CalledProcessError(p.returncode, subprocess.list2cmdline(cmd), stderr) return json.loads(stdout)
Example #24
Source File: amalink.py From pyaaf2 with MIT License | 5 votes |
def probe(path): cmd = [FFPROBE_EXEC, '-of','json','-show_format','-show_streams', path] p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout,stderr = p.communicate() if p.returncode != 0: raise subprocess.CalledProcessError(p.returncode, "\n{}\n{}".format(subprocess.list2cmdline(cmd), stderr)) return json.loads(stdout.decode('utf8'))
Example #25
Source File: utils.py From usdmanager with Apache License 2.0 | 5 votes |
def usdzip(inputs, dest): """ Zip or unzip a usdz format file. :Parameters: inputs : `str` | `list` Input file name(s). String or list of strings dest : `str` Output directory (for unzip) or file name :Raises OSError: If usdzip fails """ if os.name == "nt": # Files with spaces have to be double-quoted on Windows. if type(inputs) is list: inputs = '" "'.join(inputs) cmd = 'usdzip "{}" "{}"'.format(inputs, dest) logger.debug(cmd) else: cmd = ["usdzip"] if type(inputs) is list: cmd += inputs else: cmd.append(inputs) cmd.append(dest) logger.debug(subprocess.list2cmdline(cmd)) try: subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) except subprocess.CalledProcessError as e: raise OSError("Failed to zip: {}".format(e.output))
Example #26
Source File: repos_update.py From funfuzz with Mozilla Public License 2.0 | 5 votes |
def updateRepo(repo): # pylint: disable=invalid-name,missing-param-doc,missing-raises-doc,missing-return-doc # pylint: disable=missing-return-type-doc,missing-type-doc """Update a repository. Return False if missing; return True if successful; raise an exception if updating fails.""" repo.is_dir() repo_type = typeOfRepo(repo) if repo_type == "hg": hg_pull_cmd = ["hg", "--time", "pull", "-u"] logger.info("\nRunning `%s` now..\n", " ".join(hg_pull_cmd)) out_hg_pull = subprocess.run(hg_pull_cmd, check=True, cwd=str(repo), stderr=subprocess.PIPE) logger.info('"%s" had the above output and took - %s', subprocess.list2cmdline(out_hg_pull.args), out_hg_pull.stderr.decode("utf-8", errors="replace").rstrip()) hg_log_default_cmd = ["hg", "--time", "log", "-r", "default"] logger.info("\nRunning `%s` now..\n", " ".join(hg_log_default_cmd)) out_hg_log_default = subprocess.run(hg_log_default_cmd, check=True, cwd=str(repo), stderr=subprocess.PIPE) logger.info('"%s" had the above output and took - %s', subprocess.list2cmdline(out_hg_log_default.args), out_hg_log_default.stderr.decode("utf-8", errors="replace").rstrip()) elif repo_type == "git": # Ignore exit codes so the loop can continue retrying up to number of counts. gitenv = deepcopy(os.environ) if platform.system() == "Windows": gitenv["GIT_SSH_COMMAND"] = "~/../../mozilla-build/msys/bin/ssh.exe -F ~/.ssh/config" time_cmd([GITBINARY, "pull"], cwd=str(repo), env=gitenv) else: raise OSError(f"Unknown repository type: {repo_type}") return True
Example #27
Source File: setupbase.py From jupyterlab-latex with BSD 3-Clause "New" or "Revised" License | 5 votes |
def list2cmdline(cmd_list): return ' '.join(map(pipes.quote, cmd_list))
Example #28
Source File: setupbase.py From jupyterlab-latex with BSD 3-Clause "New" or "Revised" License | 5 votes |
def run(cmd, **kwargs): """Echo a command before running it. Defaults to repo as cwd""" log.info('> ' + list2cmdline(cmd)) kwargs.setdefault('cwd', HERE) kwargs.setdefault('shell', os.name == 'nt') if not isinstance(cmd, (list, tuple)) and os.name != 'nt': cmd = shlex.split(cmd) cmd[0] = which(cmd[0]) return subprocess.check_call(cmd, **kwargs)
Example #29
Source File: setupbase.py From ipyevents with BSD 3-Clause "New" or "Revised" License | 5 votes |
def run(cmd, **kwargs): """Echo a command before running it. Defaults to repo as cwd""" log.info('> ' + list2cmdline(cmd)) kwargs.setdefault('cwd', HERE) kwargs.setdefault('shell', os.name == 'nt') if not isinstance(cmd, (list, tuple)) and os.name != 'nt': cmd = shlex.split(cmd) cmd_path = which(cmd[0]) if not cmd_path: sys.exit("Aborting. Could not find cmd (%s) in path. " "If command is not expected to be in user's path, " "use an absolute path." % cmd[0]) cmd[0] = cmd_path return subprocess.check_call(cmd, **kwargs)
Example #30
Source File: _shell_utils.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def join(argv): # note that list2cmdline is specific to the windows syntax return subprocess.list2cmdline(argv)