This repository has been archived by the owner on Nov 14, 2023. It is now read-only.
forked from cvat-ai/cvat
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SDK: fix urllib3 deprecation warnings (cvat-ai#6002)
`HTTPResponse.getheader` and `getheaders` are slated to be removed in urllib3 2.1.0.
- Loading branch information
1 parent
e47700b
commit b8b6477
Showing
4 changed files
with
159 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
150 changes: 150 additions & 0 deletions
150
cvat-sdk/gen/templates/openapi-generator/exceptions.mustache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
{{>partial_header}} | ||
|
||
class OpenApiException(Exception): | ||
"""The base exception class for all OpenAPIExceptions""" | ||
|
||
|
||
class ApiTypeError(OpenApiException, TypeError): | ||
def __init__(self, msg, path_to_item=None, valid_classes=None, | ||
key_type=None): | ||
""" Raises an exception for TypeErrors | ||
|
||
Args: | ||
msg (str): the exception message | ||
|
||
Keyword Args: | ||
path_to_item (list): a list of keys an indices to get to the | ||
current_item | ||
None if unset | ||
valid_classes (tuple): the primitive classes that current item | ||
should be an instance of | ||
None if unset | ||
key_type (bool): False if our value is a value in a dict | ||
True if it is a key in a dict | ||
False if our item is an item in a list | ||
None if unset | ||
""" | ||
self.path_to_item = path_to_item | ||
self.valid_classes = valid_classes | ||
self.key_type = key_type | ||
full_msg = msg | ||
if path_to_item: | ||
full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) | ||
super(ApiTypeError, self).__init__(full_msg) | ||
|
||
|
||
class ApiValueError(OpenApiException, ValueError): | ||
def __init__(self, msg, path_to_item=None): | ||
""" | ||
Args: | ||
msg (str): the exception message | ||
|
||
Keyword Args: | ||
path_to_item (list) the path to the exception in the | ||
received_data dict. None if unset | ||
""" | ||
|
||
self.path_to_item = path_to_item | ||
full_msg = msg | ||
if path_to_item: | ||
full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) | ||
super(ApiValueError, self).__init__(full_msg) | ||
|
||
|
||
class ApiAttributeError(OpenApiException, AttributeError): | ||
def __init__(self, msg, path_to_item=None): | ||
""" | ||
Raised when an attribute reference or assignment fails. | ||
|
||
Args: | ||
msg (str): the exception message | ||
|
||
Keyword Args: | ||
path_to_item (None/list) the path to the exception in the | ||
received_data dict | ||
""" | ||
self.path_to_item = path_to_item | ||
full_msg = msg | ||
if path_to_item: | ||
full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) | ||
super(ApiAttributeError, self).__init__(full_msg) | ||
|
||
|
||
class ApiKeyError(OpenApiException, KeyError): | ||
def __init__(self, msg, path_to_item=None): | ||
""" | ||
Args: | ||
msg (str): the exception message | ||
|
||
Keyword Args: | ||
path_to_item (None/list) the path to the exception in the | ||
received_data dict | ||
""" | ||
self.path_to_item = path_to_item | ||
full_msg = msg | ||
if path_to_item: | ||
full_msg = "{0} at {1}".format(msg, render_path(path_to_item)) | ||
super(ApiKeyError, self).__init__(full_msg) | ||
|
||
|
||
class ApiException(OpenApiException): | ||
|
||
def __init__(self, status=None, reason=None, http_resp=None): | ||
if http_resp: | ||
self.status = http_resp.status | ||
self.reason = http_resp.reason | ||
self.body = http_resp.data | ||
self.headers = http_resp.headers | ||
else: | ||
self.status = status | ||
self.reason = reason | ||
self.body = None | ||
self.headers = None | ||
|
||
def __str__(self): | ||
"""Custom error messages for exception""" | ||
error_message = "Status Code: {0}\n"\ | ||
"Reason: {1}\n".format(self.status, self.reason) | ||
if self.headers: | ||
error_message += "HTTP response headers: {0}\n".format( | ||
self.headers) | ||
|
||
if self.body: | ||
error_message += "HTTP response body: {0}\n".format(self.body) | ||
|
||
return error_message | ||
|
||
|
||
class NotFoundException(ApiException): | ||
|
||
def __init__(self, status=None, reason=None, http_resp=None): | ||
super(NotFoundException, self).__init__(status, reason, http_resp) | ||
|
||
|
||
class UnauthorizedException(ApiException): | ||
|
||
def __init__(self, status=None, reason=None, http_resp=None): | ||
super(UnauthorizedException, self).__init__(status, reason, http_resp) | ||
|
||
|
||
class ForbiddenException(ApiException): | ||
|
||
def __init__(self, status=None, reason=None, http_resp=None): | ||
super(ForbiddenException, self).__init__(status, reason, http_resp) | ||
|
||
|
||
class ServiceException(ApiException): | ||
|
||
def __init__(self, status=None, reason=None, http_resp=None): | ||
super(ServiceException, self).__init__(status, reason, http_resp) | ||
|
||
|
||
def render_path(path_to_item): | ||
"""Returns a string representation of a path""" | ||
result = "" | ||
for pth in path_to_item: | ||
if isinstance(pth, int): | ||
result += "[{0}]".format(pth) | ||
else: | ||
result += "['{0}']".format(pth) | ||
return result |