# -*- coding: utf-8 -*-
"""
========================================================
Jsonwspexceptions :mod:`jsonwspclient.jsonwspexceptions`
========================================================
"""
[docs]class JsonWspException(Exception):
"""Base Exception"""
pass
[docs]class JsonWspFault(JsonWspException):
"""Base exception."""
fault = {}
code = ''
description = ''
hint = ''
details = ()
filename = ()
lineno = ()
def __init__(self, *args, **kwargs):
"""Initialize JsonWspFault with `request` and `response` objects.
(copied from requests.exceptions.RequestException)
"""
response = kwargs.pop('response', None)
self.response = response
self.request = kwargs.pop('request', None)
if (response is not None and not self.request and
hasattr(response, 'request')):
self.request = self.response.request
if hasattr(self.response, 'response_dict'):
self.fault = self.response.response_dict['fault']
self.code = self.fault['code']
self.description = self.fault['string']
self.detail = self.fault['detail']
self.filename = self.fault['filename']
self.lineno = self.fault['lineno']
self.hint = self.fault.get('hint')
args = (self.code, self.description) + args
super(JsonWspFault, self).__init__(*args)
[docs]class ServerFault(JsonWspFault):
"""Server fault error."""
pass
[docs]class ClientFault(JsonWspFault):
"""Client Fault."""
pass
[docs]class IncompatibleFault(JsonWspFault):
"""Incompatible Fault."""
pass
[docs]class ParamsError(JsonWspException):
"""Params Errror."""
pass