Skip to content

Reference for hub_sdk/modules/teams.py

Note

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


hub_sdk.modules.teams.Teams

Teams(team_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None)

Bases: CRUDClient

A class representing a client for interacting with Teams through CRUD operations. This class extends the CRUDClient class and provides specific methods for working with Teams.

Attributes:

Name Type Description
id (str, None)

The unique identifier of the team, if available.

data dict

A dictionary to store team data.

Note

The 'id' attribute is set during initialization and can be used to uniquely identify a team. The 'data' attribute is used to store team data fetched from the API.

Parameters:

Name Type Description Default
team_id str

The unique identifier of the team.

None
headers dict

A dictionary of HTTP headers to be included in API requests.

None
Source code in hub_sdk/modules/teams.py
def __init__(self, team_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
    """
    Initialize a Teams instance.

    Args:
        team_id (str, optional): The unique identifier of the team.
        headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
    """
    super().__init__("teams", "team", headers)
    self.id = team_id
    self.data = {}
    if team_id:
        self.get_data()

create_team

create_team(team_data) -> None

Creates a new team with the provided data and sets the team ID for the current instance.

Parameters:

Name Type Description Default
team_data dict

A dictionary containing the data for creating the team.

required

Returns:

Type Description
None

The method does not return a value.

Source code in hub_sdk/modules/teams.py
def create_team(self, team_data) -> None:
    """
    Creates a new team with the provided data and sets the team ID for the current instance.

    Args:
        team_data (dict): A dictionary containing the data for creating the team.

    Returns:
        (None): The method does not return a value.
    """
    resp = super().create(team_data).json()
    self.id = resp.get("data", {}).get("id")
    self.get_data()

delete

delete(hard=False) -> Optional[Response]

Delete the team resource represented by this instance.

Parameters:

Name Type Description Default
hard bool

If True, perform a hard (permanent) delete.

False
Note

The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete. In a soft delete, the team might be marked as deleted but retained in the system. In a hard delete, the team is permanently removed from the system.

Returns:

Type Description
Optional[Response]

The response from the delete request, or None if it fails.

Source code in hub_sdk/modules/teams.py
def delete(self, hard=False) -> Optional[Response]:
    """
    Delete the team resource represented by this instance.

    Args:
        hard (bool, optional): If True, perform a hard (permanent) delete.

    Note:
        The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete.
        In a soft delete, the team might be marked as deleted but retained in the system.
        In a hard delete, the team is permanently removed from the system.

    Returns:
        (Optional[Response]): The response from the delete request, or None if it fails.
    """
    return super().delete(self.id, hard)

get_data

get_data() -> None

Retrieves data for the current team instance.

If a valid team ID has been set, it sends a request to fetch the team data and stores it in the instance. If no team ID has been set, it logs an error message.

Returns:

Type Description
None

The method does not return a value.

Source code in hub_sdk/modules/teams.py
def get_data(self) -> None:
    """
    Retrieves data for the current team instance.

    If a valid team ID has been set, it sends a request to fetch the team data and stores it in the instance.
    If no team ID has been set, it logs an error message.

    Returns:
        (None): The method does not return a value.
    """
    if not self.id:
        self.logger.error("No team id has been set. Update the team id or create a team.")
        return

    try:
        response = super().read(self.id)

        if response is None:
            self.logger.error(f"Received no response from the server for team ID: {self.id}")
            return

        # Check if the response has a .json() method (it should if it's a response object)
        if not hasattr(response, "json"):
            self.logger.error(f"Invalid response object received for team ID: {self.id}")
            return

        resp_data = response.json()
        if resp_data is None:
            self.logger.error(f"No data received in the response for team ID: {self.id}")
            return

        data = resp_data.get("data", {})
        self.data = self._reconstruct_data(data)
        self.logger.debug(f"Team data retrieved for ID: {self.id}")

    except Exception as e:
        self.logger.error(f"An error occurred while retrieving data for team ID: {self.id}, {str(e)}")

update

update(data) -> Optional[Response]

Update the team resource represented by this instance.

Parameters:

Name Type Description Default
data dict

The updated data for the team resource.

required

Returns:

Type Description
Optional[Response]

The response from the update request, or None if it fails.

Source code in hub_sdk/modules/teams.py
def update(self, data) -> Optional[Response]:
    """
    Update the team resource represented by this instance.

    Args:
        data (dict): The updated data for the team resource.

    Returns:
        (Optional[Response]): The response from the update request, or None if it fails.
    """
    return super().update(self.id, data)





hub_sdk.modules.teams.TeamList

TeamList(page_size=None, public=None, headers=None)

Bases: PaginatedList

Provides a paginated list interface for managing and retrieving teams via API requests.

Parameters:

Name Type Description Default
page_size int

The number of items to request per page.

None
public bool

Whether the items should be publicly accessible.

None
headers dict

Headers to be included in API requests.

None
Source code in hub_sdk/modules/teams.py
def __init__(self, page_size=None, public=None, headers=None):
    """
    Initialize a TeamList instance.

    Args:
        page_size (int, optional): The number of items to request per page.
        public (bool, optional): Whether the items should be publicly accessible.
        headers (dict, optional): Headers to be included in API requests.
    """
    base_endpoint = "datasets"
    if public:
        base_endpoint = f"public/{base_endpoint}"
    super().__init__(base_endpoint, "team", page_size, headers)