Skip to content

Reference for hub_sdk/base/api_client.py

Note

This file is available at https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/base/api_client.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!


hub_sdk.base.api_client.APIClientError

APIClientError(message: str, status_code: Optional[int] = None)

Bases: Exception

Custom exception class for API client errors.

Attributes:

NameTypeDescription
messagestr

A human-readable error message.

status_codeint

The HTTP status code associated with the error, if available.

Parameters:

NameTypeDescriptionDefault
messagestr

A human-readable error message.

required
status_codeint

The HTTP status code associated with the error, if available.

None
Source code in hub_sdk/base/api_client.py
def __init__(self, message: str, status_code: Optional[int] = None):
    """
    Initialize the APIClientError instance.

    Args:
        message (str): A human-readable error message.
        status_code (int, optional): The HTTP status code associated with the error, if available.
    """
    super().__init__(message)
    self.status_code = status_code
    self.message = message

__str__

__str__() -> str

Returns a string representation of the APIClientError instance.

Source code in hub_sdk/base/api_client.py
def __str__(self) -> str:
    """Returns a string representation of the APIClientError instance."""
    return f"{self.__class__.__name__}: {self.args[0]}"





hub_sdk.base.api_client.APIClient

APIClient(base_url: str, headers: Optional[Dict] = None)

Represents an API client for making requests to a specified base URL.

Attributes:

NameTypeDescription
base_urlstr

The base URL for the API.

headers(dict, None)

Headers to be included in each request.

loggerLogger

An instance of the logger for logging purposes.

Parameters:

NameTypeDescriptionDefault
base_urlstr

The base URL for the API.

required
headersdict

Headers to be included in each request.

None
Source code in hub_sdk/base/api_client.py
def __init__(self, base_url: str, headers: Optional[Dict] = None):
    """
    Initialize an instance of the APIClient class.

    Args:
        base_url (str): The base URL for the API.
        headers (dict, optional): Headers to be included in each request.
    """
    self.base_url = base_url
    self.headers = headers
    self.logger = logger

delete

delete(
    endpoint: str, params: Optional[Dict] = None
) -> Optional[requests.Response]

Make a DELETE request to the API.

Parameters:

NameTypeDescriptionDefault
endpointstr

The endpoint to append to the base URL for the request.

required
paramsdict

Parameters to include in the request.

None

Returns:

TypeDescription
Optional[Response]

The response object from the HTTP DELETE request, or None if it fails.

Source code in hub_sdk/base/api_client.py
def delete(self, endpoint: str, params: Optional[Dict] = None) -> Optional[requests.Response]:
    """
    Make a DELETE request to the API.

    Args:
        endpoint (str): The endpoint to append to the base URL for the request.
        params (dict, optional): Parameters to include in the request.

    Returns:
        (Optional[requests.Response]): The response object from the HTTP DELETE request, or None if it fails.
    """
    return self._make_request("DELETE", endpoint, params=params)

get

get(endpoint: str, params=None) -> Optional[requests.Response]

Make a GET request to the API.

Parameters:

NameTypeDescriptionDefault
endpointstr

The endpoint to append to the base URL for the request.

required
paramsdict

Query parameters for the request.

None

Returns:

TypeDescription
Optional[Response]

The response object from the HTTP GET request, None if it fails.

Source code in hub_sdk/base/api_client.py
def get(self, endpoint: str, params=None) -> Optional[requests.Response]:
    """
    Make a GET request to the API.

    Args:
        endpoint (str): The endpoint to append to the base URL for the request.
        params (dict, optional): Query parameters for the request.

    Returns:
        (Optional[requests.Response]): The response object from the HTTP GET request, None if it fails.
    """
    return self._make_request("GET", endpoint, params=params)

patch

patch(
    endpoint: str, data: Optional[Dict] = None, json: Optional[Dict] = None
) -> Optional[requests.Response]

Make a PATCH request to the API.

Parameters:

NameTypeDescriptionDefault
endpointstr

The endpoint to append to the base URL for the request.

required
datadict

Data to be sent in the request's body.

None
jsondict

JSON data to be sent in the request's body.

None

Returns:

TypeDescription
Optional[Response]

The response object from the HTTP PATCH request, or None if it fails.

Source code in hub_sdk/base/api_client.py
def patch(
    self, endpoint: str, data: Optional[Dict] = None, json: Optional[Dict] = None
) -> Optional[requests.Response]:
    """
    Make a PATCH request to the API.

    Args:
        endpoint (str): The endpoint to append to the base URL for the request.
        data (dict, optional): Data to be sent in the request's body.
        json (dict, optional): JSON data to be sent in the request's body.

    Returns:
        (Optional[requests.Response]): The response object from the HTTP PATCH request, or None if it fails.
    """
    return self._make_request("PATCH", endpoint, data=data, json=json)

post

post(
    endpoint: str,
    data: Optional[Dict] = None,
    json: Optional[Dict] = None,
    files: Optional[Dict] = None,
    stream=False,
) -> Optional[requests.Response]

Make a POST request to the API.

Parameters:

NameTypeDescriptionDefault
endpointstr

The endpoint to append to the base URL for the request.

required
datadict

Data to be sent in the request's body.

None
jsondict

JSON data to be sent in the request's body.

None
filesdict

Files to be included in the request, if any.

None
streambool

If True, the response content will be streamed.

False

Returns:

TypeDescription
Optional[Response]

The response object from the HTTP POST request.

Source code in hub_sdk/base/api_client.py
def post(
    self,
    endpoint: str,
    data: Optional[Dict] = None,
    json: Optional[Dict] = None,
    files: Optional[Dict] = None,
    stream=False,
) -> Optional[requests.Response]:
    """
    Make a POST request to the API.

    Args:
        endpoint (str): The endpoint to append to the base URL for the request.
        data (dict, optional): Data to be sent in the request's body.
        json (dict, optional): JSON data to be sent in the request's body.
        files (dict, optional): Files to be included in the request, if any.
        stream (bool, optional): If True, the response content will be streamed.

    Returns:
        (Optional[requests.Response]): The response object from the HTTP POST request.
    """
    return self._make_request("POST", endpoint, data=data, json=json, files=files, stream=stream)

put

put(
    endpoint: str, data: Optional[Dict] = None, json: Optional[Dict] = None
) -> Optional[requests.Response]

Make a PUT request to the API.

Parameters:

NameTypeDescriptionDefault
endpointstr

The endpoint to append to the base URL for the request.

required
dataOptional[Dict]

Data to be sent in the request's body.

None
jsonOptional[Dict]

JSON data to be sent in the request's body

None

Returns:

TypeDescription
Optional[Response]

The response object from the HTTP PUT request.

Source code in hub_sdk/base/api_client.py
def put(
    self, endpoint: str, data: Optional[Dict] = None, json: Optional[Dict] = None
) -> Optional[requests.Response]:
    """
    Make a PUT request to the API.

    Args:
        endpoint (str): The endpoint to append to the base URL for the request.
        data (Optional[Dict], optional): Data to be sent in the request's body.
        json (Optional[Dict], optional): JSON data to be sent in the request's body

    Returns:
        (Optional[requests.Response]): The response object from the HTTP PUT request.
    """
    return self._make_request("PUT", endpoint, data=data, json=json)