| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # coding: utf-8 |
| |
| """ |
| Submarine API |
| |
| The Submarine REST API allows you to access Submarine resources such as, experiments, environments and notebooks. The API is hosted under the /v1 path on the Submarine server. For example, to list experiments on a server hosted at http://localhost:8080, access http://localhost:8080/api/v1/experiment/ # noqa: E501 |
| |
| The version of the OpenAPI document: 0.8.0 |
| Contact: dev@submarine.apache.org |
| Generated by: https://openapi-generator.tech |
| """ |
| |
| |
| import six |
| |
| |
| 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 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.getheaders() |
| else: |
| self.status = status |
| self.reason = reason |
| self.body = None |
| self.headers = None |
| |
| def __str__(self): |
| """Custom error messages for exception""" |
| error_message = "({0})\nReason: {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 |
| |
| |
| def render_path(path_to_item): |
| """Returns a string representation of a path""" |
| result = "" |
| for pth in path_to_item: |
| if isinstance(pth, six.integer_types): |
| result += "[{0}]".format(pth) |
| else: |
| result += "['{0}']".format(pth) |
| return result |