Source code for wolframclient.exception

# -*- coding: utf-8 -*-

from __future__ import absolute_import, print_function, unicode_literals

from wolframclient.language.exceptions import WolframLanguageException
from wolframclient.utils.logger import str_trim


[docs]class RequestException(WolframLanguageException): """Error in an HTTP request.""" def __init__(self, response, msg=None): self.response = response if msg: self.msg = msg else: try: self.msg = response.text() except UnicodeDecodeErrors: self.msg = 'Failed to decode request body.' def __str__(self): if hasattr(self.response, 'status'): if callable(self.response.status): status = self.response.status() else: status = self.response.status elif hasattr(self.response, 'status_code'): status = self.response.status_code else: status = 'N/A' return '<status: %s> %s' % (status, self.msg or '')
[docs]class AuthenticationException(RequestException): """Error in an authentication request."""
[docs]class WolframKernelException(WolframLanguageException): """Error while interacting with a Wolfram kernel."""
[docs]class WolframEvaluationException(WolframLanguageException): """Error after an evaluation raising messages.""" def __init__(self, error, result=None, messages=[]): self.error = error self.result = result if isinstance(messages, list): self.messages = messages else: self.messages = [messages] def __str__(self): return self.error def __repr__(self): return '<%s error=%s, expr=%s, messages=%i>:' % ( self.__class__.__name__, self.error, str_trim(self.result), len(self.messages))
[docs]class SocketException(WolframLanguageException): """Error while operating on socket."""
[docs]class WolframParserException(WolframLanguageException): """Error while deserializing WXF bytes."""
__all__ = [ 'WolframLanguageException', 'RequestException', 'AuthenticationException', 'WolframKernelException', 'SocketException', 'WolframParserException', 'WolframEvaluationException' ]