Bỏ để qua phần nội dung

Tài liệu tham khảo cho hub_sdk/modules/teams.py

Ghi

Tệp này có sẵn tại https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/teams.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !



hub_sdk.modules.teams.Teams

Căn cứ: CRUDClient

Một lớp đại diện cho khách hàng để tương tác với Teams thông qua các hoạt động CRUD. Lớp này mở rộng CRUDClient lớp và cung cấp các phương pháp cụ thể để làm việc với Teams.

Thuộc tính:

Tên Kiểu Sự miêu tả
id (str, None)

Mã định danh duy nhất của nhóm, nếu có.

data dict

Một từ điển để lưu trữ dữ liệu nhóm.

Ghi

Thuộc tính 'id' được đặt trong quá trình khởi tạo và có thể được sử dụng để xác định duy nhất một nhóm. Thuộc tính "data" được sử dụng để lưu trữ dữ liệu nhóm được tìm nạp từ API.

Mã nguồn trong hub_sdk/modules/teams.py
class Teams(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:
        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.
    """

    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()

    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)}")

    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()

    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)

    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)

__init__(team_id=None, headers=None)

Khởi tạo phiên bản Teams.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
team_id str

Mã định danh duy nhất của đội.

None
headers dict

Một từ điển các tiêu đề HTTP được bao gồm trong các yêu cầu API.

None
Mã nguồn trong 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(team_data)

Tạo một nhóm mới với dữ liệu được cung cấp và đặt ID nhóm cho phiên bản hiện tại.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
team_data dict

Một từ điển chứa dữ liệu để tạo nhóm.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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(hard=False)

Xóa tài nguyên nhóm được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
hard bool

Nếu True, hãy thực hiện xóa cứng (vĩnh viễn).

False
Ghi

Tham số 'cứng' xác định xem nên thực hiện xóa mềm (mặc định) hay xóa cứng. Trong một xóa mềm, nhóm có thể được đánh dấu là đã xóa nhưng vẫn được giữ lại trong hệ thống. Trong một bản xóa cứng, nhóm sẽ bị xóa vĩnh viễn khỏi hệ thống.

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Phản hồi từ yêu cầu xóa hoặc Không có nếu không thành công.

Mã nguồn trong 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()

Truy xuất dữ liệu cho phiên bản nhóm hiện tại.

Nếu ID nhóm hợp lệ đã được đặt, ID đó sẽ gửi yêu cầu tìm nạp dữ liệu nhóm và lưu trữ trong phiên bản. Nếu không có ID nhóm nào được đặt, nó sẽ ghi lại thông báo lỗi.

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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(data)

Cập nhật tài nguyên nhóm được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
data dict

Dữ liệu cập nhật cho tài nguyên nhóm.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

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

Mã nguồn trong 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

Căn cứ: PaginatedList

Mã nguồn trong hub_sdk/modules/teams.py
class TeamList(PaginatedList):
    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)

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

Khởi tạo phiên bản TeamList.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
page_size int

Số lượng mục cần yêu cầu trên mỗi trang.

None
public bool

Liệu các mục có thể truy cập công khai hay không.

None
headers dict

Tiêu đề được bao gồm trong yêu cầu API.

None
Mã nguồn trong 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)