File: exceptions.py

package info (click to toggle)
python-googlecloudapis 0.9.30%2Bdebian1-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,112 kB
  • ctags: 4,163
  • sloc: python: 10,137; makefile: 28
file content (99 lines) | stat: -rwxr-xr-x 2,444 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
"""Exceptions for generated client libraries."""


class Error(Exception):
  """Base class for all exceptions."""


class TypecheckError(Error, TypeError):
  """An object of an incorrect type is provided."""


class NotFoundError(Error):
  """A specified resource could not be found."""


class UserError(Error):
  """Base class for errors related to user input."""


class InvalidDataError(Error):
  """Base class for any invalid data error."""


class CommunicationError(Error):
  """Any communication error talking to an API server."""


class HttpError(CommunicationError):
  """Error making a request. Soon to be HttpError."""

  def __init__(self, response, content, url):
    super(HttpError, self).__init__()
    self.response = response
    self.content = content
    self.url = url

  def __str__(self):
    content = self.content.decode('ascii', 'replace')
    return 'HttpError accessing <%s>: response: <%s>, content <%s>' % (
        self.url, self.response, content)

  @property
  def status_code(self):
    # TODO(user): Turn this into something better than a
    # KeyError if there is no status.
    return int(self.response['status'])

  @classmethod
  def FromResponse(cls, http_response):
    return cls(http_response.info, http_response.content,
               http_response.request_url)


class InvalidUserInputError(InvalidDataError):
  """User-provided input is invalid."""


class InvalidDataFromServerError(InvalidDataError, CommunicationError):
  """Data received from the server is malformed."""


class BatchError(Error):
  """Error generated while constructing a batch request."""


class ConfigurationError(Error):
  """Base class for configuration errors."""


class GeneratedClientError(Error):
  """The generated client configuration is invalid."""


class ConfigurationValueError(UserError):
  """Some part of the user-specified client configuration is invalid."""


class ResourceUnavailableError(Error):
  """User requested an unavailable resource."""


class CredentialsError(Error):
  """Errors related to invalid credentials."""


class TransferError(CommunicationError):
  """Errors related to transfers."""


class TransferInvalidError(TransferError):
  """The given transfer is invalid."""


class NotYetImplementedError(GeneratedClientError):
  """This functionality is not yet implemented."""


class StreamExhausted(Error):
  """Attempted to read more bytes from a stream than were available."""