'description:    A human-readable ASCII [USASCII] text providing
additional information, used to assist the client
developer in understanding the error that occurred.
Values for the "error_description" parameter MUST NOT
include characters outside the set
x20-21 / x23-5B / x5D-7E.
uri:    A URI identifying a human-readable web page with information
about the error, used to provide the client developer with
additional information about the error.  Values for the
"error_uri" parameter MUST conform to the URI- Reference
syntax, and thus MUST NOT include characters outside the set
x21 / x23-5B / x5D-7E.
state:  A CSRF protection value received from the client.
request:  Oauthlib Request object'

def __init__(self, description=None, uri=None, status_code=400, request=None):

    self.description = (description or self.description)
    message = (u'(%s)    %s' % (self.error, self.description))
    if request:
        message += (u'    ' + repr(request))
    super(OAuth1Error, self).__init__(message)
    self.uri = uri
    self.status_code = status_code
