On Wed, Jan 29, 2014 at 4:09 AM, Nick Coghlan <[email protected]> wrote:

> call()/check_call()/check_output() -- don't know.
>>
>
> Those are three very common patterns for invoking child processes, so well
> worth supporting. You could probably live without the "shell=True" variants
> and make people drop down to the lower level API for shell invocation,
> though.
>

Hm. I've worked with code written by others that used these (or homegrown
variants) extensively -- the Python code was almost like a shell script. I
think the shell variants are actually pretty popular and useful (e.g. to
specify I/O redirections or pipelines).

I think the string/list ambiguity isn't too bad if we enforce the
constraints that if shell=True there's a single string, and if shell=False
there's a list of strings -- subprocess's lenient type checking in some
cases seems to be the core of the problem here.

-- 
--Guido van Rossum (python.org/~guido)

Reply via email to