code: def raise_or_return(self, pyresult):
      
      value = self.from_value(pyresult.handle)
      self._handles.remove(pyresult.handle)
      if pyresult.is_throw:
        raise value
      else:
        return value
docs: Consumes the given PyResult to raise/return the exception/value it represents.