Skip to content

Conversation

@igorbakshee
Copy link

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

If it fails, the result won't be fed to string-handling postporcessing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant