Source code for neurodatapub.utils.process

# Copyright © 2021-2022 Connectomics Lab
# University Hospital Center and University of Lausanne (UNIL-CHUV), Switzerland,
# and contributors
#
#  This software is distributed under the open-source license Apache 2.0.

"""`neurodatapub.utils.process`: utils functions to run command via subprocess."""

import os
import subprocess


[docs]def run(command, env=None, cwd=None): """ Function calls to execute a command. It runs the command specified as input via ``subprocess.run()``. Parameters ---------- command : string String containing the command to be executed (required) env : os.environ Specify a custom os.environ cwd : Directory Specify a custom current working directory Examples -------- >>> cmd = 'ls "/path/to/folder"' >>> run(cmd) # doctest: +SKIP """ merged_env = os.environ if cwd is None: cwd = os.getcwd() if env is not None: merged_env.update(env) # Python >=3.7 process = subprocess.run( command, shell=True, env=merged_env, cwd=cwd, capture_output=True, check=True ) return process