codekingpro/portable-devtools
114k
1from authlib.consts import default_json_headers2 3 4class AuthlibBaseError(Exception):5 """Base Exception for all errors in Authlib."""6 7 #: short-string error code8 error = None9 #: long-string to describe this error10 description = ''11 #: web page that describes this error12 uri = None13 14 def __init__(self, error=None, description=None, uri=None):15 if error is not None:16 self.error = error17 if description is not None:18 self.description = description19 if uri is not None:20 self.uri = uri21 22 message = f'{self.error}: {self.description}'23 super().__init__(message)24 25 def __repr__(self):26 return f'<{self.__class__.__name__} "{self.error}">'27 28 29class AuthlibHTTPError(AuthlibBaseError):30 #: HTTP status code31 status_code = 40032 33 def __init__(self, error=None, description=None, uri=None,34 status_code=None):35 super().__init__(error, description, uri)36 if status_code is not None:37 self.status_code = status_code38 39 def get_error_description(self):40 return self.description41 42 def get_body(self):43 error = [('error', self.error)]44 45 if self.description:46 error.append(('error_description', self.description))47 48 if self.uri:49 error.append(('error_uri', self.uri))50 return error51 52 def get_headers(self):53 return default_json_headers[:]54 55 def __call__(self, uri=None):56 self.uri = uri57 body = dict(self.get_body())58 headers = self.get_headers()59 return self.status_code, body, headers60 61 62class ContinueIteration(AuthlibBaseError):63 pass64 