class_docstr: Attributes:
      provider_pid -- input expression in which the error occurred
      message -- explanation of the error
code: def __str__(self):
      if self.external_id:
          return f"'{self.provider_pid}' provider failed on id: '{self.external_id}'"
      elif self.external_uri:
          return f"'{self.provider_pid}' provider failed on uri:'{self.external_uri}'"
      else:
          return f"'{self.provider_pid}' provider failed"
  
file_path: TimeSide/timeside/core/exceptions.py
label_desc: Use image node_id 2 for calling the ProviderError obj's underlying member method code with example usage: obj.__str__() and returns: str, self, str, self, str, str, self, str, self, str, str, self, str