@ -81,7 +81,7 @@ def find_executable(executable, cwd=None, path=None, required=True):
def run_command ( args , cmd , capture = False , env = None , data = None , cwd = None , always = False , stdin = None , stdout = None ,
def run_command ( args , cmd , capture = False , env = None , data = None , cwd = None , always = False , stdin = None , stdout = None ,
cmd_verbosity = 1 ):
cmd_verbosity = 1 , str_errors = ' strict ' ):
"""
"""
: type args : CommonConfig
: type args : CommonConfig
: type cmd : collections . Iterable [ str ]
: type cmd : collections . Iterable [ str ]
@ -93,15 +93,16 @@ def run_command(args, cmd, capture=False, env=None, data=None, cwd=None, always=
: type stdin : file | None
: type stdin : file | None
: type stdout : file | None
: type stdout : file | None
: type cmd_verbosity : int
: type cmd_verbosity : int
: type str_errors : ' strict ' | ' replace '
: rtype : str | None , str | None
: rtype : str | None , str | None
"""
"""
explain = args . explain and not always
explain = args . explain and not always
return raw_command ( cmd , capture = capture , env = env , data = data , cwd = cwd , explain = explain , stdin = stdin , stdout = stdout ,
return raw_command ( cmd , capture = capture , env = env , data = data , cwd = cwd , explain = explain , stdin = stdin , stdout = stdout ,
cmd_verbosity = cmd_verbosity )
cmd_verbosity = cmd_verbosity , str_errors = str_errors )
def raw_command ( cmd , capture = False , env = None , data = None , cwd = None , explain = False , stdin = None , stdout = None ,
def raw_command ( cmd , capture = False , env = None , data = None , cwd = None , explain = False , stdin = None , stdout = None ,
cmd_verbosity = 1 ):
cmd_verbosity = 1 , str_errors = ' strict ' ):
"""
"""
: type cmd : collections . Iterable [ str ]
: type cmd : collections . Iterable [ str ]
: type capture : bool
: type capture : bool
@ -112,6 +113,7 @@ def raw_command(cmd, capture=False, env=None, data=None, cwd=None, explain=False
: type stdin : file | None
: type stdin : file | None
: type stdout : file | None
: type stdout : file | None
: type cmd_verbosity : int
: type cmd_verbosity : int
: type str_errors : ' strict ' | ' replace '
: rtype : str | None , str | None
: rtype : str | None , str | None
"""
"""
if not cwd :
if not cwd :
@ -170,8 +172,8 @@ def raw_command(cmd, capture=False, env=None, data=None, cwd=None, explain=False
encoding = ' utf-8 '
encoding = ' utf-8 '
data_bytes = data . encode ( encoding ) if data else None
data_bytes = data . encode ( encoding ) if data else None
stdout_bytes , stderr_bytes = process . communicate ( data_bytes )
stdout_bytes , stderr_bytes = process . communicate ( data_bytes )
stdout_text = stdout_bytes . decode ( encoding ) if stdout_bytes else u ' '
stdout_text = stdout_bytes . decode ( encoding , str_errors ) if stdout_bytes else u ' '
stderr_text = stderr_bytes . decode ( encoding ) if stderr_bytes else u ' '
stderr_text = stderr_bytes . decode ( encoding , str_errors ) if stderr_bytes else u ' '
else :
else :
process . wait ( )
process . wait ( )
stdout_text , stderr_text = None , None
stdout_text , stderr_text = None , None