Added a rudimentary error checking to RunProcess. #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Set up a rudimentary error handling. E.g., for a pip command not on $PATH:
$ pip
-bash: pip: command not found
the following used to give multiple errors and a sub-optimal result:
In[12]:= PythonPackageVersion[]
During evaluation of In[12]:= RunProcess::pnfd: Program pip not found. Check Environment["PATH"].
During evaluation of In[12]:= StringTrim::strse: String or list of strings expected at position 1 in StringTrim[$Failed].
Out[12]= StringTrim[$Failed]
and this gave a wrong result:
In[13]:= PythonPackageInstalledQ["xx"]
During evaluation of In[13]:= RunProcess::pnfd: Program pip not found. Check Environment["PATH"].
Out[13]= True
Now the non-string result from RunProcess is no longer fed to string-processing functions:
In[16]:= PythonPackageVersion[]
During evaluation of In[16]:= RunProcess::pnfd: Program pip not found. Check Environment["PATH"].
Out[16]= $Failed
In[17]:= PythonPackageInstalledQ["xx"]
During evaluation of In[17]:= RunProcess::pnfd: Program pip not found. Check Environment["PATH"].
Out[17]= False